drupal 8 https://dev.drupal.cz/ cs Trigo Group https://dev.drupal.cz/node/371936 <span class="field field--name-title field--type-string field--label-hidden">Trigo Group</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="Zobrazit profil uživatele." href="/user/brainsum" class="username">Brainsum</a></span> <span class="field field--name-created field--type-created field--label-hidden">St, 05/15/2019 - 22:53</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>The trigo-group.com has been renewed according to the user’s experiences and needs with a flexible and easy-to-edit admin UI.<br /> TRIGO is a multinational company providing operational Quality Management solutions for the manufacturing sector, especially in the automotive and aerospace industries. With a team of several thousand professionals present in 20+ countries across 4 continents, TRIGO offers a comprehensive portfolio of Quality Assurance services ranging from inspection to expert auditing, consulting and training.</p> <p>Advanced content moderation<br /> Since the site has 11 different translations with plenty of editors, enabling the content moderation was a priority also. By using the Diff module revisions, not only did the workflow become smoother but also the editor's experience.</p> <p>Training platform<br /> Compared to the legacy system, the most significant new feature on the new website is a custom Training section. The users are able to choose from three different categories depending on their preferences:<br />     • onsite training, the use case will end with a contact form submission<br />     • e-learning option, they will have the opportunity to pay directly with PayPal<br />     • public seminars, they can either pre-register, request for a custom offer or pay directly with PayPal.<br /> Several dependencies are extending the flow according to the user’s actions.</p> <p>Career page<br /> As the career page is one of the KPIs, it tends to be as simple as possible to satisfy the users’ needs and to grant a smooth journey. The page collects all the open positions within the company for what the users can apply by submitting the online form or can be redirected to an external career portal.</p> <p>Challenges<br /> UX collaboration<br /> Having user researches to get the most out of a project is indispensable in many ways; we truly believe that the greatest user experience can be reached only by knowing your visitors and your own goals at the same time. Nevertheless, we learned a lot about the importance of the UX and development team’s close collaboration. Finding the most effective working methods, keeping in mind the limits of the systems and tools we use was tricky sometimes, but at the end, worth of every effort.</p> <p>Training section<br /> The workflow of the training registration process is fully custom coded, since it requires a unique logical structure following the use cases came out upon the user researches. The PayPal integration is a custom module also.</p> <p>Custom notifications for different actions<br /> In general, the automated e-mail notifications are triggered depending on whether it is a general form or a location-based form, the notification will be sent to a general address, or to the users matching the same location, as the inquirer. This logic applies for the sales contact forms, training contact forms, job proposals and case study download forms too, being fully GDPR compliant in the meantime.<br />  <br /> Customizable contact forms<br /> The service portfolio of the site underwent a whole restructuring to get a clear picture of what the company does. Not just the content, but the responsibility over each services got separated what we managed to do with customizable contact forms. By this action every content can have different contact persons with custom address fields, profile photo and mailing address.<br />  <br /> IP based identification<br /> On the Contact page the visitors are redirected from the 23 different countries to the one matching their location according to their IP address. If none of them matches the user gets to the main contact page. </p> <p>RESPONSIVE LAYOUT<br /> I think we all can agree, that our user behaviour is absolutely different depending on whether we are searching for something on PC or on our phones. All user research carried out has proven that belief, which lead to a unique responsive view of the site. One of the most affected parts was the filtration. We use several categories to differ the case studies, the trainings and career opportunities. We used JavaScript libraries like jQuery Nice Select to avoid the pre-build browser solutions and this way we could keep the look and feel of the final product coherent.<br /> The other feature, which needed a heavy rework for being able to deliver the whoo-hoo feeling for the users was the training registration. Keeping up the shopping flow and the transparency while registering for an event was solved with handy custom JS and CSS codes. This way the summary window sticks the bottom, but remains easily swipeable up and down to see all the necessary information and the current steps of the process. <br /> All the cropped images got responsive styles too to give the editors the access to choose between the outputs.</p> <p>USING PARAGRAPHS FOR THE MOST OF THE CONTENT ON THE WEBSITE<br /> One of the key points was to create a system, which is easy to use for the editors. By using the Paragraph module we managed to create a fully customizable system. Currently we use 13 different sections with multiple layouts, color schemes and width setups. All the image fields are cropable in different predefined desktop and responsive styles.</p> <p><br /> Solutions<br /> Special contrib modules<br /> Paragraphs for page building, Simple Event Calendar (customized), Breakpoint for image styles, Role Delegation for user management, Address to implement ISO address formats, Entity Reference Revisions, Light Gallery, Crop API for image cropping functionality, Add to Calendar module enabling to add events to google calendar by a click, Diff module to expand revisioning, Search API, EU Cookie Compliance module and many others.<br />  <br /> PatternLab<br /> the elements of the site are outsourced to the PatternLab to enable our backend and frontend developers work apart.<br />  <br /> JavaScript<br /> We used the ResponsiveSlides.js for the testimonials’ sliders, the DropzoneJS for file uploading on the Career page, a few basic jQueries and a simple lightbox for galleries and videos. Otherwise, we used only custom written JS codes for smaller features, but tended to solve everything with CSS.</p> </div> <div class="field field--name-field-url field--type-link field--label-hidden field__item"><a href="https://www.trigo-group.com/en">Trigo Group</a></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/stitky/drupal-8" hreflang="cs">drupal 8</a></div> <div class="field__item"><a href="/stitky/trigo" hreflang="cs">Trigo</a></div> <div class="field__item"><a href="/stitky/brainsum" hreflang="cs">Brainsum</a></div> <div class="field__item"><a href="/stitky/cms" hreflang="cs">CMS</a></div> <div class="field__item"><a href="/stitky/enterprise-web" hreflang="cs">Enterprise web</a></div> <div class="field__item"><a href="/stitky/drupalcs-awards-2019" hreflang="cs">DrupalCS Awards 2019</a></div> </div> </div> <div class="field field--name-field-logo field--type-entity-reference field--label-above"> <div class="field__label">Logo</div> <div class="field__item"><a href="/media/1011" hreflang="cs">Logo.png</a></div> </div> <div class="field field--name-field-main-screenshot field--type-entity-reference field--label-above"> <div class="field__label">Main screenshot</div> <div class="field__item"><a href="/media/1006" hreflang="cs">trigo-group-xx-mockup-02.jpg</a></div> </div> <div class="field field--name-field-other-screenshots field--type-entity-reference field--label-above"> <div class="field__label">Other screenshots</div> <div class="field__items"> <div class="field__item"><a href="/media/1016" hreflang="cs">trigo-group-screenshot.jpg</a></div> <div class="field__item"><a href="/media/1021" hreflang="cs">trigo-group-x-career.jpg</a></div> <div class="field__item"><a href="/media/1026" hreflang="cs">trigo-group-x-revisions.jpg</a></div> <div class="field__item"><a href="/media/1031" hreflang="cs">trigo-group-x-training.png</a></div> </div> </div> Wed, 15 May 2019 20:53:43 +0000 Brainsum 371936 at https://dev.drupal.cz Brainsum https://dev.drupal.cz/node/371931 <span class="field field--name-title field--type-string field--label-hidden">Brainsum</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="Zobrazit profil uživatele." href="/user/brainsum" class="username">Brainsum</a></span> <span class="field field--name-created field--type-created field--label-hidden">St, 05/15/2019 - 22:49</span> <div class="field field--name-field-drupal-version field--type-entity-reference field--label-inline clearfix"> <div class="field__label">Drupal version</div> <div class="field__items"> <div class="field__item">Drupal 8</div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Firemná stránka spoločnosti Brainsum s.r.o., vytvorená v Drupal 8. <br /> Spoločnosť Brainsum sa zaoberá vývojom komplexných webových aplikácií na vysokej úrovni. Nebojíme sa náročných výziev, pre náročných klientov. <br /> Stránka je dvojjazyčná, anglická verzia je dostupná na brainsum.com a slovenská mutácia na brainsum.sk. Obe jazykové mutácie obslúži jeden systém. <br /> Stránka bola vytvorená tak, aby potenciálny zákazníci našli všetko o firme, čo nájsť chcú. Okrem klasických podstránok, kde si návštevník môže prečítať okruh ponúkaných služieb, zoznam najvýznamnejších referencií, alebo viac o poskytnutí GDPR auditu, aj blog články.</p> </div> <div class="field field--name-field-url field--type-link field--label-hidden field__item"><a href="https://www.brainsum.sk">Brainsum</a></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/stitky/drupal-8" hreflang="cs">drupal 8</a></div> <div class="field__item"><a href="/stitky/brainsum" hreflang="cs">Brainsum</a></div> <div class="field__item"><a href="/stitky/cms" hreflang="cs">CMS</a></div> <div class="field__item"><a href="/stitky/drupalcs-awards-2019" hreflang="cs">DrupalCS Awards 2019</a></div> </div> </div> <div class="field field--name-field-logo field--type-entity-reference field--label-above"> <div class="field__label">Logo</div> <div class="field__item"><a href="/media/971" hreflang="cs">Logo.png</a></div> </div> <div class="field field--name-field-main-screenshot field--type-entity-reference field--label-above"> <div class="field__label">Main screenshot</div> <div class="field__item"><a href="/media/976" hreflang="cs">www.brainsum.com_main.png</a></div> </div> <div class="field field--name-field-other-screenshots field--type-entity-reference field--label-above"> <div class="field__label">Other screenshots</div> <div class="field__items"> <div class="field__item"><a href="/media/981" hreflang="cs">www.brainsum.com screen capture 2019-05-15_09-16-31.png</a></div> <div class="field__item"><a href="/media/986" hreflang="cs">www.brainsum.com screen capture 2019-05-15_09-16-40.png</a></div> <div class="field__item"><a href="/media/991" hreflang="cs">www.brainsum.com screen capture 2019-05-15_09-16-45.png</a></div> <div class="field__item"><a href="/media/996" hreflang="cs">www.brainsum.com screen capture 2019-05-15_09-17-31.png</a></div> <div class="field__item"><a href="/media/1001" hreflang="cs">www.brainsum.com screen capture 2019-05-15_09-18-00.png</a></div> </div> </div> Wed, 15 May 2019 20:49:54 +0000 Brainsum 371931 at https://dev.drupal.cz Ujszo.com https://dev.drupal.cz/node/371911 <span class="field field--name-title field--type-string field--label-hidden">Ujszo.com</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="Zobrazit profil uživatele." href="/user/brainsum" class="username">Brainsum</a></span> <span class="field field--name-created field--type-created field--label-hidden">St, 05/15/2019 - 22:22</span> <div class="field field--name-field-drupal-version field--type-entity-reference field--label-inline clearfix"> <div class="field__label">Drupal version</div> <div class="field__items"> <div class="field__item">Drupal 8</div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Online spravodajský portál denníka Új Szó, patrí medzi najstaršie spravodajské portály na Slovensku v maďarskom jazyku. S klientom spolupracujeme už od roku 2008 a prvá verzia portálu bola vytvorená ešte v Drupal 5. <br /> Cieľom projektu bolo navrhnutie takého designu, ktorý zodpovedá najnovším trendom a zároveň kompletná modernizácia softvéru z technologického hľadiska. </p> <p>Ďalšie technické zaujímavosti: </p> <p>    • Ľahko použiteľný admin UI pre editorov portálu.<br />     • Flexibilné spravovanie umiestnenia jednotlivých obsahových a tematických blokov.<br />     • Hierarchická štruktúra editorov denníka na základe právomoci rôznej úrovni<br />     • Zlepšnie portálu z výkonnostnej stránky (mesačne cca. 550 K užívateľov portálu)<br />     • User friendly admin UI na naplánovanie hlavných článkov na úvodnej stránke - custom riešenie <strong>React + JSON API + Drupal entities</strong><br />     • Custom riešenie modulu kvíz<br />     • Flexibilné spravovanie obsahu článkov, pomocou Paragraphs<br />     • Plne responzívny a fluidný design<br />     • Migrácia cca. 1.000.000 uzlov z pôvodného D7 systému<br />     • Zoznam najčítanejších správ - prepojenie s Google Analytics štatistikou<br />     • Manažment pridávania článkov - Workflow module<br />     • Vyhľadávanie produktov s využitím technológie Apache Solr</p> <p>Riešenie:<br /> Drupal 8 + Patternlab</p> </div> <div class="field field--name-field-url field--type-link field--label-hidden field__item"><a href="https://www.ujszo.com">ujszo.com</a></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/stitky/drupal-8" hreflang="cs">drupal 8</a></div> <div class="field__item"><a href="/stitky/portal" hreflang="cs">portál</a></div> <div class="field__item"><a href="/stitky/spravodajsky-portal" hreflang="cs">spravodajský portál</a></div> <div class="field__item"><a href="/stitky/brainsum" hreflang="cs">Brainsum</a></div> <div class="field__item"><a href="/stitky/uj-szo" hreflang="cs">Új Szó</a></div> <div class="field__item"><a href="/stitky/patternlab" hreflang="cs">Patternlab</a></div> <div class="field__item"><a href="/stitky/news-portal" hreflang="cs">News portal</a></div> <div class="field__item"><a href="/stitky/cms" hreflang="cs">CMS</a></div> <div class="field__item"><a href="/stitky/paragraph" hreflang="cs">paragraph</a></div> <div class="field__item"><a href="/stitky/scheduling" hreflang="cs">scheduling</a></div> <div class="field__item"><a href="/stitky/react" hreflang="cs">react</a></div> <div class="field__item"><a href="/stitky/drupalcs-awards-2019" hreflang="cs">DrupalCS Awards 2019</a></div> </div> </div> <div class="field field--name-field-logo field--type-entity-reference field--label-above"> <div class="field__label">Logo</div> <div class="field__item"><a href="/media/861" hreflang="cs">logo.png</a></div> </div> <div class="field field--name-field-main-screenshot field--type-entity-reference field--label-above"> <div class="field__label">Main screenshot</div> <div class="field__item"><a href="/media/856" hreflang="cs">ujszo-main.png</a></div> </div> <div class="field field--name-field-other-screenshots field--type-entity-reference field--label-above"> <div class="field__label">Other screenshots</div> <div class="field__items"> <div class="field__item"><a href="/media/866" hreflang="cs">ujszo.jpg</a></div> <div class="field__item"><a href="/media/871" hreflang="cs">ujszo-custom-layouts.png</a></div> <div class="field__item"><a href="/media/876" hreflang="cs">ujszo-lister.png</a></div> <div class="field__item"><a href="/media/881" hreflang="cs">ujszo-scheduling.png</a></div> </div> </div> Wed, 15 May 2019 20:22:20 +0000 Brainsum 371911 at https://dev.drupal.cz Vyšel Drupal 8. 7. https://dev.drupal.cz/clanky/vysel-drupal-8-7 <span class="field field--name-title field--type-string field--label-hidden">Vyšel Drupal 8. 7.</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p class="lead">Podle dlouhodobého plánu vyšla na prvního Máje nová minoritní verze Drupalu s pořadovým číslem 8. 7. Tato verze přináší mnoho drobných vylepšení ale i několik výraznějších změn.</p> <h2>Zrušení podpory starých verzí PHP</h2> <p>Od této verze již nejsou podporované verze PHP 5.5 a 5.6. jejichž bezpečnostní podpora byla ukončena v prosinci minulého roku. Pokud ještě používáte Drupal 8 s těmito verzemi, měli byste zvážit co nejrychlejší update alespoň na verzi 7.1, ideálně však na verzi 7.2. Dočkáte se jednak bezpečnostní podpory a vydávání nových verzí, ale také znatelně vyššího výkonu pro vaši stránku.</p> <h2>Konec podpory pro starší prohlížeče</h2> <p>Internet Explorer 9 a 10 nejsou podporovány od verze Drupalu 8.4, ale až do teď ještě zůstavala v systému funkce na umožnění vložení více jak 32 stylopisů CSS pro tyto prohlížeče. Pokud je ještě potřebujete podporovat, zapněte agregaci, nebo si nainstalujete rozšiřující modul <a href="https://www.drupal.org/project/ie9">IE9 compatibility</a>.</p> <h2>Změny v systému políček a entit</h2> <p>Odkazy menu a taxonomické termíny umožňují nyní zapnutí revizí a tím pádem i kompletního editorského workflow.<br /> Poznámka: S updatem počkejte na verzi 8.7.2, kde je opravená chyba znemožňující hladký průběh aktualizace pro stránky s jiným než anglickým jazykem. (Patch pro nedočkavce: <a href="https://www.drupal.org/project/drupal/issues/3052492">https://www.drupal.org/project/drupal/issues/3052492</a>)</p> <h2>Layout Builder – revoluční modul je stabilní</h2> <p>Jako editor nebo sitebuilder máte nyní v ruce mocný nástroj pro jednoduchou a rychlou visuální tvorbu laoyutů pro všechny entity a jejich typy zobrazení. Rozhraní pro práci s Layout builderem je relativně intuitivní, nabízí několik ovládacích prvků a drag and drop rozhraní.<br /> Modul může být náhradou za populární moduly Display Suite, Panels a Panelizer. Neobshauje sice všechny jejich možnosti, ale na dalším vývoji se pracuje. K dispozci je jak tvorba laytů globální, tak i možnost jejich přepsání na úrovni každého uzlu.</p> <h2>JSON:API – nový stabilní modul</h2> <p>Je nejnovější přírůstek do jádra Drupalu. Jelikož byl již delší dobu vyvíjen jako rozšiřující modul, dostal se do jádra hned ve stabilní verzi. Pokud používáte verzi 8.x-2.x tohoto rozšiřujícího modulu, můžete jej nyní bez starostí odinstalovat “composer remove drupal/jsonapi”. Všechny jeho funkce jsou obsaženy přímo v jádře.</p> <p>Pro detailní seznam všech změn se podívejte na originální release notes: <a href="https://www.drupal.org/project/drupal/releases/8.7.0">https://www.drupal.org/project/drupal/releases/8.7.0</a></p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="Zobrazit profil uživatele." href="/user/petr" class="username">petr</a></span> <span class="field field--name-created field--type-created field--label-hidden">St, 05/15/2019 - 01:46</span> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/stitky/drupal-8" hreflang="cs">drupal 8</a></div> </div> <section class="field field--name-field-comments-article field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Přidat komentář</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=371901&amp;2=field_comments_article&amp;3=comment_article" token="uFab-xaOIVcWXjIwidvdEGn2qWtlkblF9Ybw4J8DNpY"></drupal-render-placeholder> </section> Tue, 14 May 2019 23:46:38 +0000 petr 371901 at https://dev.drupal.cz https://dev.drupal.cz/clanky/vysel-drupal-8-7#comments Leforestier Immobilier https://dev.drupal.cz/node/371856 <span class="field field--name-title field--type-string field--label-hidden">Leforestier Immobilier</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="Zobrazit profil uživatele." href="/user/hsponner" class="username">hsponner</a></span> <span class="field field--name-created field--type-created field--label-hidden">St, 05/08/2019 - 13:43</span> <div class="field field--name-field-drupal-version field--type-entity-reference field--label-inline clearfix"> <div class="field__label">Drupal version</div> <div class="field__items"> <div class="field__item">Drupal 8</div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Vícejazyčný webový portál francouzské realitní kanceláře zaměřené na exkluzivní nemovitosti. Web pohání Drupal 8.</p> <p>Vytvořili ve <a href="https://www.freely.agency">Freely Agency</a></p> </div> <div class="field field--name-field-url field--type-link field--label-hidden field__item"><a href="https://www.leforestier-immobilier.com/en">Leforestier Immobilier</a></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/stitky/drupal-8" hreflang="cs">drupal 8</a></div> <div class="field__item"><a href="/stitky/drupalcs-awards-2019" hreflang="cs">DrupalCS Awards 2019</a></div> </div> </div> <div class="field field--name-field-main-screenshot field--type-entity-reference field--label-above"> <div class="field__label">Main screenshot</div> <div class="field__item"><a href="/media/691" hreflang="cs">Leforestier Immobilier</a></div> </div> Wed, 08 May 2019 11:43:56 +0000 hsponner 371856 at https://dev.drupal.cz Hypio.cz https://dev.drupal.cz/node/371726 <span class="field field--name-title field--type-string field--label-hidden">Hypio.cz</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="Zobrazit profil uživatele." href="/user/hsponner" class="username">hsponner</a></span> <span class="field field--name-created field--type-created field--label-hidden">Po, 03/18/2019 - 17:34</span> <div class="field field--name-field-drupal-version field--type-entity-reference field--label-inline clearfix"> <div class="field__label">Drupal version</div> <div class="field__items"> <div class="field__item">Drupal 8</div> </div> </div> <div class="field field--name-field-url field--type-link field--label-hidden field__item"><a href="https://www.hypio.cz/">Hypio.cz</a></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/stitky/drupal-8" hreflang="cs">drupal 8</a></div> <div class="field__item"><a href="/stitky/drupalcs-awards-2019" hreflang="cs">DrupalCS Awards 2019</a></div> </div> </div> <div class="field field--name-field-main-screenshot field--type-entity-reference field--label-above"> <div class="field__label">Main screenshot</div> <div class="field__item"><a href="/media/476" hreflang="cs">Hypio.cz</a></div> </div> Mon, 18 Mar 2019 16:34:45 +0000 hsponner 371726 at https://dev.drupal.cz Jednoduché sdílení na sociální sítě pro Drupal 8 https://dev.drupal.cz/navody/jednoduche-sdileni-na-socialni-site-pro-drupal-8 <span class="field field--name-title field--type-string field--label-hidden">Jednoduché sdílení na sociální sítě pro Drupal 8</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="Zobrazit profil uživatele." href="/user/petr" class="username">petr</a></span> <span class="field field--name-created field--type-created field--label-hidden">Pá, 09/28/2018 - 01:52</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p class="lead">Existuje množství online nástrojů i hotových modulů s jejich integrací pro pohodlné sdílení stránek. Často jsou závislé na JavaScriptu, nejen proto je bezpečnost uživatelů diskutabilní. V tomto článku se dozvíte jak si vytvořit vlastní, jednoduchou ale flexibilní integraci bez JavaScriptu.</p> <h2>Bezpečnost především</h2> <div data-embed-button="image" data-entity-embed-display="view_mode:media.embed" data-entity-type="media" data-entity-uuid="45a5fead-5aa6-4ee5-918f-4521dfa1f26f" class="align-right embedded-entity" data-langcode="cs"><article class="media media--type-image media--view-mode-embed"><div class="field field--name-field-media-image field--type-image field--label-hidden field__item"> <img loading="lazy" src="/sites/default/files/styles/original/public/images/2018-09/social-shares-initial_0.png?itok=6qHHV3mh" width="600" height="400" alt="Drupal a sociální sítě" class="image-style-original" /></div> </article></div> <p>V dnešní době se na bezpečnost uživatelů v online světě kladou stále větší nároky. Nástroje na sdílení jako např AddToAny, poskytují nepřeberné množství sociálních sítí, ale samozřejmě za to něco chtějí. Při kliknutí na jejich widget jste nejpre spojeni se serverem dané služby, který váš požadavek zpracuje a následně ho teprve pošle na cílový server. Mají tedy přístup jak k tomu co jste "lajknuli", hlavně jsou ale schopní vás sledovat přes různé weby. Díky tomu vytvoří váš uživatelský profil, a to je v dnešní době velice hodnotná informace. Další možností narušení bezpečnosti spočívá v tom, že tyto scripty jsou šířeny z CDN serverů a vy nemáte možnost ovlivnit jestli se ve scriptu neobjeví nějaká nová funkce, nebo nedejbože, že daný script někdo hackne a na počítače uživatelů se dostane něco zcela jiného. Něco takového na svém webu nechci a klienti většinou také ne. :)</p> <p>Naštěstí můžeme využít přímo i jednoduchý způsob sdílení bez prostředníka.</p> <h2>Začneme jednoduše</h2> <p>Nejdříve si vytvoříme Vlastní typ bloku (Custom block type), ale můžete klidně použít i oblíbený modul paragraphs.</p> <p><strong>Jméno vlastního typu bloku</strong>: Sociální sítě<br /><strong>Strojové jméno</strong>: [social_share]</p> <p>Nyní přihoďtě pár polí typu boolean. Jedno pro každou službu.</p> <p><strong>Popiska pole</strong>: [Název pro lidi] např. “Twitter”<br /><strong>Strojové jméno</strong>: [strojove_jmeno] např. “social_share_twitter” – toto jméno budeme později potřebovat.</p> <p>Přejděte na Zprávu zobrazení bloku (/admin/structure/block/block-content/manage/social_share/display) a změňte výstup polí na Vlastní. Vyplňte hodnotu pro TRUE textem, který budete chtít vidět na odkazu např. "<strong>Sdílet na Twitteru</strong>".</p> <p>Tím máme připravený způsob pro zádávání dat a můžeme vytvořit první blok Sociální sítě a zaškrtnout požadované služby. Na webu uživatelé nyní uvidí pouze Popisky polí.</p> <div data-embed-button="image" data-entity-embed-display="view_mode:media.embed" data-entity-type="media" data-entity-uuid="a942954a-9e61-4839-9f26-56390314124d" data-langcode="cs" class="embedded-entity"><article class="media media--type-image media--view-mode-embed"><div class="field field--name-field-media-image field--type-image field--label-hidden field__item"> <img loading="lazy" src="/sites/default/files/styles/original/public/images/2018-09/social-share-labels.png?itok=NkFwiIdY" width="152" height="103" alt="Sdílení na sociálních sítích" class="image-style-original" /></div> </article></div> <h2>Theming</h2> <p>Zábavnější část je změna výstupu pole z obyčejné popisky na opravdý link na sdílení. Na začátku je dobré vědět, jak má výsledný link vypadat a jaké informace se prodstřednictím odkazu přenáší. Každá služba má trochu jiné požadavky.</p> <p>Příklady odkazů:</p> <pre> <strong>Facebook:</strong> http://www.facebook.com/share.php?u=[PAGE_URL]&amp;title=[PAGE_TITLE] <strong>Twitter:</strong> http://twitter.com/intent/tweet?status=[PAGE_TITLE]+[PAGE_URL] <strong>LinkedIn:</strong> http://www.linkedin.com/shareArticle?mini=true&amp;url=[PAGE_URL]&amp;title=[PAGE_TITLE]&amp;source=[BASE_PATH] <strong>E-mail:</strong> mailto:?subject=Interesting page [PAGE_TITLE]&amp;body=Check out this site I came across [PAGE_URL]</pre> <p>Z toho vidíme, že pro zprovoznění odkazu pro Twitter budeme potřebovat jméno stránky [PAGE_TITLE] a její URL adresu [PAGE_URL]. Například LinkedIn navíc požaduje i základní cestu [BASE_PATH]. V základním nastavení se v TWIG templatě dostaneme pouze k URL adrese. Další proměné si musíme připravit v preprocesu.</p> <p>Proto si do souboru <em>theme_name.theme</em> přidáme</p> <pre> /** * Implements template_preprocess_field(). */ function theme_name_preprocess_field(&amp;$variables, $hook) { switch ($variables['field_name']) { case 'field_social_share_twitter': $request = \Drupal::request(); $route_match = \Drupal::routeMatch(); $title = \Drupal::service('title_resolver') -&gt;getTitle($request, $route_match-&gt;getRouteObject()); if (is_array($title)) { $variables['node_title'] = $title['#markup']; } else { $variables['node_title'] = (string) $title; } $variables['base_path'] = base_path(); break; } }</pre> <p>Je pravděpodobné, že budete chtít přidat více služeb najednou, proto bude vhodnejší použít DRY (Don't repeat yourself) přístup, abychom kód zbytečně neopakovali. Vytvoříme si tedy pomocnou funkci pro generování proměných.</p> <pre> /** * Preprocess field_social_share. */ function _theme_name_preprocess_field__social_shares(&amp;$variables) { $request = \Drupal::request(); $route_match = \Drupal::routeMatch(); $title = \Drupal::service('title_resolver') -&gt;getTitle($request, $route_match-&gt;getRouteObject()); if (is_array($title)) { $variables['node_title'] = $title['#markup']; } else { $variables['node_title'] = (string) $title; } $variables['base_path'] = base_path(); }</pre> <p>Tuto funkci si následně můžeme zavolat pro různé příležitosti.</p> <pre> /** * Implements template_preprocess_field(). */ function theme_name_preprocess_field(&amp;$variables, $hook) { switch ($variables['field_name']) { case 'field_social_share_twitter': case 'field_social_share_facebook': case 'field_social_share_linkedin': case 'field_social_share_email': _theme_name_preprocess_field__social_shares($variables); break; } }</pre> <p>Nyní máme připravený titulek stránky a základní cestu pro použití v šablonách.<br /><br /> Zapněte si Twig debug a v prohlížeči se podívejte na zdrojový kód checkboxů. Nad polem uvidíte seznam návrhů jmen pro šablony, to které heldáme je <em>field--field-social-share-twitter.html.twig</em>.</p> <p>Protože výstup má být jendoduchý odkaz můžeme předpokládat, že můžeme odebrat podmínky pro zobrazení popisek polí a kontroly vícenásobného pole. Na druhou stranu je důležité zajistit aby se pole nezobrazilo, pokud není checkbox zaškrtnutý. To není v TWIGU úplně jednoduché, protože mu chybí informace o stavu zatržítka. Máeme přístup pouze k aktuální hodnotě. Protože ale používáme vlastní snadno změnitelnou hodnotu nemůžeme tento přístup použít. Naštěstí můžeme použít malý trik. Vzpomínáte jak jsme nenastavili žádnou hodnotu pro FALSE? Díky tomu můžeme testovat jestli pole vrací nějaký #markup. Prázdná hodnota FALSE nevytvoří žádný markup a podmínka se tím pádem nevykoná.</p> <pre> {% if item.content['#markup'] %}</pre> <p>Zde je kompletní kód šablony pro pole.</p> <pre> {% set classes = [ 'social-share__service', 'social-share__service--twitter', ] %} {% for item in items %} {% if item.content['#markup'] %} &lt;a {{ attributes.addClass(classes) }} href="http://twitter.com/intent/tweet?status={{ node_title }}+{{ url('&lt;current&gt;') }}" title="Share to {{ item.content }}"&gt;{{ item.content }}&lt;/a&gt; {% endif %} {% endfor %}</pre> <p><br /> Pro další služby bude potřeba šablonu samozřejmě upravit, postup bude ale stále stejný.</p> <p>A máme hotovo. Nyní by měl blok vracet správné odkazy pro sdílení na sociální sítě.</p> <div data-embed-button="image" data-entity-embed-display="view_mode:media.embed" data-entity-type="media" data-entity-uuid="066ba8f2-c6bc-41f1-ae3b-d0b1d85f2765" data-langcode="cs" class="embedded-entity"><article class="media media--type-image media--view-mode-embed"><div class="field field--name-field-media-image field--type-image field--label-hidden field__item"> <img loading="lazy" src="/sites/default/files/styles/original/public/images/2018-09/social-share-links.png?itok=YoDi69Ml" width="252" height="31" alt="Odkazy v Drupalu pro sdílení na sociálních sítích" class="image-style-original" /></div> </article></div> <h2>Pro tip:</h2> <p>Zatím jsme nepoužily ani jeden rozšiřující modul. Samozřejmě váš zákazník se nespokojí s obyčejným vzhledem odkazu a bude chtít něco hezčího.</p> <p>Můžete si vzhled přidat přímo to tématu, ale to nebude příliš flexibilní. Naštěstí existují moduly jako <a href="https://www.drupal.org/project/entity_class_formatter">Entity Class Formater</a> pomocí kterého můžete snadno přidat potřebnou třídu například ze select listu. Pro přehlednost můžete vytovřit několik seznamů s třídami – Velikost, Barva, Zaoblení rohů a podobně. Tím dáte editorovi potřebnou variabilitu.</p> <h2>Závěrem</h2> <p>Nyní jsme v bodě, kdy máme náš blok hotový. V každé jeho instanci můžeme zvolit, které ze služeb se na něm zobrazí a jak budou vypadat. Např. na blogu můžete mít sdílení na Twitter, Facebook  a E-mail nastylované jako malé kruhové ikonky. Pro stránku s nabídkou pracovních pozicí bude ale vhodnější zobrazit velkou čtvercovou ikonu s popiskem LinkedIn. </p> <div data-embed-button="image" data-entity-embed-display="view_mode:media.embed" data-entity-type="media" data-entity-uuid="580c1a70-7f24-4837-89e9-e1948dbff57c" data-langcode="cs" class="embedded-entity"><article class="media media--type-image media--view-mode-embed"><div class="field field--name-field-media-image field--type-image field--label-hidden field__item"> <img loading="lazy" src="/sites/default/files/styles/original/public/images/2018-09/social-share-icons.png?itok=9E1A7gWH" width="607" height="521" alt="Sdílení na sociálních sítích v Drupalu" class="image-style-original" /></div> </article></div> <h2>Poznámka na konec</h2> <p>Den po dopsání draftu tohoto článku byl vydán modul <a href="https://www.drupal.org/project/better_social_sharing_buttons" title="Better Social Sharing Buttons – Drupal Module">Better Social Sharing Buttons</a> který funguje na podobném principu. Je snažší ho nastavit protože má předdefinované styly i služby, to ale může být zároveň nevýhodou. Pokud budete chtít styl změnit, nebo přidat jiné služby může to být složitější.</p> </div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/stitky/drupal-8" hreflang="cs">drupal 8</a></div> <div class="field__item"><a href="/stitky/socialni-site" hreflang="cs">sociální sítě</a></div> <div class="field__item"><a href="/stitky/no-js" hreflang="cs">no-js</a></div> <div class="field__item"><a href="/stitky/front-end" hreflang="cs">front-end</a></div> </div> </div> <div class="field field--name-field-teaser-image field--type-entity-reference field--label-above"> <div class="field__label">Teaser image</div> <div class="field__item"><a href="/media/436" hreflang="cs">Sdílení na sociální sítě – úvodník</a></div> </div> Thu, 27 Sep 2018 23:52:31 +0000 petr 886 at https://dev.drupal.cz COLOSEUM RESTAURANTS s.r.o. https://dev.drupal.cz/node/881 <span class="field field--name-title field--type-string field--label-hidden">COLOSEUM RESTAURANTS s.r.o.</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="Zobrazit profil uživatele." href="/user/hsponner" class="username">hsponner</a></span> <span class="field field--name-created field--type-created field--label-hidden">St, 08/29/2018 - 13:23</span> <div class="field field--name-field-drupal-version field--type-entity-reference field--label-inline clearfix"> <div class="field__label">Drupal version</div> <div class="field__items"> <div class="field__item">Drupal 8</div> </div> </div> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p>Webový portál sítě restaurací Coloseum. Web pohání Drupal 8.</p> <p>Vytvořili ve <a href="https://www.freely.agency">Freely Agency</a></p> </div> <div class="field field--name-field-url field--type-link field--label-hidden field__item"><a href="https://www.coloseum.cz/cs">Coloseum.cz</a></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/stitky/drupal-8" hreflang="cs">drupal 8</a></div> <div class="field__item"><a href="/stitky/restaurace" hreflang="cs">restaurace</a></div> <div class="field__item"><a href="/stitky/drupalcs-awards-2019" hreflang="cs">DrupalCS Awards 2019</a></div> </div> </div> <div class="field field--name-field-main-screenshot field--type-entity-reference field--label-above"> <div class="field__label">Main screenshot</div> <div class="field__item"><a href="/media/411" hreflang="cs">Coloseum - main</a></div> </div> Wed, 29 Aug 2018 11:23:23 +0000 hsponner 881 at https://dev.drupal.cz Centropol https://dev.drupal.cz/node/456 <span class="field field--name-title field--type-string field--label-hidden">Centropol</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="Zobrazit profil uživatele." href="/user/hsponner" class="username">hsponner</a></span> <span class="field field--name-created field--type-created field--label-hidden">Ne, 04/01/2018 - 20:19</span> <div class="field field--name-field-drupal-version field--type-entity-reference field--label-inline clearfix"> <div class="field__label">Drupal version</div> <div class="field__items"> <div class="field__item">Drupal 8</div> </div> </div> <div class="field field--name-field-url field--type-link field--label-hidden field__item"><a href="https://www.centropol.cz/">Centropol</a></div> <div class="field field--name-field-tags field--type-entity-reference field--label-above"> <div class="field__label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/stitky/drupal-8" hreflang="cs">drupal 8</a></div> </div> </div> <div class="field field--name-field-main-screenshot field--type-entity-reference field--label-above"> <div class="field__label">Main screenshot</div> <div class="field__item"><a href="/media/291" hreflang="cs">Centropol</a></div> </div> Sun, 01 Apr 2018 18:19:35 +0000 hsponner 456 at https://dev.drupal.cz Drupal 8.5. je nyní k dispozici https://dev.drupal.cz/clanky/drupal-8-5-je-nyni-k-dispozici <span class="field field--name-title field--type-string field--label-hidden">Drupal 8.5. je nyní k dispozici</span> <div class="clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item"><p class="lead">Nová verze zpřístupňuje modul media pro všechny uživatele, významně zlepšuje migraci, stabilizuje moduly Content Moderation a Settings Tray, urychluje zobrazení dynamických stránek pomocí BigPipe a přináší nové (experimentální) uživatelské rozhraní pro nastavení zobrazení entit. Zahrnuje několik velmi důležitých oprav pro workflow překladů obsahu a podporuje běh na PHP 7. 2.</p> <h2><span class="tlid-translation translation">Média v jádře se zlepšují a jsou k dispozici pro všechny </span></h2> <p><span class="tlid-translation translation">V Drupal 8.4 jsme přidali Media API do jádra, které vychází z modulu Media Entity. Modul byl skryt z uživatelského rozhraní kvůli problémům s UX. V Drupal 8.5 byla vyřešena řada problémů s použitelností a modul je nyní možné normálně povolit. Média v aplikaci Drupal 8.5 podporují nahrávání a přehrávání zvukových a video souborů, stejně jako výpis a opětovné použití médií. </span></p> <p><span class="tlid-translation translation">Pro optimální uživatelskou zkušenost doporučujeme rozšířit základní sadu některým z bohatého ekosystému modulů, které rozšiřují hlavní modul Media. V budoucích verzích vylepšíme základní práci s multimediální knihovnou a dalšími nástroji, přidáme integraci do WYSIWYGu, přidáme podporu pro externí typy médií, jako jsou videa YouTube, a poskytneme cestu k upgradu dat ze základních polí Soubor a Obrázek na existujících stránkách. </span></p> <h2><span class="tlid-translation translation">Settings Tray a moderování obsahu je nyní stabilní </span></h2> <p><span class="tlid-translation translation">Dva experimentální moduly původně přidané v Drupalu 8.2.0 se v minulých verzích neustále vylepšovali a jsou nyní stabilní. Modul Settings Tray poskytuje rychlé řešení pro správu nastavení v daném kontextu, například přesunutí položek v menu. Modul Moderování obsahu umožňuje definovat stavy workflow obsahu, jako jsou Koncept, Archivováno a Publikováno, stejně jako role, které mají schopnost přesouvat obsah mezi stávy. Drupal 8.5.0 také přidává podporu pro překlady, které jsou moderovány nezávisle. </span></p> <h2><span class="tlid-translation translation">Nový experimentální modul Layout Builder </span></h2> <p><span class="tlid-translation translation">Nový experimentální modul Layout Builder poskytuje funkce pro rozložení zobrazení článků, stránek, uživatelských profilů a dalších zobrazení entity. Layout Builder používá stejné uživatelské rozhraní "outside-in" jako v modulu Settings tray, což umožňuje stavitelům webu upravit jejich rozvržení na aktuální stránce (spíše než muset přejít na samostatný formulář v backendu). Aktuální uživatelské rozhraní je základní implementací, ale očekáváme, že se v příštích měsících výrazně zlepší. </span></p> <p><span class="tlid-translation translation">Ukázka umísťování bloků pomocí nástroje Layout Builder </span></p> <p><img alt="" src="https://www.drupal.org/files/umami-8.5-layout-builder.gif" /></p> <h2><span class="tlid-translation translation">Migraci je stabilní</span></h2> <p><span class="tlid-translation translation">Po více než čtyřech letech práce je architektura systému Migrate je stabilní. Moduly Drupal Migrate a Drupal Migrate UI jsou považovány za stabilní pro modernizaci jednojazyčných stránek. (Migrace vícejazyčných stránek ještě není plně podporována.) Podpora přírůstkových migrací je také součástí této verze. Další podrobnosti o migraci do aplikace Drupal 8 naleznete v oznámení o migraci. </span></p> <h2><span class="tlid-translation translation">BigPipe je ve výchozím stavu zapnutý</span></h2> <p><span class="tlid-translation translation">Modul BigPipe poskytuje pokročilou implementaci renderování stránky pomocí BigPipe techniky vytvořené Facebookem. Tím dochází ke značnému zlepšení vnímaného výkonu pro stránky s dynamickým, personalizovaným nebo nekešovatelným obsahem. Modul byl experimentálně přidán v aplikaci Drupal 8.1.0 a stal se stabilní v aplikaci Drupal 8.3.0. Po testování v reálu je BigPipe nyní součástí standardního instalačního profilu Drupalu 8.5.0, takže všechny nové instalace Drupal 8 budou ve výchozím nastavení rychlejší. BigPipe je také první novou funkcí Drupalu 8, který to dotáhl z experimentálního prototypu, až na součást standardní instalace! </span></p> <h2><span class="tlid-translation translation">Základ pro nový demo instalační profil "Out of the box" </span></h2> <p><span class="tlid-translation translation">Drupal 8.5.0 obsahuje základ pro nový demo instalační profil a téma vzhledu od iniciativy Out of the Box, které bude demonstrací moderních schopností Drupalu a jeho krásy. To nám umožní poskytnout demo jako experimentální profil a téma, v budoucí verzi Drupal 8.5. (Demo profil a téma vzhledu by neměly být použity na skutečných produkčních nebo vývojových webech, protože není zaručena zpětná kompatibility nebo upgrady.) Pokud byste chtěli vidět toto demo v akci, podívejte se na vývojovou verzi 8.6.x. </span></p> <h2><span class="tlid-translation translation">PHP 7. 2. je nyní podporováno </span></h2> <p><span class="tlid-translation translation">Drupal 8.5.0 nyní běží i na PHP 7. 2., který přichází s novými funkcemi a dále zlepšuje výkon proti PHP 7. 1. PHP 7. 2. je nyní doporučenou verzí PHP pro Drupal 8.</span></p> </div> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><a title="Zobrazit profil uživatele." href="/user/petr" class="username">petr</a></span> <span class="field field--name-created field--type-created field--label-hidden">Čt, 03/08/2018 - 07:37</span> <div class="field field--name-field-tags field--type-entity-reference field--label-hidden field__items"> <div class="field__item"><a href="/stitky/drupal-8" hreflang="cs">drupal 8</a></div> <div class="field__item"><a href="/stitky/novinka" hreflang="cs">novinka</a></div> <div class="field__item"><a href="/stitky/drupal" hreflang="cs">drupal</a></div> </div> <section class="field field--name-field-comments-article field--type-comment field--label-above comment-wrapper"> <h2 class="title comment-form__title">Přidat komentář</h2> <drupal-render-placeholder callback="comment.lazy_builders:renderForm" arguments="0=node&amp;1=376&amp;2=field_comments_article&amp;3=comment_article" token="rLFQtJSFkXTNgcgy2cL3SSVKOP_2QzH18AK201Tz7Fg"></drupal-render-placeholder> </section> Thu, 08 Mar 2018 06:37:56 +0000 petr 376 at https://dev.drupal.cz https://dev.drupal.cz/clanky/drupal-8-5-je-nyni-k-dispozici#comments