Drupal Planet

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

Wunderkraut blog: Slides from Vagrant+Puppet=TRUE from Drupal Dev Days in Szeged

Thu, 04/03/2014 - 6:37am
p class=field-ns-blog-post-lead On Drupal Dev Days I gave a talk about how we work with Vagrant and Puppet with development, here are the slides from that talk. /p div class=field-ns-blog-post-body clearfix div class=field-item even pIf you have any questions, please comment./pp /ppiframe allowfullscreen= frameborder=0 height=420 mozallowfullscreen= scrolling=no src=//slid.es/mikkeschiren-1/vagrant-puppet/embed webkitallowfullscreen= width=620/iframe/p /div /div
Categories: Drupal Feeds

InternetDevels: Flexible materials sorting with the help of Radioactivity module

Thu, 04/03/2014 - 6:30am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpWhile planning site architecture with a large amount of materials, developers often face such issue: how to implement a flexible materials sorting, or how to make the most interesting articles not to be lost among the new content?/ppHere we will describe the solution we have implemented while handling this kind of task./p a href=http://internetdevels.com/blog/radioactivity-moduleRead more/a/div/div/div
Categories: Drupal Feeds

Code Positive: Sage Pay

Thu, 04/03/2014 - 5:20am
div class=field field-name-field-trapline field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item evenpSage Pay is one of the world#8217;s most trusted payment solutionsnbsp;providers./ppOur brief was to create a platform which could be used to build and maintain a website for each of the countries Sage Pay operates in, supporting existing customers and promoting Sage Pay services in thosenbsp;countries./p/div/div/divdiv class=field-group-format group_background field-group-div group-background speed-fast effect-noneh2spanBackground/span/h2div class=field field-name-field-client-description field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even pstrongSage Pay/strong has earned a reputation for security and good service. From startups to major brands, fifty thousand business of all sizes relly on Sage Pay to succesfully processes customer payments./p /div/div/divdiv class=field field-name-field-site-summary field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even pSage Pay approched Code Positive to re-build the main corporate platform from which all Sage Pay country websites are built and maintained. The objectives were to present fresh new branding and make it possible for Sage Pay customers, partners, and developers to more quickly find solutions and information.  /ppCode Positive provided consultancy, project planning, project management, development, and on-going support for the project./p /div/div/divdiv class=field field-name-field-collaborators field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even p title=AcquiaDrupal was used to implemented the project, and hosting was provided by a title=Acquia href=http://www.acquia.com target=_blankAcquia/a./p /div/div/div/divdiv class=field-group-format group_site_highlights field-group-div group-site-highlights speed-fast effect-noneh2spanSite Highlights/span/h2div class=field field-name-field-highlight field-type-field-collection field-label-hiddendiv class=field-itemsdiv class=field-item evendiv class=entity entity-field-collection-item field-collection-item-field-highlight clearfix about=/field-collection/field-highlight/30 typeof= class=entity entity-field-collection-item field-collection-item-field-highlight div class=content div class=field field-name-field-highlight-title field-type-text field-label-hiddendiv class=field-itemsdiv class=field-item evenh3Marketing/h3/div/div/divdiv class=field field-name-field-highlight-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=http://www.codepositive.com/sites/default/files/site_higlights/sagepay_03.jpg width=450 height=511 alt=Sage Pay marketing title=Sage Pay marketing //div/div/divdiv class=field field-name-field-highlight-description field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even divdivdivdivdivdivpThe strongPayment Solutions/strong section features visually rich explanations of the advantages of Sage Pay products, step-by-step guides on how to switch to Sage Pay, and information for statups and corporates. Each page has a clear call to action to connect the visitor to the sage Pay sales team./p/div/div/div/div/div/divdivdivdivdivdivdivpThe strongPartner and Developer/strong section of the site provides information on becoming a partner, and helps partners and developers find developer resources and information about 3rd party integrations. Similar to the Solutions section, navigation is visually driven and there is a good balance of imagery and content on the pages with strong call to actions in the form of buttons, teasers with icons and customer logos linked to case studies./pdivdivdivdivdivdivpCustomer and partner strongcase studies/strong highlight how different Sage Pay solutions have solved problems and met the needs of customers and partners - two different audiences for Sage Pay. The case studies grab the attention of the reader with quotes and logos from prominent customers and partners. Case studies are promoted throughout the site with case study carousels and lists of linked logo thumbnails./p/div/div/div/div/div/div/div/div/div/div/div/div /div/div/div /div /div /divdiv class=field-item odddiv class=entity entity-field-collection-item field-collection-item-field-highlight clearfix about=/field-collection/field-highlight/23 typeof= class=entity entity-field-collection-item field-collection-item-field-highlight div class=content div class=field field-name-field-highlight-title field-type-text field-label-hiddendiv class=field-itemsdiv class=field-item evenh3Support/h3/div/div/divdiv class=field field-name-field-highlight-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=http://www.codepositive.com/sites/default/files/site_higlights/sagepay_support.jpg width=450 height=330 alt=Sage Pay support title=Sage Pay support //div/div/divdiv class=field field-name-field-highlight-description field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even pThe support section makes it quick and easy for Sage Pay’s various audiences to find the help that they need./ppIt features strongsupport articles/strong on various topics, strongintegration guides/strong explaing how Sage Pay products can be used with other applications, strongonline shoppers FAQ/strong for anyone making payments through Sage Pay services, and contact details for strong24/7 support/strong services through which clients and partners can get more information./ppAlso available in the support section are stronglogo downloads/strong that can be added to a website to show it’s using Sage Pay services, a strongbeta testing/strong programme registration, a strongglossary/strong with definitions of termnology used on the site, and explanations of strongerror codes/strong and their suggested solutions./ppOne of the most important features of the site is the strongsystem monitor/strong which provides up to the moment information on the status of Sage Pay services./ppThe support section has a strongsearch/strong facility, including the option to search specifically in error codes so that integrators can quickly diagnose problems and find solutions./ppThe Sage Pay forum is hosted externaly on a href=http://stackoverflow.com/questions/tagged/sagepay target=_blankStack Overflow/a. which has excellent tools for technical support and a large and active developer community./p /div/div/div /div /div /divdiv class=field-item evendiv class=entity entity-field-collection-item field-collection-item-field-highlight clearfix about=/field-collection/field-highlight/25 typeof= class=entity entity-field-collection-item field-collection-item-field-highlight div class=content div class=field field-name-field-highlight-title field-type-text field-label-hiddendiv class=field-itemsdiv class=field-item evenh3Content Strategy/h3/div/div/divdiv class=field field-name-field-highlight-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=http://www.codepositive.com/sites/default/files/site_higlights/sagepay_widgets.jpg width=450 height=291 alt=content strategy title=content strategy //div/div/divdiv class=field field-name-field-highlight-description field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even pThe client’s brief had two almost contradictory requirements for the site’s content strategy:/polliFlexibility to add a completely different mix of content to each page/liliRigidlly defined content fields that would guide staff in entering content/li/olpA flexible content system would enable the marketing department to create whatever message was appropriate for each page. Rigid content fields would maintain consistency across the site, and allow content parts to be re-used on other pages, or hidden on mobile devices./ppWe squared this circle by analyzing the content that would be added to the site and found common repeating patterns, we then implemented each of the patterns as component types that could be added to any page in any order. Options were also added so the client could control the position and styling of each component as it was created./ppWe met this challenge by analysing the planned site content to find common repeating patterns. We then built a component for each of these patterns, that could be used to add structured content to any page in any order. The components included flexible configuration options that empowered Sage Pay to control the layout, styling and order of the content as it is added to a page./ppMost of the components were developed to have a one-to-one relationship with the page they would be added to, and we also provided a few components that could be re-used on multiple pages./ppAfter a few weeks of use, feedback from the client enabled us to refine the user interface of the component system, to provide a system that is flexible, powerful, and easy to use./p /div/div/div /div /div /divdiv class=field-item odddiv class=entity entity-field-collection-item field-collection-item-field-highlight clearfix about=/field-collection/field-highlight/26 typeof= class=entity entity-field-collection-item field-collection-item-field-highlight div class=content div class=field field-name-field-highlight-title field-type-text field-label-hiddendiv class=field-itemsdiv class=field-item evenh3Tokens/h3/div/div/divdiv class=field field-name-field-highlight-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=http://www.codepositive.com/sites/default/files/site_higlights/sagepay_token_02.jpg width=450 height=184 alt=Tokens title=Tokens //div/div/divdiv class=field field-name-field-highlight-description field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even pOne of the challenges was to make it easy for Sage Pay to manage and maintain lots of pieces of information, like telephone numbers and prices, across multiple pages./ppTo solve this problem, we implemented a token system that enable the client to use place holder tokens anywhere in their copy, which are automatically filled in with information before being displayed on the web page./ppThe client can easily create new tokens as required, and updating the information associated with a token updates the information across the website./p /div/div/div /div /div /divdiv class=field-item evendiv class=entity entity-field-collection-item field-collection-item-field-highlight clearfix about=/field-collection/field-highlight/27 typeof= class=entity entity-field-collection-item field-collection-item-field-highlight div class=content div class=field field-name-field-highlight-title field-type-text field-label-hiddendiv class=field-itemsdiv class=field-item evenh3Media Management/h3/div/div/divdiv class=field field-name-field-highlight-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=http://www.codepositive.com/sites/default/files/site_higlights/sagepay_media.jpg width=450 height=347 alt=Media Management title=Media Management //div/div/divdiv class=field field-name-field-highlight-description field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even pThe website makes extensive use of images, videos, and downloadable documents as part of it’s marketing and support features./ppWe used a title=Media module href=https://drupal.org/project/media target=_blankMedia module/a to implement a media management system that enables the client to add media to the site’s asset library, re-use them across multiple pages, and track which pages each asset is used on./ppThe system also allows the client to update a media asset, such as a new image of a product, and have the site display the new version everywhere it used the old version./p /div/div/div /div /div /div/div/div/divdiv class=field-group-format group_drupal_contributions field-group-div group-drupal-contributions speed-fast effect-noneh2spanDrupal Contributions/span/h2div class=field field-name-field-contributions field-type-field-collection field-label-hiddendiv class=field-itemsdiv class=field-item evendiv class=entity entity-field-collection-item field-collection-item-field-contributions clearfix about=/field-collection/field-contributions/31 typeof= class=entity entity-field-collection-item field-collection-item-field-contributions div class=content div class=field field-name-field-contrib-title field-type-text field-label-hiddendiv class=field-itemsdiv class=field-item evenh3Node View Mode/h3/div/div/divdiv class=field field-name-field-contrib-description field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even pProvides a field that can be used to select a view mode on each node./p /div/div/divdiv class=field field-name-field-contrib-link field-type-link-field field-label-hiddendiv class=field-itemsdiv class=field-item evena href=https://drupal.org/project/node_view_mode target=_blankNode View Mode/a/div/div/div /div /div /div/div/div/divdiv class=field-group-format group_results field-group-div group-results speed-fast effect-noneh2spanThe Results/span/h2div class=field field-name-field-results field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item even pThe site has exceeded the client’s expectations for flexibility and ease of use in adding content. Sage Pay’s marketing and support teams are excited about the positive feedback from customers, developers and partners./p /div/div/div/divdiv class=field field-name-field-project-services field-type-entityreference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/services/drupal-consultingDrupal Consulting/a/divdiv class=field-item odda href=/services/drupal-developmentDrupal Development/a/divdiv class=field-item evena href=/services/drupal-maintenanceDrupal Maintenance/a/div/div/divimg src=http://feeds.feedburner.com/~r/codepositive/~4/BrXsBiINfxE height=1 width=1/
Categories: Drupal Feeds

Károly Négyesi: Drupal 8 progress from my / MongoDB perspective: update #26

Wed, 04/02/2014 - 11:28pm
pAt DrupalDevDays Szeged, skipyT, fgm and myself made tremendous progress with writing the MongoDB drivers. All the override mechanisms work as expected and things in general, work. Most importantly, we have an entity storage backend and a significant percentage of the entity storage query tests pass (it is not expected all ever would pass, for example relationships are not supported). I have also managed to get the add aggregator feed test pass (going in ABC order among entities), this hit a snag where a recent rewrite of the testing framework broke overriding services during testing and I am not allowed to fix this so automated testing will require a small core patch. Otherwise we would need to create a mostly empty testing class for every test, this is clearly not desirable. Also at DDD, Ricardo Amaro and Jeremy Thorson have made significant strides in creating a more modern testbot based on Docker, I intend to run an instance at home and see how MongoDB fares with all the tests. I am reasonably confident by the time the beta happens, you will be able to run it solely on MongoDB./p pMeanwhile, migration got stalled by an unrelated core issue, it's close to a resolution now. Other core changes broke many migrations but by now we should be back on track and again, I am reasonably sure by beta time the Drupal 6 to Drupal 8 path will be there to test. Will Drupal 7? I hope too but nothing is certain./p
Categories: Drupal Feeds

Drupal core announcements: This week-ish in Drupal core: April 2, 2014

Wed, 04/02/2014 - 4:32pm
h2 id=newWhat's new with Drupal 8?/h2 pThe past three weeks saw some exciting progress on Drupal 8, in part due to the hard work of everyone who went to a href=http://szeged2014.drupaldays.org/DrupalDevDays 2014/a in Szeged, Hungary. It also saw the release of a href=https://drupal.org/node/2221163codedrupal-8.x-alpha10/code/a./p h3Drupal Developer Days Szeged/h3 pa href=http://szeged2014.drupaldays.org/DevDays Szeged/a was a landmark for the Drupal 8 release cycle. Participants marveled at how productive and well-organized the event was, and core maintainers commented they'd never seen such momentum in the RTBC queue. During the week-long sprint, 19 beta blocking issues were fixed (with three more RTBC) and strongevery single missing change record was written/strong. Outside core, sprinters also made significant progress on everything from the a href=https://drupal.org/project/search_apiSearch API module/a for Drupal 8 to a href=https://drupal.orgDrupal.org/a itself. A robot doll, chocolates, bunny ears, stickers, and Drupal-ified Hungarian folk music also made it the event of the year. (a href=https://twitter.com/drupaldevdays/status/450950606191341568Szeged slide show/a)/p pimg src=https://groups.drupal.org/files/beta_bunny.jpg alt=Sprinters at DevDays Szeged wearing bunny ears, in front of colored issue charts. //p h3Alpha 10 released; Alpha 11 due Apr. 23/h3 pa href=https://drupal.org/node/2221163Alpha 10/a was released on March 19th, just before Drupal Dev Days. Some notable changes include:/p ul lia href=https://drupal.org/node/2152073Drupal now requires PHP 5.4.2 or higher./a/li lia href=https://drupal.org/node/340723modules and installation profiles only require .info.yml files/a/li lia href=https://drupal.org/node/1053648the logo, site name and slogan have been converted from special theme variables into a block/a/li /ul p... for the full list of changes, see a href=https://drupal.org/node/2221163the alpha 10 release notes/a./p pThese alphas are provided to give you something more stable to work off of than having to chase codeHEAD/code every day./p h2 id=releaseWhere's Drupal 8 at in terms of release?/h2 pCore momentum increased again in March, with a new all-time record of 51 criticals fixed over the month. In fact, we've nearly recovered to the level of known technical debt we had as of feature freeze a year ago. :P There's still a long ways to go, so help us focus on the most important issues and on releasing a sound Drupal 8 beta./p pimg src=https://groups.drupal.org/files/mar_outstanding_criticals.png alt=A graph of the outstanding critical issues per month since 2011, showing a steep decline this month. //p pOur steady progress toward that first beta release continues as we divide the outstanding beta blockers into actionable sub-steps. Among March's fixed criticals were over 30 beta blockers, more than half the total, showing the community's tight focus on unblocking this milestone./p pimg src=https://groups.drupal.org/files/apr1_beta_progress.png alt=Graph indicating the numbers of beta blocker, beta target, and change record issues outstanding since Jan. 1 2014. /br / Note that the number of beta target issues (which are issues that would be good to resolve for the beta, but are not critical enough to block it) continues to increase. As we get closer to beta, it's important to also pay attention to these issues, so we'll be highlighting beta targets more in the coming weeks./p pLast week, we fixed 25 critical issues and 24 major issues, and opened 15 criticals and 29 majors. That puts us overall at a href=https://drupal.org/project/issues/search/drupal?status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;priorities%5B%5D=400amp;categories%5B%5D=1amp;categories%5B%5D=2amp;version%5B%5D=8.xamp;issue_tags_op=%3D118 release-blocking critical issues/a and a href=https://drupal.org/project/issues/search/drupal?status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=15amp;status%5B%5D=4amp;priorities%5B%5D=300amp;categories%5B%5D=1amp;categories%5B%5D=2amp;version%5B%5D=8.xamp;issue_tags_op=%3D486 major issues/a./p p16 beta-blocking issues were fixed last week. There are still a href=https://drupal.org/project/issues/search/drupal?status%5B%5D=1amp;status%5B%5D=13amp;status%5B%5D=8amp;status%5B%5D=14amp;status%5B%5D=4amp;version%5B%5D=8.xamp;issue_tags_op=%3Damp;issue_tags=beta+blocker28 of 142 beta blockers/a that must be resolved before we can a href=http://buytaert.net/the-next-step-for-drupal-8-is-a-betarelease a Drupal 8 beta/a./p h2 id=helpWhere can I help?/h2 h3 id=topTop criticals to hit this week/h3 pEach week, we check with core maintainers and contributors for the extra critical criticals that are blocking other work. These issues are often tough problems with a long history. If you're familiar with the problem space of one of these issues and have the time to dig in, help drive it forward by reviewing, improving, and testing its patch, and by making sure the issue's summary is up to date and any API changes are documented with a a href=https://groups.drupal.org/node/402688draft change record/a./p ul liAt Szeged, we had an important Developer Experience (DX) discussion about Drupal 8's a href=https://drupal.org/node/2124749use of request attributes (#2124749)/a and its impact on frequently used public APIs. To move forward, we need more feedback on the recent discussion (see @effulgentsia's writeup in comment #32)./li liFor the D8 Menu system, the most critical critical issue is a href=https://drupal.org/node/2227179#2227179: Step 2: Wrap the existing logic of accessing menu links into a plugin manager/a, part of a href=https://drupal.org/node/2178723finalizing the API for declaring default menu links/a. This is emthe/em #1 API that contributed modules interact with, since most modules add links to their administration pages, and therefore it's very important to get the developer experience and architecture right. Help review the current patch and the overall proposal./li liIn the Configuration system, a href=https://drupal.org/node/1808248Add a separate module install/uninstall step to the config import process/a is the next step to making Configuration synchronization stable and reliable. The patch needs review./li liAnd, finally, much of the remaining beta-blocking work in the Entity Field API hinges on a href=https://drupal.org/node/2226197Introduce StorageFieldDefinitionInterface in the Entity Field API/a. /li /ul h3More ways to help/h3 pLove Drupal and want to help out, but not a coder or unsure where to start? From a href=https://drupal.org/contributor-tasks/add-steps-to-reproducebreaking things/a (for science!), to a href=https://drupal.org/project/issues/search?projects=amp;project_issue_followers=amp;issue_tags_op=%3Damp;issue_tags=styleguide%2C+designdesigning things/a; from a href=https://drupal.org/contributor-tasks/write-issue-summarysummarizing issues/a to a href=https://drupal.org/node/700538writing documentation/a, there's lots of ways you can contribute! And, a href=http://drupalmentoring.org/there are more than 125 mentors/a willing to help you!/p pOur current priority is a href=https://drupal.org/node/1005304updating the documentation for Drupal 8/a. Rich, helpful documentation for Drupal 8 is incredibly important: it's a great way to market Drupal to potential clients, it saves you from writing as much documentation for your existing clients, it empowers new users, site builders, developers, and themers to learn and solve their problems; and, with all the changes that have happened since Drupal 7, it's pretty useful for seasoned Drupal veterans as well!/p pThe documentation team is working on updating:/p ul lithe a href=http://drupal.org/project/issues/search?status[]=Openamp;issue_tags=d8docsCore module handbook/a,/li lithe a href=https://drupal.org/node/1908570help module's pages/a, and/li lia href=https://drupal.org/node/2148255the new developer documentation on the api.drupal.org landing page for D8/a./li /ul p... for more information, visit the code#drupal-docs/code channel a href=https://drupal.org/ircon IRC/a or jump into a href=http://drupal.org/project/issues/search?status[]=Openamp;issue_tags=d8docsthe documentation issue queue/a./p pAs always, if you're new to contributing to core, check out a href=https://drupal.org/core-mentoringCore contribution mentoring hours/a. Twice per week, you can log into IRC and helpful Drupal core mentors will get you set up with answers to any of your questions, plus provide some useful issues to work on. /p h2 id=commitsNotable Commits/h2 pThe best of codegit log --after=2014-03-12 --pretty=oneline/code (253 commits in total):/p pAmazing work on the configuration system's architecture and dependency management, notably:/p ul lia href=https://drupal.org/node/2080823Issue #2080823/a by alexpott, swentel, Wim Leers: Create API to discover content or config entities' soft dependencies and use this to present a confirm form on module uninstall./li lia href=https://drupal.org/node/2030073Issue #2030073/a by alexpott: Config cannot be imported in order for dependencies.br /You can now declare dependencies for configuration entities, so you can ensure their dependencies are met before importing them./li lia href=https://drupal.org/node/2219499Issue #2219499/a by Berdir, alexpott, Gábor Hojtsy, vijaycs85, swentel: Generalize language config override responsibility.br /This patch simplifies the way that language-specific overrides work and significantly reduces the amount of code that needs to run on sites with only one language./li /ul pAnd, we resolved some of the menu/routing issues that had been causing headaches for developers:/p ul lia href=https://drupal.org/node/2178725Issue #2178725/a by pwolanin, crowdcg, effulgentsia, Sutharsan: Make all core menu link machine names and the corresponding route names match./li lia href=https://drupal.org/node/2226903Issue #2226903/a by pwolanin, dawehner, tvn, martin107, jessebeach: Step 1: Move static menu links to yml files.br /Now, default menu links are declared the same way as local tasks and local actions. (The next step is to a href=https://drupal.org/node/2227179finalize the underlying architecture/a for this change.)/li lia href=https://drupal.org/node/2207893Issue #2207893/a by dawehner, pwolanin, jessebeach, Boobaa: Convert menu tree building to a service.br /This removes a whole bunch of the code in menu.inc, makes the menu-building code unit-testable and decouples it from other subsystems. It also unblocks beta-blocking work on the Menu Link API./li /ul pIn the things that always annoyed you about Drupal category,/p ul lia href=https://drupal.org/node/318975Issue #318975/a by sun, Bojhan, linclark: Remove confirmation page after installation.br /When the installer is finished, it drops you on the front page of your new site!/li lia href=https://drupal.org/node/340723Issue #340723/a by ParisLiakos, sun, Berdir, glennpratt, Cottser, swentel, tstoeckler, Xano, tim.plunkett, BassistJimmyJam: Make modules and installation profiles only require .info.yml files.br /That means no more empty code.module/code and code.profile/code files! acronym title=Developer ExperienceDX/acronym acronym title=for the winFTW/acronym!/li lia href=https://drupal.org/node/2122693Issue #2122693/a by jayeshanandani, YesCT, sun, alexpott, BMDan: Installer does not work on a completely empty settings.php.br /This had been possible in D7./li /ul pOther notable commits:/p ul lia href=https://drupal.org/node/2188613Issue #2188613/a by Berdir, Xen, andypost: Rename EntityStorageController to EntityStorage.br /This 600K patch was added to make it easier to distinguish between Entity storage classes and Routing controllers./li lia href=https://drupal.org/node/2213451Issue #2213451/a by andypost, bdone, benjy, penyaskito, chx, claudiu.cristea, damiankloip, gregboggs, InternetDevels, jessehs, jhedstrom, marvil07, mikeryan, pcambra, Xano, YesCT: Update Migrate API in core.br /This huge update to the migrate API adds support for requirements/dependencies; adds migrations for passwords, URL aliases and config entities; improves entity, bundle and field support; adds lots of Drupal 6 migrations; allows you to set the MigrateSource and MigrateDestination using annotations; and improves documentation. Awesome work Migrate team!/li lia href=https://drupal.org/node/1194136Issue #1194136/a by Berdir, damiankloip, Wim Leers: Re-organise core cache bins.br /This groups cached items by the type of data (e.g.: rendered HTML, data, entity), rather than the type of item (e.g.: node, block, etc.). This will make cache bins for frequently-requested items (like configuration) smaller with less-frequent updates, which makes it easier for query caches. And, it allows you to tune performance by choosing the most-efficient storage engine / storage location for the type of data (for example, putting the configuration cache table in RAM or on an acronym title=solid state driveSSD/acronym)./li lia href=https://drupal.org/node/2211553Issue #2211553/a by andypost, Berdir: Allow usage of entity_reference field widget and formatter for base fields.br /Entity reference fields are being used in core, but there had been no way to use it's widget and formatter./li /ul pYou can also always check the a href=https://drupal.org/list-changesChange records for Drupal core/a for the full list of Drupal 8 API changes from Drupal 7./p h2 id=planetDrupal 8 Around the Interwebs/h2 pHere are a few notable blog posts about Drupal 8 in the past few weeks:/p ul liLast Call Media explains a href=https://lastcallmedia.com/drupal-8-lessons-for-developersthe lessons they learned when upgrading their website to Drupal 8/a./li liJustin Harrell a href=http://drupalize.me/blog/201404/questionnaire-confirms-designers-arent-clear-how-help-drupal-8interviews Bojhan Somers and Lisa Rex about making it easier for designers to contribute to Drupal/a/li liDrunomics a href=http://drunomics.com/en/blog/drupal-dev-days-szeged-wrapwraps-up Drupal Dev Days Szeged/a./li liPixelite Magazine posted a tutorial on a href=http://www.pixelite.co.nz/article/upgrading-php-54-ubuntu-1204-lts-support-drupal-8Upgrading PHP to 5.4 on Ubuntu 12.04 LTS to support Drupal 8/a/li liOSTraining a href=http://www.ostraining.com/blog/drupal/twig/introduces Twig and the new, simple Drupal 8 render pipeline/a./li lia href=https://drupal.org/node/2217905larowlan/a starts a series on a href=http://origin.previousnext.com.au/blog/drupal-8-now-writing-drupal-7-code-eye-towards-drupal-8Writing Drupal 7 code with an eye towards Drupal 8/a by explaining a href=http://origin.previousnext.com.au/blog/drupal-8-now-psr-0-code-drupal-7 the benefits of writing PSR-0 code in your Drupal 7 modules now/a. /liliJeffrey McGuire a href=https://www.acquia.com/resources/podcasts/acquia-podcast-129-lukas-smith-drupal-symfony-mutual-benefitinteviews Lukas Smith, Symfony contributor/a and a href=https://www.acquia.com/resources/podcasts/acquia-podcast-130-fabrice-bernhard-symfony2-and-drupal-working-together-working-betterFabrice Bernhard, co-founder of Theodo (a Symfony SaaS provider)/a about the benefits of Symfony and Drupal working together on episodes 129 and 130 of the Acquia podcast respectively./li /ul h2 id=eventsDrupal 8 in Real Life/h2 pIf you would like to get away from the computer, meet other Drupal users, learn about Drupal 8, and have fun at the same time, you can look forward to:/p ul lia href=http://www.nyccamp.org/NYC Camp/a on strongApril 10-13/strong: you can get Twig training, there are 13 accepted Drupal 8 sessions, 10 sprints scheduled and there's even a a href=http://www.nyccamp.org/2014/summit/drupal-core-summitCore summit/a!/li lia href=https://2014.drupalcamp-frankfurt.de/DrupalCamp Frankfurt 2014/a in Frankfurt, Germany on strongApril 12 and 13/strong; with 8 proposed Drupal 8 sessions on everything from Twig to the Configuration Management Initiative./li lia href=https://groups.drupal.org/node/416323Drupal Camp Japan 2014/a in Kyoto on strongApril 12/strong, featuring an introduction to Drupal 8./li /ul h2 id=wrapWhew! That's a wrap!/h2 pDo you follow a href=https://drupal.org/planetDrupal Planet/a with devotion, or keep a close eye on the a href=http://www.drupical.com/Drupal event calendar/a, or codegit pull origin 8.x/code every morning without fail before your coffee? We're looking for more contributors to help compile these posts. You could either take a few hours once every six weeks or so to put together a whole post, or help with one section more regularly. If you'd like to volunteer for helping to draft these posts, please a href=https://drupal.org/node/2220285follow the steps here/a!/p
Categories: Drupal Feeds

Wunderkraut blog: Grumpy Swedish developer try to setup for the Acquia Certified Developer exam, and you could not guess what happens next

Wed, 04/02/2014 - 4:06pm
p class=field-ns-blog-post-lead So, I wanted to do the Acquia Certified Developer exam. But I got into trouble before I even start taking the exam. /p div class=field-ns-blog-post-body clearfix div class=field-item even pspanWhat got me into Drupal from the beginning were that it is open source, I love open source and what we could together with open source, and I do my daily work on an Ubuntu powered laptop. Why am I writing about that right now? I registered for taking the exam online at a href=http://www.webassessor.comwww.webassessor.com/a, and after I set a date and time for the test, I was told to download a piece of software called Sentinel. Sentinel is going to be used when I take the exam, to check me through the web cam, checking it is me doing the test, and I don’t have colleagues helping me out. Fair enough./span/ppspanI clicked the link, and it was a installer for Windows. Something must be wrong somewhere. I searched the site. It seems that the program I need to install only is available on Windows and Mac. WTF! So I tried to install it with Wine (with that some Windows programs could be run on Ubuntu). Did not work, but I could figure out it was some kind of Flash software./span/ppspanSo I am stuck. I need to have a proprietary OS, I need to install proprietary software to take an exam for an open source system. All this seems totally wrong. Some bad decision has been taking on the road for this exam./span/ppspanStory will continue (hopefully)./span/p /div /div
Categories: Drupal Feeds

Wunderkraut blog: Adding a psuedo field

Wed, 04/02/2014 - 2:59pm
p class=field-ns-blog-post-lead Sometimes you need to display a field that have no input, like a static text or image on each node, or a Facebook like button, or whatever that does not have an input, but you still want to display it as a field, for that you have the hook hook_field_extra_fields. /p div class=field-ns-blog-post-body clearfix div class=field-item evenpTo display a psuedo field you just need two functions (these functions I added to a custom module called wk_extra_fields)/p div class=codeblockcodespan style=color: #000000span style=color: #0000BBlt;?phpbr //spanspan style=color: #FF8000/**br / * Implements hook_field_extra_fields().br / */br //spanspan style=color: #007700function /spanspan style=color: #0000BBwk_extra_fields_field_extra_fields/spanspan style=color: #007700() {br /nbsp; /spanspan style=color: #0000BB$extra /spanspan style=color: #007700= array();br /nbsp;nbsp;nbsp; /spanspan style=color: #FF8000// Just adding the psuedo field to the page node type.br /nbsp;nbsp;nbsp; /spanspan style=color: #0000BB$extra/spanspan style=color: #007700[/spanspan style=color: #DD0000'node'/spanspan style=color: #007700][/spanspan style=color: #DD0000'page'/spanspan style=color: #007700] = array(br /nbsp;nbsp;nbsp;nbsp;nbsp; /spanspan style=color: #DD0000'display' /spanspan style=color: #007700=gt; array(br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; /spanspan style=color: #DD0000'wk_foo' /spanspan style=color: #007700=gt; array(br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; /spanspan style=color: #DD0000'label' /spanspan style=color: #007700=gt; /spanspan style=color: #0000BBt/spanspan style=color: #007700(/spanspan style=color: #DD0000'WK: Foo'/spanspan style=color: #007700),br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; /spanspan style=color: #DD0000'description' /spanspan style=color: #007700=gt; /spanspan style=color: #0000BBt/spanspan style=color: #007700(/spanspan style=color: #DD0000'A foo field.'/spanspan style=color: #007700),br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; /spanspan style=color: #DD0000'weight' /spanspan style=color: #007700=gt; -/spanspan style=color: #0000BB5/spanspan style=color: #007700,br /nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; ),br /nbsp;nbsp;nbsp;nbsp;nbsp; ),br /nbsp;nbsp;nbsp; );br /nbsp; return /spanspan style=color: #0000BB$extra/spanspan style=color: #007700;br /}br /br //spanspan style=color: #FF8000/**br / * Implements hook_node_view().br / */br //spanspan style=color: #007700function /spanspan style=color: #0000BBwk_extra_fields_node_view/spanspan style=color: #007700(/spanspan style=color: #0000BB$node/spanspan style=color: #007700, /spanspan style=color: #0000BB$view_mode/spanspan style=color: #007700, /spanspan style=color: #0000BB$langcode/spanspan style=color: #007700) {br /nbsp; /spanspan style=color: #FF8000// The field is showed in when using full view mode and on page node type.br /nbsp; /spanspan style=color: #007700if (/spanspan style=color: #0000BB$view_mode /spanspan style=color: #007700== /spanspan style=color: #DD0000'full' /spanspan style=color: #007700amp;amp; /spanspan style=color: #0000BB$node/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBtype /spanspan style=color: #007700== /spanspan style=color: #DD0000'page'/spanspan style=color: #007700) {br /nbsp;nbsp;nbsp; /spanspan style=color: #0000BB$node/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBcontent/spanspan style=color: #007700[/spanspan style=color: #DD0000'wk_foo'/spanspan style=color: #007700] = array(br /nbsp;nbsp;nbsp;nbsp;nbsp; /spanspan style=color: #DD0000'#markup' /spanspan style=color: #007700=gt; /spanspan style=color: #DD0000'lt;div class=wk-foogt;Foo!lt;/divgt;'/spanspan style=color: #007700,br /nbsp;nbsp;nbsp; );br /nbsp; }br /}br //spanspan style=color: #0000BB?gt;/span/span/code/div pbr / So we use the function wk_extra_fields_field_extra_fields() to create the psuedo field for the page node type, after that we can activate it in the display tab, and choose where to show the field./p pWhen we view the node, the function wk_extra_fields_node_view() is called and the content is displayed./p pemImage: Air Guitar Championship by AxsDeny. Attribution-NonCommercial-NoDerivs License/em/p /div /div
Categories: Drupal Feeds

Change(b)log: Commerce Marketplace payments

Wed, 04/02/2014 - 10:40am
The biggest step forward since From Commerce Store to Commerce Marketplace, my previous blog post in the Commerce Marketplace series, was added initial support for parallel payments.
Categories: Drupal Feeds

DrupalCon Austin News: Are You Ready for Drupal 8?

Wed, 04/02/2014 - 10:40am
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item even property=content:encodedpimg src=https://austin2014.drupal.org/sites/default/files/images/d8iscoming.jpg //p pYou may not be able to control when Drupal 8 is ready. But you can control when you are ready for Drupal 8. Attending DrupalCon Austin is a great way to start. /p/div/div/div
Categories: Drupal Feeds

OhTheHugeManatee: How to Create a Custom Display Suite Field

Wed, 04/02/2014 - 10:12am
pA few months ago I posted about a href=https://ohthehugemanatee.org/blog/2014/01/03/how-to-create-a-custom-panels-panehow to create a custom Panels pane/a, a critical reference for anyone who uses Panels layouts. The other part of the toolkit for quick and awesome layouts is the a href=https://drupal.org/projects/dsDisplay Suite/a module. With DS you can create new ldquo;Display modesrdquo; for your content, to be reused around the site. For example, on one recent site I had four standard ways to display my nodes: Full, Teaser, Mini-Teaser, and Search Result. DS made this configuration a cinch./p pBut just as in Panels you sometimes need a pane that isnrsquo;t provided out of the box, in Display Suite you sometimes want to add a field that isnrsquo;t really a field on your content. In a recent site build, I used this capability to include information from the Organic Groups a user belongs to on his profile as it appears in search results./p pDS offers some ability to create this kind of custom field through the UI, but Irsquo;m talking about more complicated outcomes where you need/want to use custom code instead. This is actually even easier than custom panels panes./p pIn our example, we will display the userrsquo;s name, but backwards. Obviously you can do much more complex things with this, but itrsquo;s nice to have a simple example!/p h1Declare your fields/h1 pFirst we have to tell Display Suite about our new custom field. We do this with a href=http://drupalcontrib.org/api/drupal/contributions!ds!ds.api.php/function/hook_ds_fields_info/7hook_ds_fields_info()/a./p figure class='code'figcaptionspanmymodule.module/span/figcaptiondiv class=highlighttabletrtd class=gutterpre class=line-numbersspan class='line-number'1/span span class='line-number'2/span span class='line-number'3/span span class='line-number'4/span span class='line-number'5/span span class='line-number'6/span span class='line-number'7/span span class='line-number'8/span span class='line-number'9/span span class='line-number'10/span span class='line-number'11/span span class='line-number'12/span span class='line-number'13/span span class='line-number'14/span span class='line-number'15/span span class='line-number'16/span span class='line-number'17/span span class='line-number'18/span span class='line-number'19/span span class='line-number'20/span span class='line-number'21/span /pre/tdtd class='code'precode class='php'span class='line'span class=olt;?/spanspan class=nxphp/span /spanspan class='line' /spanspan class='line'span class=c1//@file: Add a custom suite to display suite for Users./span /spanspan class='line' /spanspan class='line'span class=sd/**/span /spanspan class='line'span class=sd * Implements hook_ds_fields_info()./span /spanspan class='line'span class=sd * Declare my custom field./span /spanspan class='line'span class=sd *//span /spanspan class='line'span class=kfunction/span span class=nfmymodule_ds_fields_info/spanspan class=p(/spanspan class=nv$entity_type/spanspan class=p)/span span class=p{/span /spanspan class='line' span class=nv$fields/span span class=o=/span span class=karray/spanspan class=p();/span /spanspan class='line' /spanspan class='line' span class=kif/span span class=p(/spanspan class=nv$entity_type/span span class=o==/span span class=s1#39;user#39;/spanspan class=p)/span span class=p{/span /spanspan class='line' span class=nv$fields/spanspan class=p[/spanspan class=s1#39;backwards_username#39;/spanspan class=p]/span span class=o=/span span class=karray/spanspan class=p(/span /spanspan class='line' span class=s1#39;title#39;/span span class=o=gt;/span span class=nxt/spanspan class=p(/spanspan class=s1#39;Backwards Username#39;/spanspan class=p),/span /spanspan class='line' span class=s1#39;field_type#39;/span span class=o=gt;/span span class=nxDS_FIELD_TYPE_FUNCTION/spanspan class=p,/span /spanspan class='line' span class=s1#39;function#39;/span span class=o=gt;/span span class=s1#39;mymodule_backwards_username#39;/spanspan class=p,/span /spanspan class='line' span class=p);/span /spanspan class='line' span class=kreturn/span span class=karray/spanspan class=p(/spanspan class=nv$entity_type/span span class=o=gt;/span span class=nv$fields/spanspan class=p);/span /spanspan class='line' span class=p}/span /spanspan class='line' span class=kreturn/spanspan class=p;/span /spanspan class='line'span class=p}/span /span/code/pre/td/tr/table/div/figure pAny guesses whathappens next? Thatrsquo;s right, we have to write our render function under the name we just declared. You can put anything here, really anything renderable at all./p figure class='code'figcaptionspanmymodule.module/span/figcaptiondiv class=highlighttabletrtd class=gutterpre class=line-numbersspan class='line-number'1/span span class='line-number'2/span span class='line-number'3/span span class='line-number'4/span span class='line-number'5/span span class='line-number'6/span span class='line-number'7/span span class='line-number'8/span /pre/tdtd class='code'precode class='php'span class='line'span class=sd/**/span /spanspan class='line'span class=sd * Render function for the Backwards Username field./span /spanspan class='line'span class=sd *//span /spanspan class='line'span class=kfunction/span span class=nfmymodule_backwards_username/spanspan class=p(/spanspan class=nv$field/spanspan class=p)/span span class=p{/span /spanspan class='line' span class=kif/span span class=p(/spanspan class=nbisset/spanspan class=p(/spanspan class=nv$field/spanspan class=p[/spanspan class=s1#39;entity#39;/spanspan class=p]/spanspan class=o-gt;/spanspan class=naname/spanspan class=p))/span span class=p{/span /spanspan class='line' span class=kreturn/span span class=nbstrrev/spanspan class=p(/spanspan class=nv$field/spanspan class=p[/spanspan class=s1#39;entity#39;/spanspan class=p]/spanspan class=o-gt;/spanspan class=naname/spanspan class=p);/span /spanspan class='line' span class=p}/span /spanspan class='line'span class=p}/span /span/code/pre/td/tr/table/div/figure pThatrsquo;s it. So simple, yoursquo;ll wonder why you ever did it any other way!/p
Categories: Drupal Feeds

Last Call Media: Drupal 8 Lessons for Developers

Wed, 04/02/2014 - 8:17am
span class=field field-node--title field-name-title field-type-string field-label-hidden data-edit-field-id=node/83/title/en/rssDrupal 8 Lessons for Developers/spandiv class=field field-node--field-blog-image field-name-field-blog-image field-type-image field-label-hidden data-edit-field-id=node/83/field_blog_image/en/rssdiv class=field-itemsdiv class=field-itemimg class=image-style-blog src=https://lastcallmedia.com/sites/default/files/styles/blog/public/lead-images/blog_drupal-8-lessons.jpg?itok=1kjsdJpH width=758 height=606 alt= //div/div/divdiv class=field field-node--body field-name-body field-type-text-with-summary field-label-hidden data-edit-field-id=node/83/body/en/rssdiv class=field-itemsdiv class=field-itempA couple months ago, we decided to rebuild our company site on Drupal 8.  We had two goals in mind when we were planning the project.  First, we wanted to expose our developers to some real life scenarios in working with Drupal 8.  We had all been involved in the Drupal 8 development cycle in one way or another, but building a production site is very different from setting up a development instance.  Our second goal was to prove that it was possible to launch a feature complete Drupal 8 site without any contributed modules.  In my opinion, we succeeded on both counts.  There were certainly some snags in the process, but overall it was an enjoyable experience for everyone.  I’d like to share our major take-aways from the project with you./p p1.  strongspan style=text-transform:uppercase;Stronger division between the “themer” and “module developer” roles/span/strong  br / The switch to object-oriented programming for all of the core subsystems has been talked about quite a lot.  And yes, it is a big transition.  Some crazy high percentage of our core code has changed or moved.  As a module developer, it’s going to be up to you to learn all about Routes, Plugins, Event Listeners, and more just to do the same things you used to use hooks for.  I don’t think anyone will argue that the new way is simpler for module developers.  But I was ready for that.  I transitioned from Drupal 6 to Drupal 7.  I remember that feeling of firing up the new version for the first time and feeling like you’re walking into your house after your mother-in-law dropped by for a visit - you know everything’s there, but you just don’t know where it is anymore.  br / What caught me by surprise is how little has actually changed at the theme level.  Sure, there’s Twig, but when you get right down to it, Twig doesn’t even feel that different from raw PHP templates.  Once you learn the basics, my guess is that most people working with Twig will feel more comfortable there than in PHP code.  So, what’s really changed from the themer’s perspective?  Not a whole lot.  In fact, right now it feels like a conscious effort was made to keep things consistent at the theme level.  /p p2.  strongspan style=text-transform:uppercase;Fewer conflicts/span/strongbr / I’ve been using and teaching Features for years, and there’s one question that always made me cringe: “How do I avoid conflicts/merge conflicts with my features?”  My answer would usually get very abstract and I’d be talking about packaging strategies and complex push/pull/revert commands.  Now that CMI is here, we have the tool we always wanted.  Instead of combining stuff into giant PHP files as Features does, CMI writes one file per configuration object.  While this sounds really verbose, it prevents a situation where you’d get a conflict if you and a coworker change different views in the same file, since every view is in it’s own file.  In the two-month development cycle we had for our website, I think we may have ended up with a single merge conflict resulting from configuration changes./p p3.  strongspan style=text-transform:uppercase;No more packaging nightmares/span/strongbr / This goes along with my previous point about CMI, but trying to teach the right way to use Features involved a lot of abstract and hand-wavey concepts like semantic grouping and composition (and that’s just for the way I consider right).  Now that we have a true configuration management tool, we don’t need to worry about packaging at all.  Think that through for a moment.  There is no longer a need to bundle components into groups.  It all goes into one big bucket for your site.  For those of you who actually do use Features for bundling reusable components, don’t worry.  Features already has a dev release for Drupal 8 that focuses solely on grouping config into modules.  /p p4.  strongspan style=text-transform:uppercase;You need an editor that autocompletes/span/strongbr / Sorry, Notepad++ enthusiasts, but you’re going to want a bona fide IDE to do any serious development on Drupal 8.   Now that we’re using a lot of OO code, you can have a documentation trail that might be spread over 5-10 parent classes/interfaces.  It is extremely nice to be able to command+click a method name to go directly to the definition and read the docblock.  It’s even better to have your editor autocomplete the method name for you.  Plus, there are a lot more types of code in core these days (YAML, JSON, and others), and it’s nice to have syntax highlighting./p p5.  strongspan style=text-transform:uppercase;Think global, act local/span/strongbr / In case you hadn’t heard, theme(), drupal_add_js(), and drupal_add_css() functions have all been removed from Drupal 8.  The new way of doing things is to always return a render array.  The short explanation for this is that rendering stuff involves adding assets (CSS/JS) to the page, and when you call theme(), those assets are just added to a global variable somewhere.  That worked fine for Drupal 7, but since we’re a bunch of forward-thinking folks, we want our pages to be able to work with subrequests, which are a way of rendering a page using multiple processes. And guess what?  Separate processes don’t share global variables.  So, when you return the HTML for your cute little teddy bear field formatter, you should return a render array with your CSS/JS assets specified using the #attached property./p pstrongspan style=text-transform:uppercase;In summary…/span/strongbr / Diving into Drupal 8 was a lot of fun for our team.  Yes, that’s right, I said fun.  We enjoyed it, partly because it’s the new stuff, and partly because it was our project.  Whereas we would have felt dangerously stressed doing our first Drupal 8 site for a client under a tight deadline, we were able to focus on learning the new workflows, contributing bugfixes, and developing best practices.  /p pemWe first posted about our Drupal 8 launch a href=https://lastcallmedia.com/wysiwyg-with-drupal-8here/a./em/p pemAttached below are wallpaper ready versions of the image at the top of this post./em/p /div/div/div
Categories: Drupal Feeds

Modules Unraveled: 102 Project Management and ERP using ERPAL with Manuel Pistner - Modules Unraveled Podcast

Wed, 04/02/2014 - 12:00am
div class=field field-name-field-image field-type-image field-label-hidden view-mode-rssdiv class=field-itemsfigure class=clearfix field-item evenimg typeof=foaf:Image class=image-style-podcast-default src=http://modulesunraveled.com/sites/default/files/styles/podcast_default/public/podcast/image/manuelpistner.jpg?itok=fKVfUcMW width=300 height=453 alt=Photo of Manuel Pistner //figure/div/divspan class=submitted-byPublished: Wed, 04/02/14/spandiv class=field field-name-field-podcast-file field-type-file field-label-hidden view-mode-rssdiv class=field-itemsdiv class=field-item evendiv class=mediaelement-audioaudio src=http://traffic.libsyn.com/modulesunraveled/102_Project_Management_and_ERP_using_ERPAL_with_Manuel_Pistner_-_Modules_Unraveled_Podcast.mp3 class=mediaelement-formatter-identifier-1396420064-0 controls=controls /audiodiv class=mediaelement-download-linka href=http://traffic.libsyn.com/modulesunraveled/102_Project_Management_and_ERP_using_ERPAL_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-hidden view-mode-rssdiv class=field-itemsdiv class=field-item even property=content:encodedh2ERPAL/h2 ulliWhat is ERPAL?/li liWhy did you guys at Bright Solutions decide to build ERPAL? What did you need that wasn’t already available?/li liWhat are some of the features of the distro? ulliCRM (contact and activity management)/li liProject management (timetracking, payments, agil and fixed price, expenses, gantt charts, requirement management) with Freelancer support/li liDocument management and document creation/li liContract management with reccuring invoices/li liEmployee management (over hours, holidays, costs)/li liInvoice creation and PDF export/li liCalendars/li /ul/li liTell me about the mobile app./li liI noticed that there are some addon modules listed on the project page. Did you want to mention some of those? ulliERPAL Task Templates/li liERPAL Repeatable Tasks/li liERPAL Project Reports/li liERPAL CRM Reports/li liERPAL Contacts Importer/li liERPAL GIT integration/li /ul/li liIs this basically Basecamp built with Drupal? ulliWhat features do they have in common?/li liWhat does ERPAL have that Basecamp doesn’t?/li /ul/li /ulh2Use Cases/h2 ulliDo you know of anybody using ERPAL right now?/li liWho should use this? ulliLarge companies?/li liSolo developers?/li /ul/li liWhat’s the development status of ERPAL?/li liWhat’s in the future for ERPAL? What still needs to be done before a 1.0 release can be released?/li liHow does Drupal benefit from something like ERPAL?/li /ulh2NodeSquirrel Ad/h2 pHave you heard of/used NodeSquirrel?br / Use StartToGrow it's a 12-month free upgrade from the Start plan to the Grow plan. So, using it means that the Grow plan will cost $5/month for the first year instead of $10. (10 GB storage on up to 5 sites)/p /div/div/divsection class=field field-name-field-items-mentioned field-type-link-field field-label-above view-mode-rssh2 class=field-labelEpisode Links:nbsp;/h2div class=field-itemsdiv class=field-item evena href=https://drupal.org/user/302791 target=_blank rel=nofollowManuel on drupal.org/a/divdiv class=field-item odda href=https://twitter.com/tweetsBS target=_blank rel=nofollowManuel on Twitter/a/divdiv class=field-item evena href=http://www.brightsolutions.de/ target=_blank rel=nofollowBright Solutions Website/a/divdiv class=field-item odda href=http://www.erpal.info/ target=_blank rel=nofollowERPAL info site/a/div/div/sectionsection class=field field-name-field-tags field-type-taxonomy-term-reference field-label-above view-mode-rssh2 class=field-labelTags:nbsp;/h2ul class=field-itemsli class=field-item evena href=/tags/project-management typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Project Management/a/lili class=field-item odda href=/tags/cms typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=CMS/a/lili class=field-item evena href=/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planet-drupal/a/li/ul/section
Categories: Drupal Feeds

Fred Parke | The Web Developer: Creating content types and fields with a custom module in Drupal 7

Tue, 04/01/2014 - 6:37pm
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenp class=unabridgedI was writing a custom module recently which used a custom content type or two. I wanted to make the module as reusable as possible but I also wanted to avoid including a a href=https://drupal.org/project/features target=_blankfeature/a inside of the module to add these content types./p/div/div/div
Categories: Drupal Feeds

Propeople Blog: How to Configure CyberSource Secure Acceptance Web/Mobile in Drupal 7

Tue, 04/01/2014 - 6:31pm
div id=comment-wrapper-nid-1429/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp dir=ltrDrupal is a great platform for ecommerce. If your business needs a a href=/servicesDrupal website/a that accepts payments, a good payment system to use is CyberSource Secure Acceptance Web/Mobile. This tool allows business to accept payments made online, over the phone, and through mobile devices without ever handling toxic payment data. CyberSource is owned by Visa and integrates quite nicely with Drupal Commerce./pp dir=ltrIt consists of securely managed payment forms or as a single page payment form for processing transactions. This allows you to decrease your Payment Card Industry Data Security Standard (PCI DSS) obligations, thereby reducing any risks associated with handling or storing sensitive payment information./pp dir=ltrIn order to get this up and running on your Drupal website, you simply need to follow a few steps:/pp dir=ltr1. Create and configure Secure Acceptance profiles/pp dir=ltr2. Configure CybeSource profile with Drupal/pp3. See the results!/pp /ph2Creating a Secure Acceptance Profile/h2pstrongImportant: /strongFor using a Secure Acceptance experience, an active profile is needed./ppA Secure Acceptance profile consists of settings that you configure to create a customer checkout experience. In order to create a Secure Acceptance profile, you need to:/pp1. Log in to Business Center with Merchant ID:/pulliLive Transactions: a href=https://ebc.cybersource.com/https://ebc.cybersource.com/a/liliTest transactions:a href=https://ebctest.cybersource.com/ https://ebctest.cybersource.com/a/li/ulpimg alt=Business Center Login class=media-element file-default data-file_info=%7B%22fid%22:%223353%22,%22view_mode%22:%22default%22,%22fields%22:%7B%22format%22:%22default%22,%22field_file_image_alt_text%5Bund%5D%5B0%5D%5Bvalue%5D%22:%22Business%20Center%20Login%22,%22field_file_image_title_text%5Bund%5D%5B0%5D%5Bvalue%5D%22:%22%22,%22field_tags%5Bund%5D%22:%22%22%7D,%22type%22:%22media%22%7D src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Ashampoo_Snap_2014.03.26_23h10m07s_002__1.png style=line-height: 1.538em; height: 347px; width: 500px; typeof=foaf:Image //ppNote: If you don't have a Merchant ID you will need to create one (a href=https://support.cybersource.com/cybskb/index?page=contentamp;id=C887https://support.cybersource.com/cybskb/index?page=contentamp;id=C887/a)/pp dir=ltr2. In the left navigation panel, choose strongTools amp; Settings gt; Secure Acceptance gt; Profiles gt; Create New Profile/strong./pp3. Enter Profile information/ppimg typeof=foaf:Image src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Ashampoo_Snap_2014.03.26_23h33m30s_003_.png alt=Create Profile //pulliEnter profile name/liliEnter profile ID. The profile ID is case sensitive and must be exactly 7 alphanumeric characters. This field is used in each transaction to identify and display the Secure Acceptance profile./liliEnter a profile description/liliCheck strongWeb/Mobile/strong/liliEnter a company name/liliCheck strongPayment Tokenization, Decision Manager, Enable Verbose Data/strong/li/ulp4. Click the strongCreate/strong button. The Profile Settings page appears. You must activate a profile in order to use it, and you must configure these required fields before activating a profile:/pulliPayment Settings/liliCreate a Security Key/liliDisplay a Customer Response Page/li/ulpimg typeof=foaf:Image src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Ashampoo_Snap_2014.03.26_23h49m12s_004_.png alt=Test Profile Cybers //pp /ph2Configuring Payment Settings/h2pYou must select the card types that you wish to offer to the customer as payment methods. For each card type you select you can also manage currencies, CVNs, and payer authentication options./pp dir=ltrThe Card Verification Number (CVN) is a three- or four-digit number printed on the back or front of a credit card. This number helps to ensure that the customer has possession of the card at the time of the transaction./ppTo add a card type and enable the CVN you must:/pp dir=ltr1. On the strong“Profile Settings”/strong page, click strongPayment Settings/strong. The Payment Settings page appears./pp dir=ltr2. Click strongAdd/Edit Card Types/strong. The Add/Edit Card Types window appears./pp3. Check each card type that you wish to offer to the customer as a payment method./ppimg typeof=foaf:Image src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Ashampoo_Snap_2014.03.27_00h18m21s_005_.png alt=CyberSource Edit Visa Settings //pp4. Click strongUpdate/strong./pp dir=ltr5. Click the pencil icon in the column for each card type. The Edit Card Settings appears./pp dir=ltr6. Check strongCVN Display/strong and strongCVN Required/strong to display the CVN field on Secure Acceptance./pp7. On the “Currencies” section click strongSelect All/strong or select a currency and use arrow to move it from the Disabled list to the Enabled list./ppimg typeof=foaf:Image src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Ashampoo_Snap_2014.03.27_00h29m30s_006_.png alt=CyberSource Edit Visa Settings //ppspan style=line-height: 1.538em;8. Click /spanstrong style=line-height: 1.538em;Update/strong/pp9. In the strongAutomatic Authorization Reversals/strong section (on the Payment Settings page) check strongFails AVS check/strong and strongFails CVN check/strong. Authorization is automatically reversed on a transaction that fails an AVS check or a CVN check./ppimg typeof=foaf:Image src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Ashampoo_Snap_2014.03.27_00h39m30s_007_.png alt=CyberSource Payment Method //pp10. Click strongSave./strong/pp /ph2Creating a Security Key/h2pThe security script signs the request fields using the secret key and the HMAC SHA256 algorithm. To verify data, the security script generates a signature to compare with the signature returned from the Secure Acceptance server. You must have an active security key to activate a profile. A security key expires after 2 years. The security key protects each transaction from data tampering./ppTo create and activate a security key:/pp dir=ltr1. On the “Profile Settings”page, click strongSecurity/strong. The Security Keys page appears./pp dir=ltr2. Click strongCreate New Key/strong. The Create New Key page appears./pp dir=ltr3. Enter a Key Name (required)./pp dir=ltr4. Chose signature version strongVersion 1/strong./pp dir=ltr5. Choose signature method strongHMAC-SHA256/strong./pp dir=ltrimg typeof=foaf:Image src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Ashampoo_Snap_2014.03.27_00h51m42s_008_.png alt=CyberSource Create New Key //pp dir=ltr6. Click strongGenerate Key/strong. The Create New Key window expands and displays the new access key and secret key. This window closes after 30 seconds./pp dir=ltrimg typeof=foaf:Image src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Ashampoo_Snap_2014.03.27_00h54m23s_009_.png alt=CyberSource Create New Key //pp dir=ltr7. Copy and save the access key and secret key./pul dir=ltrliAccess key: Secure Sockets Layer (SSL) authentication with Secure Acceptance./liliSecret key: signs the transaction data and is required for each transaction./li/ulp dir=ltrBy default, the new security key is active./pp8. Click Return to Profile home. The “Profile Settings” page appears./pp /ph2Displaying a Customer Response Page/h2pYou can choose to have a transaction response page displayed to the customer at the end of the checkout process, and a cancel response page displayed during the checkout process. Enter a URL for your own customer response page or use the CyberSource hosted response pages./ppTo redirect a customer after Check-out:/pp dir=ltr1. On the “Profile Settings” page, click strongCustomer Response Pages/strong./pp dir=ltr2. Under the strongCustomer Redirect after Check-out/strong heading, enter the URL for the custom page that the customer will be redirected to after checkout./pp3. Click strongSave/strong./pp /ph2Activate Profile/h2pTo make your profile active:/pp1. On the Profile Settings page, click strongPromote to Active/strong. /pp /ppimg alt=CyberSource Promote to Active class=media-element file-default data-file_info=%7B%22fid%22:%223363%22,%22view_mode%22:%22default%22,%22fields%22:%7B%22format%22:%22default%22,%22field_file_image_alt_text%5Bund%5D%5B0%5D%5Bvalue%5D%22:%22CyberSource%20Promote%20to%20Active%22,%22field_file_image_title_text%5Bund%5D%5B0%5D%5Bvalue%5D%22:%22%22,%22field_tags%5Bund%5D%22:%22%22%7D,%22type%22:%22media%22%7D src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Ashampoo_Snap_2014.03.27_01h36m47s_011_.png style=line-height: 1.538em; height: 306px; width: 500px; typeof=foaf:Image //pp2. Your profile is now active!/ppimg typeof=foaf:Image src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Ashampoo_Snap_2014.03.27_01h38m48s_012_.png alt=CyberSource Active //pp /ph2Drupal Site Configuration/h2p dir=ltr1. Install thea href=https://drupal.org/project/commerce_cybersource_sawm Commerce CyberSource Secure Acceptance Web/Mobile/a contrib module./pp dir=ltr2. Check that the module Payment UI is enabled./pp dir=ltr3. From the Drupal admin menu, choose strongStore gt; Configuration gt; Payment Methods/strong (or access path admin/commerce/config/payment-methods)./pp dir=ltr4. Select strongEdit Operation/strong for payment method rule “CyberSource Secure Acceptance Web/Mobile”/pp dir=ltr5. Edit the rule action “Enable payment method: CyberSource Secure Acceptance Web/Mobile”./pp dir=ltr6. In the Payment Settings section enter the Secure Acceptance profile details./pp dir=ltr7. Enter strongProfile ID/strong (configured during Step 3 -  Secure Acceptance Profile)/pp dir=ltr8. Enter Access Key and Secret key you created (see “Creating a Security Key” above)/pp dir=ltr9. Select Transaction mode:/pul dir=ltrliTest – for testing transactions (profile sitea href=https://ebctest.cybersource.com/ https://ebctest.cybersource.com/a)/liliLive – for live transaction (profile sitea href=https://ebc.cybersource.com/ https://ebc.cybersource.com/a)/li/ulp dir=ltr10. Set strongTransaction Type/strong to “Authorize Funds”/pp dir=ltr11. strongLocale/strong (ex: English - American)/pp dir=ltr12. Set strongPayment method/strong to “Card”/pp dir=ltr13. Enter text for strongPayment Submit Button Text/strong./pp dir=ltr14. Clickstrong Save/strong./pp dir=ltr15. On the strongPayment methods/strong page, enable the rule for CyberSource Secure Acceptance Web/Mobile./pp dir=ltrbr /Now, on the completion of order you can select Credit Card as the payment method./pp dir=ltrimg typeof=foaf:Image src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Ashampoo_Snap_2014.03.28_00h05m23s_002_.png alt=CyberSource Choose Payment Type //pp dir=ltrspan style=line-height: 1.538em;After you click on “Continue to Next Step”you wil berl redirected to the Cybersource site./span/pp dir=ltrimg typeof=foaf:Image src=http://d3gda9raw7t781.cloudfront.net/sites/default/files/Screen%20Shot%202013-10-17%20at%2010.58.24%20AM.png alt=CyberSource Details //pp dir=ltrAfter completion, and the display of CyberSource payments details, you will be redirected back to your Drupal site.br /br /And that's it! If you follow all of the steps above, CyberSource Secure Acceptance Web/Mobile should be configured on your Drupal 7 site in no time. Make sure to a href=mailto:office@wearepropeople.comcontact us/a if you are looking for a technology partner to help you ensure the success of your Drupal business or ecommerce website. /pp dir=ltrGood luck. /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 evena href=/tags/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a/divdiv class=field-item odda href=/tags/development typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Development/a/divdiv class=field-item evena href=/tags/payment-system typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=payment system/a/divdiv class=field-item odda href=/tags/ecommerce typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=ecommerce/a/divdiv class=field-item evena href=/tags/drupal-for-business typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal for Business/a/divdiv class=field-item odda href=/tags/cybersource typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=CyberSource/a/div/div/divdiv class=field field-name-field-drupal-planet field-type-taxonomy-term-reference field-label-abovediv class=field-labelCheck this option to include this post in Planet Drupal aggregator:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/drupal/planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=planet/a/div/div/divdiv class=field field-name-field-topics field-type-taxonomy-term-reference field-label-abovediv class=field-labelTopics:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/topics/tech-development typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Tech amp; Development/a/div/div/div
Categories: Drupal Feeds

Greater Los Angeles Drupal (GLAD): GLADCamp Rebrands as VLADCamp; Focuses on Drupal for Evil

Tue, 04/01/2014 - 5:45pm
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpA new look for the a href=https://gladcamp.orgGreater Los Angeles Area Drupal Camp/a has been unveiled. “VLADCamp” is the new name of the conference, co-organized by Greater Los Angeles Drupal organizing team member Christefano Reyes, who announced the name as it epitomizes the goals for the organization moving forward./p p“GLADCamp was originally envisioned as being the Drupal community's marquee event of the year that heavily focuses on the needs of non-profits, education and civic engagement. After trying 'Drupal for Good' this year, we decided that 'Drupal for Evil' would be more fun,” he explained./p pThis marks a major shift in strategy for the user group, which for nearly 4 years has provided Drupal resources, including its a href=https://drupal.la/resources/business-directoryBusiness Directory/a and a href=https://drupal.la/resources/governance-policyGovernance Policy/a, and events, including this year's inaugural a href=https://gladcamp.orgGLADCamp/a conference./p pIt's difficult growing a brand that's known for so many different things, such as meetups, job fairs, coworking days, study group sessions, workshops, code sprints and conferences, he said. Now we stand for just one thing: Evil. We think our members will appreciate this simplification. Besides, being completely transparent and accountable is too hard./p pAccording to Holly Ross, executive director of the Drupal Association, a non-profit whose mission is to foster and promote the Drupal software and community, There is currently no other Drupal user group on our radar who is so blatantly dedicated to this behavior. We've been monitoring several user groups that have little transparency, little accountability or little consistency, but this is the first time we've seen a user group without all three, she said in a phone interview. We're continuing to monitor the situation./p pThe VLADCamp organizing team is delighted with the impact of its new name and logo, which has been developed in consultation with Acquio, based in Burlington, Massachusetts. We enjoy working with forward-thinking organizations who can pivot and provide value to underserved markets, said Acquio CMO Tom Wentworth, who featured VLADCamp as a successful launch partner of its content personalization service, Acquio Escalator./p /div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tags/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Planet Drupal/a/divdiv class=field-item odda href=/tags/april-fools-day typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=April Fools Day/a/div/div/div
Categories: Drupal Feeds

Cocomore: DrupalDevDays Szeged 2014

Tue, 04/01/2014 - 3:45pm
pThe last week three of us from Cocomore went to the little town of Szeged in Hungary around 175km south east of Budapest./p pThe DevDays were all about developing a class=glossary-term href=http://drupal.cocomore.com/glossary/8#term138dfn title=Drupal can be thought of as many things, a content management framework (CMF), content management system (CMS), and as a community. The name derives from the Flemish/Dutch word for “drop” (“druppel”), which heralds back to an accidental registration of drop.org, instead of dorp.org ('Dorp' is the Dutch word for “village”).Drupal/dfn/a 8 further and enhance drupal.org. The only topic was contributing to Drupal in the one way or the other. Whatever you are, either a developer, a a class=glossary-term href=http://drupal.cocomore.com/glossary/8#term197dfn title=A themer is a member of the Drupal community who is interested in or engages in “theming”, the activity of writing Drupal themes. As with other Drupal community roles, there are often few clear distinctions separating a “themer” from a “coder” or “site builder”. (See theme.)themer/dfn/a, a a class=glossary-term href=http://drupal.cocomore.com/glossary/8#term188dfn title=A “site builder” is someone who plans and builds websites based on the Drupal core and (usually) additional contrib modules and themes. Being a “site builder” and being interested in materials for site builders and administrators does not mean that you might not also wear other “community role” hats from time to time. Many people who might primarily build sites from existing modules also write and maintain modules, themselves (so are “coders”), manage a live Drupal site (so are “administrators”), adjust their templates and CSS (so are “themers”), try to build enthusiasm about Drupal in people they meet (so are “Drupal evangelists”), etc. The term is primarily used to describe the kind of material covered in a book, in tutorials, training sessions, or presentations: it tends to mean “no heavy coding” (but expect some possibly complex user interfaces and to tweak settings).site builder/dfn/a, a devop or a business man, everyone has his/her part in this amazing community and everyone found a spot where he/she could help to foster Drupal further./p pa href=http://drupal.cocomore.com/blog/drupaldevdays-szeged-2014 target=_blankread more/a/p
Categories: Drupal Feeds

DrupalCon Austin News: DrupalCon Austin Sessions are Posted!

Tue, 04/01/2014 - 3:14pm
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item even property=content:encodedpimg src=https://austin2014.drupal.org/sites/default/files/images/austinatnight.jpg //p pHow’s this for a session title? “Newfangeldy mobile and front-end crap for people who last touched front-end code back when grunge was a thing.” /p pOr this one? Markup Ain't Easy or: How I Learned to Stop Worrying and Love An Object-Oriented RenderAPI/p/div/div/div
Categories: Drupal Feeds

Morten.dk: fields theming in Drupal8, kill the divitis

Tue, 04/01/2014 - 2:35pm
!--content-field.tpl-- div class=fieldgroup group-image div class=content !--content-field.tpl-- /div /div pI finally got to take a long amp; hard look at fields and why they have so much divitis + a solution of how to change it for Drupal8. It ended up beeing a ton of markup amp; css examples on a flat html pagebr / a href=http://mortendk.github.io/drupal8-fields/take a look/a please provide feedback, here or on the issue or at my twitter etc./p pa href=http://morten.dk/blog/fields-theming-drupal8-kill-divitis target=_blankread more/a/p
Categories: Drupal Feeds

Urban Insight: Top 10 Drupal Contributions of 2014

Tue, 04/01/2014 - 10:53am
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpWe will review some of the pretty neat Drupal contributions coming this year. The community as a whole has really outdone themselves. Step aside Drupal 8, you are about to get passed up. Without further ado, here is our top 10 Drupal contributions for 2014./p /div/div/div
Categories: Drupal Feeds

Open Source Training: A Sub-theme of a Drupal Sub-theme

Tue, 04/01/2014 - 10:42am
pThe best way to design and modify your Drupal site is with overrides./p pIf you're not sure how overrides work, read our a href=http://www.ostraining.com/blog/drupal/drupal-overrides/introduction to Drupal overrides/a./p pOne of the most powerful ways to override Drupal is with sub-themes and sometimes even with sub-sub-themes. These allow you to safely override any themes you download from Drupal.org./pimg src=http://feeds.feedburner.com/~r/ostrainingdrupal/~4/OE6Z0xiOjWI height=1 width=1/
Categories: Drupal Feeds