Planet Drupal

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

Acquia Developer Center Blog: Terrific Tools for Drupal 8 Training

Wed, 08/26/2015 - 19:20
div class=field field-name-field-blog-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=https://dev.acquia.com/sites/default/files/rocknroll_3.jpg width=849 height=565 alt= //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpWe couldn’t have trained dozens of Acquia employees on Drupal 8 without using various applications to schedule, measure our progress, and follow communications about the massive undertaking./p pLet’s take some time in this, the fifth blog in a a href=https://dev.acquia.com/blog/organizing-to-rock-with-Drupal-8series about Drupal 8 instruction/a, to give a quick overview of the tools we used to train./p pWe used the collaboration software strongConfluence/strong because we could set it up quickly. a href=https://dev.acquia.com/author/kent-galeKent Gale/a, the co-author of this blog and my partner in the training project, and I would have preferred to have built a tool within Drupal. But we went with Confluence because we were able to deploy it quickly and edit content. It’s where we placed project documentation to enable in-place editing./p pCalendars kept in strongGoogle Docs spreadsheets/strong accounted for every employee’s time. Every trainee had time blocked off each week for training. It was protected time, so to speak, agreed upon by employee and supervisor – time that was free of any other obligation. Each week, I’d also schedule 30 minutes with each employee – although meetings didn’t last that long – to talk about training. I wanted to see if they faced any barriers or had questions they were too embarrassed to ask in training sessions. We found this hands-on check-in – which was brief but frequent – kept everyone on track./p pWe also used strongemail and a chatroom/strong to communicate. Initially, email was the preferred route, but as more people enrolled in training, the chatroom was better able to handle the flow of communications. The spontaneity of a chatroom allowed a lot of questions to be answered quickly. It built a resource as well as type of behavior./p pOn our strongtracking sheet/strong, we followed the time each employee spent on training and could see how much time was left. We also tracked the lessons they completed and could see if a team fell behind and could quickly address why./p pWhen you’re ready to train, find a tool and use it a lot before starting the program to ensure it will accomplish what you need. Then pick an end date and work backwards. That will tell you how much time you’ll have. From there, you’ll be able to determine if you should compress training to reach a deadline or if you can spread it out over time./p pAs organized and motivated as we were, and despite starting early, it was still difficult to carve out time for nearly 50 people, and keep our end-date within reach. It was a commitment. So keep that in mind: Your managers and employees have to commit to protecting training time to make it all happen. Otherwise, it’s very easy to let the opportunity slip away./p /div/div/divdiv class=field field-name-field-blog-type field-type-taxonomy-term-reference field-label-abovediv class=field-labelBlog series:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/blog-series/organizing-rock-drupal-8 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Organizing to Rock with Drupal 8/a/div/div/divdiv class=field field-name-field-blog-workflow field-type-workflow field-label-abovediv class=field-labelWorkflow:nbsp;/divdiv class=field-itemsdiv class=field-item evenPublished/div/div/divdiv class=field field-name-field-blog-featured field-type-list-boolean field-label-abovediv class=field-labelFeatured:nbsp;/divdiv class=field-itemsdiv class=field-item evenNo/div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tags/acquia-drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=acquia drupal planet/a/div/div/divdiv class=field field-name-field-blog-drupal-8-related field-type-list-boolean field-label-abovediv class=field-labelDrupal 8 related:nbsp;/divdiv class=field-itemsdiv class=field-item evenYes/div/div/divdiv class=field field-name-field-author field-type-entityreference field-label-abovediv class=field-labelAuthor:nbsp;/divdiv class=field-itemsdiv class=field-item evenThomas Howell/div/div/div

Mediacurrent: Accessible Names - Label All the Things! (Part 2)

Wed, 08/26/2015 - 18:52
img typeof=foaf:Image src=http://d1l4od7sxc8nwf.cloudfront.net/sites/default/files/styles/thumb_blog_spotlight/public/accessibility-01.png?itok=ZotZWu7M width=200 height=152 alt=Accessibility title=Accessibility / h3Label the Rest of the Things!/h3

Singlebrook Technology: Styleguide Driven Development in Drupal

Wed, 08/26/2015 - 18:37
pAt Singlebrook, we're using Styleguide Driven Development to create efficiency and strengthen code quality. /p pJeff Amaral led a session at Cornell Drupal Camp 2015 on the topic of Styleguide Driven Development. He#160;has shared his slides here as a downloadable PDF: a href=/system/resources/W1siZiIsIjIwMTUvMDgvMjYvMTYvNDQvMDEvNTY5L1NpbmdsZWJyb29rX1N0eWxlZ3VpZGVfRHJpdmVuX0RldmVsb3BtZW50X2luX0RydXBhbC5wZGYiXV0/Singlebrook%20Styleguide%20Driven%20Development%20in%20Drupal.pdf title=Singlebrook Styleguide Driven Development In DrupalSinglebrook Styleguide Driven Development in Drupal/a.#160;/p pThe slides contain an outline of major points to consider when using Styleguide Driven Development, as well as some links to helpful resources.#160;/p pIntroduction: /p pTheming in Drupal has many challenges. The biggest, in our experience at Singlebrook, is coordinating the creation of new site functionality and the CSS styling of the new markup, especially when multiple developers are working on a site. /p pIn this session, we discuss our brand new theming process using CSS/HTML components, some extensions to the styleguide module, and improved developer/themer communication. We cover:...

Advomatic: Altering Data For a Drupal 8 Migration, Step-by-Step

Wed, 08/26/2015 - 18:00
pWe’re working on our first Drupal 8 project here at Advomatic, and Jim and I have been tasked with implementing a content migration from the client’s existing Drupal 6 site. My first assignment was to write a plugin which rewrites image assist tags in node body fields as regular HTML image tags. Fortunately, lots of... a class=excerpt-read-more href=https://www.advomatic.com/blog/altering-data-for-a-drupal-8-migration-step-by-step title=ReadAltering Data For a Drupal 8 Migration, Step-by-StepRead more #187;/a/p pThe post a rel=nofollow href=https://www.advomatic.com/blog/altering-data-for-a-drupal-8-migration-step-by-stepAltering Data For a Drupal 8 Migration, Step-by-Step/a appeared first on a rel=nofollow href=https://www.advomatic.comAdvomatic/a./p

ThinkShout: Migrating from Luminate CRM to Drupal and the Salesforce Nonprofit Starter Pack

Wed, 08/26/2015 - 17:00
pWe#39;ve helped a number of nonprofits move from Luminate CRM to Drupal-Salesforce solutions, including the Young Survival Coalition, Facing History and Ourselves, the National Kidney Foundation, and the Los Angeles Conservancy./p pWithout getting too deep into the technical architecture - a href=http://thinkshout.com/blog/2015/04/salesforce-new-features/which you can nerd out on in other posts on our blog/a - our open source Salesforce integration can map any object/field in Salesforce to a corresponding entity type/field in Drupal. We can then sync these records bidirectionally. We can even support complex, cascading upserts of multiple records in real time./p pThis allows us to leverage everything that’s great about Drupal (CMS tools, personalization, paid and unpaid event registrations, membership purchases, general ecommerce, and user access controls) with everything that’s great about Salesforce#39;s Nonprofit Starter Pack (NPSP) 3.0 (best-in-class donor management, unlimited extendability and scalability, flexible and intuitive reporting tools, and the most robust Application Exchange available)./p pIt#39;s always been clear that Salesforce provides much better constituent relationship management tools on the backend than Luminate or other Convio/Blackbaud products. What’s kept Luminate in the game for so long has been its public-facing web features, such as membership management and event registration tools./p pThat said, there is no way that Luminate could ever keep up with the pace of innovation that we see with comparable features in Drupal. The open source model and volume of contributions from the Drupal community is unparalleled. Leveraging Drupal as a donor/constituent front-end for Salesforce, we can provide seamless user experiences that engage with website visitors more deeply, because we can personalize these experience based upon data pulled from Salesforce’s API./p pstrongTake the Los Angeles Conservancy as a case study:/strong/p pWhen we met the a href=https://www.laconservancy.org/Conservancy/a, they were struggling to engage stakeholders through an aging website and cumbersome collection of Luminate donation and event management tools. Asking website visitors to click away from their website to third-party forms provided by Convio severely hurt their conversion rates. Mobile event registrations and contributions were almost nonexistent on their site./p pThe Conservancy wanted an interactive and mobile-friendly solution that would allow their constituents to easily sign up for free walking tours, buy tickets to movie events, update their membership information, set up recurring membership payments, and make donations towards different fundraising campaigns./p pBy leveraging Drupal event registration and ecommerce tools, we were able to build all of these features within the Conservancy’s new responsive website. This provided a much more seamless user experience. Conversion rates soared as a result. In fact, the Conservancy staff came to us 3 months after the relaunch concerned that their Google Analytics showed decreased traffic on their event registration pages. They worried that they were losing registrations - when in reality, their conversation rates were going up so dramatically, and the time for completing an ecommerce transaction was dropping so quickly, that these forms were seeing less page clicks while their volume of transactions and their revenue was going up./p pWith Drupal-based event registration and donation tools, we have 100% control over ecommerce workflows. We can also support complex pricing options based upon constituent data in Salesforce. For example, we can adjust ticket pricing based upon membership status. Again, we benefit from Drupal Commerce, an ecommerce solution that powers over 60,000 websites, including some of the largest stores on the Internet./p pFurther, integrating these Drupal-Salesforce solutions with a href=http://home.iatspayments.com/iATS Payments/a, we can create Drupal-based donation portals that support “card on file” as well as recurring donations. And with iATS’s integration with Salesforce, donors can update their credit card information or make a donation over the phone by calling the Conservancy, storing this payment information for their next online transaction./p pIn short, Convio/Blackbaud just can’t compete… With what our clients save in confusing and expensive Blackbaud licensing fees, we can build more effective fundraising solutions that lead to much higher returns for their investment./p

Drupal Watchdog: VIDEO: DrupalCon Los Angeles Interview: Jeremy Rasmussen

Wed, 08/26/2015 - 16:22
div class=field field--body field-type-text-with-summary field-label-hidden field--rss p“People like the beard,” quips strongJeremy Rasmussen/strong (Director of Web Development, Lever Pulley), who writes a frequent column in magazine (Subscribe! a href=https://drupalwatchdog.com/subscribe/2015https://drupalwatchdog.com/subscribe/2015/a)br / about Drush, that Swiss Army knife that “makes Drupal bend to your will.”/p /div div class=field field--tags field-type-taxonomy-term-reference field-label-above field--rss div class=field-labelspan class=icon glyphicon glyphicon-tag aria-hidden=true/spanTags:nbsp;/div div class=field-items a href=/tags/video typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Video/a a href=/tags/drupalcon-la typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=DrupalCon LA/a a href=/tags/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a /div/div div class=field field--video field-type-video-embed-field field-label-above field--rss div class=field-labelVideo:nbsp;/div div class=embedded-video div class=player iframe width=640 height=360 src=//www.youtube.com/embed/2QGhdSp15TY?width=640amp;height=360amp;autoplay=0amp;vq=largeamp;rel=0amp;controls=1amp;autohide=2amp;showinfo=1amp;modestbranding=0amp;theme=darkamp;iv_load_policy=1amp;start=0amp;wmode=opaque frameborder=0 allowfullscreen/iframe /div /div /div

Pronovix: 6 days to win 50k USD with the new context.io module — a powerful mailhandler alternative

Wed, 08/26/2015 - 14:25
pWe’ve just released a href=https://www.drupal.org/project/contextioContext.IO/a, an API module with a a href=https://drupal.org/project/feedsFeeds/a] plugin submodule that uses the context.io API to import emails into a Drupal site. If you build something interesting with the module in the next 6 days, you can participate in the a href=http://contextio.devpost.com/Context.IO App challenge/a and make a chance to win 50k USD./p

Zivtech: Website Documentation Tips and Insights

Wed, 08/26/2015 - 13:30
div class=field-body pManaging a website without documentation is like trying to put together Ikea furniture without the directions--it's just not happening. Often, documentation is overlooked by companies and organizations on a budget, but it is a truly invaluable part of building a new website. Check out some great tips and tricks from our team of technical documenters, and learn how we provide our clients with documentation for their sites./p h2 Write with Efficient Tools/h2 Writing documentation requires generating dummy content, and a href=/node/31313our earlier post on lorem ipsum generators/a give you lots of tools for generating placeholder text. However, technical writers also need to create annotated screenshots to accompany the words that they write, as well as repeat the actual technical steps they are documenting. So here are some additional tools we found to be great assets to a documentarian's repertoire: ulli a href=http://www.awesomescreenshot.com/Awesome Screenshot/a - Use to take screenshot of a full webpage with auto-scrolling. Also provides a link to share your screenshot (stored on the cloud)./li li a href=https://chrome.google.com/webstore/detail/window-resizer/kkelicaakdanhinjdeammmilcgefonfh?hl=enWindow Resizer/a - Save pre-configured browser window sizes to capture your responsive design layouts./li li a href=https://chrome.google.com/webstore/detail/no-scroll-bars-please/ahnbemfjhoibkhlijfbbjdjafbmhimdn?hl=enNo Scrollbars Please!/a - Remove the scrollbar from your browser to take a clean screenshot (especially of a webpage requiring scrolling)./li li a href=https://evernote.com/skitch/Skitch/a - Use to capture desktop screenshots and annotation with arrows and text. We use it in combination with the extensions above./li li a href=http://www.seleniumhq.org/projects/ide/Firefox Selenium IDE/a - Automate the repetitive technical steps that you are documenting./li /ulbr /h3 Confluence Macros/h3 If you use a href=https://www.atlassian.com/software/confluenceConfluence/a (an Atlassian product for documentation that integrates with a href=https://www.atlassian.com/software/jiraJIRA/a), then check out the following Confluence macros which we find to be extremely useful.br /ulli a href=https://confluence.atlassian.com/display/DOC/Code+Block+MacroCode Block/a - Insert code snippets throughout a page with syntax highlighting/li li a href=https://confluence.atlassian.com/display/DOC/Excerpt+MacroExcerpt/a and a href=https://confluence.atlassian.com/display/DOC/Excerpt+Include+MacroExcerpt Include/a - Reuse a part of documentation on multiple pages/li li a href=https://confluence.atlassian.com/display/DOC/Expand+MacroExpand/a - Initially hide some documentation as a link, which expands to display content upon a click on the link/li li a href=https://confluence.atlassian.com/display/DOC/Info%2C+Tip%2C+Note%2C+and+Warning+MacrosInfo, Tip, Note, and Warning/a - Callout important information, such as status of the feature documented and release versions./li li a href=https://confluence.atlassian.com/display/DOC/Panel+MacroPanel/a - Add border (like a box) to separate some documentation from the rest/li li a href=https://confluence.atlassian.com/display/DOC/Table+of+Contents+MacroTable of Contents/a - Great for the beginning of a tutorial guide or as a sidebar on a long page/li li a href=https://confluence.atlassian.com/display/DOC/Page+Tree+MacroPage Tree/a - Great on a page that introduces a topic with sub pages/li /ulbr /h2 Be Agile with Documentation/h2 pIf you are agile, your documentation can be too. In a Johnson amp; Johnson Drupal project, we are providing documentation services as technical writers embedded amongst developers. Because we are integrated as part of their agile development process, we track our work in a href=https://www.atlassian.com/software/jiraJIRA/a, participate in standups and retrospectives, such that documentation is continuously up to date with each sprint. We find that writing in agile iterations is a great way to capture feedback from various parties involved, including product owners, developers, and users in trainings. This way, strong documentation can be produced to maximize support for everyone on the project. Writing technical documentation is easier and more efficient to do in-sprint, while the features being documented are still present in the minds of the developers and product owners./p h2 Find the Voice for Your Audience/h2 Documentation being agile also means that you can adapt your writing voice to best suit your audience. Try to always learn more about your audience as you write documentation throughout the project. So far, this blog post has been written in an informative, technically instructional voice. Now say that our audience wants something lighter, more familiar, and empowering, then perhaps we should adapt our voice to something as follows.br /h3 br / Ask Not What Your Product Can Do For You — Ask What You Can Do With Your Product/h3 pWhen doing technical writing, it's easy to be... well, emtoo/em technical. Just because you're a technical writer doesn't mean you should think of your audience as technical readers. Your audience consists of people that want to emdo/em things. Empower them! Don't drone on and on about how this product does many things (yawn), when you can enable your reader by telling them You can do many things with this product! Yes, sometimes the product simply provides, but any opportunity you have to inform the reader of what they can do, instead of telling them what the product does, take it./p ulli strongBoring:/strong From the dropdown menu, a number of items are available. Selecting one will customize this feature./li li strongEmpowering:/strong By clicking the dropdown menu, you will see a number of items available to you for customizing this feature. Choose the option that best embodies the spirit of your brand./li /ul Much better, right? The first example, while emtechnically/em sufficient, does little to engage the reader, and does the bare minimum to inform them of what needs to be done. The second example puts them in charge of driving the product, and uses you to communicate directly to them. Also, the second sentence of the emempowering/em example informs the reader of what their motivating reason behind making their choice is. Don't just tell your readers emhow/em to do things; let them emwhy/em they're doing things and emwhat/em it can do for them and/or their business.br /br /br / Every website is different, so technical writing should be flexible, adaptive, and leverage the best tools to complete documentation for its team.br /br / Want to learn more about about documentation? Check out our a href=https://www.zivtech.com/services/training target=_blankTraining amp; Documentation/a page. /div span class=field-label Terms: /span ul class=field-taxonomy-vocabulary-2 inline li a href=/tags/drupal-planetDrupal Planet/a /li li a href=/tags/documentationdocumentation/a /li li a href=/tags/drupalDrupal/a /li /ul h3 class=field-label Related Services /h3 div class=panel-display panel-1col clearfix div class=panel-panel panel-col div div class=field-title h4Training/h4 /div div class=field-body We turn smart people into great developers. /div div class=field-node-link a href=/services/trainingRead more/a /div /div /div /div nav role=navigation class=links-inline/nav

Realityloop: Drupal Development tips for Common Problems

Wed, 08/26/2015 - 08:21
div class=field field-name-post-date field-type-ds field-label-hidden span class=day26/span Aug /div div class=field field-name-author field-type-ds field-label-hidden Jarkko Oksanen /div div class=field field-name-field-imageimg typeof=foaf:Image src=http://realityloop.com/sites/realityloop.com/files/file00022019705.jpg width=1280 height=848 alt= //divdiv class=field field-name-bodypSome problems when developing are simply annoying, and show up again and again. Many of these are relatively tricky to solve without knowing the best solution for the problem. I’ve combined my answers to a few of these problems that I've found I run into often./p h31. You need to access Drupal site with no login details/h3 pSometimes it just happens that there will be a website that you need to manage, and you don't have the administration password for it. You might think that there is a reset password functionality, but if the email of the administrator is invalid, getting the password is not so simple./p h4Use Drush to generate an one-time login link/h4 pThis is a very quick and easy way to get logged into Drupal. It only requires that you have server access and Drush (http://www.drush.org/) is installed. The drush command you would use is:/p pre span class=geshifiltercode class=text geshifilter-textdrush uli/code/span/pre pDrush will then output you a one-time user login link for this particular website. The Drush command has options that you can add to it that are listed below./p p class=rteindent1strong--browser/strong : Optional value denotes which browser to use (defaults to operating system default). Set to 0 to suppress opening a browser.br / strong--uid/strong : A uid to log in as.br / strong--redirect-port /strong: A custom port for redirecting to (e.g. when running within a Vagrant environment)br / strong--name/strong : A user name to log in as.br / strong--mail/strong : A user mail address to log in as./p pA more advanced command example would be:/p pre span class=geshifiltercode class=text geshifilter-textdrush uli --browser=firefox --name=admin node/2/code/span/pre pThis would log you in using firefox, for the admin user, and redirect you to node/2./p pemFor more to read on Drush check outa href=http://http://www.drush.org/en/master/ http://www.drush.org/en/master//a/em/p h4Update password using the database/h4 pIn the case Drush isn’t available, your only option may be accessing the database. The idea is to simply change the encrypted password to another one through the database. If you’re using a GUI such as Sequel Pro, all you need to do is to navigate to users and change the encrypted password of the user admin./p pWithout a GUI, you can do it with a simple MySQL query./p pre span class=geshifiltercode class=text geshifilter-textUPDATE users SET name='admin', pass='$S$DfQ/y58nGpZvyRLYd3LSyJ.s82xSC3Z.2oxdCIL4EHKAYcQnDl9T' WHERE uid = 1;/code/span/pre pThis would set the password of admin, if its the stronguid/strong 1, to “lol”. This is an encrypted password string. To create your own password hash you can navigate to Drupal docroot and run the following command./p pre span class=geshifiltercode class=text geshifilter-textphp scripts/password-hash.sh 'yourpassword'/code/span/pre pAnd it will generate you an encrypted password./p h4Use a module to hack your way through/h4 pThis is a solution I would only use on local setups to change my password. There is no real use case for using this on production servers, as it logs everyone in as user 1 that try to access the site. However, if you don’t have any server access, and can only push code to the server, this might be your only shot./p pre div class=geshifilterpre class=text geshifilter-textolli class=li1div class=de1global $user;/div/lili class=li1div class=de1$user = user_load(1);/div/li/ol/pre/div/pre pThen you can go change the account settings or promote other users to uid 1./p pnbsp;/p h32. No images show up on my local development site/h3 pAs we know, Drupal consists of three components, the database, the codebase and the files. The third one is considered the least important when developing, but to thoroughly test your work you do need the images to show up./p pThere is often an issue that the Drupal site that you are working on has hundreds if not thousands of large images which could end up as large as 10gb downloads, and downloading this for your local setup is simply not worth it. Fortunately there are a few solutions that you can use to conquer the problem./p h4Stage file proxy/h4 pa href=https://www.drupal.org/project/stage_file_proxyhttps://www.drupal.org/project/stage_file_proxy/a/p pStage file proxy regenerates the image links in a way that they will use the production server to get the images, and doesn't make you download them to your local setup. However default behavior of the module downloads the files when they’re missing. I encourage using the “Hotlink” mode of the module which does as previously explained.br / br / Installing Stage File Proxy can be as simple as :/p pre div class=geshifilterpre class=text geshifilter-textolli class=li1div class=de1drush en stage_file_proxy -y/div/lili class=li1div class=de1drush variable-set stage_file_proxy_origin quot;http://www.example.comquot;/div/li/ol/pre/div/pre pBut in most cases I find that saving the settings manually from the configuration is needed. It supports even locked in sites, with more documentation at a href=https://www.drupal.org/project/stage_file_proxyhttps://www.drupal.org/project/stage_file_proxy./a/p h4Using JS to populate images with a dummy image/h4 pIf you are working without an internet connection or there are issues with stage file proxy, then what you can do is to use JS to populate broken images with dummy images. This doesn't respect Drupal image styles, but it is a way to play with images. Add it to your JS after document ready./p pre div class=geshifilterpre class=text geshifilter-textolli class=li1div class=de1$('img').error(function(){/div/lili class=li1div class=de1 $(this).attr('src', quot;/dummy-image.jpgquot;);/div/lili class=li1div class=de1});/div/li/ol/pre/div/pre h33. Getting a database without server access/h3 pGetting a database, files and code from your Drupal website can sometimes be tricky, especially when you have no server access. For example; you are working on a client site that has been forgotten somewhere in the cloud for a year, and no one has access to the server, there is still a solution you can try to get a copy of the site./p h4Use the Backup and Migrate module./h4 pa href=https://www.drupal.org/project/backup_migratehttps://www.drupal.org/project/backup_migrate/a/p pstrongFortunately most cloud servers allow modules to be installed on the fly./strong All you need to do is to use Drupal UI to install this module and you’ll be able to get a copy of the website easily. To do this you need to enable Update Manager, and then install the file using /admin/modules/install user interface. If the server where your website is does not support this, then you need to gain access to the server./p pThe latest version of the Backup and Migrate module allows you to get a whole site with database, files and code. For simpler sites, using this module is great./p h34. Moving modules around in a Drupal setup causes errors/h3 pDrupal gets angry when you move modules around in a setup. When you as a developer get your hands on a drupal website that other people have worked on, often the first instinct is to move the modules into a correct directory. Doing this can cause errors on the site and often results in a a href=http://www.webopedia.com/TERM/W/white_screen_of_death.htmlWSOD/a./p pstrongThe error that results is often something like follows:/strong/p pemFatal error: require_once(): Failed opening required '/profiles/profile/modules/contrib/entity/includes/entity.inc' in /profile/includes/bootstrap.inc on line 3161/em/p pThis is due to Drupal looking at functions where they were before, and now don’t exist anymore. To fix this issue you need to fix the module paths./p h4Repair paths via drush registry rebuild/h4 pDrush to the rescue again! Compared to the manual solution explained after, this is definitely faster and a safer solution. Install Drush rebuild registry by running the following command (you need to have drush installed first):/p pre span class=geshifiltercode class=text geshifilter-textdrush dl registry_rebuild/code/span/pre pAfter you’ve moved the modules to the directory you want just run the drush registry rebuild command./p pre span class=geshifiltercode class=text geshifilter-textdrush rr/code/span/pre pThis will go through your module registry and fix all of the broken connections./p pThen clear your drupal caches, and if needed re-run the drush rr command./p pDo not blindly trust the power of this command on production servers. I would recommend thorough testing before moving modules around and doing these changes on live sites, as it can become a mess. strongAlways remember to take a backup of your database!/strong/p h4Repair module paths manually/h4 pIf for some annoying reason you cannot use the power of Drush, or it has failed you, you can still do things manually. Manually fixing is time consuming if you’re doing a lot of changes to your directory structure. Remember to backup your database before starting./p ol liMake sure you’re logged in your Drupal setup before moving the modules. This allows you to access the /admin/modules page. Accessing this page rebuilds the system table which might solve your problem. Move your modules to the directory you want, and access the /admin/modules page.br / nbsp;/li li pIf the problem still continues you need to manually fix the following tables: system, registry and registry_file. The have filenames for each module, these need to be fixed as they are pointing to wrong directions. The following query is an example and was used when moving modules from the profile to a sites/all/modules/contrib setup./p pre div class=geshifilterpre class=text geshifilter-textolli class=li1div class=de1UPDATE system SET filename = REPLACE(filename, profiles/myprofile/modules', 'sites/all/modules/contrib');/div/lili class=li1div class=de1UPDATE registry SET filename = REPLACE(filename, 'profiles/myprofile/modules', 'sites/all/modules/contrib');/div/lili class=li1div class=de1UPDATE registry_file SET filename = REPLACE(filename, profiles/myprofile/modules', 'sites/all/modules/contrib');/div/li/ol/pre/div/pre pnbsp;/p /li li pAfter doing the changes, clear your Drupal caches and keep your fingers crossed for success. You might need to clear all the caching from the database as well./p /li /ol h35. Creating your re-usable local.settings.php/h3 pstrongThis is more of a personal touch./strong In my local development I’ve tried to create a local.settings.php that is relatively universal to all of my projects./p pThere are modules that always cause issues with local development such as securepages, or just need config, such as the before described stage_file_proxy. The local.settings.php is a file that is added to your docroot to provide these settings and make it faster for you to develop./p pre div class=geshifilterpre class=text geshifilter-textolli class=li1div class=de1# Local site configuration settings./div/lili class=li1div class=de1if (is_readable('/path/to/site/sites/default/local.settings.php')) {/div/lili class=li1div class=de1 include_once('/path/to/site/sites/default/local.settings.php');/div/lili class=li1div class=de1}/div/li/ol/pre/div/pre pAnd on your local when you’re setting up your site, you just add your optimal local settings php./p pThis is my current version of the local.settings.php. Check out my latest one at a href=https://github.com/JaOksanen/local-settings-php/tree/masterGitHub/a and feel free to contribute to it, or add your comments below. The idea would be to include as much as I can in a file, as extra config doesn't really matter!br / This will speed up your development by making sure that the settings you want are there, and most importantly done without clicking around the site!/p pre div class=geshifilterpre class=text geshifilter-textolli class=li1div class=de1global $conf;/div/lili class=li1div class=de1nbsp;/div/lili class=li1div class=de1// Turn off Secure Pages. Secure Pages Module./div/lili class=li1div class=de1$conf['securepages_enable'] = FALSE;/div/lili class=li1div class=de1$conf['https'] = FALSE;/div/lili class=li1div class=de1nbsp;/div/lili class=li1div class=de1// Stage File Proxy Configuration/div/lili class=li1div class=de1$conf['stage_file_proxy_origin'] = 'http://mysite.com';/div/lili class=li1div class=de1// Stage file optional with securepages/div/lili class=li1div class=de1// $conf['stage_file_proxy_origin'] = 'http://username:password@mysite.com';/div/lili class=li1div class=de1$conf[quot;stage_file_proxy_use_imagecache_rootquot;] = FALSE;/div/lili class=li1div class=de1$conf['stage_file_proxy_hotlink'] = TRUE;/div/lili class=li1div class=de1nbsp;/div/lili class=li1div class=de1nbsp;/div/lili class=li1div class=de1// Turn off Caching./div/lili class=li1div class=de1$conf['cache'] = 0;/div/lili class=li1div class=de1// Block caching - disabled./div/lili class=li1div class=de1$conf['block_cache'] = 0;/div/lili class=li1div class=de1// Expiration of cached pages - none./div/lili class=li1div class=de1$conf['page_cache_maximum_age'] = 0;/div/lili class=li1div class=de1// Aggregate and compress CSS files in Drupal - off./div/lili class=li1div class=de1$conf['preprocess_css'] = 0;/div/lili class=li1div class=de1// Aggregate JavaScript files in Drupal - off./div/lili class=li1div class=de1$conf['preprocess_js'] = 0;/div/lili class=li1div class=de1nbsp;/div/lili class=li1div class=de1// Minimum cache lifetime - always none./div/lili class=li1div class=de1$conf['cache_lifetime'] = 0;/div/lili class=li1div class=de1// Cached page compression - always off./div/lili class=li1div class=de1$conf['page_compression'] = 0;/div/lili class=li1div class=de1nbsp;/div/lili class=li1div class=de1nbsp;/div/lili class=li1div class=de1// Turn off other caching./div/lili class=li1div class=de1$conf['css_gzip'] = FALSE;/div/lili class=li1div class=de1$conf['javascript_aggregator_gzip'] = FALSE;/div/lili class=li1div class=de1nbsp;/div/lili class=li1div class=de1nbsp;/div/lili class=li1div class=de1// Turn on all error reporting for local development./div/lili class=li1div class=de1error_reporting(-1);/div/lili class=li1div class=de1$conf['error_level'] = 2;/div/lili class=li1div class=de1ini_set('display_errors', TRUE);/div/lili class=li1div class=de1ini_set('display_startup_errors', TRUE);/div/li/ol/pre/div/pre pThis will speed up your development by making sure that the settings you want are there, and most importantly done without clicking around the site!/p pThese are just some of the problems have come up during the days. If you have one you’re always running into, feel free to leave a comment about it!/p /divdiv class=field field-name-field-tagsdrupal planetdrupaldevelopmenttips/div

Modules Unraveled: 146 Drupal Update Automation and Drop Guard with Manuel Pistner - Modules Unraveled Podcast

Wed, 08/26/2015 - 07:00
div class=field field--name-field-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evenimg typeof=foaf:Image src=https://modulesunraveled.com/sites/default/files/styles/podcast_default/public/podcast/image/ManuelPistner.jpg?itok=3rcH2eGZ width=318 height=480 alt=Photo of Manuel Pistner //div/div/divspan class=submitted-byPublished: Wed, 08/26/15/spandiv class=field field--name-field-podcast-file field--type-file field--label-hiddendiv class=field__itemsdiv class=field__item evendiv class=mediaelement-audioaudio src=http://traffic.libsyn.com/modulesunraveled/146_Drupal_Update_Automation_and_Drop_Guard_with_Manuel_Pistner_-_Modules_Unraveled_Podcast.mp3 class=mediaelement-formatter-identifier-1440567869-0 controls=controls /audiodiv class=mediaelement-download-linka href=http://traffic.libsyn.com/modulesunraveled/146_Drupal_Update_Automation_and_Drop_Guard_with_Manuel_Pistner_-_Modules_Unraveled_Podcast.mp3Download this episode/a/div/div/div/div/divdiv class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item even property=content:encodedh2Update Automation/h2 ulliI’d like to talk a little bit about automation processes in general before we jump into Drop Guard, if that’s okay. What types of things are we talking about updating? Server configuration? Drupal projects? Deployment?/li liWhat are some of the technologies you were using before developing Drop Guard? Maybe the underlying pieces that make up the Drop Guard architecture./li /ulh2Drop Guard/h2 ulliWhat is Drop Guard? ulliSimply put, Drop Guard is a service to automate Drupal updates with seamless integration into development and deployment processes. Drop Guard helps Drupal shops and other Drupal support and service providers to automate their update work. In case of critical security updates Drop Guard will update the site automatically within 1 hour. This makes the operation of a site more secure and reliable and makes Drupal updates a full part of the development process. /li /ul/li liYou said it’s “integration into development and deployment workflows.” What do you mean by that? ulliDrop Guard works simply as a dedicated team member that is responsible for applying updates in the development as well as in the maintenance and support life-cycle of a project. You can configure Drop Guard to work with any hosting provider and with any team workflow. Drop Guard can execute different Rules-Based commands to trigger deployment actions just as a real team member would do it on manual update work./li /ul/li liHow granular can you get with updates? Security only? All updates?/li liHow does Drop Guard actually work? Is there a module to install? Server setup?/li liWhat happens if a bug is introduced with an automatic update? Is there a process to notify the developer?/li liWho is Drop Guard designed to be used by? ulliDrop Guard is designed to help Drupal agencies and freelancers to deliver Drupal update services automatically. Every Drupal shop can use Drop Guard as a white label service to deliver update services to their clients as part of support contracts. For end users that don’t understand the processes behind deployment and developement deeply enough, the service is too complex but Drupal shops will definitely benefit from additional developer time that they can save for their project business./li /ul/li liWhat prompted you to start building the Drop Guard service? And when was that? ulliWe started with the base technology in 2012 to build a system for our internal support contracts. We had the need to automate recurring things and ensure that our SLAs for security patches are processed reliably. When Drupalgeddon shocked the Drupal world and many sites had to be patched in a very short period of time, we already had the benefit of automated updates for our supported projects. At this point I realized that the system might have a benefit for other Drupal shops. So Drop Guard has its birthday with Drupalgeddon :-)/li /ul/li liDo you have any insights of the roadmap of Drop Guard? ulliSure! Currently we are in an internal Beta phase. That means we harden the service with some trusted users and we will add more beta users each week till the end of September.Then we will open Drop Guard for a public Beta version where everybody that is interested can start using the service with the help of our support team. I am sure that there are many usability issues we will face as the high flexibility results in a more complex configuration processes. But thanks to our current beta users we were able to address and fix many of them till now. Also the Feedback from Drupalcon Barcelona visitors will be an important milestone for us./li /ul/li liDoes this work with all hosting providers? (VPS, Pantheon, Platform.sh, Acquia cloud etc.)/li liWhat does the pricing structure look like after the beta period?/li liYou mentioned there’s an incentive for people to get involved with the beta now. Do you want to talk about that?/li /ul/div/div/divdiv class=field field--name-field-items-mentioned field--type-link-field field--label-abovediv class=field__labelEpisode Links:nbsp;/divdiv class=field__itemsdiv class=field__item evena href=https://www.drupal.org/u/manuelBS rel=nofollow target=_blankManuel on drupal.org/a/divdiv class=field__item odda href=http://twitter.com/manuelpistner rel=nofollow target=_blankManuel on Twitter/a/divdiv class=field__item evena href=https://twitter.com/drop_guard rel=nofollow target=_blankDrop Guard on Twitter/a/divdiv class=field__item odda href=http://www.drop-guard.net rel=nofollow target=_blankDrop Guard Website/a/divdiv class=field__item evena href=http://www.drop-guard.net/webinar.html rel=nofollow target=_blankDrop Guard Webinar/a/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 evena href=/tags/automation typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Automation/a/divdiv class=field__item odda href=/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planet-drupal/a/div/div/div

OSTraining: Drupal Error: More Than 5 Failed Login Attempts

Wed, 08/26/2015 - 02:22
pIf you've forgotten your Drupal password and try unsuccessfully to login, you may get this message:/p pSorry, there have been more than 5 failed login attempts for this account. it is temporarily blocked/p pThe image below shows how the message appears. I'm going to show you how you can fix this error./pimg src=http://feeds.feedburner.com/~r/ostrainingdrupal/~4/6JEIKZVH4Uk height=1 width=1 alt=/

2bits: Re-Indexing your content to Solr, the fast way ...

Wed, 08/26/2015 - 00:00
There are rare occasions when you want to re-index all your site#039;s content in Solr. Such occasions include: Major Drupal version upgrade (e.g. from Drupal 6.x to Drupal 7.x). Changing your Solr schema to include more search criteria. Upgrading your Solr server to a new major version. Moving your Solr server from an old server to a new one. pa href=http://2bits.com/articles/re-indexing-your-content-in-apache-solr-the-fast-way.html target=_blankread more/a/p

Drupal.org Featured Case Studies: Wight Company

Tue, 08/25/2015 - 22:41
div class=field field-name-field-mainimage field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src=https://www.drupal.org/files/styles/case588x306/public/Wight-Company.jpg?itok=0da7O-wh width=588 height=306 alt=Wight amp; Company //div/div/divdiv class=field field-name-field-link field-type-link-field field-label-abovediv class=field-labelCompleted Drupal site or project URL:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=http://www.wightco.com/http://www.wightco.com//a/div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpWight amp; Company (Wight) is an integrated architecture, engineering, and construction services firm with offices in Chicago and Darien, Illinois. Wight has expertise in key markets including corporate, commercial, federal government, higher education, local government, PK-12 education, and transportation and infrastructure. /p pTOKY Branding + Design created a website that sets Wight apart from the all-too-common aesthetic and functionality of competing firms. TOKY specializes in digital and print work for clients in architecture, building, and design, as well as the arts, education, and premium consumer products./p /div/div/divdiv class=field field-name-field-module field-type-node-reference field-label-abovediv class=field-labelKey modules/theme/distribution used:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/project/advanced_menuAdvanced Menu/a/divdiv class=field-item odda href=/project/apcAPC - Alternative PHP Cache/a/divdiv class=field-item evena href=/project/entityEntity API/a/divdiv class=field-item odda href=/project/entitycacheEntity cache/a/divdiv class=field-item evena href=/project/field_collectionField collection/a/divdiv class=field-item odda href=/project/imageapi_optimizeImageAPI Optimize (or Image Optimize)/a/divdiv class=field-item evena href=/project/memcacheMemcache API and Integration/a/divdiv class=field-item odda href=/project/metatagMetatag/a/divdiv class=field-item evena href=/project/remote_stream_wrapperRemote stream wrapper/a/divdiv class=field-item odda href=/project/speedySpeedy/a/divdiv class=field-item evena href=/project/taxonomy_access_fixTaxonomy access fix/a/divdiv class=field-item odda href=/project/taxonomy_displayTaxonomy display/a/div/div/divdiv class=field field-name-field-developed-org field-type-node-reference field-label-abovediv class=field-labelOrganizations involved:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/node/2196021TOKY Branding + Design/a/div/div/divdiv class=field field-name-field-profiles field-type-user-reference field-label-abovediv class=field-labelTeam members:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/u/daniel-korteDaniel Korte/a/div/div/div

Shitiz Gag's Blog: [GSoC 2015: Hawk Authentication] Week 14: Concluding Summer of Code

Tue, 08/25/2015 - 19:07
pThis would be my last weekly update as far as Google Summer of Code 2015 is concerned. The long road is coming to an end as the season closes on Friday, 28th August 2015. This week I tackled a bug in core of Drupal which I discussed in my last week’s update./p pstrongFixing WWW-Authenticate/strong/p pThis issue is a href=https://www.drupal.org/node/2553531span#2553531/span/a on the Drupal bug tracker. Previously when a user was accessing an area which required them to be logged in without logging in, Drupal would call authentication providers for a “challenge”. This challenge allows Basic Auth to specify it’s WWW-Authenticate header and send a HTTP 401 unauthorised error telling the user that they need to be logged in and can use Basic Auth as a means to log-in. This was good, as basic was the only protocol which would communicate via WWW-Authenticate until Hawk came along./p pWWW-Authenticate can have multiple values, a server sending WWW-Authenticate: Hawk, Basic for example is saying that the client can use hawk or basic auth protocol. This wasn’t possible in the current code base as Drupal did not allow multiple Auth providers to specify the challenge. I modified the code to allow multiple auth providers to send their challenge which gets compiled by the authentication provider manager into an exception. Previously, the auth provider would send an exception itself which is why multiple auth providers could not specify their own challenge./p pThis fix is still to be accepted into Drupal core, although I hope it would get accepted soon./p pstrongConcluding Summer of Code/strong/p pThis would probably be the last coding I will be doing during Summer of Code, but it’s not last related to Drupal or my project as I plan to continue it’s development after GSoC as well and hopefully I get to stick around Drupal for a long time./p pI had a lot of fun during the summer, and I got to learn a lot of new things as well as got introduced to Drupal and it’s community. I worked on implementing a new protocol within PHP, developing a general purpose library which can be used by anyone willing to use the protocol with PHP and implemented the protocol as a Drupal module. All things that I have never done in the past, and the things I struggled with at times but ultimately learned them and managed to succeed to the best of my abilities. I also improved my understanding of concepts such as Dependency Injection, unit testing, composer, authentication and authorization as well as security concepts related to them, encryption, hashing and general Drupal architecture and development./p pFor students participating in the future, don't hesitate to ask around the Drupal community via the forums or IRC if you get stuck doing something as they are very helpful. Drupal is a complicated beast and there are a lot of people apart form your mentor who are willing to help, it would also be faster at times when your mentor might not be available. I took a lot of help from the community during my project and the community really helped around./p pI’m glad to have taken part in this year’s summer of code and I will remember this experience forever. A big thanks to my mentor Jingsheng Wang (skyred) and the Drupal community for their support as well as Avantika Agarwal for proofreading my blog and documents related to Summer of Code. I will continue with what I started this summer of code and try to learn and share as many things as I can./p pThank you!/p

Tim Millwood: Versioning in Drupal

Tue, 08/25/2015 - 17:59
Currently Drupal has naming conventions for branches and tags in git for contrib module. These are...

Dries Buytaert: Digital Distributors vs Open Web: who will win?

Tue, 08/25/2015 - 14:25
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpI've spent a fair amount of time thinking about a href=http://buytaert.net/winning-back-the-open-webhow to win back the Open Web/a, but in the case of digital distributors (e.g. closed aggregators like Facebook, Google, Apple, Amazon, Flipboard) superior, a href=http://buytaert.net/the-big-reverse-of-the-webpush-based user experiences/a have won the hearts and minds of end users, and enabled them to attract and retain audience in ways that individual publishers on the Open Web currently can't./p pIn today's world, there is a clear role for both digital distributors and Open Web publishers. Each needs the other to thrive. The Open Web provides distributors content to aggregate, curate and deliver to its users, and distributors provide the Open Web reach in return. The user benefits from this symbiosis, because it's easier to discover relevant content./p pAs I see it, there are two important observations. First, digital distributors have out-innovated the Open Web in terms of conveniently delivering relevant content; the usability gap between these closed distributors and the Open Web is wide, and won't be overcome without a new disruptive technology. Second, the digital distributors haven't provided the pure profit motives for individual publishers to divest their websites and fully embrace distributors./p pHowever, it begs some interesting questions for the future of the web. What does the rise of digital distributors mean for the Open Web? If distributors become successful in enabling publishers to monetize their content, is there a point at which distributors create enough value for publishers to stop having their own websites? If distributors are capturing market share because of a superior user experience, is there a future technology that could disrupt them? And the ultimate question: who will win, digital distributors or the Open Web?/p pI see three distinct scenarios that could play out over the next few years, which I'll explore in this post./p div class=figure div class=img style=border: 1px solid #ccc; padding: 4px;display: inline-blockimg src=http://buytaert.net/sites/buytaert.net/files/cache/blog-digital-distributors-vs-open-web-who-will-win-575x863.jpg style=display:block alt=Digital Distributors vs Open Web: who will win?//div pThis image summarizes different scenarios for the future of the web. Each scenario has a label in the top-left corner which I#039;ll refer to in this blog post. A larger version of this image can be found at a href=http://buytaert.net/sites/buytaert.net/files/images/blog/digital-distributors-vs-open-web-who-will-win.jpghttp://buytaert.net/sites/buytaert.net/files/images/blog/digital-distrib.../a./p /div h3Scenario 1: Digital distributors provide commercial value to publishers (A1 → A3/B3)/h3 pDigital distributors provide publishers reach, but without tangible commercial benefits, they risk being perceived as diluting or even destroying value for publishers rather than adding it. Right now, digital distributors are in early, experimental phases of enabling publishers to monetize their content. Facebook's Instant Articles currently lets publishers a href=http://recode.net/2015/05/12/facebook-starts-publishing-the-new-york-times-buzzfeed-and-more-with-its-instant-articles-program/retain 100 percent of revenue/a from the ad inventory they sell. Flipboard, in efforts to stave off rivals like Apple News, has experimented with everything from a href=http://venturebeat.com/2015/07/29/flipboard-starts-offering-its-first-paywall-integration-with-the-new-yorker/publisher paywalls/a to a href=https://about.flipboard.com/advertisers/native advertising/a as revenue models. Except much more experimentation with different monetization models and dealmaking between the publishers and digital distributors./p pIf digital distributors like Facebook succeed in delivering substantial commercial value to the publisher they may fully embrace the distributor model and even divest their own websites' front-end, especially if the publishers could make the vast majority of their revenue from Facebook rather than from their own websites. I'd be interested to see someone model out a business case for that tipping point. I can imagine a future upstart media company either divesting its website completely or starting from scratch to serve content directly to distributors (and being profitable in the process). This would be unfortunate news for the Open Web and would mean that content management systems need to focus primarily on multi-channel publishing, and less on their own presentation layer./p pAs we have seen from other industries, decoupling production from consumption in the supply-chain can redefine industries. We also know that introduces major risks as it puts a lot of power and control in the hands of a few./p h3Scenario 2: The Open Web's disruptive innovation happens (A1 → C1/C2)/h3 pFor the Open Web to win, the next disruptive innovation must focus on narrowing the usability gap with distributors. I've written about a concept called a a href=http://buytaert.net/winning-back-the-open-webPersonal Information Broker/a (PIM) in a past post, which could serve as a way to responsibly use customer data to engineer similar personal, contextually relevant experiences on the Open Web. Think of this as unbundling Facebook where you separate the personal information management system from their content aggregation and curation platform, and make that available for everyone on the web to use. First, it would help us to close the user experience gap because you could broker your personal information with every website you visit, and every website could instantly provide you a contextual experience regardless of prior knowledge about you. Second, it would enable the creation of more distributors. I like the idea of a PIM making the era of handful of closed distributors as short as possible. In fact, it's hard to imagine the future of the web without some sort of PIM. In a future post, I'll explore in more detail why the web needs a PIM, and what it may look like./p h3Scenario 3: Coexistence (A1 → A2/B1/B2)/h3 pFinally, in a third combined scenario, neither publishers nor distributors dominate, and both continue to coexist. The Open Web serves as both a content hub for distributors, and successfully uses contextualization to improve the user experience on individual websites./p h3Conclusion/h3 pRight now, since distributors are out-innovating on relevance and discovery, publishers are somewhat at their mercy for traffic. However, a significant enough profit motive to divest websites completely remains to be seen. I can imagine that we'll continue in a coexistence phase for some time, since it's unreasonable to expect either the Open Web or digital distributors to fail. If we work on the next disruptive technology for the Open Web, it's possible that we can shift the pendulum in favor of “open” and narrow the usability gap that exists today. If I were to guess, I'd say that we'll see a move from A1 to B2 in the next 5 years, followed by a move from B2 to C2 over the next 5 to 10 years. emTime will tell!em/p/div/div/div

Annertech: Case Study - Performance Testing a Drupal Website

Tue, 08/25/2015 - 12:02
span class=field field-node--title field-name-title field-type-string field-label-hiddenCase Study - Performance Testing a Drupal Website/span div class=field field-node--body field-name-body field-type-text-with-summary field-label-hidden div class=field-items div class=field-itempAt Annertech, there are three things we take strongvery/strong seriously: website/server security, accessibility, and website load times/performance. This article will look at website performance with metrics from recent work we completed for a href=www.annertech.com/clients/oxfam-irelandOxfam Ireland/a./p pWe use a suite of tools for performance testing. Some of these include Apache Benchmark, Yahoo's YSlow, and Google's PageSpeed Insights. Our favourite at the moment is a href=http://newrelic.com/ target=_blankNewRelic/a, though this does come at a cost./p/div /div /div

KnackForge: Drupal Moodle user integration

Tue, 08/25/2015 - 07:20
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-items id=md1div class=field-item evenpMoodle is a free and open-source software learning management system written in PHP and distributed under the GNU General Public License. Moodle is used for blended learning, distance education, flipped classroom and other e-learning projects in schools, universities, workplaces and other sectors./p pOur main objective is that we wanted to manage all the users from Drupal i.e., use drupal as the front end for managing users. For this purpose, we have a moodle plugin and drupal module. a href=http://github.com/cannod/moodle-drupalservices target=_blankDrupal services/a is a moodle authorization plugin that allows for SSO between Drupal and Moodle. a href=http://www.drupal.org/project/moodle_sso target=_blankMoodle SSO/a provides the Drupal functionality required to allow the Moodle training management system to SSO share Drupal sessions. /p pIn order to make SSO work, we need to ensure that sites can share cookies. Drupal and moodle sites should have url like drupal.example.com and moodle.example.com. As mentioned earlier, sites should be able to share cookies. To make sites use shared cookie, we need set the value of $cookie_domain in settings.php file on the drupal site. In our case, the site urls was something like drupal.example.com and moodle.example.com. For these type of sub-domains, the cookie_domain value can be set like the below one:/p pre class=brush: php; auto-links: true; collapse: false; first-line: 1; html-script: false; smart-tabs: true; tab-size: 4; toolbar: true; codetag$cookie_domain = .example.com;/prepstrongNote: /strongThe dot before example.com is necessary./p pLet's start with the steps that need to followed for achieving SSO between drupal and moodle:/p pstrong1. Moodle site/strong/p/div/div/divmeta itemprop=name content=Drupal Moodle user integration id=md2 /

KnackForge: Configure Import SOLR data

Tue, 08/25/2015 - 06:44
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-items id=md3div class=field-item evendivIf you are planning to import data from database (MySQL, PostgreSQL) download the required database connector,/div div /div divFor PostgreSQL, you can download a href=https://jdbc.postgresql.org/download.html target=_blankhere/a/div div /div divFirst step, configure the data source file in SOLR. To do this add the new file in SOLR home directory strongsolr/lt;coregt;/conf/data-import.xml/strong/div div pre style=color: rgb(0, 0, 0); background-image: initial; background-attachment: initial; background-size: initial; background-origin: initial; background-clip: initial; background-position: initial; background-repeat: initial;span style=color: rgb(0, 74, 67);lt;?/spanspan style=color: rgb(128, 0, 0); font-weight: bold;xml/spanspan style=color: rgb(0, 74, 67); /spanspan style=color: rgb(7, 71, 38);version/spanspan style=color: rgb(128, 128, 48);=/spanspan style=color: rgb(128, 0, 0);/spanspan style=color: rgb(125, 0, 69);1.0/spanspan style=color: rgb(128, 0, 0);/spanspan style=color: rgb(0, 74, 67); /spanspan style=color: rgb(7, 71, 38);encoding/spanspan style=color: rgb(128, 128, 48);=/spanspan style=color: rgb(128, 0, 0);/spanspan style=color: rgb(0, 0, 230);UTF-8/spanspan style=color: rgb(128, 0, 0);/spanspan style=color: rgb(0, 74, 67);?gt;/span span style=color: rgb(166, 87, 0);lt;/spanspan style=color: rgb(95, 80, 53);dataConfig/spanspan style=color: rgb(166, 87, 0);gt;/span span style=color: rgb(166, 87, 0);lt;/spanspan style=color: rgb(95, 80, 53);dataSource/span /pre/div/div/div/divmeta itemprop=name content=Configure amp; Import SOLR data id=md4 /

KnackForge: Slideshow in Drupal

Tue, 08/25/2015 - 06:20
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-items id=md5div class=field-item evenpThis post explains about creating slideshow in drupal. There are many ways and plugins available to create slideshow in drupal and I am going to discuss some methods which will be very efficient and useful./p p1) Using Views slideshow module/p p2) Using jQuery cSlider plugin/p p3) Using Bootstrap carousel/p pstrong1. Using Views slideshow module:/strong/p pThe modules required for this method are:/p p  1) a href=https://www.drupal.org/project/viewsViews/a/p p  2) a href=https://www.drupal.org/project/views_slideshowViews slideshow/a/p p  3) jQuery cycle plugin ( a href=http://malsup.github.io/jquery.cycle.all.jsDownload here/a and place it at sites/all/libraries/jquery.cycle/)/p pEnable the added modules. To create views slideshow, create a new content type for instance Slideshow with an image field which can be used as slideshow image./p pAdd multiple slideshow nodes with images. Then, we have to create a view block with slideshow content. Select slideshow as required format and configure transition effect in the Settings link./p p style=text-align: center;img alt= class=media-image height=480 width=396 typeof=foaf:Image src=/sites/default/files/styles/large/public/slideshow_0.png?itok=5Q68kv0k //p p style=text-align: center; /p pAfter saving this view, place this view block at neccessary region at admin/structure/blocks./p pstrong2. Using jQuery cSlider plugin:/strong/p p1) You can download this plugin from a href=http://tympanus.net/Development/ParallaxContentSlider/ParallaxContentSlider.ziphere./a There is also a demo file in this plugin which can be used as a reference./p/div/div/divmeta itemprop=name content=Slideshow in Drupal id=md6 /