Planet Drupal

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

Open Source Training: The State of Drupal 8: July 2014

Tue, 07/08/2014 - 19:30
pimg style=float: right; visibility: visible; title=Drupal 8 Logo src=https://www.ostraining.com/cdn/images/drupal/drupal-8-logo.png alt=drupal-8-logo width=165 height=169 data-src=/cdn/images/drupal/drupal-8-logo.png /It's been 8 months since our last overview of Drupal 8./p pA good number of OSTraining members went to DrupalCon Austin or to DrupalCamps this summer and came back with questions about Drupal 8./p pSo, here's an update on Drupal 8 and when you can plan on using it./pimg src=http://feeds.feedburner.com/~r/ostrainingdrupal/~4/6kc1isL8zAY height=1 width=1/

Greg Knaddison: Drupalcamp Colorado 2014 Preview: Large Scale Drupal

Tue, 07/08/2014 - 14:48
pThis year, a href=https://2014.drupalcampcolorado.org/Drupalcamp Colorado/a is taking on the topic of Large Scale Drupal - a phrase that was popularized by a href=http://buytaert.net/announcing-acquia-large-scale-drupal-programDries Buytaert/a. We're taking that phrase and using it in a generic sense to help set a focus for our event./p pa href=http://www.dogstar.org/drupal/content/drupalcamp-colorado-2014-0Matthew Saunders/a wrote a great overview of the camp, so if you're interested and need more convincing to come, read that. This is an update on our tracks and some great sessions that have been accepted already./p h3Tracks and session submission requests/h3 pWe're taking that theme as inspiration for our sessions which will be across 4 tracks:/p ul liBusiness and Open Source/li liDevOps/li liCommerce/li liDesign and Front End/li liDevelopment and Site Building/li /ul pToday we are excited to announce the first 9 sessions that have been selected. Session Submission is still open until July 11th. We've currently got too many sessions in /Development and Site Building/ and not enough sessions in the other categories. So...if you have something to say in those other areas, please a href=https://2014.drupalcampcolorado.org/node/add/sessionsubmit a session/a (note, you have to login first, and you should register too)./p h3First sessions that have been accepted:/h3 pThere are some sessions we know we're going to accept because they come from great presenters on popular topics that match our theme. Below are the 9 sessions we knew we could accept now./p ul lia href=https://2014.drupalcampcolorado.org/session/solution-architecture-designing-strategy-project-successSolution architecture: designing a strategy for project success/a by Diana Dupuis, Amazing CEO of Amazee Labs in the USA/li lia href=//2014.drupalcampcolorado.org/session/data-analytics-and-day-afterData Analytics and the Day After/a by Ron Lin, CTO and Co-Founder of CARD.com/li lia href=https://2014.drupalcampcolorado.org/session/devops-101-culture-and-toolsDevOps 101 - Culture and Tools/a by Trent Hein, Co-Founder of Boulder's Applied Trust and a DevOps powerhouse/li lia href=//2014.drupalcampcolorado.org/session/securing-customer-credit-card-dataSecuring Customer Credit Card Data/a by Rick Manelius, author of the Drupal PCI Compliance paper/li lia href=//2014.drupalcampcolorado.org/session/attacking-drupalAttacking Drupal/a by Greg Foss, of security specialists LogRhythm/li lia href=//2014.drupalcampcolorado.org/session/drupal-8-module-development-just-basicsDrupal 8 Module Development: Just the Basics/a by Brandon Williams of New Media Denver/li lia href=//2014.drupalcampcolorado.org/session/drupal-8-plugin-deep-diveDrupal 8 Plugin Deep Dive/a by Kris Vanderwater of Acquia/li lia href=//2014.drupalcampcolorado.org/session/bliss-and-enlightment-automated-testing-behatBliss and Enlightment: Automated testing with Behat/a by me, Greg Knaddison/li lia href=//2014.drupalcampcolorado.org/session/productivity-tools-developing-php-and-drupalProductivity tools for developing with PHP and Drupal/a by Ben Jeavons of Acquia/li /ul pI think you could attend just these 9 sessions and really have a great weekend of Drupal content and there are going to be dozens more. If you look at the titles and the presenters I think you'll see that there's a lot of people working on interesting problems as a result of dealing with large scale sites built in Drupal./p

DrupalCon Amsterdam: Session selection for DrupalCon from the inside-out

Tue, 07/08/2014 - 08:14
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpLike almost everything in the Drupal world, DrupalCon is, in part, a labor of passionate enthusiasts who donate their time. Every year, the Drupal Association appoints a program team who work together to select sessions for upcoming DrupalCons. The program team is unique to every conference, but volunteers of past cons (called “globals”) are asked to join the committee to assist the newer members and pass on historical knowledge./p pDrupalCon sessions are divided into tracks, which generally stay the same, but have evolved over the years. For Amsterdam, we have:/p ulliCoding and Development/li liCore Conversations/li liDevOps/li liDrupal Business/li liFrontend/li liSite Building/li /ulpFor Amsterdam, we’ve added two new mini tracks; Case Studies and PHP. We’ve also added Business Showcase (formerly Day Stage) and the Community track is now a full day summit on the Monday./p pEach track has a Chair (or Lead) - someone who takes the lead on setting the theme of the track, generating interest and inviting speakers, and selecting sessions. Last year, I was the Track Chair for the Coding and Development track for DrupalCon Prague. This year, I was lucky enough to be asked to be a “Global” (or co-chair) for the Coding and Development track for Amsterdam. This means that I was there as support for the new track chair, Pedro Cambra (a href=https://www.drupal.org/u/pcambrapcambra/a). I was helped by veterans of previous DrupalCons, Jason Yee (a href=https://www.drupal.org/u/jyeejyee/a) and Larry Garfield (a href=https://www.drupal.org/u/crellCrell/a)./p pPedro and team have done a fantastic job of canvassing for speakers and helping people with their session proposals./p pThere’s a lot of elements to session selection. We need to make sure that sessions are of value to a wide audience. The presenters must be engaging speakers who can interest a large crowd of attendees. We try as hard as we can to bring in new (to DrupalCon) speakers, and speakers who bring something from outside of the Drupal sphere. We want to make sure that the diversity of the community is represented and encouraged. And we need to work across track teams to ensure that one speaker is not speaking in several tracks; both for the sake of their stress and sanity in preparing the talks and to ensure that everyone who applied has the best chance of speaking. Finally, we need to make sure that sessions fit both the theme of the track and of the conference./p pAs you can imagine, balancing all of this can be quite challenging!/p pEach track team ranks their sessions as makes sense to the team. In the Coding and Development track, Pedro, Jason, and I rated each session and speaker out of 5, paying special attention to the quality and relevancy of the submission and the speaker's rapport with their audience. If we're lucky, we've seen the speaker present before, but if not, we can view any available slide decks or recordings to get a sense for their presenting ability. This is why it’s very important for prospective speakers to include speaking history in their session proposal. A speaker doesn't need to have sessions online to be selected - it just makes our job easier. We refined the 128 submissions in the Coding and Development track down to a top rated 25 or so sessions, which were then filtered to make sure that there is no overlap and that the speaker wasn’t speaking in another track./p pBeing so involved in the planning of content for DrupalCon is an enlightening experience. The breadth of knowledge, experience, and creativity in the Drupal community is quite literally overwhelming. The 510 sessions submitted this year illustrate just how passionate the community is. /p pThere’s no better way to get a sense of the Drupal zeitgeist than to pore over hundreds of sessions. This discovery exposes us all to new technologies, projects, and methodologies, and at least for me has made me aware of people in the community that are doing fascinating, challenging, and important work - people I might never have found otherwise. There’s also a degree of humility to be observed when considering the diverse and very well informed views of your fellow content team members./p pAfter two weeks of review, ranking, and deliberation across timezones, I present to you with the 90+ DrupalCon Amsterdam selected sessions./p pa href=https://amsterdam2014.drupal.org/sessions/accepted class=button-linkView selected sessions/a/p pIf you are interested in becoming involved in DrupalCon planning in the future, a href=mailto:stephanie@association.drupal.orglet the DA know/a. It's very rewarding, and the team dinner during the conference just caps it all off! /p p--br / Cameron Tod (acam8001/a)br / DrupalCon Amsterdam Coding and Development Co-Chair/p /div/div/div

Kristian Polso: Fix Drupal Registry with Registry Rebuild

Tue, 07/08/2014 - 06:45
It has happened to all of us. You mistakenly remove a module directory or migrate your site and forget to include some necessary modules. This causes your Drupal site only to show the WSOD and perhaps the following error:

Drupal.org Featured Case Studies: Newstica

Mon, 07/07/2014 - 22:51
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/newstica01.png?itok=BzNi2Ibv width=588 height=306 alt=Newstica homepage //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.newstica.comhttp://www.newstica.com/a/div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpNewstica.com is an intelligent strongnews reading application/strong operated by a Canadian company. The website collects hundreds of news stories daily and creates a unique set of articles on each page view with the use of sophisticated algorithms that operate off individual users' preferences./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/panelsPanels/a/divdiv class=field-item odda href=/project/viewsViews/a/divdiv class=field-item evena href=/project/zenZen/a/divdiv class=field-item odda href=/project/feedsFeeds/a/divdiv class=field-item evena href=/project/feeds_xpathparserFeeds XPath Parser/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=/user/2287190highvrahos/a/div/div/div

Mediacurrent: Using Sass Breakpoints Effectively

Mon, 07/07/2014 - 22:02
img typeof=foaf:Image src=http://www.mediacurrent.com/sites/default/files/styles/thumb_blog_spotlight/public/using-sass-master-v1.1.png?itok=2Z4XpYVd width=200 height=152 alt=Kendal Totten - Using Sass Breakpoints title=Kendal Totten - Using Sass Breakpoints / pThere have been plenty of blog posts touting the reasons to use a href=http://sass-lang.com/Sass/a as a CSS preprocessor, and if you've been doing responsive design for a while, you're probably already using the a href=https://github.com/Team-Sass/breakpoint/wikiBreakpoint/a gem with Sass. But there are many ways to use both of these tools, so let's talk about using breakpoints effectively. /p blockquotepStart with the small screen first, then expand until it looks like sh*t. Time for a breakpoint!br /em- Stephen Hay./em/p/blockquote

Chuva Inc.: Entity Metathing what? -- A very brief introduction on entity_metadata_wrappers

Mon, 07/07/2014 - 21:57
div id=comment-wrapper/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpAre you familiar with entity_metadata_wrappers? If you’re not, oh boy, you should be!/ppspan style=line-height: 1.6em;Entity Metadata Wrapper is the right way - and, after you get the grip of it, the easiest way - for you to manipulate anything with a field when coding your module. Sure, since the old days of CCK we are used with dealing with our fields in our nodes. Except they are a little messy./span/ph2span style=line-height: 1.6em;Cleaner code!/span/h2pInstead of doing this:/pdiv class=codeblockcodespan style=color: #000000span style=color: #0000BBlt;?phpbr /$first_name /spanspan style=color: #007700= /spanspan style=color: #DD0000''/spanspan style=color: #007700;br /if (!empty(/spanspan style=color: #0000BB$node/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBfield_first_name/spanspan style=color: #007700)) {br /  /spanspan style=color: #0000BB$name /spanspan style=color: #007700= /spanspan style=color: #0000BB$node/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBfield_first_name/spanspan style=color: #007700[/spanspan style=color: #0000BBLANGUAGE_NONE/spanspan style=color: #007700][/spanspan style=color: #0000BB0/spanspan style=color: #007700][/spanspan style=color: #DD0000'value'/spanspan style=color: #007700];br /}br //spanspan style=color: #0000BB?gt;/span/span/code/divpLet’s condense that, shall we?/pdiv class=codeblockcodespan style=color: #000000span style=color: #0000BBlt;?phpbr /$node_wrapper /spanspan style=color: #007700= /spanspan style=color: #0000BBentity_metadata_wrapper/spanspan style=color: #007700(/spanspan style=color: #DD0000'node'/spanspan style=color: #007700, /spanspan style=color: #0000BB$node/spanspan style=color: #007700);br //spanspan style=color: #0000BB$first_name /spanspan style=color: #007700= /spanspan style=color: #0000BB$node_wrapper/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBfield_first_name/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBvalue/spanspan style=color: #007700();br //spanspan style=color: #0000BB?gt;/span/span/code/divpSure, the name “metadata wrapper” may be a little intimidating, but it does shortens your code and makes it clearer. Oh, and if you have an entity reference field, or a file field, you can just do this:/pdiv class=codeblockcodespan style=color: #000000span style=color: #0000BBlt;?phpbr /$image /spanspan style=color: #007700= /spanspan style=color: #0000BB$node_wrapper/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBfield_image/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBvalue/spanspan style=color: #007700();br //spanspan style=color: #0000BB?gt;/span/span/code/divpAnd the $referenced_node is already a loaded file object, not a useless “fid”./ph2Wrappers for dealing with entity reference: cleaner-er code!/h2pSuppose you have two node types: Employee and Department. There is an Entity reference field from Employee to Department and on the Department node you have a field called field_dept_phone that stores the phone number. (for simplicity, I'm assuming that field_employee_dept is required)./ppIf you have the $employee node, how to fetch the phone number?/ppHard way:/pdiv class=codeblockcodespan style=color: #000000span style=color: #0000BBlt;?phpbr /$phone /spanspan style=color: #007700= /spanspan style=color: #DD0000''/spanspan style=color: #007700;br //spanspan style=color: #0000BB$department /spanspan style=color: #007700= /spanspan style=color: #0000BBnode_load/spanspan style=color: #007700(/spanspan style=color: #0000BB$employee/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBfield_employee_dept/spanspan style=color: #007700[/spanspan style=color: #0000BBLANGUAGE_NONE/spanspan style=color: #007700][/spanspan style=color: #0000BB0/spanspan style=color: #007700][/spanspan style=color: #DD0000'target_id'/spanspan style=color: #007700]);br /if (/spanspan style=color: #0000BB$department /spanspan style=color: #007700amp;amp; !empty(/spanspan style=color: #0000BB$department/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBfield_dept_phone/spanspan style=color: #007700[/spanspan style=color: #0000BBLANGUAGE_NONE/spanspan style=color: #007700][/spanspan style=color: #0000BB0/spanspan style=color: #007700][/spanspan style=color: #DD0000'value'/spanspan style=color: #007700])) {br /  /spanspan style=color: #0000BB$phone /spanspan style=color: #007700= /spanspan style=color: #0000BB$department/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBfield_dept_phone/spanspan style=color: #007700[/spanspan style=color: #0000BBLANGUAGE_NONE/spanspan style=color: #007700][/spanspan style=color: #0000BB0/spanspan style=color: #007700][/spanspan style=color: #DD0000'value'/spanspan style=color: #007700];br /}br //spanspan style=color: #0000BB?gt;/span/span/code/divpAnd the wrapper way:/pdiv class=codeblockcodespan style=color: #000000span style=color: #0000BBlt;?phpbr /$wrapper /spanspan style=color: #007700= /spanspan style=color: #0000BBentity_metadata_wrapper/spanspan style=color: #007700(/spanspan style=color: #DD0000'node'/spanspan style=color: #007700, /spanspan style=color: #0000BB$employee/spanspan style=color: #007700);br //spanspan style=color: #0000BB$phone /spanspan style=color: #007700= /spanspan style=color: #0000BB$wrapper/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBfield_employee_dept/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBfield_dept_phone/spanspan style=color: #007700-gt;/spanspan style=color: #0000BBvalue/spanspan style=color: #007700();br //spanspan style=color: #0000BB?gt;/span/span/code/divp /ph2Now what?/h2pWell, this post is not intended to be a full entity metadata wrapper course, so, if I have convinced you, take 15 minutes of your day and do this:/polliDownload Entity API from a href=http://drupal.org/project/entityhttp://drupal.org/project/entity/a/liliRead this, now: a href=https://drupal.org/node/1021556https://drupal.org/node/1021556/a/liliYour life quality will improve, proportionally to your code quality!/li/olpsubemPhoto credits: a href=https://www.flickr.com/photos/81564552https://www.flickr.com/photos/81564552/a@N00/3208209972//em/sub/p/div/div/divdiv class=field field-name-taxonomy-vocabulary-2 field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=http://chuva-inc.com/blog/tags/phpPHP/a/divdiv class=field-item odda href=http://chuva-inc.com/blog/tags/entityentity/a/divdiv class=field-item evena href=http://chuva-inc.com/blog/tags/entitymetadatawrappersentity_metadata_wrappers/a/divdiv class=field-item odda href=http://chuva-inc.com/blog/tags/drupal-planetdrupal planet/a/div/div/divdiv class=field field-name-field-top-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src=http://chuva-inc.com/sites/default/files/3208209972_190dac28f2_o.jpg width=3072 height=2304 alt= //div/div/div

groups.drupal.org frontpage posts: Shared Values and the Drupal Community

Mon, 07/07/2014 - 21:50
pDries recently wrote a a href=http://buytaert.net/fostering-inclusivity-and-diversityblog post/a about the challenges of fostering diversity and inclusivity in the Drupal community. This is the latest installment of a conversation that’s been going on for years./p pIn 2012, a group of Drupal community members worked together to draft a Code of Conduct that could be used to supplement the Drupal community’s a href=https://www.drupal.org/dcocCode of Conduct/a at DrupalCon and other in-person events./p pThis effort prompted a large (and sometimes heated) conversation that involved people from all corners of the Drupal community. This conversation was a difficult one, and many of us disagreed about many different things, but ultimately, we all agreed on several general principles:/p ul liWe are a group of diverse people from a wide variety of ethnic, cultural, and religious backgrounds, and we embrace that./li liMaking all attendees feel welcome and included at DrupalCon is everyone’s job./li liWe treat each other with dignity and respect./li liWe take responsibility for our words and actions and the impact that they may have on others./li /ul pThese principles informed the a href=https://amsterdam2014.drupal.org/code-of-conductDrupalCon Code of Conduct/a, which was ratified by the Drupal Association in the summer of 2012 and has been used at every DrupalCon since./p pAt the last few DrupalCons, there have been a number of reported incidents, including groping, sexual harassment, physical assault, inappropriate comments made about female speakers, and more. While we are grateful that these incidents are being reported, even a single incident is too many./p pIn early 2013, the a href=https://www.drupal.org/governance/community-working-groupCommunity Working Group/a was a href=http://cgit.drupalcode.org/governance/plain/charters/community-working-group-charter.html?id=refs/heads/masterchartered/a by Dries to uphold the Drupal Code of Conduct and to maintain a friendly and welcoming community for the Drupal project./p pAs a community, it’s important that we always keep our shared principles and values in mind when interacting with others, whether that be in person at DrupalCon, in the issue queues on Drupal.org, on IRC, or via social media. As the DrupalCon Code of Conduct states, the purpose is not to restrict the diversity of ideas and expression, but instead to ensure that there is a place for everyone in the Drupal community who agrees to abide by these basic principles./p pEven when everyone has the best intentions, however, it’s inevitable that conflicts will occur. To ensure that these are addressed in a manner consistent with our shared values, the Community Working Group has worked with the community to develop a a href=https://www.drupal.org/conflict-resolutionconflict resolution policy/a that lays out the process for addressing disagreements. This policy was developed by participants in the Community Summits at DrupalCons Prague and Austin, with additional review on Drupal.org./p pThis policy seeks to first and foremost empower individuals to resolve issues between themselves when possible, asking for help when needed, and only after that fails to escalate further. This approach gives people more control over their dispute and is the most likely to result in a positive outcome for everyone involved./p pFor matters that cannot or should not be resolved in any other way, the Community Working Group is available as a point of escalation. Incidents can be confidentially reported to the Community Working Group using the a href=https://www.drupal.org/governance/community-working-group/incident-reportIncident Report Form/a. If the issue falls within the purview of the Community Working Group’s jurisdiction, we will then work with the involved individuals to find a remedy./p pIn her DrupalCon Austin a href=http://youtu.be/zoia8WZ6q5wkeynote/a Erynn Petersen talked about how diversity is a key component of a healthy and productive community. While the Drupal community is one of the most diverse and welcoming communities in open source, we still have room for improvement. strongIf you’re interested in joining us in that effort, let us know by responding to our a href=https://www.drupal.org/node/2299091call for volunteers/a or by participating in a a href=https://amsterdam2014.drupal.org/community-summitCommunity Summit/a at an upcoming DrupalCon. /strong/p pActively supporting and maintaining a welcoming environment is something that every one of us in the Drupal community needs to be a part of, and it’s essential to the long-term health and growth of the project and community that we all love so much./p

Károly Négyesi: Prejudices

Mon, 07/07/2014 - 12:23
pAt Szeged, I asked a female Drupal contributor in Hungarian (I'm glad she did not understand) what was up with the coffee maker, because I readily presumed she was staff.br / I saw one of the female geek role models at Austin with her baby. I got confused for a second, because apparently I think the emübergeek/em and emmother/em roles can't overlap.br / On IRC, I almost said Wow, that's impressive from a girl..br / I do not know how I can avoid these thoughts, but I am aware of them, I am bothered by them, and I try not to act on them. I also try to point out to fellow Drupalers when they act on their thoughts that these are not appropriate. I'm not sure what else I can do.br / If you have good ideas on overcoming prejudice, please share!/p

DrupalCon Amsterdam: Convince Your Boss to Send You to DrupalCon Amsterdam

Mon, 07/07/2014 - 09:00
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenpAttending DrupalCon is a great investment in skills, professional development and relationships. And it's also a lot of fun!/p pHere is your chance to demonstrate the value of attending DrupalCon to your employer./p pWe’ve developed a set of materials to help you demonstrate the value of attending DrupalCon to your employer./p p/ph2Why Attend DrupalCon?/h2 ulliLearn the latest technology and grow your Drupal skills/li liBuild a stronger network in the community/li liCollaborate and share your knowledge with others/li /ulp/ph2Resources/h2 tabletbodytrtdAbout DrupalCon - includes program summary, demographics, budget worksheet/td tda href=https://drive.google.com/file/d/0B_Bzb5P4a_7aOE85SHQtakFkNW8/edit?usp=sharingPDF/a/td /trtrtdLetter to your employer template/td tda href=https://drive.google.com/file/d/0B_Bzb5P4a_7aQ2lIOVZvOHlvSUk/edit?usp=sharingWord/a or a href=https://docs.google.com/document/d/1pBdaQmglGMFXHg3KcmlfnskKW7cMT3Zwn6eUAR0Ogg0/edit?usp=sharingGoogleDoc/a/td /trtrtdTrip report template/td tda href=https://drive.google.com/file/d/0B_Bzb5P4a_7aampQb3N4OHh1ZFU/edit?usp=sharingPDF/a/td /trtrtdRequest a Certificate of Attendance/td tdAvailable following the conference./td /tr/tbody/table/div/div/div

Károly Négyesi: Easier configuration development for Drupal 8

Mon, 07/07/2014 - 00:56
pWith a href=https://drupal.org/project/config_develconfig_devel/a, when you are editing a migration, you can just enter the name of the file being edited at codeadmin/config/config_devel/code and on every request the module will check for changes and import the file into the active storage. The other direction works as well: say you are working on a contrib module and have a view. Provide the path of the file (this time in the auto export box) and on every change Drupal will automatically export. Once satisfied, just commit. Or perhaps you just want to follow what's in a config file as it's being edited -- provide sites/default/files/some.config.name.yml and it'll be right there on every save. /p pBoth import and export are doable manually with the config module core provides. But I think the automatism makes life easier and I hope the module will be popular among D8 developers. Finally, let me thank beejeebus for cooking up the module originally and handing it over to me despite he knew I will rewrite it from the ground up.br / img src=http://i.imgur.com/nnswkw9.png //p

SitePoint PHP Drupal: The Drupal 8 version of EntityFieldQuery

Sat, 07/05/2014 - 18:00
ppimg src=http://dab1nmslvvntp.cloudfront.net/wp-content/uploads/2014/07/1404316515drupal8wide.png alt= title= //p pEven though Drupal 7 core fell short of a proper way of handling its brand new entity system (we currently rely on the great a href=https://drupal.org/project/entityEntity/a module for that), it did give us a href=https://api.drupal.org/api/drupal/includes%21entity.inc/class/EntityFieldQuery/7EntityFieldQuery/a. For those of you who don’t know, codeEntityFieldQuery/code is a very powerful querying class used to search Drupal entities programatically (nodes, users, etc). /p pIt provides a number of methods that make it easy to query entities based on conditions such as field values or class properties. If you don’t know how it works, feel free to check out this a href=https://drupal.org/node/1343708documentation page/a or a href=http://www.sitepoint.com/understanding-drupals-entityfieldquery/this great tutorial/a on the subject. /p pIn this article I am going to talk about what we have in Drupal 8 for querying entities. There is no more codeEntityFieldQuery/code, but there’s an codeentity.query/code service that will instantiate a query object for a given entity type (and that implements the a href=https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21Query%21QueryInterface.php/interface/QueryInterface/8\Drupal\Core\Entity\Query\QueryInterface/a). We can access this service statically through the a href=https://api.drupal.org/api/drupal/core%21lib%21Drupal.php/function/Drupal%3A%3AentityQuery/8\Drupal/a namespace or using dependency injection. /p pFirst up, we’ll look at querying node entities and then we’ll see how to load them. The same techniques will work with other content entities as well (users, comments etc), but also with configuration entities, and that’s really cool. /p h2 id=the-entity-query-serviceThe entity query service/h2 pAs mentioned, there are two ways we can access the codeentity.query/code service that we use for querying entities. Statically, we can do this:/p/ppemContinue reading %a rel=nofollow href=http://www.sitepoint.com/drupal-8-version-entityfieldquery/The Drupal 8 version of EntityFieldQuery/a%/em/p

flink: Earl's chicken

Sat, 07/05/2014 - 11:27
div class=field field-name-field-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item even rel=og:image rdfs:seeAlso resource=http://flink.com.au/sites/default/files/styles/large/public/field/image/Earls%20chicken.jpg?itok=BXaiThgaimg typeof=foaf:Image src=http://flink.com.au/sites/default/files/styles/large/public/field/image/Earls%20chicken.jpg?itok=BXaiThga width=480 height=359 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:encodedpHere’s a little history I pieced together about, Drupal, the Views module and the human condition./p pIt must have been 4 years or so ago that the new Field API for D7 crystallises, requiring modifications to Views. So someone adds lines of code to make this happen. They don’t think much about those lines or the performance impact these may have. They don’t put a “hook” in to allow developers to alter the behaviour of those lines. Why would they? It’s a pretty trivial change. In fact it never crosses their minds to add the CPU cycles spent by that code to the view's performance stats./p p4 years go by./p !--break--p Nobody is aware that if you piled up the seconds collectively wasted in that code across all Drupal sites using Views over a period of 4 years, it would amount to like,…. like higher than the Eiffel tower. So to speak…/p pUntil a couple of weeks ago some RdeBoer employs XHProf to find out why a client’s site is a little sluggish. And he finds those lines of code. And although there’s no hook as such to bypass those lines, he finds a way without hacking the Views module to neutralise those lines, offering a simple switch on the UI. Like a Turbo button, it makes selected Views run faster./p pThe customer is delighted. Now their site is finally speedy enough to go live! Another client quotes the results as “amazing”./p pEncouraged by the happy customers RdeBoer tarts up his module to share it with the Drupal community. Now everyone can enjoy similar speed improvements. He writes a little a href=http://flink.com.au/tips-tricks/drupal-views-acceleratorblog post/a about it. /p pIn a comment to that post @merlinofchaos confirms that those lines were indeed added with the introduction of the Field API. And that not showing how much time is spent in those lines is an oversight. /p pRdeBoer smiles. Takes a sip of his wine. 4 years... Isn’t life funny? /p p@merlinofchase goes back to the garden and throws another shrimp on the barbie. Metaphorically speaking. Might have been chicken. Have you seen Earl’s chicken? The photo above that’s his chicken. He cooked that a href=lt;alast week/a. I would love a bit of that chicken. With its juices dripped over the veggies. Yummo!/p pMeanwhile @someViewsDude has a not-so-constructive go via Twitter, email and the module’s issue queue .../p pMy friend and colleague Susan concludes her writings with a beautiful phrase: “Breathe and do the next right thing”./p pMaybe we can all sit around Earl's barbie. Try his chicken. It looks delish.br /br //p /div/div/divdiv class=field field-name-field-file-under field-type-taxonomy-term-reference field-label-abovediv class=field-labelFile under:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/file-under/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Planet Drupal/a/div/div/div

Drupal 8 and iOS: Use Caching with NSURLRequest

Fri, 07/04/2014 - 22:45
span class=field field-node--title field-name-title field-type-string field-label-hidden data-quickedit-field-id=node/51/title/en/rssUse Caching with NSURLRequest/span div class=field field-node--body field-name-body field-type-text-with-summary field-label-hidden data-quickedit-field-id=node/51/body/en/rss div class=field-items div class=field-item property=schema:textpI am Vivek Pandya and I am working on Google Summer of Code 2014 project to build an iOS application for Drupal 8 site. In this article I am sharing my experience about caching retrieved data from Durpal 8 REST web service with in iOS7 application./p pWhile writing iOS application that loads data(JSON) like a list of articles it is better to use cache mechanism provided by NSURLSession api. An NSURLRequest instance specifies how local cache is used by setting NSURLRequestCachePolicy values: with NSURLRequestProtocolCachePolicy, NSURLRequestReloadIgnoringCacheDatastrong, /strongNSURLRequestReturnCacheDataElseLoadstrong, /strongNSURLRequestReturnCacheDataDontLoadstrong /strongetc./p pThe default cache policy for an NSURLRequest is NSURLRequestUseProtocolCachePolicy. While working with REST endpoint HTTP is default protocol so when NSCachedURLResponse does not exist for the request the NSURLSession will fetch data for that request./p pIf cached response exist than NSURLSession api will make HEAD request to the resource and check for cached data's validity by examining various response header like “Last-Modified” , “Cache-Control” etc. And if it finds data to be stale one it will load the data again otherwise returns cached data./p pBut, before using this cache mechanism at iOS side we have to make our Drupal site pages cacheable to do so navigate to “admin/config/development/performance” and set time limit value for page cache. Save the configuration. Now to verify whether Drupal has really enabled cache for pages or note try HEAD request with any REST api client like Postman, in response header you should be able to see “Cache-Control : max-age=lt;secondsgt;” here seconds should be same as you specified in configuration. See the picture below to get more clarity./p img alt= data-editor-file-uuid=9b454cd3-e6e0-40ef-ba12-185a0ee9ec22 height=286 src=/sites/default/files/inline-images/cache.png width=588 /pNow while creating request object with iOS SDK set it's caching policy to NSURLRequestProtocolCachePolicy. Now run the code , first time it will take normal time to load the data but next time onwards it will only reload the data if it has been changed or max-age value has expired./p pFor more details please refer to URLLoading system guide by Apple./p p /p/div /div /div div class=field field-node--field-tags field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfix data-quickedit-field-id=node/51/field_tags/en/rss h3 class=field-labelTags: /h3 ul class=links li class=taxonomy-term-reference-0a href=/taxonomy/term/3 property=schema:aboutDrupal Planet/a/li /ul /div div class=field field-node--comment field-name-comment field-type-comment field-label-hidden data-quickedit-field-id=node/51/comment/en/rss div class=field-items div class=field-item rel=schema:commentsection id=comments class=comment-wrapper /section /div /div /div

Drupal core announcements: Drupal 8 core sprints, August 7-10

Fri, 07/04/2014 - 15:56
div class=field field-type-datestamp field-field-start7 div class=field-items div class=field-item odd div class=field-label-inline-first Start:nbsp;/div span class=date-display-start2014-08-07 (All day)/spanspan class=date-display-separator - /spanspan class=date-display-end2014-08-10 (All day) UTC/span /div /div /div div class=field field-type-text field-field-event-type div class=field-items div class=field-item odd Sprint /div /div /div pSummer is in full swing, but we know you enjoy Drupaling with your peers in the summer as much as any other time of the year! Plus, this summer is an important time to help get Drupal 8 done, so there is no good reason to skip getting together. We are holding two Drupal 8 sprints at the same time on August 7 to 10: one in North America at TCDrupal, and one in Europe at Drupalaton. Sprinters from both events will collaborate on Drupal 8 issues./p h3 class=contentTwin Cities DrupalCamp (North America)/h3 pTwin Cities DrupalCamp hosts a href=http://2014.tcdrupal.org/sprintsa four-day Drupal sprint/a, with a focus on unblocking the release of Drupal 8 and other topics like multilingual, accessibility, and Drupal.org. The last day of the event provides a mentored sprint which is ideal for Drupalers new to sprinting or the issue queues. The camp itself features keynotes from Holly Ross and Chris Shattuck, free Drupal training on the first day, and five parallel session tracks on the middle days. The event is in Minneapolis and Bloomington, MN and the early bird ticket is $35. If you need funding to attend, a href=http://2014.tcdrupal.org/contactcontact the organizers/a./p div style=text-align: center; margin: 2em; a href=https://docs.google.com/spreadsheet/ccc?key=0AlRKD0XsivA1dDRIZEFCeXR2ZF9tQzVTU0lRN2lWRncamp;usp=drive_web#gid=0 class=link-buttonspanSign up for TCDrupal sprints/span/a/div h3 class=contentDrupalaton (Europe)/h3 pGreat location for a summer camp in an affordable hotel right on the beach of the biggest warm water lake in Europe (with a tiny private island), a href=http://2014.drupalaton.hu/sprintDrupalaton sprints/a provide a relaxed environment to work and have fun together. The camp programme focuses on providing longer hands-on workshops with featured speakers Ruben Teijeiro, Campbell Vertesi, Adam Juran and Gábor Hojtsy. The event is in Keszthely, Hungary and the ticket is 50 EUR. There is a funding pool for sprinters who would not attend otherwise; a href=http://2014.drupalaton.hu/contactcontact the organizers/a./p div style=text-align: center; margin: 2em; a href=https://docs.google.com/spreadsheet/ccc?key=0AlRKD0XsivA1dDRIZEFCeXR2ZF9tQzVTU0lRN2lWRncamp;usp=drive_web#gid=0 class=link-buttonspanSign up for Drupalaton sprints/span/a/div pP.S. Even if you cannot attend in August, keep in mind we have a href=https://groups.drupal.org/node/4275789 consecutive days of sprints coming up in September in Amsterdam around DrupalCon/a./p style#node-431758 h3 { display: none; } #node-431758 h3.content { display: block; }/style!--break--!--break--

Lullabot: DrupalCon Session Selection

Fri, 07/04/2014 - 14:59
div class=field field-name-field-main-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg hspace=10 align=right width=190 height=190 src=https://www.lullabot.com/sites/default/files/styles/190x190_resized/public/entry_image/podcast-drupalize_me_9.jpg?itok=sayNGyaB alt= //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpThe session selection for DrupalCon Amsterdam has just been completed and will be announced next week. In this episode Addison Berry is joined by Steve Parks (a href=https://www.drupal.org/user/10848steveparks/a), Pedro Cambra (a href=https://www.drupal.org/u/pcambrapcambra/a), and Michael Schmid (a href=https://www.drupal.org/u/schnitzelschnitzel/a) to talk about how this actually works./p/div/div/div ul class=field field-name-field-show-notes field-type-link-field field-label-hidden li a href=https://amsterdam2014.drupal.orgDrupalCon Amsterdam/a /li li a href=http://drupaltrainingday.nlDrupal Nederland Training Day (in Dutch)/a /li li a href=https://amsterdam2014.drupal.org/community-summitAmsterdam Community Summit/a /li li a href=https://amsterdam2014.drupal.org/news/amsterdam-session-submissions-overviewAmsterdam Session Submissions Overview/a /li li a href=https://amsterdam2014.drupal.org/thanksThe Amsterdam Team (with all track chairs listed)/a /li li a href=http://drupalize.me/series/using-drupal-chapter-7-managing-publishing-workflowsManaging Publishing Workflows video series/a /li /ul

Makak Media: PhoneGap and Drupal 7 Data Synchronization for My Caribbean Offers App

Fri, 07/04/2014 - 14:34
div class=field field-type-filefield field-field-blog-image div class=field-items div class=field-item odd img class=imagefield imagefield-field_blog_image width=200 height=200 title=PhoneGap and Drupal 7 alt=PhoneGap and Drupal 7 src=http://www.makakmedia.co.uk/files/drupal-phonegap.jpg?1404210830 / /div /div /div pIn our last blog post we launched the a href=http://www.makakmedia.co.uk/blog/our-first-app-now-live-google-playMy Caribbean Offers app/a for a href=https://play.google.com/store/apps/details?id=com.mycaribbeanoffers.app target=_blankAndroid/a and a href=https://itunes.apple.com/gb/app/my-caribbean-offers/id797424569?mt=8 target=_blankApple iOS/a. /p pThe app displays offers for all types of tourist related businesses from across the Caribbean and is currently free to download!/p pWe thought we'd share what went into building the app, the modules used and processes involved./p pimg typeof=foaf:Image src=http://www.mycaribbeanoffers.com/sites/default/files/styles/blog_600x400/public/caribbean-app-launch-2.jpg?itok=7jGuPMqr width=470 height=310 alt=Screen shot of My Caribbean Offers on Google Play //p h2Client side requirements/h2 pPhonegap with local database (SQLite in our case), jQuery for ajax operations (http requests)/p h2Module requirements/h2 pa href=https://www.drupal.org/project/views target=_blankViews/a, a href=https://www.drupal.org/project/services target=_blankServices/a, Custom module to save node deletions/p pa href=http://www.makakmedia.co.uk/blog/phonegap-and-drupal-7-data-synchronization-for-my-caribbean-offers-app target=_blankread more/a/p

LimoenGroen company blog: The power of sharing

Fri, 07/04/2014 - 12:39
blockquote cite=http://nl.wikipedia.org/wiki/Scientia_potentia_estspan lang=la xml:lang=laScientia potentia est/span - Francis Bacon, 1597/blockquotepNapoleon beat his opponents for years, despite his much smaller army. His knowledge of warfare and the armies of his opponents made him win the wars every time, and ultimately he was able to dominate Europe./ph2Knowledge is power gt; Sharing is power/h2pThe phrase emKnowledge is power/em does not come out of thin air – where you could also explain power as influence, wealth or fame. However, in the knowledge economy of today is just having knowledge not enough. It becomes powerful when you can convey that knowledge. In the Open Source community we see that one who shares the most has the most power. The real change agents, the core developers; they get done a lot because they not only know a lot, but also share this knowledge. And that goes in many ways: by writing a blog, giving a presentation, or simply just by contributing code./ph2Contributing code/h2pOpen Source is only good if people not only use it, but also improve it. Drupal is great software, but it has bugs. In the core itself, but (especially) in its thousands of community modules. If we discover a bug during a project we could fix this locally and continue with our work; our problem is resolved. However, we won’t. We always make sure that the solution flows back into the community. That can be done in several ways:/ph3Contribute a patch/h3pCan we solve the problem? Great! We create a new issue in the issue queue of the relevant module and deliver the code change as a patch. Example of Martijn: a href=https://www.drupal.org/node/1783678https://www.drupal.org/node/1783678/a/ph3Describe the problem/h3pAre we unable to fix it ourselves? Then at least create an issue and describe how the issue can be reproduced. This helps another developer to fix this, or recognize them their own problem quickly. Example of Dominique: a href=https://www.drupal.org/node/907504https://www.drupal.org/node/907504/a/ph3Start een nieuwe module/h3pDid we write a separate piece of code that might be interesting for others? We’ll then try to offer this as a separate project. The extra time it takes to make a piece of client code generic and configurable is not an issue, knowing that the community as a whole can now help to improve and maintain the code for us. Example of myself, commissioned by the European Space Agency: a href=https://www.drupal.org/project/commons_hashtagshttps://www.drupal.org/project/commons_hashtags/a/ph2Featured Drupal Provider/h2pBy sharing so much code we became one of the 4 a href=http://www.drupal.org/drupal-services/featured/all/all/Netherlands rel=nofollowFeatured Drupal Providers in the Netherlands/a./ph2Taking equals giving/h2pAt LimoenGroen (Lime Green) everyone gets 10% community time: every other week, our employees have a full Friday to do what they think is important. They experiment with new technology, write a blog, or open-source customer code./ppTo make sure that the client agrees, we add the following boilerplate text to any quote that we write:/pblockquoteDrupal is developed under an open source software license. All, in the context of this project developed software falls under the same license as Drupal itself: a href=http://www.gnu.org/licenses/old-licenses/gpl-2.0.html rel=nofollowGNU General Public License, version 2 or later/a. The intellectual property is yours. To take full advantage of the benefits of the open source development model, we believe it is important that we have the ability to develop parts of the software generic and share this with the community (with the mention that this is developed for lt;CUSTOMER NAMEgt;)./blockquoteh2Appeal to Drupal suppliers/h2pTaking equals giving is what I truly believe in. Therefore, I call on every Drupal supplier to include the text mentioned above in your offers. By doing so, there will soon be more to take! Who's with me?/p

flink: Drupal Views Accelerator

Fri, 07/04/2014 - 06:46
div class=field field-name-field-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item even rel=og:image rdfs:seeAlso resource=http://flink.com.au/sites/default/files/styles/large/public/field/image/Bloodhound.jpg?itok=wOptqdr8img typeof=foaf:Image src=http://flink.com.au/sites/default/files/styles/large/public/field/image/Bloodhound.jpg?itok=wOptqdr8 width=480 height=317 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:encodedpemstrongWhen caching is not an option, Drupal sites employing the a href=http://drupal.org/project/viewsViews/a module may find their performances bound by it. Getting to the bottom of this issue on a number of sites we discovered that performance benefits are to be gained in unlikely corners of Views. We published a first version of the a href=http://drupal.org/project/views_acceleratorViews Accelerator/a module for everyone to reap those benefits. You’re invited to give it a burl. A couple of clicks on the UI could be all it takes to put a smile on the performance dial./strong/em/p !--break--h3From simple to more complex analysis tools/h3 pDid you ever pay attention to that spinning circle while your browser is fetching your page? While that wheel spins anti-clockwise your browser is waiting for a reply from the server to your mouse click. Then as the server response streams in, the wheel reverses direction and the browser builds up your page. Details of each and every file processed during that phase and how long it took can be found under the Network tab of your browser console.br / But when it comes to improving that left-churning part, no amount of browser analytics can help you. This is when you bring out the big guns. Like a href=/tips-tricks/speedy-install-to-pinpointing-slow-performanceXHProf/a, or for D8, the Symfony-based a href=http://drupalize.me/blog/201406/web-profiler-drupal-8WebProfilerBundle/a.br / And you get ready to get your hands dirty, as you may have to dig deep./p h3When caching doesn’t cut it/h3 pBut why take the trouble to analyse all this? Why not tell your customer to throw a pile of caching technologies at the under-performing site?br / Because depending on the nature of your site, caching can be ineffective and even lead to functional errors./p pThe reason is personalisation/customisation. /p pIncreasingly websites recall specific details about us to give us an enhanced browsing experience tailored to our preferences. Sites remember stuff we chose before. Brands, price ranges, travel destinations. Taking advantage of GPS/WiFi technology sites know where we are when we visit them. A map may place our current location at its centre and only show nearby points of interest — rather than the whole world./p pWebsites are moving from off-the-rack, one-size-fits-all to embespoke/em./p pTo cache is to assemble time-consuming pages once, to then dish out copies to everyone who ordered that same page. Caching does not cater for every guest bringing their own dietary requirements to the table.br / Bespoke is indigestible to caching./p pThat’s when you have to take caching off the menu and look for alternative ways to speed up a site. So we cooked up strongViews Accelerator/strong./p h3Identifying server-side slow spots/h3 pTasked with making a customer site perform quicker we booted up XHProf. The culprit of slow performance was soon identified as a map featuring hundreds to thousands of nearby points of interest, centred on the visitor’s current location. /p pBut it wasn’t any of the map engines or their APIs (Google, Openlayers, Leaflet) that were soaking up the seconds. Neither was it the database. It was Views. A little-known corner of Views./p pThose familiar with the Views UI cockpit may know the tick box emShow performance statistics/em on the emadmin/structure/views/settings/em page. With that checked, a preview prints out strongQuery build time/strong, strongQuery execute time/strong and strongView render time/strong. /p pIt’s like the developers of the Views module themselves felt those three numbers sum up all there is to Views performance. /p pBut there is a fourth component… and it can slow your site down more than the other three together. XHProf proved it./p h3The performance opportunity/h3 pBetween the query-execute and view-render phases, the code passes through a empost-execute stage/em. This is where the raw results from the database are groomed for final rendering and theming. All results go through post-execute, even when this may not be necessary..../p pAnd with that we cue to the a href=http://drupal.org/project/views_acceleratorViews Accelerator project/a page. Featured there is a summary of a case study, proving how flicking on the module can boost Views speeds by 60%. /p pViews Accelerator is unconventional in its approach and is still in its infancy. Time will tell how the module matures in the community. We welcome feedback to help us improve the module./p pEnable Views Accelerator on a test site. In emAnalysis/em mode it tells you how every view on every page you visit performs. Then in emAccelerator/em mode it shows you those figures again. Hopefully the second time round those figures are a little leaner, making the user experience a little richer. If not, then your views may already be close to optimum. That’s reassuring too, isn’t it?/p pNo gain, no pain. There is no reason not to give a href=http://drupal.org/project/views_acceleratorViews Accelerator/a a go./p div style=font-size:smallerImage taken from a href=http://content.time.com/time/photogallery/0,29307,1853267_1785184,00.htmlTime Magazine/a:br / The $19 million Bloodhound SSC that is designed to shatter the world record on land with speeds over 1000 mph./div pbr //p /div/div/divdiv class=field field-name-field-file-under field-type-taxonomy-term-reference field-label-abovediv class=field-labelFile under:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/file-under/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Planet Drupal/a/div/div/div

InternetDevels: Migrate - module for data import in Drupal

Thu, 07/03/2014 - 23:00
div class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenp dir=ltr style=text-align: justify;Sometimes while a href=http://internetdevels.com/ target=_blankwebsite development/a it is necessary to transfer data from one database to another. Often it is either migration to a newer Drupal version (from 6.x to 7.x) or transfer of content to Drupal from another platform. Migrate module makes a very convenient tool for importing data in such cases./p a href=http://internetdevels.com/blog/migrate-moduleRead more/a/div/div/div