{"id":25726,"date":"2023-11-23T05:00:00","date_gmt":"2023-11-23T04:00:00","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=25726"},"modified":"2023-11-22T14:35:35","modified_gmt":"2023-11-22T13:35:35","slug":"separacja-tworzenia-tresci-od-ich-publikowania-w-cms-sila-adobe-experience-manager-aem","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/separacja-tworzenia-tresci-od-ich-publikowania-w-cms-sila-adobe-experience-manager-aem\/","title":{"rendered":"Separacja tworzenia tre\u015bci od ich publikowania w CMS \u2013 si\u0142a Adobe Experience Manager (AEM)"},"content":{"rendered":"\n<p>Patrz\u0105c na \u015bwiat System\u00f3w zarz\u0105dzania tre\u015bci\u0105 (ang. Content Management Systems, CMS), kt\u00f3ry nap\u0119dza wi\u0119kszo\u015b\u0107 stron internetowych, dobrze znany WordPress jest niekwestionowanym liderem, je\u017celi chodzi o udzia\u0142 w rynku. Wykorzystuje si\u0119 go w ponad 40% wszystkich stron internetowych (wliczaj\u0105c r\u00f3wnie\u017c te, kt\u00f3re nie opieraj\u0105 si\u0119 na \u017cadnym systemie CMS) oraz pokrywa wi\u0119cej ni\u017c 60% pe\u0142nego rynku (w 2023 roku, dok\u0142adne warto\u015bci s\u0105 nawet wy\u017csze, ale zale\u017c\u0105 od \u017ar\u00f3d\u0142a). Dodatkowo, inne \u2013 mniej popularne, ale wci\u0105\u017c rozpoznawalne silniki CMS jak Joomla czy Drupal, wci\u0105\u017c s\u0105 dost\u0119pne.<\/p>\n\n\n\n<p>Wszystkie maj\u0105 pewn\u0105 wsp\u00f3ln\u0105 charakterystyk\u0119 i funkcjonalno\u015bci \u2013 s\u0105 ju\u017c ca\u0142kiem dojrza\u0142e. Pierwsze ich wersje by\u0142y wydawane mi\u0119dzy 2001 a 2005 rokiem jako darmowe, rozszerzalne i otwarto\u017ar\u00f3d\u0142owe (ang. open source) systemy CMS. Wszystkie zosta\u0142y napisane w j\u0119zyku programowania PHP, kt\u00f3ry by\u0142 (i wci\u0105\u017c jest) \u015bwietnie wspierany przez wi\u0119kszo\u015b\u0107 tanich us\u0142ug hostingowych. Podsumowuj\u0105c \u2013 darmowe oprogramowanie, tani hosting i rozszerzalne funkcjonalno\u015bci. Wszystkie to brzmi fantastycznie. <strong>Jaki jest wi\u0119c w og\u00f3le sens rozwa\u017ca\u0107 komercyjny CMS, kt\u00f3ry wymaga op\u0142at licencyjnych?<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Dobry CMS, czyli jaki?<\/strong><\/h2>\n\n\n\n<p>S\u0105 przynajmniej dwa aspekty, kt\u00f3rym z pewno\u015bci\u0105 warto si\u0119 przyjrze\u0107: <strong>wydajno\u015b\u0107<\/strong> i <strong>bezpiecze\u0144stwo<\/strong>.<\/p>\n\n\n\n<p><strong>Wysoka wydajno\u015b\u0107 jest absolutnie krytyczna dla biznes\u00f3w internetowych<\/strong>. Zmuszaj\u0105c u\u017cytkownik\u00f3w, \u017ceby poczekali jeszcze jedn\u0105 sekund\u0119, mo\u017cemy \u0142atwo doprowadzi\u0107 do utraty klient\u00f3w, kt\u00f3rzy prze\u0142\u0105cz\u0105 si\u0119 do szybciej dzia\u0142aj\u0105cej konkurencji. Posiadanie ca\u0142ego systemu CMS ze wszystkimi funkcjonalno\u015bciami edycji, plug-inami, rozszerzeniami i zewn\u0119trznymi integracjami na jednej maszynie zawsze doprowadzi do pewnych strat wydajno\u015bci \u2013 niezale\u017cnie od tego jak dobrze zoptymalizowany jest system.<\/p>\n\n\n\n<p><strong>Bezpiecze\u0144stwo to kolejny krytyczny aspekt<\/strong>, kt\u00f3ry ka\u017cdy powa\u017cny biznes musi bra\u0107 pod uwag\u0119. Wci\u0105\u017c jest wiele stron internetowych korzystaj\u0105cych z darmowych silnik\u00f3w CMS, kt\u00f3re zosta\u0142y zhakowane przez jak\u0105\u015b dziur\u0119 bezpiecze\u0144stwa w samym CMS-ie lub przez niezabezpieczony plug-in lub rozszerzenie zainstalowane w CMS-ie jako dodatek. Takie strony mog\u0105 dystrybuowa\u0107 wirusy, kopa\u0107 kryptowaluty na serwerze lub komputerze u\u017cytkownika, wysy\u0142a\u0107 niechciane notyfikacje do u\u017cytkownik\u00f3w albo przekierowywa\u0107 ich na inne strony internetowe.<\/p>\n\n\n\n<p>Zaatakowane strony, u\u017cywaj\u0105c wielu trik\u00f3w, mog\u0105 nawet przez d\u0142ugi czas wygl\u0105da\u0107 normalnie oraz zachowywa\u0107 si\u0119 naturalnie dla autor\u00f3w tre\u015bci i administrator\u00f3w, dop\u00f3ki prawdziwi u\u017cytkownicy nie zg\u0142osz\u0105 problemu. Jednak\u017ce \u2013 nie maj\u0105c \u0142atwego sposobu na zg\u0142oszenie sytuacji, przenios\u0105 si\u0119 raczej do konkurencji. Co bardziej przera\u017caj\u0105ce, wiele stron internetowych wci\u0105\u017c przechowuje prywatne dane u\u017cytkownik\u00f3w w tej samej bazie danych, kt\u00f3ra jest u\u017cywana bezpo\u015brednio przez System zarz\u0105dzania tre\u015bci\u0105 \u2013 co oznacza, \u017ce zhakowany CMS daje hakerom dost\u0119p do tych wszystkich wra\u017cliwych danych.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>\u015arodowisko tworzenia i publikacji tre\u015bci w AEM<\/strong><\/h2>\n\n\n\n<p>I to s\u0105 w\u0142a\u015bnie aspekty, gdzie <strong>Adobe Experience Manager (AEM)<\/strong>, komercyjny CMS dla biznesu, <strong>naprawd\u0119 b\u0142yszczy<\/strong> w por\u00f3wnaniu do innych rozwi\u0105za\u0144. Jego architektura rozwi\u0105zuje wiele problem\u00f3w ju\u017c na poziomie projektu i po prostu nie pozwala na robienie b\u0142\u0119d\u00f3w tak \u0142atwo, jak w alternatywnych systemach.<\/p>\n\n\n\n<p>AEM oferuje znacz\u0105c\u0105 przewag\u0119, zapewniaj\u0105c <strong>dwa r\u00f3\u017cne typy instancji:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u015brodowisko tworzenia tre\u015bci<\/strong> (zwane r\u00f3wnie\u017c autoringiem, ang. \u201eAuthoring\u201d\/\u201eAuthor\u201d) \u2013 g\u0142\u00f3wnym celem posiadania dedykowanej instancji do tworzenia tre\u015bci jest zapewnienie funkcji edycyjnych dla autor\u00f3w tre\u015bci, podczas gdy instancje publikuj\u0105ce maj\u0105 by\u0107 znacznie prostsze (w kategorii dost\u0119pnych funkcjonalno\u015bci),<\/li>\n\n\n\n<li><strong>\u015brodowisko publikacji<\/strong> (ang. \u201ePublishing\u201d\/\u201ePublish\u201d) \u2013 instancje publikuj\u0105ce powinny g\u0142\u00f3wnie renderowa\u0107 strony internetowe, u\u017cywaj\u0105c danych wypchni\u0119tych przez instancj\u0119 tworzenia tre\u015bci (operacja zwana \u201epublikowaniem\u201d). Takie instancje nie powinny posiada\u0107 funkcjonalno\u015bci do edycji tre\u015bci, jak r\u00f3wnie\u017c nie powinny wykonywa\u0107 niepotrzebnych dzia\u0142a\u0144 w tle, kt\u00f3re mog\u0105 by\u0107 wykonane w instancji dedykowanej do tworzenia tre\u015bci.<\/li>\n<\/ul>\n\n\n\n<p>Ta wyra\u017ana linia wprowadza co\u015b, co nazywamy w informatyce <strong>separacj\u0105 zagadnie\u0144 lub podzia\u0142em odpowiedzialno\u015bci<\/strong> (ang. \u201eSeparation of Concerns\u201d).<\/p>\n\n\n\n<p>Wykorzystanie ograniczonych instancji przeznaczonych wy\u0142\u0105cznie do publikowania tre\u015bci, kt\u00f3re nie \u0142aduj\u0105 funkcji edycyjnych i kt\u00f3re u\u017cywaj\u0105 opublikowanych danych przeprocesowanych wcze\u015bniej przez instancj\u0119 tworzenia tre\u015bci, daje wyra\u017any wzrost wydajno\u015bci. Co wi\u0119cej, wi\u0119kszo\u015b\u0107 proces\u00f3w dzia\u0142aj\u0105cych w tle jak:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>automatyczne przep\u0142ywy pracy (ang. \u201eworkflows\u201d),<\/li>\n\n\n\n<li>synchronizacje,<\/li>\n\n\n\n<li>integracje z zewn\u0119trznymi serwisami,<\/li>\n\n\n\n<li>procesowanie importu danych oraz eksportu danych<\/li>\n<\/ul>\n\n\n\n<p>mo\u017ce by\u0107 wykonane na \u015brodowisku tworzenia tre\u015bci bez wp\u0142ywu na wydajno\u015b\u0107 \u015brodowiska publikuj\u0105cego. <strong>Czyni je wi\u0119c niezauwa\u017calnym dla ko\u0144cowych u\u017cytkownik\u00f3w w kategorii pr\u0119dko\u015bci dostarczania strony<\/strong>.<\/p>\n\n\n\n<p>Dodatkowo, architektura AEM definiuje, \u017ce instancje autorskie oraz publikuj\u0105ce s\u0105 sparowane z Dyspozytorami (ang. \u201eDispatchers\u201d), czyli specyficznymi serwerami Apache z zainstalowanymi modu\u0142ami AEM Dispatcher. Kiedy nast\u0119puje \u017c\u0105danie (ang. \u201erequest\u201d) z przegl\u0105darki u\u017cytkownika o konkretn\u0105 stron\u0119 internetow\u0105, Dyspozytor prosi AEM o wyrenderowanie tej strony (w sensie wygenerowania finalnego kodu HTML). Nast\u0119pnie Dyspozytor zapisuje rezultat w pami\u0119ci podr\u0119cznej (ang. \u201ecache\u201d) i wykorzystuje go do obs\u0142ugi nast\u0119pnych \u017c\u0105da\u0144. Oczywi\u015bcie, kiedy nowa tre\u015b\u0107 jest publikowana, wtedy zapisy w pami\u0119ci podr\u0119cznej s\u0105 poprawnie uniewa\u017cniane (ang. \u201einvalidated\u201d).<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/11\/Obraz1-6.png\"><img decoding=\"async\" width=\"1024\" height=\"213\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/11\/Obraz1-6-1024x213.png\" alt=\"Separacja zagadnie\u0144 w CRM\" class=\"wp-image-25723\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/11\/Obraz1-6-1024x213.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/11\/Obraz1-6-300x62.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/11\/Obraz1-6-768x160.png 768w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/11\/Obraz1-6.png 1163w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Ryc 1 Separacja zagadnie\u0144 w AEM<\/figcaption><\/figure>\n\n\n\n<p>AEM dzia\u0142a naprawd\u0119 dobrze z wieloma g\u0142\u00f3wnymi Sieciami dostarczania tre\u015bci (ang. Content Delivery Network, CDN), wi\u0119c jest mo\u017cliwe dodanie dodatkowej geograficznej warstwy dystrybucji pami\u0119ci podr\u0119cznej, aby jeszcze szybciej serwowa\u0107 strony internetowe dla ko\u0144cowych u\u017cytkownik\u00f3w.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>R\u00f3\u017cnice pomi\u0119dzy \u015brodowiskami w AEM<\/strong><\/h2>\n\n\n\n<p>Instancja autorska (tworzenia tre\u015bci) dzia\u0142a zazwyczaj w chronionym \u015brodowisku \u2013 w prywatnej chmurze lub prywatnej sieci korporacyjnej, niedost\u0119pnej publicznie w Internecie, ale przez Wirtualn\u0105 sie\u0107 prywatn\u0105 (ang. Virtual Private Network, VPN). Zazwyczaj taka instancja nie jest \u0142atwo dost\u0119pna przez Internet, wi\u0119c nie wystawia ona mo\u017cliwo\u015bci edycyjnych i dodatkowych funkcjonalno\u015bci tworzenia tre\u015bci dla haker\u00f3w. Nawet je\u015bli przyjmiemy podobn\u0105 szans\u0119 znalezienia dziury bezpiecze\u0144stwa jak w innych Systemach zarz\u0105dzania tre\u015bci\u0105, to nie s\u0105 one wyeksponowane publicznie.<\/p>\n\n\n\n<p>Na instancjach publikuj\u0105cych, kt\u00f3re teoretycznie s\u0105 bli\u017cej sieci publicznej, <strong>wiele funkcjonalno\u015bci nie jest dost\u0119pnych,<\/strong> co ogranicza potencjaln\u0105 powierzchni\u0119 do ataku. Sekrety konfiguracji potrzebne do przetwarzania w tle, takie jak dane logowania do \u017ar\u00f3de\u0142 danych czy klucze dost\u0119powe do zewn\u0119trznych us\u0142ug, mog\u0105 by\u0107 trzymane tylko na \u201eAutorze\u201d, poniewa\u017c nie s\u0105 one potrzebne na instancjach publikuj\u0105cych. Nie zapominajmy jednak o Dyspozytorach, kt\u00f3re s\u0105 \u201efrontowymi drzwiami\u201d do AEM-a i kt\u00f3re mog\u0105 filtrowa\u0107 cz\u0119\u015b\u0107 niechcianego ruchu, dodawa\u0107 kolejny poziom bezpiecze\u0144stwa oraz odporno\u015b\u0107 na rozproszony atak w celu odmowy us\u0142ugi (ang. Distributed Denial Of Service, DDoS).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Inne aspekty dobrego CMS-a<\/strong><\/h2>\n\n\n\n<p>Poza wydajno\u015bci\u0105 i bezpiecze\u0144stwem, s\u0105 jeszcze inne wa\u017cne aspekty takie jak:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0142atwo\u015b\u0107 u\u017cycia, <strong><\/strong><\/li>\n\n\n\n<li>wbudowane i gotowe do u\u017cycia funkcjonalno\u015bci, <strong><\/strong><\/li>\n\n\n\n<li>\u0142atwo\u015b\u0107 w utrzymaniu, <strong><\/strong><\/li>\n\n\n\n<li>u\u017cyte technologie, <strong><\/strong><\/li>\n\n\n\n<li>integracje z zewn\u0119trznymi us\u0142ugami, <strong><\/strong><\/li>\n\n\n\n<li>umowa o gwarantowanym poziomie \u015bwiadczenia us\u0142ug (ang. Service Level Agreement, SLA), <strong><\/strong><\/li>\n\n\n\n<li>wsparcie techniczne i wiele wi\u0119cej. <strong><\/strong><\/li>\n<\/ul>\n\n\n\n<p>Wi\u0119kszo\u015b\u0107 z nich, je\u015bli nie wszystkie, mog\u0105 wyra\u017anie wykaza\u0107<strong> przewag\u0119 Adobe Experience Manager nad innymi popularnymi silnikami CMS, zar\u00f3wno darmowymi jak i komercyjnymi. <\/strong>Co wi\u0119cej, AEM jako us\u0142uga chmurowa (AEM as a Cloud Service) wznosi to wszystko na zupe\u0142nie nowy poziom. Wi\u0119cej w tym temacie mo\u017cesz <a aria-label=\" (opens in a new tab)\" href=\"https:\/\/sii.pl\/blog\/en\/adobe-experience-manager-as-a-cloud-service-aemaacs-the-best-variant-of-the-leading-enterprise-level-cms\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">przeczyta\u0107 tutaj<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Podsumowanie<\/strong><\/h2>\n\n\n\n<p>Jako in\u017cynier oprogramowania, kt\u00f3ry sp\u0119dzi\u0142 8 lat buduj\u0105c i rozwijaj\u0105c strony internetowe w Adobe Experience Manager dla wielu og\u00f3lnie znanych globalnych firm, musz\u0119 przyzna\u0107, \u017ce wci\u0105\u017c podziwiam, jak dobrze zosta\u0142 on zaprojektowany w swych fundamentach. Zapewnia naprawd\u0119 \u015bwietny system CMS, kt\u00f3ry \u0142atwo dostosowa\u0107 do potrzeb klienta, zachowuj\u0105c przy tym wysoki poziom jako\u015bci kodu, jego czytelno\u015b\u0107 oraz og\u00f3ln\u0105 stabilno\u015b\u0107.<\/p>\n\n\n\n<p>I cho\u0107 wiele \u015bwietnych technologii u\u017cytych w AEM-ie zosta\u0142o stworzonych z my\u015bl\u0105 o dedykowanym zastosowaniu ich w tym CMS-ie, zosta\u0142y one p\u00f3\u017aniej wydane w formie otwartych kod\u00f3w \u017ar\u00f3d\u0142owych (m.in.: JCR, Jackrabbit i Sling), a wok\u00f3\u0142 nich utworzy\u0142a si\u0119 wyra\u017ana spo\u0142eczno\u015b\u0107 i post\u0119p rozwojowy, poza samym AEM-em. To dlatego \u015bwiat Adobe Experience Managera mo\u017ce by\u0107 tak fascynuj\u0105cy dla programist\u00f3w, jako co\u015b kompletnie innego od tego, co ju\u017c znaj\u0105, w bardzo pozytywnym sensie.<\/p>\n\n\n\n<p>Artyku\u0142 nie jest sponsorowany przez Adobe* Wszystko powy\u017cej jest <strong>moj\u0105 szczer\u0105 opini\u0105, bazuj\u0105c\u0105 na w\u0142asnym do\u015bwiadczeniu z AEM-em <\/strong><strong>\ud83d\ude0a<\/strong><strong><\/strong><\/p>\n\n\n\n<p><a aria-label=\" (opens in a new tab)\" href=\"https:\/\/sii.pl\/oferta\/oprogramowanie-dla-biznesu\/adobe\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">Sii jest profesjonalnym partnerem Adobe<\/a>, kt\u00f3ry zapewnia dedykowane rozwi\u0105zania z zakresu Adobe Experience, niestandardowe rozwi\u0105zania w zakresie oprogramowania idealnie dostosowane do potrzeb klienta i ca\u0142odobowe utrzymanie i zarz\u0105dzanie platformami, pomagaj\u0105c mi\u0119dzynarodowym biznesom osi\u0105ga\u0107 sukces.<\/p>\n\n\n\n<p>***<\/p>\n\n\n\n<p><strong>* \u017baden artyku\u0142 na naszym blogu nie jest sponsorowany<\/strong><\/p>\n\n\n\n<p>***<\/p>\n\n\n\n<p>Je\u015bli interesuje Ci\u0119 tematyka AEM, zajrzyj r\u00f3wnie\u017c koniecznie do innych artyku\u0142\u00f3w naszych ekspert\u00f3w:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/sii.pl\/blog\/adobe-experience-manager-as-a-cloud-service-aemaacs-najlepszy-wariant-czolowego-enterprise-level-cms\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">Adobe Experience Manager as a Cloud service (AEMaaCS) \u2013 najlepszy wariant czo\u0142owego Enterprise Level CMS<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/sii.pl\/blog\/jak-wdrozyc-produkty-klasy-flagship-do-systemu-e-commerce-w-zaledwie-13-dni-czyli-do-czego-sluzy-adobe-experience-manager\/\" target=\"_blank\" rel=\"noreferrer noopener\" class=\"ek-link\">Jak wdro\u017cy\u0107 produkty klasy \u201eflagship\u201d do systemu e-commerce w zaledwie 13 dni, czyli do czego s\u0142u\u017cy Adobe Experience Manager<\/a><\/li>\n<\/ul>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;25726&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;2&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5 ( votes: 2)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;Separacja tworzenia tre\u015bci od ich publikowania w CMS \u2013 si\u0142a Adobe Experience Manager (AEM)&quot;,&quot;width&quot;:&quot;139.5&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 139.5px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            5\/5 ( votes: 2)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Patrz\u0105c na \u015bwiat System\u00f3w zarz\u0105dzania tre\u015bci\u0105 (ang. Content Management Systems, CMS), kt\u00f3ry nap\u0119dza wi\u0119kszo\u015b\u0107 stron internetowych, dobrze znany WordPress jest &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/separacja-tworzenia-tresci-od-ich-publikowania-w-cms-sila-adobe-experience-manager-aem\/\">Continued<\/a><\/p>\n","protected":false},"author":590,"featured_media":25695,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1316],"tags":[1546,1218,184],"class_list":["post-25726","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-miekko","tag-przeglad-narzedzi","tag-adobe-experience-manager","tag-cms"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2023\/11\/Separating-Content-Authoring-From-Publishing-in-CMS-\u2013-the-power-of-Adobe-Experience-Manager-AEM-1.jpg","category_names":["Development na mi\u0119kko"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/25726"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/590"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=25726"}],"version-history":[{"count":1,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/25726\/revisions"}],"predecessor-version":[{"id":25728,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/25726\/revisions\/25728"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/25695"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=25726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=25726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=25726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}