archive-nl.com » NL » L » LUCIUSWEBSYSTEMS.NL

Total: 288

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • Drupal tech tip: hook_form_BASE_FORM_ID_alter komt van rechts | Lucius BV: Drupal People
    ID alter ongeacht de weight van de module eerder triggert dan een normale form alter Nope wist ik niet maar zeker handig om te weten Over de auteur Joris Snoek Project lead Drupal addict Werk met Lucius We horen graag meer over uw project en hoe onze Drupal experts kunnen helpen class lead form bottom submit Zij gingen u voor Footer content Contact Rokin 52 1012 KV Amsterdam 020 261

    Original URL path: http://www.luciuswebsystems.nl/blog/drupal-tech-tip-hookformbaseformidalter-komt-van-rechts (2016-01-27)
    Open archived version from archive

  • Dependency injection in Drupal 8, an introduction. | Lucius BV: Drupal People
    SimpleType class is injected into the protected variable of the SimpleClass Basically that s all you have to do to 2 Setter injection This type of dependency injection is often used for optional requirements as the only thing you have to do to prevent adding a dependency is not calling the setter The advantages are The above mentioned setting of optional dependencies You can call a setter method multiple times This also allows you to add multiple dependencies using only one method The downsides are The setter can also be called after the construction of the object Therefore you can t guarantee that a dependency is not replaced You can t be certain that a setter is called at any moment in time So you have to implement a method to verify if a dependency is indeed injected Simple example of setter injection class SimpleClass protected variable public function setType SimpleType variable this variable variable 3 Property injection Injecting directly into class objects is not advisable but there s a small possibility that a thirdparty library implements public properties The downsides are There is no way of controlling whether a dependency is set It can be changed at any point You can t use type hinting to verify what type of dependency is injected type hinting is a way of ensuring that an object is of a certain type For more information have a look at the phpdocs http php net manual en language oop5 typehinting php Simple example of property injection class SimpleClass public variable Dependency injection Drupal All of this was PHP dependency injection which can be easily implemented in Drupal 8 I ll show two simple ways to implement these three methods which can be downloaded as an example module at the bottom of the page I ll show a direct approach to using these 3 methods and a service based approach Both are quite simple to implement For demonstration purposes i ve created simple module containing the four classes now properly named in a namespace called Drupal dep test where dep test is the name of the module The classes are now distinguishable from each other SimpleClassConstructor SimpleClassSetter SimpleClassProperty SimpleType Within this module I ve added a simple Controller which makes it easy to display values In the controller class I ve added the following code for a direct approach Initiate the Classes this constructor new SimpleClassConstructor new SimpleType this setter new SimpleClassSetter this property new SimpleClassProperty Inject dependencies this setter setType new SimpleType this property variable new SimpleType As you can see a direct approach is quite simple to implement Now we re going to use a service based approach For this we re going to use a services yml file This file contains the services and the function calls properties to be set services deptest simple type class Drupal dep test SimpleType deptest constructor class Drupal dep test SimpleClassConstructor arguments deptest simple type deptest setter class Drupal dep test SimpleClassSetter calls setType deptest simple

    Original URL path: http://www.luciuswebsystems.nl/blog/dependency-injection-drupal-8-introduction (2016-01-27)
    Open archived version from archive

  • 404 | Lucius BV: Drupal People
    Blog Vacatures Contact 404 aiiii Footer content Contact Rokin 52 1012 KV Amsterdam 020 261 14 99 Pascalstraat 8a 1704 RD Heerhugowaard 072 564 90 90 hallo luciuswebsystems nl Alle contactinfo Laatste Blogs Mooie afbeeldingen op je Drupal website mbv de Insert module 21 jan 2016 Update Drupal intranet OpenLucius 01 2016 13 jan 2016 12 coole modules voor Drupal sitebuilders Januari 2016 07 jan 2016 Drupal Module moment WYSIWYG

    Original URL path: http://www.luciuswebsystems.nl/blog/lucius-helpt-gemeente-purmerend-effici%C3%ABnter-werken-en-communiceren-middels-drupal (2016-01-27)
    Open archived version from archive

  • 3 tips: samenwerken in een Drupal social intranet | Lucius BV: Drupal People
    betekent dat een taak voor de klant een bepaald datum krijgt Als de klant bijvoorbeeld designs voor een website aan moet leveren voor 18 november dan plaats je dus een taak met vervaldag 18 november De enige afspraak die je dan hoeft te maken met de klant is houdt je kalender in de gaten Huidige datum is 11 november in dit voorbeeld hierin wordt vrij snel duidelijk dat de klant even moet gaan werken aan zijn taken 2 Laat een Robot helpen Wanneer taken meer dan bijvoorbeeld 7 dagen over tijd zijn dan moet er echt actie komen Je zou de klant even kunnen bellen om de taak telefonisch door te nemen Of je kunt een reactie plaatsen bij betreffende taak met een notificatie naar de klant Kort gezegd je moet de taak even bumpen Maar hoe weet je nu welke taken van welke klanten een bump nodig hebben Daar kan je een robot voor inzetten dit is een automatisch scriptje dat elke nacht draait Die checkt of taken bij klanten te lang open staan Zo ja dan krijg je een seintje Bij ons komt dit seintje binnen in de vorm van een wijziging van status van de Todo die gaat van Pending input naar Open Wij hoeven dus alleen maar elke ochtend even te kijken wat er op Open staat en elke open Todo even bumpen de klant een herinnering sturen of even bellen 3 Stuur overzichten per e mail Herinner de klant aan zijn openstaande taken met behulp van een automatische periodieke e mail dit kan wekelijks of dagelijks zijn Zorg er wel voor dat de klant deze e mail uit kan schakelen om mogelijke irritatie te voorkomen Wrap up That s it for now happy samenwerking Over de auteur Joris Snoek Project lead Drupal addict Werk met

    Original URL path: http://www.luciuswebsystems.nl/blog/3-tips-samenwerken-een-drupal-social-intranet (2016-01-27)
    Open archived version from archive

  • 13 Coole Drupal modules | Oktober 2014 | Lucius BV: Drupal People
    lijst dus helemaal niet wilt zien Installeer dan deze module en voila weg content lijst op frontpage https www drupal org project empty front page 5 Hashcash Deze anti spam techniek had ik nog niet eerder gezien maar als Honeypot Mollom en Captcha nog geen uitkomst bieden tegen spammers probeer dan deze eens https www drupal org project hashcash 6 Views Maintenance Je ziet het vaak een Drupal installatie waar veel inactieve Views ingeschakeld staan Dit veroorzaakt overhead wat ten koste gaat van de Drupal performance en maakt beheer ook moeilijker Het is nog wel eens lastig te doorgronden welke Views wel en niet gebruikt worden deze module lost dat op Hij geeft een overzicht van inactieve Views zodat je die kunt verwijderen of uitschakelen Vergeet dit uiteraard niet in je Features te consolideren anders heb je de verwijderde Views binnen de kortste keren weer terug https www drupal org project views maintenance 7 Site Audit Elke Drupal site is uniek maar heeft in de core dezelfde infrastructuur en configuratiemogelijkheden Deze module haakt daarop in hij genereert een Drupal site analyse raport wat op elk Drupal systeem toepasbaar is Daarbij geeft hij suggesties hoe bepaalde issues opgelost kunnen worden Onderdelen die hierin naar voren komen Best Practices generieke aanbevelingen Block caching Cache optimale Drupal caching instellingen Codebase grootte van de site grote en hoveelheid managed files Content checks voor ongebruikte content types vocabularies Cron Drupal s ingebouwde cron Database collation engine row counts grootte Extensions hoeveel development modules dubbele missende Insights analyze site met Google PageSpeed Insights Security checkt voor standaard security exploits bijvoorbeeld kwetsbare menu router items Status checkt voor problemen in Drupal s ingebouwde status report Users geblokkeerde user 1 aantal normale en geblokkeerde users lijst met roles Views caching settings Watchdog aantal 404 errors data aantal entries PHP errors https www drupal org project site audit 8 Scroll to destination anchors Een veelgebruikte methodiek voornamelijk sinds vele websites responsive zijn geworden je klikt op een link en de pagina scrollt automatisch mooi naar beneden Hij scrollt naar het juiste html anchor Deze module implementeert een jQuery scriptje waardoor dit gerealiseerd wordt https www drupal org project scroll to destination anchors Drupal developers 9 Inspect Er zijn vele Drupal helper modules dit is er weer een Het is een module die inzichten geeft in allerlei Drupal developer handel bv Variabele dumps Deep stack traces om bv errors te traceren Execution time profielen bekijk waar vertraging zit jouw Drupal code https www drupal org project inspect 10 Cache Expiration Standaard is het all or nothing qua cache flushing in Drupal gooi in één keer al je caches weg of dus niet Dat kan lastig zijn bij bijvoorbeeld een high performance Drupal systeem door een cache clear all kan je complete site omvallen Maar caches moeten nu eenmaal wel eens geflusht worden om onder andere nieuwe content te laten zien Maar dan liever selectief Middels deze module kan je instellen welke cache wannner verloopt zodat je Drupal site niet omvalt

    Original URL path: http://www.luciuswebsystems.nl/blog/13-coole-drupal-modules-oktober-2014 (2016-01-27)
    Open archived version from archive

  • 7 security modules for Drupal you should use | Lucius BV: Drupal People
    whether or not your username may be contained in the password Whether or not a user is blocked after his her password has been expired https www drupal org project password policy 2 Flood control Even if a user creates a strong password it may be cracked using a brute force attack This method is often used to try cracking weak passwords by trying all combinations This can easily be countered using flood control By default Drupal blocks an IP for 6 hours after 5 unsuccessful tries This can however be countered by changing your IP The flood control module allows an admin to alter these default settings It has the following options Limit failed login ip Limit failed login username Limit sending emails For these options the limit and the timeframe can be set https www drupal org project flood control 3 XFS cross frame scripting The last security issue for user data is a bit trickier A malicious site may place your site in an Iframe The user thinks he she is visiting your site and logs in through the iframe The site only needs to store your keystrokes in order to obtain the username and password for an account To prevent such behavior you can implement the Secure kit or Seckit module This module prevents a number of these security leaks X XSS Protection X Content type options http blogs msdn com b ie archive 2010 10 26 mime handling changes in i Cross site request forgery http en wikipedia org wiki Cross site request forgery Click jacking http blogs msdn com b ie archive 2009 01 27 ie8 security part vii clic SSL TLS https www drupal org project seckit 4 Idle Session Timeout Security issues are not only limited to user data sometimes the user

    Original URL path: http://www.luciuswebsystems.nl/blog/7-security-modules-drupal-you-should-use (2016-01-27)
    Open archived version from archive

  • Training van molenwiekende klanten: 9 facetten | Lucius BV: Drupal People
    Reserveren uren Om een grove indicatie te geven als ik 800 uur begroot dan zal de klant minstens de helft 400 uur gereserveerd moeten hebben om het project te draaien Ik vraag de klant om veel huiswerk te doen maar dit is nou eenmaal noodzakelijk voor een succesvol webproject Er bestaat geen succesvol web project waarin de klant heeft gezegd Bel me maar als het klaar is Als ik signalen in die richting krijgt dan gaat er meteen een big ass red flag omhoog Klanten die zo denken zal ik dus moeten trainen anders is het de achterdeur uit Letterlijk 2 Risico parameters Voordat ik start aan een project probeer ik voor alle belangrijke parameters bij de klant een soort van risico rate toe te kennen Is het een start up die wil vlammen Of is het een pre historische organisatie waarbij álle beslissingen langs een board moeten Dus ik probeer er achter te komen wat voor organisatie het is wat voor risico s ze durven te nemen en waarvoor ze risico willen nemen 3 Proces training Hoe werken wij Hoe past de klant daarin Passen zij daar überhaupt wel in Welke afspraken maken we over het samenwerkingsproces Dit gesprek heb ik voordat ik start aan een project dan kan ik hier later op terugvallen Als klantje opeens bad customer gaat hangen dan geef ik aan Weet je nog toen we het hadden over ons samenerkingsproces welke afspraken we hebben gemaakt Wij hebben ons daaraan gecommitteerd omdat dat tot succes leidt Wij houden ons daaraan jullie ook weer En verder toelichten Hoe werkt scrum hoe werkt een sprint Wat is de volgende fase Omgang met scope creep Wanneer is iets meerwerk Wat is technisch schuld technical debt Quality Assurance proces bij de klant QA Acceptatie testen door de klant user acceptance testing UAT Deployment in OTAP omgeving Ontwikkel Test Acceptatie en Productieserver 4 Burn rate Ik overleg vooraf wat onze burn rate is wat kost een conference call of een meeting denk hierin aan 700 per uur We willen graag zoveel van deze meetings calls houden als klant wenst maar weet wel dat er 700 uur wordt verrekend met je budget Geef hierin soms een beetje marge de eerste 10 minuten zijn vrijblijvend daarna gaat de burn rate klok lopen Op deze manier zul je nooit meer een 2 uur durende meeting of conference call hebben Een 2 uur durende meeting tijdens ontwikkelfase is sowieso een slecht teken waarschijnlijk is er niet genoeg tijd besteed aan discovery research 5 Lancering website Grote bedrijven hebben vaak een zeer strict server beleid Wanneer het een internationaal bedrijf betreft heb je zelf kans dat hosting is ge outsourced naar bv India Uit ervaring weet ik dat dit proces zeer stroperig kan zijn Ik zorg dus dat we van tevoren goed in kaart hebt hoe lancering gaat plaatsvinden Denk aan Welk team doet dit Welke omgeving Inlog gegevens en wat is het beleid hierin Welk proces is van toepassing op die omgeving Zijn er

    Original URL path: http://www.luciuswebsystems.nl/blogs/opvoeden-van-molenwiekende-klanten-9-facetten (2016-01-27)
    Open archived version from archive

  • Building custom frontend autocompletes using Drupal | Lucius BV: Drupal People
    application append attr id input attr id autocomplete aria live Create autocomplete AutoComplete object new Drupal jsAC input acdb uri The autocomplete behavior has only a few lines of code and isn t very complicated It uses an array to store autocomplete database objects This array is filled using all input elements with the class autocomplete After this step the input element receives a few attributes and the autocomplete submit function which hides the popup The last few lines add a few attributes to the parent element and append a span with an id This span is used to the match the autocomplete input element After all these lines the jsAC or AutoComplete object is created You now have a fully operational autocomplete object which triggers on keydown keyup and blur Now that we ve read the code we can get down to the nitty gritty Unless you want to apply the autocomplete to all input elements with a certain class I suggest we create a function to attach the autocomplete to an input element This is also a piece of functionality you might want to recycle To keep things simple I ve chosen to use one fixed path for our autocomplete function var acdb Custom function to attach drupal autocomplete behaviour to a custom textfield param target The object which should get the search behaviour function mymodule attach search target var uri Drupal settings basePath some autocomplete path if acdb uri acdb uri new Drupal ACDB uri Append class for throbber if target hasClass form autocomplete target addClass form autocomplete Just in case remove any previously attached behaviours target unbind target attr autocomplete OFF attr aria autocomplete list target 0 form submit Drupal autocompleteSubmit target parent attr role application append attr id target 0 id autocomplete aria live new Drupal jsAC target acdb uri jQuery The function accepts a target jQuery input someclass and binds the autocomplete functionality to it The fixed uri can be replaced by a function parameter This function also adds the form autocomplete class which has the throbber I ve also added the unbind function so the autocomplete can be re attached This can be used when making conditional autocompletes In order to make this work we still need to add a few system libraries and our custom Javascript file This can be done on a custom page callback or in the preprocessing of a page node drupal add library system drupal autocomplete drupal add library system ui autocomplete drupal add js path to the js file somefile js Now the Javascript side is done and we can start building the server side code This is done using a menu hook and an autocomplete callback function Implements hook menu function mymodule menu items array items some autocomplete path array page callback mymodule autocomplete access arguments array access content page arguments array 1 return items Custom autocomplete param string string The item the user is looking for function mymodule autocomplete string Make certain that we have

    Original URL path: http://www.luciuswebsystems.nl/blogs/building-custom-frontend-autocompletes-using-drupal (2016-01-27)
    Open archived version from archive



  •