Planet Drupal

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 18 min 51 sec ago

Leopathu: 6 Essential Drupal Interview Questions*

Fri, 07/08/2016 - 12:06
1. Name and describe the five conceptual layers in a Drupal system.

LevelTen Interactive: How to Market a Speaking Tour: Behind the Scenes of the R.O.W. Roadshow

Fri, 07/08/2016 - 07:00
img typeof=foaf:Image src=http://getlevelten.com/sites/default/files/styles/600x300/public/content/blog/images/how_to_market_a_speaking_tour-_behind_the_scenes_of_the_row_roadshow.png?itok=RSeKY8_S width=600 height=300 alt=ROW Show / pHey, a href=http://tvtropes.org/pmwiki/pmwiki.php/Main/HeyLetsPutOnAShowlet’s put on a show/a!/p p class=rtecenterimg alt= class=image-large inline height=361 src=http://getlevelten.com/sites/default/files/styles/large/public/inline-images/piano_picture.png?itok=1ki44kBL width=480 //p pMy colleague a href=http://getlevelten.com/about-us/felipa-villegasFelipa/a and I felt like we were in a Judy Garland-Mickey Rooney movie. “Let’s put on a show!” said Tom, the CEO here at LevelTen, and we all jumped in to clear out the barn and save the orphanage....a href=/blog/jj-lonsdale/how-market-speaking-tour-behind-scenes-row-roadshow class=more-linkRead more/a/p

Yuriy Gerasimov: Automated deployments to Acquia. Cloud API

Fri, 07/08/2016 - 06:45
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpWhen you set up your Continuous Integration you really would like to set your deployments automatically. If you use Acquia hosting for your website it does make a lot of sense to use all environments in your workflow. But how you can automate deployments to these environments without touching UI (copying database, files, deploying code)?/p h4The answer is in a href=https://cloudapi.acquia.comCloud API/a/h4 pbr //p pYou can call them either with drush command or curl request. We will touch the drush commands approach in this post./p pI personally was heavily involved in workflow called a href=github.com/cibox/ciboxCIBox/a that uses separate from Acquia github repo. /p pI used 'master' branch to deploy to DEV environment. But both STAGING and PRODUCTION environments are tag based./p h3DEV environment deployment/h3 pbr //p pFirst step of deployment for me was to sync the repositories./p div class=geshifilter pre class=drupal6 geshifilter-drupal6 style=font-family:monospace;cd span style=color: #66cc66;//spanspan style=color: #000000; font-weight: bold;var/spanspan style=color: #66cc66;//spangitspan style=color: #66cc66;//spanacquia git pull github master git push origin master span style=color: #808080; font-style: italic;# Sleep for 30 seconds. We expect Acquia to update the code./span a href=http://www.php.net/sleepspan style=color: #000066;sleep/span/a span style=color: #cc66cc;30/span/pre/div pLittle note: all these commands are run on CI server for me. So you will find plenty of ssh and scp to Acquia servers later./p pRepository /var/git/acquia is a clone from hosting repo but with set up remote to our own private repo. If you use hosting repo as primary you probably won't need this step./p pIn Acquia UI I have set up DEV environment to follow master branch. So code gets deployed automatically. /p pIn my CI set up, I keep copy of project's database on CI server to use it in all builds. So I deploy this db to DEV environment as next step. Workflow diagram looks like this.br /img src=http://ygerasimov.com/sites/default/files/field/image/db-workflow.png //p pCode snippet/p pre div class=geshifilterpre class=drupal6 geshifilter-drupal6 style=font-family:monospace;span style=color: #808080; font-style: italic;# Copy db to DEV server/span scp span style=color: #66cc66;//spanspan style=color: #000000; font-weight: bold;var/spanspan style=color: #66cc66;//spanwwwspan style=color: #66cc66;//spanbackupspan style=color: #66cc66;//spanDBNAME.sql.gz PROJECT.devspan style=color: #66cc66;@/spanstaging-XXXX.prod.hosting.acquia.com:span style=color: #66cc66;//spanhomespan style=color: #66cc66;//spanPROJECTspan style=color: #66cc66;//spanproddump.sql.gz span style=color: #808080; font-style: italic;# Deploy db on DEV server/span ssh -a href=http://api.drupal.org/api/function/t/6span style=color: #000066;t/span/a PROJECT.devspan style=color: #66cc66;@/spanstaging-XXXX.prod.hosting.acquia.com span style=color: #ff0000;'rm -rf /home/PROJECT/DBNAME.sql amp;amp; gunzip /home/PROJECT/proddump.sql.gz amp;amp; cd /var/www/html/PROJECT.dev/docroot amp;amp; drush sql-drop -y amp;amp; `drush sql-connect` lt; /home/PROJECT/proddump.sql'/span/pre/div /prep Remember in order to run this operation you need to set up your ssh keys so jenkins user (I use Jenkins as CI tool) can go to Acquia servers without password being requested./p pAnd the last step is run all the updates, registry rebuilds and whatever your project requires./p pre div class=geshifilterpre class=drupal6 geshifilter-drupal6 style=font-family:monospace;span style=color: #808080; font-style: italic;# Run registry rebuild and clear caches/span ssh -a href=http://api.drupal.org/api/function/t/6span style=color: #000066;t/span/a PROJECT.devspan style=color: #66cc66;@/spanstaging-XXXX.prod.hosting.acquia.com span style=color: #ff0000;'cd /var/www/html/PROJECT.dev/docroot amp;amp; drush php-eval registry_rebuild(); amp;amp; drush cc all -y'/span   span style=color: #808080; font-style: italic;# Run hook updates/span ssh -a href=http://api.drupal.org/api/function/t/6span style=color: #000066;t/span/a PROJECT.devspan style=color: #66cc66;@/spanstaging-XXXX.prod.hosting.acquia.com span style=color: #ff0000;'cd /var/www/html/PROJECT.dev/docroot amp;amp; drush -y updb'/span/pre/div /prepThese commands actually can be set up with drush aliases. But I used terminal approach as already using it for deploying database. Just consistency reasons./p pAnother part I skip here is copying files over. We don't do that. Instead we enable stage_file_proxy on DEV and STAGE environments and point them to PROD so files got copied over upon request. This saves plenty of space./p h3STAGE environment deployment/h3 pbr //p pAs staging environment uses tags we need to change our code deployment part./p pIn order to use Cloud API you need to set up special private key in Acquia UI. Please review a href=https://docs.acquia.com/cloud/api/authhttps://docs.acquia.com/cloud/api/auth/a for more details./p pAfter setting up the key, ssh to DEV server and run command 'drush ac-api-login' and provide your email and key to it. In this way you will set up all your credentials and be able to run Cloud API drush commands./p pAnd now, we can deploy the code./p pre div class=geshifilterpre class=drupal6 geshifilter-drupal6 style=font-family:monospace;ssh -a href=http://api.drupal.org/api/function/t/6span style=color: #000066;t/span/a PROJECT.devspan style=color: #66cc66;@/spanstaging-XXXX.prod.hosting.acquia.com span style=color: #ff0000;'cd /var/www/html/PROJECT.dev/docroot amp;amp; drush @PROJECT.dev ac-code-deploy test --verbose'/span   span style=color: #808080; font-style: italic;# Sleep for 30 seconds. We expect Acquia to update the code./span a href=http://www.php.net/sleepspan style=color: #000066;sleep/span/a span style=color: #cc66cc;30/span/pre/div /prep This will deploy the code from DEV environment to STAGE and adds the tag automatically. Basically it mimics the operation of dragging the code bar in Acquia UI./p pAll other steps (database deployment and cache clear) are the same as with DEV environment./p h3PROD environment deployments/h3 pbr //p pProduction deployment is going to be the same as STAGE with only difference we need to ssh to STAGE server to deploy the code. And of course we do not to deploy database anywhere./p pI am sure in your projects you might need to add some more steps. Maybe reindexing solr, or clearing varnish caches. All these can be done with drush commands./p pHow do you do deployments? Please share your experience in comments./p /div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item even rel=dc:subjecta href=/taxonomy/term/2 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal 7/a/divdiv class=field-item odd rel=dc:subjecta href=/taxonomy/term/3 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal planet/a/div/div/div

Appnovation Technologies: Drupal 8 and the User Experience Upgrade

Fri, 07/08/2016 - 02:27
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encoded pa href=https://www.appnovation.com/services/drupal-development target=_blankDrupal/a and user experience can sometimes be at odds./p/div/div/divdiv class=field field-name-field-blog-header-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/blog/drupal-8-and-user-experience-upgradeimg typeof=foaf:Image src=https://www.appnovation.com/sites/default/files/drupal8-ux.jpg width=1400 height=400 alt= //a/div/div/divdiv class=sharethis-buttonsdiv class=sharethis-wrapperspan st_url=https://www.appnovation.com/blog/drupal-8-and-user-experience-upgrade st_title=Drupal 8 and the User Experience Upgrade class=st_facebook/span span st_url=https://www.appnovation.com/blog/drupal-8-and-user-experience-upgrade st_title=Drupal 8 and the User Experience Upgrade class=st_twitter/span span st_url=https://www.appnovation.com/blog/drupal-8-and-user-experience-upgrade st_title=Drupal 8 and the User Experience Upgrade class=st_sharethis/span /div/div

Drupal Blog: Drupal 7.50 released

Thu, 07/07/2016 - 20:28
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpa href=https://www.drupal.org/project/drupal/releases/7.50Drupal 7.50/a, the next release in the Drupal 7 series, is now available for download. It contains a variety of new features, improvements, and bug fixes (no security fixes)./p h2Wait... Drupal 7.50?/h2 pYes, there is a version jump compared to the previous a href=https://www.drupal.org/project/drupal/releases/7.447.44 release/a; this is to indicate that this Drupal 7 point release is a bit larger than past ones and makes a few more changes and new features available than normal./p pa href=https://www.drupal.org/upgradeUpdating/a your existing Drupal 7 sites is recommended. a href=https://www.drupal.org/node/1527558Backwards compatibility/a is still being maintained, although read on to find out about a couple of changes that might need your attention during the update./p div style=text-align: center; margin: 2em;a class=link-button href=https://ftp.drupal.org/files/projects/drupal-7.50.tar.gzspanDownload Drupal 7.50/span/a/div h2Notable changes/h2 pThere are a variety of new features, performance improvements, security-related enhancements (although no fixes for direct security vulnerabilities) and other notable changes in this release. The a href=https://www.drupal.org/project/drupal/releases/7.50release notes/a provide a comprehensive list, but here are some highlights./p h3New administer fields permission added for trusted users/h3 pThe administrative interface for adding and configuring fields has always been something that only trusted users should have access to. To make that easier, there is now a dedicated permission which is required (in addition to other existing administrative permissions) to be able to access the field UI./p pFor example, you can now assign the administer taxonomy permission (but withhold the new administer fields permission) to allow low-level administrators to manage taxonomy terms but not change the field structure. Read the a href=https://www.drupal.org/node/2483307change record/a for more information./p pimg alt=New administer fields permission src=https://www.drupal.org/files/administer-fields-permission.png //p h3Protection against clickjacking enabled by default/h3 pClickjacking is a technique a malicious site owner can use to attempt attacks on other sites, by embedding the victim's site into an iframe on their own site./p pTo stop this, Drupal will now prevent your site from being embedded in an iframe on another domain. This is the default behavior, but it can be adjusted if necessary; see the a href=https://www.drupal.org/node/2735873change record/a to find out more./p h3Support for full UTF-8 (emojis, Asian symbols, mathematical symbols) is now possible on MySQL/h3 pIf content creators on your site have been clamoring to use emojis, it's now possible on Drupal sites running MySQL (it was previously possible on PostgreSQL and SQLite). Turning this capability on requires the database to meet certain requirements, plus editing the site's settings.php file and potentially other steps, as described in the a href=https://www.drupal.org/node/2761183change record/a./p pimg alt=Emojis on a Drupal site src=https://www.drupal.org/files/emojis-in-drupal-7.50.png //p h3Improved support for recent PHP versions, including PHP 7/h3 pDrupal core's automated test suite is now fully passing on a variety of environments where there were previously some failures (PHP 5.4, 5.5, 5.6, and 7). We have also fixed several bugs affecting those versions. These PHP versions are a href=https://www.drupal.org/requirementsofficially supported by Drupal 7/a and recommended for use where possible./p pBecause PHP 7 is the newest release (and not yet used on many production sites) extra care should still be taken with it, and there are some known bugs, especially in contributed modules (see a href=https://www.drupal.org/node/2656548the discussion/a for more details). However anecdotal evidence from a variety of users suggests that Drupal 7 can be successfully used on PHP 7, both before and after the 7.50 release./p h3Improved performance (and new PHP warnings) when Drupal is trying to find a file that does not exist/h3 pWhen Drupal cannot find a file that it expects to be in the filesystem, it will no longer continually search for it on a large number of page requests (previously, this could significantly hurt your site's performance). Instead, it will record a href=https://www.drupal.org/node/2487215a PHP warning/a about the problem./p pRead the a href=https://www.drupal.org/node/2581445change record/a for more information, and make sure your production site is not configured to show warning messages like this on the screen, since it is not desirable for site visitors to see them. (In order to configure this, go to Administration → Configuration → Development → Logging and errors and set the Error messages to display option to None.)/p h3Improvements to help search engines index your site's images/CSS/JavaScript/h3 pModern search engine web crawlers read images, CSS and JavaScript (just like a regular web browser) when crawling a site, and they use this information to improve search results./p pDrupal's default code class=language-phprobots.txt/code file now includes rules to allow search engines to access more of these files than it previously allowed them to, which may help certain search engines better index your site. See the a href=https://www.drupal.org/node/2762251change record/a for additional details./p h2More information/h2 ulliYou can find the full list of changes between the previous 7.44 release and the current 7.50 release by reading the a href=https://www.drupal.org/project/drupal/releases/7.507.50 release notes/a./li liAlso see the release notes for additional update information and known issues discovered after the release./li liYou can find a complete list of all changes in the stable 7.x branch in a href=http://cgit.drupalcode.org/drupal/log/?id=refs/heads/7.xthe git commit log/a./li liTranslators should be aware of a few administrative-facing a href=https://www.drupal.org/project/issues/search?issue_tags=String+change+in+7.50translatable string changes and additions/a in this release./li /ulh3Security information/h3 ulliWe have a a href=https://www.drupal.org/securitysecurity announcement mailing list and a history of all security advisories/a, as well as an a href=https://www.drupal.org/security/rss.xmlRSS feed with the most recent security advisories/a. We strongstrongly advise Drupal administrators to a href=https://www.drupal.org/securitysign up/a/strong for the list./li liDrupal 7 includes the built-in Update Manager module, which informs you about important updates to your modules and themes./li liThere are no security fixes in this release of Drupal core./li /ulh3Future releases/h3 ulliDrupal 7 is being actively maintained, so more maintenance releases will be made available, according to our a href=https://www.drupal.org/documentation/version-info#whenmonthly release cycle/a./li liWe will consider continuing to do larger Drupal 7 releases like this one every six months or so (where the next larger release will be 7.60, in keeping with Drupal's new a href=https://www.drupal.org/core/release-cycle-overviewrelease cycle/a) if there is interest and continued contributions from the community. See the ongoing a href=https://www.drupal.org/node/2598382discussion/a for further details./li /ulh2New Drupal 7 co-mainainers/h2 pIn case you missed the news earlier, strongwe recently added a href=https://groups.drupal.org/node/512271two new Drupal 7 co-maintainers/a: a href=https://www.drupal.org/u/fabianxFabianx/a (a href=https://twitter.com/fabianfranz@fabianfranz/a) and a href=https://www.drupal.org/u/stefanr-0stefan.r/a (a href=https://twitter.com/stefan_arrr@stefan_arrr/a)/strong! Despite only having been official maintainers for the past two weeks, they put in an enormous amount of effort and skill into Drupal 7.50, which was essential in getting it out the door with all the improvements mentioned above./p h2Credits/h2 pOverall, 230 people were credited with helping to fix issues included in this release:/p pa href=/u/akoepkeakoepke/a, a href=/u/alanburkealanburke/a, a href=/u/alan-d.Alan D./a, a href=/u/alberto56alberto56/a, a href=/u/albert-volkmanAlbert Volkman/a, a href=/u/alexmorenoalexmoreno/a, a href=/u/alexpottalexpott/a, a href=/u/amonteroamontero/a, a href=/u/andypostandypost/a, a href=/u/ar-janar-jan/a, a href=/u/arosboroarosboro/a, a href=/u/askibinskiaskibinski/a, a href=/u/attiksattiks/a, a href=/u/basvredelingbasvredeling/a, a href=/u/beejeebusbeejeebus/a, a href=/u/benjybenjy/a, a href=/u/berdirBerdir/a, a href=/u/bmateusbmateus/a, a href=/u/borisson_borisson_/a, a href=/u/botrisbotris/a, a href=/u/bradjones1bradjones1/a, a href=/u/brianvbrianV/a, a href=/u/broekerbroeker/a, a href=/u/c960657c960657/a, a href=/u/carsten-müllerCarsten Müller/a, a href=/u/catchcatch/a, a href=/u/checkerchecker/a, a href=/u/chintan.vyaschintan.vyas/a, a href=/u/chirhotecchirhotec/a, a href=/u/christian-deloachChristian DeLoach/a, a href=/u/christophweberChristophWeber/a, a href=/u/chxchx/a, a href=/u/cilefencilefen/a, a href=/u/cissciss/a, a href=/u/ckngckng/a, a href=/u/colinmccabecolinmccabe/a, a href=/u/corbachocorbacho/a, a href=/u/crizcriz/a, a href=/u/cspitzlaycspitzlay/a, a href=/u/cwokycwoky/a, a href=/u/dagmardagmar/a, a href=/u/damienmckennaDamienMcKenna/a, a href=/u/damien_vancouverdamien_vancouver/a, a href=/u/darol100darol100/a, a href=/u/darren-ohDarren Oh/a, a href=/u/das-peterdas-peter/a, a href=/u/dave-reidDave Reid/a, a href=/u/davicdavic/a, a href=/u/david_garciadavid_garcia/a, a href=/u/david_rothsteinDavid_Rothstein/a, a href=/u/dawehnerdawehner/a, a href=/u/dcamdcam/a, a href=/u/dereklDerekL/a, a href=/u/donutdan4114donutdan4114/a, a href=/u/dropletdroplet/a, a href=/u/duaelfrDuaelFr/a, a href=/u/e._se._s/a, a href=/u/eesquibeleesquibel/a, a href=/u/eiriksmeiriksm/a, a href=/u/elijah-lynnElijah Lynn/a, a href=/u/emcnieceemcniece/a, a href=/u/eric_aEric_A/a, a href=/u/evanschislerEvanSchisler/a, a href=/u/extexanExTexan/a, a href=/u/fabianxFabianx/a, a href=/u/felribeirofelribeiro/a, a href=/u/fgmfgm/a, a href=/u/fietserwinfietserwin/a, a href=/u/forestgardenerforestgardener/a, a href=/u/gcardinalgcardinal/a, a href=/u/geerlingguygeerlingguy/a, a href=/u/gielfeldtgielfeldt/a, a href=/u/girish-jerkGirish-jerk/a, a href=/u/gregglesgreggles/a, a href=/u/grigoriunicolaeGrigoriuNicolae/a, a href=/u/gábor-hojtsyGábor Hojtsy/a, a href=/u/hasshass/a, a href=/u/henrik-opelHenrik Opel/a, a href=/u/heyyoheyyo/a, a href=/u/hgotohgoto/a, a href=/u/hussainwebhussainweb/a, a href=/u/idebridebr/a, a href=/u/ifrikifrik/a, a href=/u/imanol.eguskizaimanol.eguskiza/a, a href=/u/iruslanIRuslan/a, a href=/u/izaaksomizaaksom/a, a href=/u/jackbravojackbravo/a, a href=/u/jacob.embreejacob.embree/a, a href=/u/jbekkerjbekker/a, a href=/u/jbeuckmjbeuckm/a, a href=/u/jduhlsjduhls/a, a href=/u/jenlamptonjenlampton/a, a href=/u/jeroen.bjeroen.b/a, a href=/u/jhodgdonjhodgdon/a, a href=/u/jibranjibran/a, a href=/u/joachimjoachim/a, a href=/u/joegraduatejoegraduate/a, a href=/u/joelpittetjoelpittet/a, a href=/u/johnpicozzijohnpicozzi/a, a href=/u/joseph.olstadjoseph.olstad/a, a href=/u/joshtaylorjoshtaylor/a, a href=/u/josh-waihiJosh Waihi/a, a href=/u/jp.staceyjp.stacey/a, a href=/u/jsacksickjsacksick/a, a href=/u/jthorsonjthorson/a, a href=/u/jveJvE/a, a href=/u/jweowujweowu/a, a href=/u/kala4ekkala4ek/a, a href=/u/kars-tKars-T/a, a href=/u/ken-ficaraKen Ficara/a, a href=/u/kenorbkenorb/a, a href=/u/kevinquillenkevinquillen/a, a href=/u/kgautKgaut/a, a href=/u/khaledblahKhaledBlah/a, a href=/u/klausiklausi/a, a href=/u/klokieklokie/a, a href=/u/kristiaanvandeneyndekristiaanvandeneynde/a, a href=/u/kristofferwiklundkristofferwiklund/a, a href=/u/ksenzeeksenzee/a, a href=/u/k_zoltank_zoltan/a, a href=/u/leschekfmleschekfm/a, a href=/u/liam-morlandLiam Morland/a, a href=/u/loggollOggOl/a, a href=/u/lokapujyalokapujya/a, a href=/u/lowellLowell/a, a href=/u/lucastockmannlucastockmann/a, a href=/u/lukas-von-blarerLukas von Blarer/a, a href=/u/maciej.zgadzajmaciej.zgadzaj/a, a href=/u/marcelovanimarcelovani/a, a href=/u/mariagwynmariagwyn/a, a href=/u/mark-theunissenMark Theunissen/a, a href=/u/marvin_b8marvin_B8/a, a href=/u/maximpodorovmaximpodorov/a, a href=/u/mayaz17mayaz17/a, a href=/u/megachrizMegaChriz/a, a href=/u/mfbmfb/a, a href=/u/mgiffordmgifford/a, a href=/u/micaelamenaramicaelamenara/a, a href=/u/mikeytown2mikeytown2/a, a href=/u/mile23Mile23/a, a href=/u/mimranmimran/a, a href=/u/minax.deminax.de/a, a href=/u/miro_dietikermiro_dietiker/a, a href=/u/mistermopermistermoper/a, a href=/u/mixologicMixologic/a, a href=/u/mohit_agheramohit_aghera/a, a href=/u/mondrakemondrake/a, a href=/u/mpvmpv/a, a href=/u/mr.baileysmr.baileys/a, a href=/u/mustanggbMustangGB/a, a href=/u/neograph734Neograph734/a, a href=/u/nevergonenevergone/a, a href=/u/nicholas.alipaznicholas.alipaz/a, a href=/u/nicrodgersnicrodgers/a, a href=/u/nikitajainNikitaJain/a, a href=/u/nithinkolekarnithinkolekar/a, a href=/u/nod_nod_/a, a href=/u/noe_Noe_/a, a href=/u/onelittleantonelittleant/a, a href=/u/opdaviesopdavies/a, a href=/u/orbmantellorbmantell/a, a href=/u/oriol_e9goriol_e9g/a, a href=/u/parisliakosParisLiakos/a, a href=/u/pashupathi-nath-gajawadapashupathi nath gajawada/a, a href=/u/peacogPeacog/a, a href=/u/perignonPerignon/a, a href=/u/peter-bexPeter Bex/a, a href=/u/peterpoepeterpoe/a, a href=/u/pfrenssenpfrenssen/a, a href=/u/pieterdcPieterDC/a, a href=/u/pietmarcuspietmarcus/a, a href=/u/pjcdawkinspjcdawkins/a, a href=/u/pjonckierepjonckiere/a, a href=/u/poloniumPolonium/a, a href=/u/pounardpounard/a, a href=/u/presleydpresleyd/a, a href=/u/pwaterzpwaterz/a, a href=/u/pwolaninpwolanin/a, a href=/u/rafaolfrafaolf/a, a href=/u/rbmboogierbmboogie/a, a href=/u/realitylooprealityloop/a, a href=/u/rhclaytorhclayto/a, a href=/u/rocketeerbkwrocketeerbkw/a, a href=/u/rpayanmrpayanm/a, a href=/u/rupertjrupertj/a, a href=/u/sagar-ramgadeSagar Ramgade/a, a href=/u/sanduhrssanduhrs/a, a href=/u/scorscor/a, a href=/u/scottalanscottalan/a, a href=/u/scuba_flyscuba_fly/a, a href=/u/sdstylessdstyles/a, a href=/u/snehisnehi/a, a href=/u/soaratulsoaratul/a, a href=/u/socialnicheguruSocialNicheGuru/a, a href=/u/spleshkaSpleshka/a, a href=/u/stefan.rstefan.r/a, a href=/u/stovakstovak/a, a href=/u/sunsun/a, a href=/u/sutharsanSutharsan/a, a href=/u/svanousvanou/a, a href=/u/sweetchuckSweetchuck/a, a href=/u/swentelswentel/a, a href=/u/sylussylus/a, a href=/u/s_leus_leu/a, a href=/u/tadityartadityar/a, a href=/u/talhaparachatalhaparacha/a, a href=/u/tatisilvatatisilva/a, a href=/u/tbradburytbradbury/a, a href=/u/therealssjtherealssj/a, a href=/u/travelvctravelvc/a, a href=/u/traviscardenTravisCarden/a, a href=/u/travisjohnstonTravisJohnston/a, a href=/u/treyhunnertreyhunner/a, a href=/u/tsphetheantsphethean/a, a href=/u/tstoecklertstoeckler/a, a href=/u/tuchotucho/a, a href=/u/tuuttituutti/a, a href=/u/twistortwistor/a, a href=/u/twodTwoD/a, a href=/u/typhoniustyphonius/a, a href=/u/vasi1186vasi1186/a, a href=/u/wim-leersWim Leers/a, a href=/u/xanoXano/a, a href=/u/xjmxjm/a, a href=/u/yannickooyannickoo/a, a href=/u/ychedyched/a, a href=/u/yesctYesCT/a, a href=/u/zaporyliezaporylie/a, a href=/u/zerdioxZerdiox/a, and a href=/u/znerolznerol/a./p p(This list was auto-generated, so apologies if anyone was left out.)/p pYour name could be on a list like this in the future; see the a href=https://www.drupal.org/contributeWays to get involved/a page to find out how./p pThank you to everyone who helped with Drupal 7.50!/p /div/div/div

Drupal Blog: A roadmap for making Drupal more API-first

Thu, 07/07/2016 - 16:06
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpema href=http://buytaert.net/a-roadmap-for-making-drupal-more-api-first target=_blank rel=nofollowRepublished from buytaert.net/a/em/p pIn one of my recent blog posts, I articulated a href=http://buytaert.net/advancing-drupal-web-services target=_blank rel=nofollowa vision for the future of Drupal's web services/a, and at DrupalCon New Orleans, I announced the a href=http://buytaert.net/state-of-drupal-presentation-may-2016 target=_blank rel=nofollowAPI-first initiative for Drupal 8/a. I believe that there is considerable momentum behind driving the web services initiative. As such, I want to provide a progress report, highlight some of the key people driving the work, and map the proposed vision from the previous blog post onto a rough timeline./p pHere is a bird's-eye view of the plan for the next twelve months:/p tabletbodytrth8.2 (Q4 2016)/th th8.3 (Q2 2017)/th thBeyond 8.3 (2017+)/th /trtrtdNew REST API capabilitiesbr / Waterwheel initial release/td tdNew REST API capabilitiesbr / JSON API module/td tdGraphQL module?br / Entity graph iterator?/td /tr/tbody/tableh2New REST API capabilities/h2 pa href=https://www.drupal.org/u/wim-leers rel=nofollowWim Leers/a (Acquia) and a href=https://www.drupal.org/u/dawehner rel=nofollowDaniel Wehner/a (Chapter Three) have produced a comprehensive list of the a href=https://www.drupal.org/node/2721489 rel=nofollowtop priorities for the REST module/a. We're introducing a href=https://www.drupal.org/list-changes/drupal/published?keywords_description=RESTamp;to_branch=8.2.xamp;version=amp;created_op=%3E%3Damp;created%5Bvalue%5D=amp;created%5Bmin%5D=amp;created%5Bmax%5D= rel=nofollowsignificant REST API advancements/a in Drupal 8.2 and 8.3 in order to improve the developer experience and extend the capabilities of the REST API. We've been focused on configuration entity support, simplified REST configuration, translation and file upload support, pagination, and last but not least, support for user login, logout and registration. All this work starts to address differences between core's REST module and various contributed modules like a href=https://www.drupal.org/project/services rel=nofollowServices/a and a href=https://www.drupal.org/project/relaxed rel=nofollowRELAXed Web Services/a. More details are available in a href=http://buytaert.net/advancing-drupal-web-services target=_blank rel=nofollowmy previous blog post/a./p pMany thanks to a href=https://www.drupal.org/u/wim-leers rel=nofollowWim Leers/a (Acquia), a href=https://www.drupal.org/u/dawehner rel=nofollowDaniel Wehner/a (Chapter Three), a href=https://www.drupal.org/u/tedbow rel=nofollowTed Bowman/a (Acquia),a href=https://www.drupal.org/u/alexpott rel=nofollowAlex Pott/a (Chapter Three), and others for their work on Drupal core's REST modules. Though there is considerable momentum behind efforts in core, we could always benefit from new contributors. Please consider taking a look at the a href=https://www.drupal.org/project/issues/drupal?component=rest.module rel=nofollowREST module issue queue/a to help!/p h2Waterwheel initial release/h2 pAs I mentioned in my previous post, there has been exciting work surrounding a href=https://github.com/acquia/waterwheel target=_blank rel=nofollowWaterwheel/a, an SDK for JavaScript developers building Drupal-backed applications. If you want to build decoupled applications using a JavaScript framework (e.g. Angular, Ember, React, etc.) that use Drupal as a content repository, stay tuned for Waterwheel's initial release later this year./p pWaterwheel aims to facilitate the construction of JavaScript applications that communicate with Drupal. Waterwheel's JavaScript library allows JavaScript developers to work with Drupal without needing deep knowledge of how requests should be authenticated against Drupal, what request headers should be included, and how responses are molded into particular data structures./p pThe a href=https://www.drupal.org/project/waterwheel rel=nofollowWaterwheel Drupal module/a adds a new endpoint to Drupal's REST API allowing Waterwheel to discover entity resources and their fields. In other words, Waterwheel intelligently discovers and seamlessly integrates with the content model defined on any particular Drupal 8 site./p pA wider ecosystem around Waterwheel is starting to grow as well. a href=https://www.drupal.org/u/gabesullice rel=nofollowGabe Sullice/a, creator of the a href=https://www.drupal.org/project/entityqueryapi rel=nofollowEntity Query API module/a, has contributed an integration of Waterwheel which opens the door to features such as sorts, conditions and ranges. The Waterwheel team welcomes early adopters as well as those working on other REST modules such as JSON API and RELAXed or using native HTTP clients in JavaScript frameworks to add their own integrations to the mix./p pWaterwheel is the currently the work of a href=https://www.drupal.org/u/drpal rel=nofollowMatt Grill/a (Acquia) and a href=https://www.drupal.org/u/prestonso rel=nofollowPreston So/a (Acquia), who are developing the JavaScript library, and a href=https://www.drupal.org/u/tedbow rel=nofollowTed Bowman/a (Acquia), who is working on the Drupal module./p h2JSON API module/h2 pIn conjunction with the ongoing efforts in core REST, parallel work is under way to build a a href=https://www.drupal.org/project/jsonapi rel=nofollowJSON API module/a that embraces the JSON API specification. a href=http://jsonapi.org/ target=_blank rel=nofollowJSON API/a is a particular implementation of REST that provides conventions for resource relationships, collections, filters, pagination, and sorting, in addition to error handling and full test coverage. These conventions help developers build clients faster and encourages reuse of code./p pThanks to a href=https://www.drupal.org/u/e0ipso rel=nofollowMateu Aguiló Bosch/a, a href=https://www.drupal.org/u/ef4 rel=nofollowEd Faulkner/a and a href=https://www.drupal.org/u/gabesullice rel=nofollowGabe Sullice/a, who are spearheading the JSON API module work. The module could be ready for production use by the end of this year and included as an experimental module in core by 8.3. Contributors to JSON API are meeting weekly to discuss progress moving forward./p h2Beyond 8.3: GraphQL and entity graph iterator/h2 pWhile these other milestones are either certain or in the works, there are other projects gathering steam. Chief among these is GraphQL, which is a query language I highlighted in a href=http://buytaert.net/state-of-drupal-presentation-september-2015 target=_blank rel=nofollowmy Barcelona keynote/a and allows for clients to tailor the responses they receive based on the structure of the requests they issue./p pOne of the primary outcomes of the New Orleans web services discussion was the importance of a unified approach to iterating Drupal's entity graph; both GraphQL and JSON API require such an entity graph iterator. Though much of this is still speculative and needs greater refinement, eventually, such an entity graph iterator could enable other functionality such as editable API responses (e.g. aliases for custom field names and timestamp formatters) and a unified versioning strategy for web services. However, more help is needed to keep making progress, and in absence of additional contributors, we do not believe this will land in Drupal until after 8.3./p pThanks to a href=https://www.drupal.org/u/fubhy rel=nofollowSebastian Siemssen/a, who has been leading the effort around this work, which is currently a href=https://github.com/drupal-http-apis/type-graph target=_blank rel=nofollowavailable on GitHub/a./p h2Validating our work and getting involved/h2 pIn order to validate all of the progress we've made, we need developers everywhere to test and experiment with what we're producing. This means stretching the limits of our core REST offerings, trying out JSON API for your own Drupal-backed applications, reporting issues and bugs as you encounter them, and participating in the discussions surrounding this exciting vision. Together, we can build towards a first-class API-first Drupal./p pemSpecial thanks to a href=https://www.drupal.org/u/prestonso rel=nofollowPreston So/a for contributions to this blog post and to a href=https://www.drupal.org/u/wim-leers rel=nofollowWim Leers/a for feedback during its writing./em/p/div/div/div

Dries Buytaert: A roadmap for making Drupal more API-first

Thu, 07/07/2016 - 16:06
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpIn one of my recent blog posts, I articulated a href=http://buytaert.net/advancing-drupal-web-servicesa vision for the future of Drupal's web services/a, and at DrupalCon New Orleans, I announced the a href=http://buytaert.net/state-of-drupal-presentation-may-2016API-first initiative for Drupal 8/a. I believe that there is considerable momentum behind driving the web services initiative. As such, I want to provide a progress report, highlight some of the key people driving the work, and map the proposed vision from the previous blog post onto a rough timeline./p pHere is a bird's-eye view of the plan for the next twelve months:/p tabletbodytrth8.2 (Q4 2016)/th th8.3 (Q2 2017)/th thBeyond 8.3 (2017+)/th /trtrtdNew REST API capabilitiesbr /Waterwheel initial release/td tdNew REST API capabilitiesbr /JSON API module/td tdGraphQL module?br /Entity graph iterator?/td /tr/tbody/tableh3New REST API capabilities/h3 pa href=https://www.drupal.org/u/wim-leersWim Leers/a (Acquia) and a href=https://www.drupal.org/u/dawehnerDaniel Wehner/a have produced a comprehensive list of the a href=https://www.drupal.org/node/2721489top priorities for the REST module/a. We're introducing a href=https://www.drupal.org/list-changes/drupal/published?keywords_description=RESTamp;to_branch=8.2.xamp;version=amp;created_op=%3E%3Damp;created%5Bvalue%5D=amp;created%5Bmin%5D=amp;created%5Bmax%5D=significant REST API advancements/a in Drupal 8.2 and 8.3 in order to improve the developer experience and extend the capabilities of the REST API. We've been focused on configuration entity support, simplified REST configuration, translation and file upload support, pagination, and last but not least, support for user login, logout and registration. All this work starts to address differences between core's REST module and various contributed modules like a href=https://www.drupal.org/project/servicesServices/a and a href=https://www.drupal.org/project/relaxedRELAXed Web Services/a. More details are available in a href=http://buytaert.net/advancing-drupal-web-servicesmy previous blog post/a./p pMany thanks to a href=https://www.drupal.org/u/wim-leersWim Leers/a (Acquia), a href=https://www.drupal.org/u/dawehnerDaniel Wehner/a, a href=https://www.drupal.org/u/tedbowTed Bowman/a (Acquia), a href=https://www.drupal.org/u/alexpottAlex Pott/a (Chapter Three), and others for their work on Drupal core's REST modules. Though there is considerable momentum behind efforts in core, we could always benefit from new contributors. Please consider taking a look at the a href=https://www.drupal.org/project/issues/drupal?component=rest.moduleREST module issue queue/a to help!/p h3Waterwheel initial release/h3 pAs I mentioned in my previous post, there has been exciting work surrounding a href=https://github.com/acquia/waterwheelWaterwheel/a, an SDK for JavaScript developers building Drupal-backed applications. If you want to build decoupled applications using a JavaScript framework (e.g. Angular, Ember, React, etc.) that use Drupal as a content repository, stay tuned for Waterwheel's initial release later this year./p pWaterwheel aims to facilitate the construction of JavaScript applications that communicate with Drupal. Waterwheel's JavaScript library allows JavaScript developers to work with Drupal without needing deep knowledge of how requests should be authenticated against Drupal, what request headers should be included, and how responses are molded into particular data structures./p pThe a href=https://www.drupal.org/project/waterwheelWaterwheel Drupal module/a adds a new endpoint to Drupal's REST API allowing Waterwheel to discover entity resources and their fields. In other words, Waterwheel intelligently discovers and seamlessly integrates with the content model defined on any particular Drupal 8 site./p pA wider ecosystem around Waterwheel is starting to grow as well. a href=https://www.drupal.org/u/gabesulliceGabe Sullice/a, creator of the a href=https://www.drupal.org/project/entityqueryapiEntity Query API module/a, has contributed an integration of Waterwheel which opens the door to features such as sorts, conditions and ranges. The Waterwheel team welcomes early adopters as well as those working on other REST modules such as JSON API and RELAXed or using native HTTP clients in JavaScript frameworks to add their own integrations to the mix./p pWaterwheel is the currently the work of a href=https://www.drupal.org/u/drpalMatt Grill/a (Acquia) and a href=https://www.drupal.org/u/prestonsoPreston So/a (Acquia), who are developing the JavaScript library, and a href=https://www.drupal.org/u/tedbowTed Bowman/a (Acquia), who is working on the Drupal module./p h3JSON API module/h3 pIn conjunction with the ongoing efforts in core REST, parallel work is underway to build a a href=https://www.drupal.org/project/jsonapiJSON API module/a which embraces the JSON API specification. a href=http://jsonapi.orgJSON API/a is a particular implementation of REST that provides conventions for resource relationships, collections, filters, pagination, and sorting, in addition to error handling and full test coverage. These conventions help developers build clients faster and encourages reuse of code./p pThanks to a href=https://www.drupal.org/u/e0ipsoMateu Aguiló Bosch/a, a href=https://www.drupal.org/u/ef4Ed Faulkner/a and a href=https://www.drupal.org/u/gabesulliceGabe Sullice/a, who are spearheading the JSON API module work. The module could be ready for production use by the end of this year and included as an experimental module in core by 8.3. Contributors to JSON API are meeting weekly to discuss progress moving forward./p h3Beyond 8.3: GraphQL and entity graph iterator/h3 pWhile these other milestones are either certain or in the works, there are other projects gathering steam. Chief among these is GraphQL, which is a query language I highlighted in a href=http://buytaert.net/state-of-drupal-presentation-september-2015my Barcelona keynote/a and allows for clients to tailor the responses they receive based on the structure of the requests they issue./p pOne of the primary outcomes of the New Orleans web services discussion was the importance of a unified approach to iterating Drupal's entity graph; both GraphQL and JSON API require such an entity graph iterator. Though much of this is still speculative and needs greater refinement, eventually, such an entity graph iterator could enable other functionality such as editable API responses (e.g. aliases for custom field names and timestamp formatters) and a unified versioning strategy for web services. However, more help is needed to keep making progress, and in absence of additional contributors, we do not believe this will land in Drupal until after 8.3./p pThanks to a href=https://www.drupal.org/u/fubhySebastian Siemssen/a, who has been leading the effort around this work, which is currently a href=https://github.com/drupal-http-apis/type-graphavailable on GitHub/a./p h3Validating our work and getting involved/h3 pIn order to validate all of the progress we've made, we need developers everywhere to test and experiment with what we're producing. This means stretching the limits of our core REST offerings, trying out JSON API for your own Drupal-backed applications, reporting issues and bugs as you encounter them, and participating in the discussions surrounding this exciting vision. Together, we can build towards a first-class API-first Drupal./p pemSpecial thanks to a href=https://www.drupal.org/u/prestonsoPreston So/a for contributions to this blog post and to a href=https://www.drupal.org/u/wim-leersWim Leers/a for feedback during its writing./em/p /div/div/div

Liip: A quick look on the current state of Drupal 8 (ecosystem)

Thu, 07/07/2016 - 13:21
pEight months ago Drupal 8.0.0 was released. Exciting news for drupalists. Since then comparing D8’s features to its predecessor is a topic in daily business. «Can drupal 8 do what we can do now with 7 today?”. After playing around with D8 i get the feeling some crucial features are missing. Dries invited people to tell ”a href=http://buytaert.net/how-is-drupal-8-doing target=_blankwhy we not use or migrate to drupal 8/a#8221; – and got a clear answer: A majority of drupalist (60%) are waiting for certain modules. So the follow up question would be what are these modules.span id=more-8404/span/p pOn the fly my top 10 wishlist would be:/p ul lipathauto/li litoken/li liwebform/li limetadata/li liviews_bulk_operations/li liflag/li lirules/li lixmlsitemap/li liredirect/li lisearch_api/li /ul pToday it seems quite difficult to get a good overview of D8 ecosystem. Also because some module development moved to github to have a better collaboration tool. I was irritated to see no D8 version of the a href=https://www.drupal.org/project/webform target=_blankwebform/a module in the download section on drupal.org  #8211; That’s a module with 1/2 million downloads for D7. Comments on this a href=https://www.drupal.org/node/2603724 target=_blankissue/a gives some answers. Without committed maintainers from the beginning the porting takes much longer. A highly complex module like webform probably needs almost complete rewrite to fit into the new core of D8. Porting module from D7 to D6 was much easier. For forms we could use in some cases the core Form API, core contact forms or the eform module. But our clients would most likely miss out on the experience of D7s webform module./p pUnder the hood Drupal 8 core changed significantly. a href=https://symfony.com target=_blankSymfony2/a for example is now playing its music to give us new possibilities. I guess in some cases there are new solutions we have yet to discover. From a suitebuilder point of view, D8 is delightfully similar to what we know from D7. However, it will take some getting used to not trying to add the old modules we know to this new architecture./p pIn the end the importance of a variety of mature modules that play together nicely is crucial when it comes to efficiency, maintainability and stability of a project#8230;/p blockquotep#8220;I am confident that Drupal 8 will be adopted at #8220;full-force#8221; by the end of 2016.#8221;br / citeDries Buytaert/cite/p/blockquote psmallDrupal is a registered trademark of Dries Buytaert.small/small/small/p

Srijan Technologies: Docker: A Microcontainer for Faster Software Workflows

Thu, 07/07/2016 - 11:54
div class=field field-name-body field-type-text-with-summary field-label-hidden view-mode-rssdiv class=field-itemsdiv class=field-item even pDocker, a container-based technology which I just came across, is great for setting up environments. It was first introduced to the world by Solomon Hykes, founder and CEO of dotCloud at Python Developers Conference in Santa Clara, California, in March 2013. The project was quickly open-sourced and made available on GitHub, where anyone can download and contribute to it./p pstrongContainers vs. Virtual Machines/strong/p pYou might be wondering, What is the difference between Containers (like Docker) and Virtual Machines?/p pWell, virtual machines (VM) work by creating a virtual copy of a computer's hardware, and running a full operating-system on that virtual hardware. Each new VM that you create results in a new copy of that virtual hardware, which is computationally expensive. Many people use VMs because they allow you to run an application in a separate environment which can have it's own versions of software and settings, which are different from the host machine./p pOn the other hand, container technologies like Docker, isolate the container's environment, software, and settings, in a sandbox; but all sandboxes share the same operating-system kernel and hardware as the host computer. Each new container results in a new sandbox. This enables us to pack a lot more applications into a single physical server as compared to a virtual machine./p pDocker containers are isolated enough that the root process in a container cannot see the host machine’s processes or filesystem. However, it may still be able to make certain system calls to the kernel that a regular user would not, because in Docker, the kernel is shared with the host machine. This is also why Docker containers are not virtual machines and thus a lot faster./p pNote, however, that Docker relies on a technology which is only available in the Linux kernel. When you run Docker on a Windows or Macintosh host machine, Docker and all it's containers run in a virtual machine/p pThat said, there are two projects trying to bring Docker-style containers natively to OS/X , a href=https://github.com/nlf/dlite target=_blankDlite/a and a href=https://github.com/mist64/xhyve target=_blankXhyve/a. But last I heard, these projects were still very experimental. So consider yourself warned./p pWhen you are done with a container, on a Mac host machine, it’s probably good to suspend the containers, because they run in a virtual machine and that has a lot of overhead. But on a Linux host machine, there would be no need to suspend them because they would not create (much) additional overhead (no more than, say, MAMP)./p pDocker is a tool that promises to scale into any environment, streamlining the workflow and responsiveness of agile software organizations./p pstrongDocker’s Architecture/strong/p pThis is a diagram explaining the basic client-server architecture which docker uses./p p style=text-align: center;img alt= class=media-image image-style-none height=494 width=945 src=http://www.srijan.net/sites/default/files/image02_3.png //p pemSource: a href=http://www.docker.comhttp://www.docker.com/a/em/p pstrongImportant Terminology/strong/p ulliDocker daemon: A Docker engine which runs on the host machine as shown in the image above./li liDocker client: A Docker cli which is used to interact with the daemon./li /ulpstrongWorkflow components/strong/p ulliDocker image: A read-only disk image in which environment amp; your application resides./li liDocker container: A read/writeable instance of an image, which you can start, stop, move, and  delete./li liDocker registry: A public or private repository to store images./li liDockerfile: A Dockerfile is instructions for how to build a single image. You can think of a Dockerfile as kind of Vagrantfile, or a single Chef cookbook, or an Ansible script, or a Puppet script./li /ulpstrongMicroservices/strongbr /Because Docker allows you to run so many containers at the same time, it has popularized the idea of microservices: a collection of containers, each of which contain a single program,  all of which work together to run a complex application (e.g. Drupal)./p pTaking Drupal as an example, every Drupal site has at least two dependencies: an HTTP server (Apache, Nginx, etc.) running PHP; and MySQL. The idea of microservices would involve packaging Apache+PHP separately from MySQL; as opposed to most Drupal virtual machine images which bundle them together into the same VM. For more complicated setups, you could add another container for Solr, another container for LDAP, etc./p pFor me, the main advantage of using microservices is that it’s easier to update or swap one dependency of an application without affecting the rest of it. Another way of looking at this is that microcontainers make it easier to modify one piece without waiting a long time for the virtual machine to rebuild./p pWhen I was using a virtual machine on a particularly complex project, if I needed to make a change to a setting, I had to make that change in the Puppet config, then run vagrant destroy amp;amp; vagrant up and wait two hours for it to tell me that the new configuration wasn’t compatible with some other piece of the system. At which point I had to repeat the two hour process, which wasted a lot of time./p pIf I had been using Docker (properly), then I could have just changed the setting for that one program, rebuild that program's container (5 seconds), and not have to worry that one piece of the machine needed at least Java 6 and the other piece of the machine could not work without Java 5./p pNow that you know the possibilities with Docker, watch this space to find out how all this applies to Drupal./p /div/div/div

Kristian Polso: My first thoughts on Drupal 8 development

Thu, 07/07/2016 - 11:08
So on my summer holiday I decided to finally take a look at custom module development for Drupal 8. During this time I made some interesting findings, and thought sharing them would probably help others too. Note that I was determined to build a REST API module, so a lot of the findings below are regarding that aspect of development. Documentation is really lacking in parts It's kinda sad, but quite often I had trouble finding information on how to use different controllers or functions, or how to do stuff X in Drupal 8 compared to Drupal 7.

Flocon de toile | Freelance Drupal: Managing media with Drupal 8

Thu, 07/07/2016 - 10:00
div class=field field--name-body field--type-text-with-summary field--label-hidden field--itemMedia management has been identified as a priority in the last DrupalCon (New Orleans 2016). If we could have on Drupal 7 some contributed modules offering an unparalleled user experience for media management, Drupal 8 was still orphan not long ago for an equivalent solution. With the stable release of the Media Entity module, Drupal 8 now has a robust and scalable solution to offer its users a customized media management. Let's explore how to set up a media management on Drupal 8 with the Media Entity collection./div

Radium on Drupal: GSoC 2016 | Using Web Components in Theme Design

Thu, 07/07/2016 - 09:17
Overview My project can be seen as a mixture of tools that uses Web Components to enhance Drupal’s frontend experience. In previous weeks, I have been programmatically turning parts of Drupal into Web Components and exporting some of them. This week, I would like to talk about using Web Components in Drupal themes, and furthermore, a Web Component-driven approach for theme design.

Arpit Jalan: GSOC 2016- Starting with Face Detection feature of Google Cloud Vision API- Week 6

Thu, 07/07/2016 - 07:18
div dir=ltr style=text-align: left; trbidi=ondiv dir=ltr style=line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;span style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: italic; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;TL;DR/spanspan style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: italic; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; Previous week I had worked on grouping the contents based on the dominant color component in their images, if present. The work is under review of the mentors. And once, it gets reviewed, I would work further on that issue. Meanwhile, I have started developing and implementing the Emotion Detection feature of the Google Cloud Vision API. It would detect the emotion of the person in the profile picture uploaded, and if the person looks angry or unhappy, he would be notified thereof. This feature is especially important when building sites for professional purposes, as the facial looks matters a lot in such cases./span/divb id=docs-internal-guid-c9a8181b-c3ca-6a3a-bbc6-f6b1a399b6ea style=font-weight: normal;br //bdiv dir=ltr style=line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;span style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;Last week, I had worked on implementing the Dominant Color Detection feature in the /spana href=https://www.drupal.org/project/google_vision style=text-decoration: none;span style=background-color: transparent; color: #1155cc; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;Google Vision API/span/aspan style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; module. The code is currently under the review by the mentors. Once, they review it, I would develop further on it if it requires any changes./span/divb style=font-weight: normal;br //bdiv dir=ltr style=line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;span style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;Hence, meanwhile, I have started working on implementing a new feature /spanspan style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;Face Detection /spanspan style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;in an image. This feature gives us the location of the face in an image, and in addition, the emotions and expressions on the face./span/divb style=font-weight: normal;br //bdiv dir=ltr style=line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;span style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;I have used this feature to detect the emotion of the person in the profile picture uploaded by him/her. If the person does not seem happy in the image, he/she is notified thereof of their expressions. This is especially useful when the end users are developing a site for professional purposes, as in professional matters, expressions matters a lot./span/divb style=font-weight: normal;br //bdiv dir=ltr style=line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;span style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;Coming to the technical aspect, I have made use of /spana href=https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21entity.api.php/function/hook_entity_bundle_field_info_alter/8.1.x style=text-decoration: none;span style=background-color: transparent; color: #1155cc; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;hook_entity_bundle_field_info_alter()/span/aspan style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; to alter the image fields, and check the emotions in the uploaded images. This function has been used, as we only want to implement this feature on the image fields. If the image is not a happy one, then appropriate message is displayed using /spana href=https://api.drupal.org/api/drupal/core!includes!bootstrap.inc/function/drupal_set_message/8.2.x style=text-decoration: none;span style=background-color: transparent; color: #1155cc; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;drupal_set_message()/span/aspan style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;. This feature also makes use of /spana href=https://www.drupal.org/node/2015613 style=text-decoration: none;span style=background-color: transparent; color: #1155cc; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;Constraints and Validators/span/aspan style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; just like the Safe Search detection feature./span/divdiv dir=ltr style=line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;span style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;Presently, the code is under the review by the mentors./span/divb style=font-weight: normal;br //bdiv dir=ltr style=line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;span style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;In addition to the implementation of Face Detection, I also worked on expanding the tests of the Safe Search Detection feature of the Google Vision API module to test other entities as well, in addition to the nodes. I have expanded the tests to test the safe search constraint on the comment entity as well./span/divdiv dir=ltr style=line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;span style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;This requires the creation of a dummy comment type, adding an image field to the comment type, and attaching the comment to the content type./span/divdiv dir=ltr style=line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;span style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;The image field contains the /spana href=https://www.drupal.org/node/2744845 style=text-decoration: none;span style=background-color: transparent; color: #1155cc; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;safe search as the constraint/span/aspan style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; on it. This test is basically similar to the tests present in the module for the node entity./span/divdiv dir=ltr style=line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;span style=background-color: transparent; color: black; font-family: Arial; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;The code is under review by the mentors and would soon be committed to the module./span/divspan style=font-family: Arial; font-size: 14.6666666666667px; vertical-align: baseline; white-space: pre-wrap;For reference on how to create dummy comment types and attaching it to the content types, the /spana href=https://api.drupal.org/api/drupal/core%21modules%21comment%21src%21Tests%21CommentTestBase.php/class/CommentTestBase/8.1.x style=text-decoration: none;span style=color: #1155cc; font-family: Arial; font-size: 14.6666666666667px; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;CommentTestBase/span/aspan style=font-family: Arial; font-size: 14.6666666666667px; vertical-align: baseline; white-space: pre-wrap; class is very helpful./span/div

DrupalCon News: Call for Content Closes with Record Submissions

Wed, 07/06/2016 - 23:38
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpIn true Drupal fashion, we had a huge amount of proposals for DrupalCon Dublin on the last day to bring us to a record-breaking 621 session submissions./p /div/div/div

GVSO Blog: [GSoC 2016: Social API] Week 6: Facebook Widgets Buttons

Wed, 07/06/2016 - 20:37
article data-history-node-id=6 role=article about=/article/2016-07-06/gsoc-2016-social-api-week-6-facebook-widgets-buttons typeof=schema:Article class=article is-promoted teaser clearfix h2 a href=/article/2016-07-06/gsoc-2016-social-api-week-6-facebook-widgets-buttons rel=bookmarkspan property=schema:name[GSoC 2016: Social API] Week 6: Facebook Widgets Buttons/span /a /h2 span property=schema:name content=[GSoC 2016: Social API] Week 6: Facebook Widgets Buttons class=hidden/span span property=schema:interactionCount content=UserComments:0 class=hidden/span footer article typeof=schema:Person about=/user/1 /article div class=author Submitted by span rel=schema:authorspan lang= about=/user/1 typeof=schema:Person property=schema:name datatype=gvso/span/span on span property=schema:dateCreated content=2016-07-06T18:37:21+00:00Wed, 07/06/2016 - 14:37/span span property=schema:dateCreated content=2016-07-06T18:37:21+00:00 class=hidden/span /div /footer div class=content div property=schema:text class=field field--name-body field--type-text-with-summary field--label-hidden field--itempWeek 6 is over, and we are already in the second week of the second half of Google Summer of Code 2016. We are working hard to have the Social API project ready to be used widely before GSoC ends. Furthermore, we are trying to already have some implementors, so developers can see sample modules developed on top of the Social API, Social Auth, Social Post, and Social Widgets./p/div div class=field field--name-field-tags field--type-entity-reference field--label-above div class=field--labelTags/div div class=field__items span class=field--itema href=/tag/drupal-planet property=schema:about hreflang=enDrupal Planet/a/span span class=field--itema href=/tag/drupal property=schema:about hreflang=enDrupal/a/span span class=field--itema href=/tag/gsoc2016 property=schema:about hreflang=enGSoC 2016/a/span /div /div ul class=links inline list-inlineli class=node-readmorea href=/article/2016-07-06/gsoc-2016-social-api-week-6-facebook-widgets-buttons rel=tag title=[GSoC 2016: Social API] Week 6: Facebook Widgets Buttons hreflang=enRead morespan class=visually-hidden about [GSoC 2016: Social API] Week 6: Facebook Widgets Buttons/span/a/lili class=comment-forbiddena href=/user/login?destination=/article/2016-07-06/gsoc-2016-social-api-week-6-facebook-widgets-buttons%23comment-formLog in/a to post comments/li/ul /div /article

Axelerant Blog: 16 Drupal 8 Features You Should Know

Wed, 07/06/2016 - 20:00
div class=post_thumbnail single_post_thumbnaila href='https://axelerant.com/drupal-8-features-need-know/blog-graphic-drupal-8-features/'img width=640 height=360 src=https://axelerant.com/wp-content/uploads/2016/07/Blog-Graphic-Drupal-8-Features-640x360.jpg class=attachment-large size-large alt=Drupal 8 features srcset=https://axelerant.com/wp-content/uploads/2016/07/Blog-Graphic-Drupal-8-Features-640x360.jpg 640w, https://axelerant.com/wp-content/uploads/2016/07/Blog-Graphic-Drupal-8-Features-160x90.jpg 160w, https://axelerant.com/wp-content/uploads/2016/07/Blog-Graphic-Drupal-8-Features-480x270.jpg 480w, https://axelerant.com/wp-content/uploads/2016/07/Blog-Graphic-Drupal-8-Features-330x186.jpg 330w, https://axelerant.com/wp-content/uploads/2016/07/Blog-Graphic-Drupal-8-Features-1024x577.jpg 1024w, https://axelerant.com/wp-content/uploads/2016/07/Blog-Graphic-Drupal-8-Features-736x414.jpg 736w, https://axelerant.com/wp-content/uploads/2016/07/Blog-Graphic-Drupal-8-Features-1280x721.jpg 1280w, https://axelerant.com/wp-content/uploads/2016/07/Blog-Graphic-Drupal-8-Features-768x433.jpg 768w, https://axelerant.com/wp-content/uploads/2016/07/Blog-Graphic-Drupal-8-Features-414x233.jpg 414w, https://axelerant.com/wp-content/uploads/2016/07/Blog-Graphic-Drupal-8-Features.jpg 1385w sizes=(max-width: 640px) 100vw, 640px //a/div pDevelopment started on Drupal 8 features back in March of 2011. Since then, the developer and application framework world has looked forward to the outcomes of every development, feature completion, clean-up, API completion, a href=http://buytaert.net/the-next-step-for-drupal-8-is-a-betabeta/a, and release candidate (a href=https://www.drupal.org/drupal-8.0.0-rc1RC/a) phase with baited breath. In November of 2015, Drupal 8.0.0 was released. Sighs of relief turned to curious murmers—what#8217;s this all about?/p pDrupal 8 takes an already terrific content management framework to ever greater heights for users, administrators, and developers. There#8217;s a seriously sharp focus on user-friendliness, but content presentation, new ways to create data structures, build APIs, multilingual capabilities, and the delivery of mobile accessibility out of the box? Drupal 8 brings those to the table too./p h3 style=text-align: center;Looking for help with Drupal 8?/h3 p style=text-align: center;strongHere#8217;s an Open Source Staffing Guide so you can find the right people faster./strong/p p style=text-align: center;span style=font-weight: 400;!--[if lte IE 8] script charset=utf-8 type=text/javascript src=//js.hsforms.net/forms/v2-legacy.js/script ![endif]-- script charset=utf-8 type=text/javascript src=//js.hsforms.net/forms/v2.js/script script hbspt.forms.create({ portalId: '557351', formId: '0e484b0e-3475-47ed-b8f5-49fa6b4cacab' }); /script/span/p h2There are 16 Drupal 8 features worth knowing./h2 pWhile a class=no-ajaxy href=http://www.acquia.com/resources/podcasts/acquia-podcast-132-drupal-symfony-what-open-source-is-aboutSymfony 2 powers the Drupal 8 backend/a, a lighter and faster core offers tons more capabilities for modules and themes. Plus, the Drupal 8 migration and the onward curve is significantly reduced. These changes and more are key reasons to consider that switch to Drupal 8. But I#8217;m getting ahead of myself, here are the 16 top Drupal 8 features:/p h31. New Theme Engine/h3 pDrupal 8 includes a brand new theming engine called a href=http://twig.sensiolabs.org/Twig/a, which is PHP-based, flexible, fast, and secure. It#8217;s much easier to create beautiful and more functional Drupal websites using Twig, as its templates are written in a syntax that#8217;s less complex than a PHP template or others while being more secure./p h32. Mobile First From The Get-Go/h3 pa href=https://axelerant.com/not-magic-drupal-8-mobile-global-reach/Drupal 8 is mobile first/a in its approach. All the built-in themes that come with Drupal 8 are responsive, along with an admin theme that adapts to different screen sizes, and a ‘Back To Site’ button to go back to the front page. Tables fit into any screen size without a hitch, and the new admin toolbar works well on mobile devices./p h33. More HTML5 Power to You/h3 pHTML5 is now more or less the de facto standard when it comes to writing web markup. The same is now available natively in Drupal 8, giving you access to input fields like date, e-mail, phone, etc., and even more functionality and compatibility with mobile and handheld devices./p h34. Multilingual Ready/h3 pDrupal 8 boasts extensive multilingual features right out of the box. The admin interface has built-in translations. You can also create pages with language-based Views filtering and block visibility. Translation updates from the community are automatically facilitated./p h35. Manage Your Configuration/h3 pDrupal 8 has configuration management built into it at the file-system level so that carrying over configuration elements (like content type, views, or fields, etc.) from local development to the server is a breeze. You can use a version-control system to keep track of configuration changes. Configuration data is stored in files, separate from the site database(s)./p h36. Easy Authoring/h3 pNew Drupal 8 features bring unprecedented power into the hands of the Content Editor, with WYSIWYG editor CKEditor now bundled with the core. However, the most touted improvement remains the in-place editing capability that Drupal 8 will afford users, a result of a href=http://buytaert.net/spark-update-in-line-editing-in-drupalthe Spark Initiative/a./p pSite and content creators or editors can edit text on any page without having to switch to the full edit form. Drafts are now much easier to create, and web security is now better implemented as a result./p h37. Quick Edits/h3 pThere#8217;s something great about seeing something that needs changing and having the ease of access to change it—directly and quickly. Now Quick Edit is a backport of the Drupal 8 a href=https://www.drupal.org/node/1872284 rel=nofollowin-place editing for Fields/a. So if you#8217;re logged into Drupal content is in front of you, edit the text directly for quick fixes and additions from the front-end./p h38. Views Now Part of Core/h3 pViews sit high up in the Drupal module hierarchy, as it is an integral part of most website projects, and a lot is pretty much impossible without it. Site designers have used use this hitherto-contributed module to output galleries, maps, graphs, lists, posts, tables, menus, blocks, reports, and what-have-you./p pWith this Drupal 8 feature, Views is part of and firmly integrated with the core. The front page and several administration pages are now Views, and users will now be able to quickly create pages, blocks, admin sections, etc., and modify existing ones just as effortlessly./p h39. Better Support for Accessibility/h3 pDrupal 8 has excellent support for industry standard accessibility technologies, like a href=http://www.w3.org/WAI/intro/ariaWAI-ARIA/a. ARIA Live Announcements API and TabManager are significant improvements in Drupal 8, which provide control for rich Internet applications. Bells and whistles like better font sizes, tweaked color contrasts, jQuery UI’s autocomplete, and modal dialogs go a long way towards making Drupal 8 a breeze to use./p p style=text-align: center; h310. Web Services Built-in/h3 pDrupal 8 now makes it possible to use itself as a data source, and output content as JSON or XML. You can even post data back to Drupal 8 from the front end. Hypertext Application Language (HAL) is implemented in Drupal 8 and makes exploitation of web service capabilities less painful./p h311. Fields Galore/h3 pDrupal 8 ships with bucket-loads of field types in the core, thus taking its content structure capabilities up a notch. New field types like entity reference, link, date, e-mail, telephone, etc., aid content creation, and now you can attach fields to more content types, as well as create custom contact forms by attaching fields to them./p h312. Guided Tour/h3 div class=instructions pNow the descriptive text is right under the help link. Users can click and then take the tour; pop-ups appear, explaining how this all works, one of the most helpful Drupal 8 features to newcomers. This user-friendly boost is well-received as it#8217;s making the CMS easier for everyone to understand./p h313. Loading Speed/h3 /div pDrupal 8 caches all entities and only loads JavaScript when necessary. When a page is viewed, its content doesn’t need to be reloaded again. Previously viewed content is quickly loaded from the cache. Once configured and enabled, caching is completely automatic./p h314. Industry Standards/h3 pDrupal 8 aligns with the latest a href=http://www.zend.com/en/resources/php-7PHP 7/a standards like a href=http://www.php-fig.org/psr/psr-4/PSR-4/a, namespaces, and traits, and uses top notch, outstanding external libraries like Composer, PHPUnit, Guzzle, Zend Feed Component, Assetic to name a few. Meanwhile, underlying Drupal 8 features modern, object-oriented code that#8217;s the order of the day, by a href=http://symfony.com/blog/symfony2-meets-drupal-8Symfony 2/a./p h315. JavaScript Automated Testing/h3 pAutomated testing is not possible for front-end, so JaveScript (JS) automated testing is now possible with a href=https://www.drupal.org/blog/drupal-8-1-0Drupal 8.1/a. Now QA#8217;ers can test the JavaScript front-end automatically, saving time and making continuous integration that much easier./p h316. Big Pipe in Core/h3 pWith a href=https://www.drupal.org/project/big_pipeBig Pipe part of Drupal/a core, developers can optimize the site load performance for the end-user significantly. While this feature has nothing to with actual performance and is only perceived, it#8217;s a great feature to have since end-user is able to see a difference in site load times./p h2Enough Drupal 8 features to think about?/h2 pThese 16 Drupal 8 features are some of the most important reasons that this upgrade is so worth celebrating; it#8217;s the collective work of over 3,000 contributors. But more importantly to you, this might be that big, bright answer you#8217;ve been searching for./p div class=custom-cta div class=container tab-container span Got Drupal 8 your mind? /span a href=https://axelerant.com/services/drupal-services/drupal-migration/ class=cta_577d522de2e3e onClick=ga('send', 'event', 'cta-wide', 'click-drupal-migration', 'Tell us why'); data-color-override=false class=nectar-button regular-button accent-color style=visibility: visible;Tell us why./a script charset=utf-8 type=text/javascript jQuery(document).ready(function() { var cta_577d522de2e3e = false; jQuery(document).scroll(function() { if ( typeof ga !== 'undefined' typeof isScrolledIntoViewPort !== 'undefined' jQuery.isFunction( isScrolledIntoViewPort) isScrolledIntoViewPort('.cta_577d522de2e3e') cta_577d522de2e3e == false ) { cta_577d522de2e3e = true; ga('send', 'event', 'cta-wide', 'view-drupal-migration', 'Tell us why'); } }); }); /script /div /div h2More Drupal 8 resources:/h2 ul lia href=https://www.drupal.org/drupal-8.0https://www.drupal.org/drupal-8.0/a/li lia href=http://symfony.com/blog/symfony2-meets-drupal-8http://symfony.com/blog/symfony2-meets-drupal-8/a/li lia href=http://buytaert.net/the-next-step-for-drupal-8-is-a-betahttp://buytaert.net/the-next-step-for-drupal-8-is-a-beta/a/li lia href=http://webchick.net/drupal-8-slideshttp://webchick.net/drupal-8-slides/a/li /ul pThis article was originally published in July, 2014. It has since been updated./p pThis article a rel=nofollow href=https://axelerant.com/drupal-8-features-need-know/16 Drupal 8 Features You Should Know/a by a rel=nofollow href=https://axelerant.com/author/jasper/Jasper Levi/a first appeared on a rel=nofollow href=https://axelerant.comAxelerant - Axelerant: Expert Drupal Development, Support, amp; Staffing/a./p

Miloš Bovan: Week 7 of GSoC ‘16: Mailhandler updates

Wed, 07/06/2016 - 19:47
span property=schema:nameWeek 7 of GSoC ‘16: Mailhandler updates/span div property=schema:text class=field field--name-body field--type-text-with-summary field--label-hidden field--itemp dir=ltrThe coding period of Google Summer of Code 2016 has been continued after a href=http://blog.bovan.me/2016/06/midterm-evaluation-of-gsoc-mailhandler-projectmidterm evaluation/a. After splitting the Mailhandler analyzer into more specific and independent analyzers for different parts of an email message (sender, entity type, PGP, body, footer), last week I was working on providing a href=https://github.com/fantastic91/mailhandler_d8/pull/8test coverage/a for those./p pThe current tests are mostly written as kernel tests because of their speed of execution. codeMailhandlerNodeTest/code represents an integration test for the node handler and tests the whole process of Inmail analyzers and handlers./p pNewly written tests:/p ullicodeSenderAnalyzerKernelTest/code - the use case when a user is identified and when a user is not identified/li licodePGPAnalyzerKernelTest/code - test assertions of PGP-signed messages which inlude body, sender etc/li licodeFooterAnalyzerKernelTest/code tests plain mail messages with and without the message footer/li licodeEntityTypeAnalyzerKernelTest/codecovers entity type and bundle pair of the mail subject./li licodeSenderAnalyzerKernelTest/code covers the mail sender detection using codeFrom/code mail header field./li /ulpAs they were all similar in the implementation, codeAnalyzerTestBase/code was added. It contains the list of required enabled modules and set up configuration for easier analyzer-specific work. /p pRegarding the web tests, I extended codeMailhandlerWebTest/code with Manage display assertions of GPG key field which can be displayed via the public key, GPG key's fingerprint or as both properties./p pAlso, I would like to update you on status of related Inmail issues:/p ulli dir=ltr p dir=ltra href=https://www.drupal.org/node/2754253Lack of standard result in collaboration of analyzers/a has already a patch provided and it is in the late phase of discussion. I have received the review for the first patch and will work on a new version to support context classes./p /li li dir=ltr p dir=ltra href=https://www.drupal.org/node/2754261Support switching the user context/a is currently postponed because of the a href=https://www.drupal.org/node/2754253dependent issue/a. The patch is already uploaded and it will need to be slightly modified as soon as a href=https://www.drupal.org/node/2754253Lack of standard result in collaboration of analyzers/a is committed./p /li li dir=ltr p dir=ltra href=https://www.drupal.org/node/2757421Send processing report as reply/a is in the discussion status too. After today’s meeting with mentors, we discussed how we can approach the topic and I have more clear steps to proceed./p /li /ulpThe plan for the next week seems quite interesting. Besides the mentioned Inmail issues, I will be working on adding support for a href=https://www.drupal.org/node/2731537creating comments by sending an email/a. All analyzers implemented in the previous week will be used as a part of new comment handler. I am looking forward to enriching Mailhandler with one more feature./p p /p p /p/div span rel=schema:authorspan lang= about=/user/4 typeof=schema:Person property=schema:name datatype=Milos/span/span span property=schema:dateCreated content=2016-07-06T17:47:08+00:00Wed, 07/06/2016 - 19:47/span div class=field field--name-field-tags field--type-entity-reference field--label-above div class=field--labelTags/div div class=field__items div class=field--itema href=/taxonomy/term/2 property=schema:about hreflang=enDrupal/a/div div class=field--itema href=/taxonomy/term/3 property=schema:about hreflang=enOpen source/a/div div class=field--itema href=/taxonomy/term/1 property=schema:about hreflang=enGoogle Summer of Code/a/div div class=field--itema href=/taxonomy/term/4 property=schema:about hreflang=enDrupal Planet/a/div /div /div section rel=schema:comment h2Add new comment/h2 drupal-render-placeholder callback=comment.lazy_builders:renderForm arguments=0=nodeamp;1=7amp;2=commentamp;3=comment token=877bd619/drupal-render-placeholder /section

Into my Galaxy: GSoC’ 16: Port Search Configuration module; coding week #6

Wed, 07/06/2016 - 19:06
pa href=https://groups.drupal.org/google-summer-codeGoogle Summer of Code/a (GSoC) is into the next phase of coding after the mid-Term evaluations which got over by June 27th. This also reminds students to speed up the coding activities to complete the projects within the schedules provided in the proposal./p pI am porting a href=https://www.drupal.org/project/search_configSearch Configuration/a module to a href=https://www.drupal.org/8Drupal 8/a as part of this year#8217;s summer of code. GSoC is definitely turning out to be a venue for the young students from universities around the world to work on real-world projects under the experience of well-known developers, learning new technologies, making use of version control systems, with regular meetings and finally building up a software which is going to help a large section of the society./p pI blog regularly, sharing my project progress. If you would like to have a glimpse of my past activities on this port, please visit this a href=https://geojoyce.wordpress.com/category/gsoc-16/link/a./p pDrupal 8 has introduced the concept of a href=https://api.drupal.org/api/drupal/core%21modules%21system%21templates%21html.html.twig/8.2.xHtml twigs/a in place of the a class= href=https://www.drupal.org/node/1728096PHP/a templates. So, the PHP template files have to be now ported to the Html environment. The .tpl.php template file is replaced by the .html.twig file for the module templates.  Templates are simply text files which can give outputs in Html, Latex, CSV or XML formats./p pTo print some data, we usually take the service of echo statements in PHP.  The print statements are replaced by {{ }} in Html twigs./p blockquoteplt;?php echo t(#8216;Let#8217;s start the process.#8217;); ?gt;/p/blockquote pis replaced by:/p blockquotep{{ #8216;Le#8217;s start the process#8217;|t }}/p/blockquote pThe variable names have to be converted to simple names. For instance,/p blockquotepspan class=token variable$page/spanspan class=token punctuation[/spanspan class=token string#8216;title#8217;/spanspan class=token punctuation]/span/p/blockquote pbecomes/p blockquotep{{  title }}/p/blockquote pThe PHP logics have to be replaced by {% %} syntax. This is applicable to all the logical statements./p blockquotepspan class=pl-pselt;?php/spanspan class=pl-s1 span class=pl-kif/span (span class=pl-smi$page/span[span class=pl-sspan class=pl-pds#8216;title/spanspan class=pl-pds#8216;/span/span]): /spanspan class=pl-psespan class=pl-s1?/spangt;/span/p p#8230;../p pspan class=pl-pselt;?php/spanspan class=pl-s1 span class=pl-kendif/span; /spanspan class=pl-psespan class=pl-s1?/spangt;/span/p/blockquote pis transformed as:/p blockquotep{% span class=pl-kif/span span class=pl-smiform/span %}/p p#8230;#8230;/p p{% span class=pl-kendif/span %}/p/blockquote pAlso, the variables are replaced by simple names./p blockquoteplt;?php if ($logo): ?gt;/p/blockquote pis transformed as:/p blockquotep{% if logo %}/p/blockquote pThese were some of the basic transformations to get started into created the HTML twigs.The use of the Html twigs has made the templates look very simple and easily understandable. It is really easy to get the templates converted to the Html twigs. This is always one of the crucial requirements of porting modules from Drupal 7 to Drupal 8./p pStay tuned for further updates on this port process./pbr / a rel=nofollow href=http://feeds.wordpress.com/1.0/gocomments/geojoyce.wordpress.com/632/img alt= border=0 src=http://feeds.wordpress.com/1.0/comments/geojoyce.wordpress.com/632/ //a img alt= border=0 src=https://pixel.wp.com/b.gif?host=geojoyce.wordpress.com#038;blog=66123643#038;post=632#038;subd=geojoyce#038;ref=#038;feed=1 width=1 height=1 /

Zivtech: Drush: What You Should Know

Wed, 07/06/2016 - 16:00
div class=field-body Every release of Drupal requires its own version of Drush. There are some, but not many, changes for Drush moving from Drupal 7 to Drupal 8. Drush 8 can be used to control the new configuration management system. One change to look out for is that Drush a href=https://drushcommands.com/drush-8x/cache/cache-clear/cache-clear/a (cc) has joined forces with Drush a href=https://www.drupal.org/project/registry_rebuildregistry-rebuild /a(rr) to become Drush cr, or a href=https://drushcommands.com/drush-8x/cache/cache-rebuild/cache-rebuild/a, in Drupal 8. h3br / Understand Drush/h3 Short for Drupal Shell, Drush is a tool that allows developers to work on the command line, an interface that has both benefits and disadvantages to the Drupal UI (user interface). Some tasks, such as building Views, can be done faster in the UI, and some tasks, such as exporting views to a feature, are done faster on the command line. Drush is less of a replacement for the UI and more of a companion to it.br /br / You might even say Drush stands for Drupal Rush because it speeds up the process so nicely. Basically, Drush offers a way around the Drupal user interface. You no longer have to click through the Drupal menu when you use Drush.br /br / Using Drush, developers can import and export databases and features, clear caches, and migrate content from data feeds. Drush can also install modules, run security updates, and run database updates. Developers can also write and implement their own Drush commands.br /br / To start using Drush, there are many different ways to install the setup. One way you can proceed is to install a LAMP stack (Linux, Apache, MySQL, and PHP/Python/Perl), then install Composer, and finally you can install Drush. Here’s a good a href=http://www.drush.org/en/master/install-alternative/tutorial/a.br /br / Sound like a lot of steps? Maybe, but once you use it, there’s no going back. Dan Zinkevich, one of our staff developers, says, “I use Drush a lot during development. There are times when I can go a long time without opening my browser because all the commands that I need are available via Drush.” Dan recommends that Drupal developers learn Drush immediately, especially if they are committing code to a database. br /br / Learning to use Drush is a bit like learning a language. There are dozens of a href=https://groups.drupal.org/drush/commandscommands/a. And there are also many plug-in commands from third party sources. Here’s a a href=https://drushcommands.com/helpful site/a that breaks down commands by Drush version, and provides documentation for each. h3br / Go Faster. Add Fetcher./h3 If you build a lot of sites, then you end up with a lot of repetitive tasks. There are commands a developer runs repeatedly. Zivtech’s VP of Engineering, Howard Tyson, is a major fan of automation. He created Drush Fetcher, an extension that automates the process of provisioning a Drupal site on a local development environment or a server. “It used to take 30 to 45 minutes to set up a site, and now it takes 3 minutes,” explains Howard. “Fetcher doesn’t take away the cognitive load. It takes away the monkey work.”br /br / Fetcher can set up the Drupal root, fetch the code, create a database for the site and a user with management privileges, update permissions, create symlinks, set up server configuration files, and generate Drush alias files. Fetcher also supports post installation tasks.br /br / Drush and Fetcher are not about cutting corners. They simply bypass the web interface of Drupal. You don’t have to click through the menu to get the actions you want. And that’s a huge time saver. br / /div nav role=navigation class=links-inline/nav

Mediacurrent: Ramping Up with the AMP Module in Drupal 8

Wed, 07/06/2016 - 15:14
img typeof=foaf:Image src=http://d1l4od7sxc8nwf.cloudfront.net/sites/default/files/styles/thumb_blog_spotlight/public/google-amp2.png?itok=bibTI4or width=200 height=152 / pBy now, you should have heard about the latest buzz that is Google AMP - but if not, check out our previous introductory post to learn about the benefits (and potential pitfalls)./p