Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 51 min 26 sec ago

Matt Farina: Find Security Holes With A Threat Analysis

Mon, 10/06/2014 - 16:00
pIt seems that every week we hear about a new high profile hacking. For example, it just came out that a href= financial institutions, in addition to JPMorgan Chase, were hacked/a. We live in an incredibly accessible world where those on the other side of the globe can easily knock on our digital front doors or even try to pick the locks. So, how can we try to figure out where the weak points are in our security? How can we find the a href=/blog/2014/security-is-feature/tasks to work on to beef up security/a? One option is to perform a threat analysis.!--break--/p pA a href= analysis/a for computing systems is.../p blockquotepSystematic detection, identification, and evaluation of areas or spots of vulnerability of a facility, operation, or system./p/blockquote pLet's look at some ways we can dip out toes into a threat analysis. This is not all inclusive and you'll need to go well beyond these ideas but they are a place to get started./p pemYou'll notice I suggest documenting many of the aspects discussed. Documenting them helps to communicate the system and details to others who can offer insight and it helps to visualize what's happening./em/p h2Diagram Your System Architecture/h2 pimg src= alt=Site Architecture Diagram //p pAbove is a simple example of a CMS based website, such as a common Drupal site. In the diagram diagram document all the components, even elements that browsers download from 3rd parties or components that aren't user facing./p pOnce you have the diagram look at all the interconnects between the different parts. For example, you may serve your pages over emhttps/em but the connection between the web server and the MySQL isn't over an encrypted connection. That could offer a route to peek in on data./p pAlso, look at who can access what ports on what servers. If Memcached is accessible to anyone who knows the IP of the server the data in it can be retrieved by anyone. In this picture private networks, cloud security groups, or some other protection should be in place to protect anyone from ever accessing Memcached or MySQL./p pLooking at the system can help you identify places to secure communications. It's an easy place to start identifying tasks./p h2Data Storage/h2 pMany sites store information about customers. This ranges from mundane settings through a href= identifiable information (PII)/a. Imagine an e-commerce site where someone gets into the database or can even just monitor the traffic between the web server and the database. They'll know customer names, email address, home address, and more./p table thead tr thType /th th Where /th th Encrypted?/th /tr /thead tbody tr tdProducts /td td MySQL /td td No/td /tr tr tdName /td td MySQL /td td No/td /tr tr tdAddress /td td MySQL /td td No/td /tr tr td... /td td ... /td td .../td /tr /tbody /table pAn easy way to get a view of the data you're storing is with an old fashioned table. List out everything from the content that's displayed to the private details (even those sent to web services like a credit card processor)./p pOnce you have this information you can combine it with the accessibility of the system and start to get an idea how open data is for hackers. It's also an easy place to start finding tasks to make the data more secure. For example, can information like addresses be encrypted?/p h2Security Update Plan/h2 pSoftware is insecure. The more complicated the software the more likely there are holes in it. The software powering the Internet has regular security updates to fix the problems as they are found. By regular I don't expect a week to go by without needing to update one thing or another./p pHow do you update software? Is it automated? Is it often? How often? For example, it's great to install updates to a CMS but what about the web server, the database, the operating system they are on, and everything else in the system?/p pDocument how you handle updates and then look for ways to improve on and automate the updates./p h2Reviewing Logs/h2 pHacking attempts happen. Some people will even scan the entire Internet to see what's open. It's not all the hard to scan the entire Internet and you can do it at a slow pace in under a day./p pPart of handling threats isn't just handling them but identifying bad situations quickly and reacting. That's where good logging practices can come in. Look at the log review practices and automate as much as possible./p pMake sure to log everything (minus information such as passwords) and review those logs. If an IP address keeps trying to access your systems but fails to authenticate you should know about it. If systems are accessed when you don't expect them to be or from locations you don't expect, you should know about it./p h2Just the beginning.../h2 pThese few things are just the beginning but a good place to start. Initially, this can raise a number of places to improve the system while getting some of the security thinking more in place./p pa href= Reading raquo;/a/p

Lullabot: DrupalCon Amsterdam

Mon, 10/06/2014 - 13:31
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpIn this week's episode Addison Berry and Amber Himes Matz sit down together in a quiet room at DrupalCon Amsterdam to give a quick recap on their week at the largest European DrupalCon. We chat about other events outside of the DrupalCon sessions themselves, some cool sessions, and a bit about the new Drupal 8 beta./p /div/div/div

Blue Drop Shop: Contributing IRL

Mon, 10/06/2014 - 13:29
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpLet’s face facts: I am not a coder. With a lot of caffeine, much googling and more time than is reasonable, I *can* code my way out of a paper bag, but that’s about it./p pSo it is highly unlikely you will ever see my username tied to a module or on a list of contributors. Sure, I created the occasional new issue on a module’s issue queue or provided feedback for a patch I needed, which in itself is a form of contributing. But messing around with core? Funny. Me writing a patch? Nope. Sprinting? I only run when being chased./p pAccording to d.o then, I am not a contributor. /p pThe outward problem with this is that the language around contributing back to Drupal is code-centric. The current system places emphasis on how many commits you have and how many projects you maintain. But there is hope for those of you who, like me, won't be contributing back code anytime soon. /p pI am a co-organizer for the Fox Valley Drupal Meetup Group in the western suburbs of Chicago. We held our first camp in 2013 and I was part of the team that helped pull it off, and we recently wrapped our 2014 camp./p pWhen the idea of the inaugural MidCamp was getting kicked around, I offered up my logistics help for that as well. And I'm on deck as the logistics lead 2015./p pThrough my non-Drupal day job, I have extensive print experience and do a fair amount of video production work tied to the annual conference we host. So I was all over session records for all three camps, and I'm working on a rebooted session recording kit that the Drupal Association is very interested in learning more about. /p pMy print skills have been tapped by the core mentor team, mostly because I was hanging around a bunch of them at Drupalcon Austin and they needed materials printed for the mentored sprints at Drupalcon Amsterdam. /p pHell, I even got roped into catering the extended sprints at Austin mainly because I am passionate about food, especially when it comes from something with four wheels and an engine./p pMy point: there are many opportunities to give back to the community and the project as a whole in real life. It took me a while before I realized that yes, I am a contributor. Just not in a way that is currently measured. But that's not why I do it. I am forever indebted to all the heavy code lifters that I depend on for my work. It just feels good to be able to give back./p pSo while it’s highly unlikely you’ll ever see any kind of a href= powered by/a kthull on a Drupal site, I’ll continue to lend my time and talents where I can. You should too./p /div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfixh3 class=field-labelTags: /h3ul class=linksli class=taxonomy-term-reference-0 rel=dc:subjecta href=/tags/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal planet/a/lili class=taxonomy-term-reference-1 rel=dc:subjecta href=/tags/contributing typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=contributing/a/lili class=taxonomy-term-reference-2 rel=dc:subjecta href=/tags/drupal-camps typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal camps/a/li/ul/div

Nuez Web Blog: Top 5 talks at the DrupalCon Amsterdam

Mon, 10/06/2014 - 12:30
div class=field field--name-field-blog-teaser-text field--type-text-long field--label-hiddendiv class=field__items field-itemsdiv class=field__item field-item evenLast week I attended another very enlightening DrupalCon - this time in Amsterdam - with a wide variety of talks about Drupal ranging from hardcore computer science to business strategies and design. Also with a wide range of levels, which, to be honest, didn’t always match the difficulty mentioned on the official programme.nbsp;So which ones were the best speeches for an all-round Drupal professional like me?nbsp; /div/div/divdiv class=field field--name-field-blog-full-text field--type-text-long field--label-hiddendiv class=field__items field-itemsdiv class=field__item field-item evenpspan style=font-size:11pxemPhoto taken at the Druplicon with Drupal professional Marcel Ritsema and the team of Dutch Drupal shop a href= target=_blankMerge/a./em/span/p pSo what is an all-round Drupal professional like me? That's someone who mainly uses Drupal as a tool to build websites and web apps, knows how to build a module and a theme (sometimes shares them with the community), but does not necessarily understand all the nuts and bolts of core, especially of the Drupal 8 core./p pThis blog post is about the 5 most valuable talks I’ve...a href=/en/blog/top-5-talks-drupalcon-amsterdam class=more-linkRead more/a/p/div/div/div

ERPAL: Two important Drupal facts resulting from Drupalcon Amsterdam 2014

Mon, 10/06/2014 - 10:05
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenh1Two important Drupal facts resulting from Drupalcon Amsterdam 2014/h1 pThis year was our first as a silver sponsor with an ERPAL booth at a a href= As we had lots of BOFs and interesting talks with other Drupal developers and sponsors from various companies, I’d like to share my thoughts and conclusions in this blog post. It became obvious that the community agrees about two very important facts:/p h2Fact 1: Drupal is not a CMS/h2 pYou might exclaim, But this is written everywhere! – and you would be entirely right. When companies are looking for a CMS, what do they want? Mostly a ready-to-use system to manage their content. In general, they expect to start adding their content quickly and easily. Responsiveness is required straightaway and no content site works without media management. However, when we install Drupal, we don’t get a CMS that works for end users right out of the box: we get a clean and slim Drupal installation that takes quite a bit of modification before it’ll work for a content site, but it’s much more powerful! Nonetheless, it can also be a little disappointing. With all the contrib modules available, you can build almost any web application you want, but to create a full-featured content site, you need to be an experienced Drupal site builder. You need to know how entities/nodes work, how rules and panels do their job, why and how to use features for deployment and why you won’t find a ready-to-use image gallery module – instead, you have to build it yourself. This can be problem when, after installation, Drupal doesn’t live up to these unwarranted expectations. If you need an easy-to-use CMS that works immediately after installation, WordPress may be a better choice, as it does what people expect. Install and use for your content management, done!/p pDrupal can do content management as well, but it needs to be built manually. In all our conversations we prefer to call Drupal an “application framework”. And many of the people I talked to at Drupalcon seemed to agree with that./p pSo you can use Drupal to build a full-featured CMS if you’re an experienced site builder and know all the modules and how they interact with each other. Or you can use a ready-built Drupal installation specialized for content management (if there is one). These vertical use cases are called “distributions” and there are already lots of them out there at a href= A Drupal distribution is a collection of preconfigured modules that provide features for a specific purpose, say, content management. Drupal is a framework, as Linux Magazine wrote in a previous blogpost: Drupal provides the horizontal infrastructure modules like fields and entities for building a data model, views for data queries and lists, rules for business logic, feeds and webservice clients for interaction with external systems and their APIs, panels and display suite as well as other formatters for layouting and display control. Everything we need to build powerful web applications is available as a module./p pSince many Drupalistas see Drupal in the same way, I want to plead with everybody to allow Drupal to meet the expectations of its users. Let’s show the world the power of Drupal to build web applications, and show it with vertical distributions and use cases that are different from your typical CMS. Give end users a functional and full-featured distribution for content management but don't hide Drupal for other purposes like collaboration platforms, e-commerce systems, CRM systems, business applications, or planning tools. I guess the list is almost endless and content management is just one item: Drupal can be used to build all of them, nearly without coding, but out-of-the-box it is not./p h2Fact 2: Integration really matters/h2 pAnother important fact I realized at Drupalcon is that many people are looking for examples of integration use cases. Drupal integrates with other systems very well – we’re often asked to integrate it with the “big players” in the software industry. And even better: it can extend the functionality of other system's data to integrate it with new workflows. Sharepoint and SAP integration requests show that Drupal has matured and that it’s now being viewed as an enterprise application framework. It only lacks public success stories that showcase these integrations. When I presented the a href= cross-enterprise integration on an example of Sharepoint/a at the Drupalcamp in Frankfurt, I was asked Why should one even do this? The question is legitimate, of course. Why indeed should a Drupal developer use Drupal and Sharepoint together? The answer is to be found in the enterprise. Whenever you use Drupal in the enterprise for an intranet, a workflow management system, a CMS or a collaboration platform, the first thing you’re asked is: “Can we integrate with LDAP to avoid duplicate user accounts and permission duplication? Can we have a single sign-on? Can we see documents stored in Sharepoint in our Drupal instance? What about integrating SAP applications and can we reuse data from Drupal in Sharepoint or SAP?” The answer is: yes, yes and yes we can! But only a few will actually believe that, since they won’t find (m)any use cases in Google or pSo what we should foster in the Drupal community is the publication of stories of successful integration scenarios with other enterprise systems. Of course, these use cases won’t be as shiny as beautifully designed content sites, but they will help Drupal grow. Compared with other web applications systems Drupal is one of the most flexible: nobody argues this. It’s flexible and open to talk to other systems. In many of my conversations at Drupalcon it became clear that there are many niche use cases in the enterprise that would be expensive to build with other commercial systems, since code changes are always time-consuming and risky. From our daily work with Drupal we know that they’re much easier to build with Drupal, mostly by configuration. But almost none of the decision makers know this, which leads us back to Fact 1 - Drupal is not a CMS. So whenever you build applications with Drupal that are integrated with other enterprise systems like SAP or Sharepoint, PLEASE publish and promote them! This will help Drupal grow in the enterprise, where we all want to see it settled in the future./p h2Conclusion: Let’s do it together/h2 pSo if you agree and want to see Drupal as a world-leading application framework someday, share this information and help us with the next steps. If you’re interested in further discussion, use the comment function. If there are enough people interested in this movement, let’s put our heads together and plan how we can better meet the requirements of Drupal users. Perhaps you even have some use cases that represent Drupal as mentioned in Fact 1 and Fact 2? Don't hesitate to go public with them. If you DON'T agree with this opinion and we didn’t meet at Drupalcon, you’re most welcome to share your thoughts here as well./p /div/div/div

Freelock : Ask Freelock: Upgrade D6 to Drupal 7, or wait for 8?

Mon, 10/06/2014 - 07:11
div class=g-plusone-wrapper style=margin: 0 1em 1em 1em;float:right g:plusone href= size=medium annotation=bubble width=250 /g:plusone/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpApparently there's some FUD (Fear, Uncertainty and Doubt) being sown by a few Drupal shops who are spreading downright wrong information about Drupal 8, trying to encourage people to upgrade to 7 now. One of our clients called in a panic unsure whether she needed to act, after getting approached by Drupal Geeks pitching this misleading content, which they've now posted in a highly inaccurate blog page, here:/p pa href= Reasons to Upgrade to Drupal 7 Right Now/a/p/div/div/divdiv class=field field-name-taxonomy-vocabulary-5 field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/tag/drupalDrupal/a/divdiv class=field-item odda href=/tag/drupal-planetDrupal Planet/a/divdiv class=field-item evena href=/tag/drupal-8Drupal 8/a/divdiv class=field-item odda href=/tag/fudFUD/a/div/div/div

Robert Douglass: The DrupalCon Amsterdam Prenote : Drupal Memories

Sun, 10/05/2014 - 23:28
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encoded pRob, Jam, and guests tell the history of DrupalCon, from Antwerp to Amsterdam, from the point of view of those whose lives were changed by them. This video includes Oh, and one time, at Drupal Camp, The Drupal 8 Bug Elimination Challenge, a guest appearance by Captain Drupal, a performance of The Drupal Song, a re-enactment of the genesis of Acquia, a Never Marry Me proposal, and a stunning performance of Memories by Bryn and Campbell Vertesi./p pIt also concludes with the inaugural instance of Selfieception, the culmination of the underlying metaphor behind this show. Inspired by a href= title=Link to article with the TED Talk videoDaniel Kahneman's TED Talk/a about the future as anticipated memories, Rob and Jam set about to create a show that ties our collective experience to the experiencing self that lives in the present, the remembering self that maintains the story of your life, and to use storytelling as a function of what we remember from our experiences. /p pAs we tell the stories of our DrupalCons, and how they defined us (remembering self), we engage in a dialog with the audience, who has to pay close attention to capture every moment (experiencing self), as indeed we'll have to do through the coming days of sessions, meetings, chance encounters, and business opportunities. But in a tip-of-the-hat to our remembering selves, we decide to take selfies to remember the moment by. However, to frame the shot in an optimal way, we must all turn our backs on each other, and thus the conflict between experiencing self and remembering self is embodied: the remembering self demands that the experiencing self sacrifices the performer-audience dialog, and turns the back to the present in anticipation of a future memory./p pThanks to the Drupal Association for supporting our ongoing tradition of the DrupalCon Prenote, thanks to the 1,500 people who got out of bed to be at our show at 8:00 in the morning, and thanks to everyone who stood up to tell their story./p piframe width=640 height=480 src=// frameborder=0 allowfullscreen=/iframe/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-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal Planet/a/divdiv class=field-item odda href=/tags/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a/divdiv class=field-item evena href=/tags/drupalcon typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=DrupalCon/a/divdiv class=field-item odda href=/tags/selfieception typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Selfieception/a/div/div/div

Frederic Marand: Drupal 8 tip of the day : check menu links consistency

Sun, 10/05/2014 - 14:16
pimg src=sites/ alt=Excerpt from a Drupal 8 menu links tree style=width: 33%; float: right; margin-left: 1em /One of the interesting aspects of the revamped menu/links system in Drupal 8 is the fact that menu links are now in easily parseable YAML files, the (module) in each module, in which each menu link can be bound to its parent link, hopefully producing a tree-like structure./ppa href= target=_blankread more/a/p

Triquanta Web Solutions: DrupalCon Amsterdam, 2014

Sun, 10/05/2014 - 11:43
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even pCome to think of it, I almost decided emnot /emto go to the RAI in the morning! All the official sessions are over since thursday and yesterday there was only ‘codesprinting’ left. This is where you can help contributing to the Drupal community in an informal setting with other Drupal users./p pSince I’d never taken part before I was wondering what I could possibly add, next to the most imposing names always circulating on a href=, that were also present at DrupalCon. But when I heard all my colleagues were going also (except for our hardworking guards left at the office) I couldn’t let them down of course and stay behind. /p pDe last few days were (visually) exhausting and it cost me great effort to step out of bed and pack myself together to get started./p pIn the RAI they were buzzing already! When I tried spotting someone I’d know, I was helped by the so-called ‘Mentors’ (which a href=ons-teamMarc/a and a href=ons-teamBart/a were also part of!) and they were trying to give me helping hand./p pThe new Drupal 8-beta release was freshly installed and intact, waiting for me on my laptop, to be tackled. And since I had nothing else to do I thought: ‘let me try some exercises to find out how it works’./p pThe first thing that immediately struck me was that I sometimes could and sometimes could emnot/em navigate to the homepage. I found that noteworthy and it also felt inconsistent. Each time I was intuitively hovering in the upper left corner of my screen trying to find a home link./p pWell let me see what was causing the problem? I found out that when you opened a new tab and surfed directly to an admin page the home link didn’t show up./p pStrange! Would this already have been discussed? I could hardly imagine I would be the first one to complain. Quick: let’s see if the ‘issue cue’ could clarify. No! It wasn’t mentioned before!/p pAnd so, after only five minutes of work, I found a job that kept me busy all day. Marc explained to me how I should handle this and introduced me to the right people. First I had to create an issue, I had to define the problem, and suggest a solution. It wasn’t real rocket science by the way: it only cost me three lines of code, but to get them reviewed and accepted by the right maintainers was a whole other story… well let me spare you, I won’t go into detail. The good news is: at the end of the day I stood there, shining happily ever after, next to my colleague Daniël, and suddenly we were just ‘Core Contributors’! Everyone was applauding, we were filmed and a live commit of the patches we created was done by ‘Webchick’./p pAlso Patrick, my other colleague had discovered a bug en managed to get this reviewed, fixed and committed the same day./p pSo only one day of codesprinting on DrupalCon had passed, but Triquanta gained three new Core contributors: Well done!/p pAnd I haven’t yet mentioned the important work that has been done by Jur (on Facet API) and my colleague Elibert who discovered a bug in CKEditor./p pAs I said before: this DrupalCon was the best ever. For example, I enjoyed so much the visit to photomuseum FOAM where Drupalists could get in for free on Wednesday night, during the ‘cultural evening’ which I also helped organizing. And the musical event subsequently in café the Prael, where Peter en Jur gave a great concert was every bit as successful. Thursday night I was invited by the Drupal association to have dinner with the other volunteers and afterwards I took part in a very funny group to answer the most hilarious questions at the big Trivia night in café Panama./p pNext year DrupalCon will be held in Barcelona. Whilst everyone wants to go there, this might turn into a huge battle! At least I know where to focus: I will, if necessary use my newly acquired status as a Drupal contributor to win this game!/p /div/div/div ul class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-hidden li a href=/onderwerp/drupal-planetDrupal-planet/a /li /ul

Victor Kane: Historic DrupalCon Amsterdam 2014 - Let the Debates Begin - Part I

Sat, 10/04/2014 - 23:29
!-- google_ad_section_start --pI really think that a debate needs to continue aroundnbsp;a href= target=_blankKeynote: Dries Buytaert/anbsp;for the purpose of understanding the forces at work competing for the future of Drupal and indeed all open source projects. Leaving to one side without comment the really weird Driesnbsp;emdoppelganger/emnbsp;designed somehow to elevate the image of one of the sponsors, it was indeed saluted by many as being very special. A glance at thenbsp;a href= target=_blanktweets feed for the keynote/a, for example, (ornbsp;a href= target=_blankthis one/a) were by and large ecstatic, and many interpreted the talk as exceedingly progressive. The power of the people... #digitaldisruption... This is @Dries most socialist #Driesnote ever. Applause even in the overflow room... Most relevant and interesting #DriesNote in a long time. Well done... Exciting. The best Dries keynote ever./p !-- google_ad_section_end --div class=og_rss_groups/divpa href= target=_blankread more/a/p

Triquanta Web Solutions: From Rookie to Drupal core contributor in one day

Sat, 10/04/2014 - 14:25
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even p dir=ltrspanimg alt=A thick fog in Amsterdam class=media-image img__fid__355 img__view_mode__default attr__format__default height=1060 src= title=A thick fog in Amsterdam width=1600 //span/p p class=rteright dir=ltremspanPicture: Thomas Ricker/span/em/p p dir=ltrspanA thick fog had settled in Amsterdam. Moist was gathering in my beard and a nice drupal was forming. I had a clear goal in mind and a blurry world around me. As a tourist in my own country I biked among thousands of spoked wheels. I passed hipster parents with children in carts throwing clouds at each other. And soon the Amsterdam RAI showed up. My first community sprint was about to start./span/p p dir=ltrspanIt was the last day of Drupalcon and we had built up a routine. And as one of the human beings we are, I picked the wrong building. Luckily one of the mentors (our own /spana href= was helpful enough to show me the way. I entered the building early in the morning and a wall of orange shirts greeted me, a full fledged team of volunteer mentors in the colors of our beautiful hosting country. Armed with name tags, stickers, sprint task cards, a lot of energy and patience they were fully equipped to guide us rookies through the day./span/p p dir=ltrspanSo, what am I? According to the relatively new system of sprint task cards (/spana href= I could be an Explorer, Community Contributor, Issue Mover, Developer or Mentor. Since I already had Drupal 8 installed, and played with it during, for example, the /spana href= 8 Multilingual Hands-on /span/aspanof /spana href= and /spana href= Degnan/span/aspan, I was up to some community contributing./span/p p dir=ltrspanimg alt=Drupal sprint cards class=media-image img__fid__356 img__view_mode__default attr__format__default height=193 src= title=Drupal sprint cards width=1084 //span/p p class=rteright dir=ltremspanSprint stickers/span/em/p p dir=ltrspanWe, the mentored, were seated upstairs while the more experienced once worked more focussed in teams on certain projects at ground level. During the day some of us would descend for some specialized guidance. But first we had to set our teeth in something. The theme of the day was: get something done and get ready to teach others. So, if you didn't know what to do, you where presented an issue to work on or you could search for an issue tagged novice./span/p p dir=ltrspanAmong the tasks we undertook where: testing and reviewing patches, making screenshots (so helpful, as Angie would show later) or creating a solution on your own. Wait, no, not on your own. You weren't seated alone and the mentors were all over the place to step in at your earliest convenience. /span/p p dir=ltrspanIn my case I wanted to see if a core 7 bug I had found earlier was present in 8. So I set out to create a little module for my scenario. But, where to start, which files are needed and how do I name them? Jesus Manuel Olivas /spana href= and Larry Garfield (/spana href= to the rescue, with respectively the nice /spana href= module/span/aspan to generate D8 modules from the CLI and the session recording of the /spana href= 8 Crash Course/span/aspan./span/p p dir=ltrspanOk, ready to test some hook_form_alter. Result: failure one. It's so simple, but why doesn't it work? Mentor /spana href= to the rescue: it seems you checked out branch 8.x instead of 8.0.x, d'oh stupid me. Luckily, after some testing the D7 bug seemed to be gone in D8. However, during my testing I found another new problem. /span/p p dir=ltrspanBecause was under such a pressure and the issue search didn't really work any more, I descended the stairs in search of a core fields maintainer with the simple question: is this a bug and is there an issue for this problem? And it was a bug, empty multiple field items should be deleted after a node search, and there was no issue for it. Using the /spana href=, a nice browser helper plugin for people working in the issue queue I was able to create /spana href= issue/span/aspan in no-time./span/p p dir=ltrspanIn the meantime upstairs the temperature had risen while the ground floor was still comfortable cool, outside it had become a nice early autumn day (meteorologic speaking), and my table neighbour and colleague, Valerie Valkenburg Gibson (/spana href=, had created her first core issue and patch. /span/p p dir=ltrspanSince it apparently isn't allowed to get a patch in core without at least 20 comments and multiple people working at it I was offered the opportunity to help improving the patch. So mentored by /spana href= and Théodore Biadala (/spana href= I checked if the patch was confirm the coding standards and got rid of some duplicate functionality. Next I did some finger exercises and create a diff, another diff of two diffs, uploaded the new diff and interdiff and licked my chupachup. Then it was time to go to the live core commit session hosted by Angie (/spana href= /span/p p dir=ltrspanEverybody gathered in front of the big screen while the necessary group pictures where taken and we waited in anticipation. Then Angie showed us how a core committer reviews, tests and finally commits. She even almost mistakenly used branch 8.x instead of 8.0.x, but was quickly corrected by the crowd. And I didn’t feel so stupid anymore. /spanbr class=kix-line-break /spanFinally, as the closure of the day, we were treated with two live commits and, like my collegue Gerben Spil (/spana href= always says: there was much rejoicing!/span/p p dir=ltrimg alt=Commit by webchick class=media-image img__fid__357 img__view_mode__default attr__format__default height=50 src= title=Commit by webchick width=622 //p p dir=ltrimg alt=Live issue review and commit class=media-image img__fid__358 img__view_mode__default attr__format__default height=767 src= title=Live issue review and commit width=1024 //p p class=rteright dir=ltremspanPicture: Patrick van Efferen/span/em/p p dir=ltrspanOf course so much more happened, there were fun, food, facts and many friends. /span/p p dir=ltrspanAnd by the way: can I have my new sticker now?/span/p pbr /spanDaniël Smidt (/spana href= /div/div/div ul class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-hidden li a href=/onderwerp/drupal-planetDrupal-planet/a /li /ul

Don't Panic: A blog about Drupal: Sprinting for the first time

Sat, 10/04/2014 - 08:27
article id=node-137 class=node node-illustrerande-bild clearfix about=/en/sprint typeof=sioc:Item foaf:Document header h2 class=title property=dc:title datatype=a href=/en/sprint/a/h2 /header div class=content div class=field field-name-field-image field-type-imagefield-crop field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src= width=589 height=253 alt= //div/div/div /div footer /footer /article !-- /.node -- pFor many years, I've been using Drupal as many people do - by clicking, publishing information and creating websites through the addition of modules and themes. I know how to code in PHP, but with my involvement in the local Drupal community, organizing three DrupalCamps in Gothenburg (2012, a href= and a href= and having family and friends, there hasn't been much time to dig down into Drupal and help out with issues and writing code./p pWhen DrupalCon Amsterdam came closer I chose to take a couple of vacation days, and stay for the sprints after the camp. To take part in the First-time Sprinter Workshop on Friday and learn how to code in Drupal./p h2span style=line-height: 20.7999992370605px;First-time Sprinter Workshop/span/h2 pWe were a big bunch of people, gathered in a room at the Amsterdam RAI, to learn how to code, or at least how to help out. We would have three hours of introduction, which I had high hopes for. Apart from us, there were about 20 mentors helping out. The first thing we had to do was to install all necessary programs, like GIT, Acquia Dev Desktop, Limechat etcetera. Since I work with GIT, have been on IRC for many years, nothing of this was new. Installspan style=line-height: 1.6em;ing the Dev Desktop was troublesome though, and much time went to figure out what was wrong. During this time I couldn't pay attention to what was said about and the issue queue, so suddenly I had no idea of what to do with my (slightly) new coding environment. I just didn't know what to do. I asked one of the mentors, and he said to go find an issue in the Drupal Core and work on that. Work on it how? What should I do with it? This was why I wanted to stay for the sprinting, to learn what to do, perhaps even how to do it. Frustration was creeping up on me.../span/p h2YesCT to the rescue!/h2 pSo I sat down in front of the issue queue and tried to find something to do. I didn't know what to look for, and I ended up helping out on IRC and helping a guy sitting next to me, who knew less about GIT than me. Felt good to help someone, and to actually feel useful. Then suddenly Cathy Theys, YesCT on a href=, comes in and asks some of the guys in the room if the mentors had explained what to do when the coding environment installation is done. Since they hadn't been that thorough, Cathy took some time to do so, and that was so welcome. Suddenly I actually had some clue of what to do. A little better clue anyway. With Cathy's words in mind, I also asked a mentor called Andy if he could help me finding something to focus on. He took care of me, placing me next to two other guys who are new to Drupal coding as well, and together we explored the issues queues, trying to find appropriate tasks to do./p h2Is that a wall heading my way?/h2 pI realised quickly that even an issue tagged with 'novice' was often to hard for me, since I'm new to Object Oriented Programming, but after a while I started reviewing a patch here, a patch there and summarizing an issue here and an issue there. A fellow podcast member, Kristoffer Wiklund, said that even though everyone here wants as many as possible working on, patching and reviewing Drupal 8, there are still thousands of themes and modules out there, both getting re-written for Drupal 8, but also having issues for Drupal 7. Therefore, I also took time to look at some of the modules and themes that I use, to see if I could help out there. And I could! You can't imagine the feeling when I'm suddenly taking baby-steps towards helping out more and more. My Dashboard on was, within the hours, filling up with comments of what I've summarized, what I've added and reactions to my comments. That, my fellow Drupalistas, is something you can't put a price tag on./p h2Ending on a high note/h2 pThe day started quite bad, but ended much better, in two ways. Apart from the wounderful mentoring of Andy, we were also approached by some other mentors handing out a handful of cards, with different tasks on them. It was Sprint task cards, and when summarizing what I've been doing with Drupal for the last 4 years and what I've done during DrupalCon Amsterdam, I suddenly was eligible for 4 out of 6 cards. Sure, the mentors were a bit nice on some tasks, but it felt really good on getting 4 stickers with Explorer, Mentor, Issue mover and Community contributor. The last one was extra nice, since I work quite hard on arranging the a href= in Sweden/a./p h2One more thing... /h2 pBut that was only one thing that made the day extra special. What about the other? At 5 o'clock, Cathy entered the room and announced it was time to see when webchick, Angie Byron, commits patches to Durpal 8 core live - on stage. Well, there wasn't a stage, but at least in front of everybody. I was sitting at the desk in the front, so I had a very good seat. They did the commits, and denied some, and everything was nice and so. Webchick has a really good sense of humour which made everything extra nice. In the end she thanked the people who had made the patches she committed this afternoon but then span style=line-height: 20.7999992370605px; - and I could applause this for a very long time - /spanshe also said that it's all of us who are important, from the tiniest little bug reporter to those who do screenshots and write summaries. That showed me that I really can make a difference and that I shouldn't pack it up and go home, just because I can't write code that fixes all the major bugs in Drupal 8. And now for the good part - when Angie asks everyone that had helped out with patches to stand up I thought I shouldn't stand, but my mentor Andy encouraged me to stand up. Sure, I had helped, but I didn't think it mattered that much. But he did. And I thank him for that. That extra encouragement made me want to go home and continue looking through the issue queues at, helping out, fixing it. So we can get Drupal 8 out the door. Together./p p(I ended up visiting an art exhibition of LEGO statues called 'Art of the brick' that evening, but that's a href=/node/137a different story/a.)/p

Appnovation Technologies: Unit and Functional Testing in Drupal

Sat, 10/04/2014 - 01:12
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encoded pDrupal 7 comes by default with the simpletest (Testing) module which allows you to run test cases against your code, whether it's a small piece of code such as a function, or an entire workflow./p/div/div/divdiv class=field field-name-field-blog-header-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/blog/unit-and-functional-testing-drupalimg typeof=foaf:Image src= width=680 height=200 alt= //a/div/div/divdiv class=sharethis-buttonsdiv class=sharethis-wrapperspan st_url= st_title=Unit and Functional Testing in Drupal class=st_facebook/span span st_url= st_title=Unit and Functional Testing in Drupal class=st_twitter/span span st_url= st_title=Unit and Functional Testing in Drupal class=st_sharethis/span script type='text/javascript'var switchTo5x = false;/scriptscript type='text/javascript' src=''/scriptscript type='text/javascript'stLight.options({publisher:dr-75626d0b-d9b4-2fdb-6d29-1a20f61d683});/script/div/div

Blue Drop Shop: Drupal Camp A/V Kit REBOOT!

Fri, 10/03/2014 - 23:15
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpemThis is a continuation of the discussion started here: a href= pThe session record kits we tested at DrupalCamp Fox Valley 2014 show a lot of promise for easy-to-use, affordable recording stations. There are some issues that need to be worked out and some additional testing to be done before we can approach the Drupal Association to consider making them available for camps./p pWhile most sessions were recorded flawlessly, we ran into a few issues:/p ulliOne presenter laptop (MacBook Air) never successfully made a connection, but luckily we were able to capture a QuickTime screen record/li liThere is no indicator of the audio levels, and three sessions were lost due to no audio/li liThe record is stopped if the presenter laptop goes to sleep, so we lost a session due to that/li liThe touch audio panel is visually misleading to presenters, and very touch sensitive/li liThere is only one audio input, so to record multiple presenters, we need to test a small mixer to accept multiple inputs and output one audio channel to the recorder/li liThe projector must be able to take a 1920x1080 signal/li liThe VGA to HDMI adapter didn’t hold a tight connection to the VGA cord for the projector, so we scored some tip ties from the venue AV department. This was inconvenient when we had to switch out the cords/li liThe audio was a bit too quiet, so we should have used the +20db boost for the records/li liThere is a detectable clicking on some of the audio records, though can’t say why/li liAdditional dongles need to be purchased and tested to capture from various tablets for presenters that come in without a laptop/li /ulh2Next Steps/h2 pBefore this can be ready for prime time, the audio issue definitely needs to be overcome. I’m hoping to find a digital audio recorder that can feed audio out, which would then pipe into the recording device. This would give direct feedback via the audio recorder as well as a backup audio channel. If we had this, we could have saved three session records, since the video capture was perfect. /p pThe mics proved to be the weakest link. Three sessions were lost because of no audio channel. Hard to say why, but it’s possible that the on/off switch was inadvertently switched off after initial setup, or the unit was muted (seems less likely). It would be worth testing if a portable audio recorder can feed audio in to the record device. That would also overcome the issue of multiple presenters./p pAlso, with better communication with the presenters, after we hook up the kit, they can be in charge of the start/stop of the record, since that big red “easy” button can’t get any simpler. Maybe a simple printed sheet listing the various indicators on the device. This would eliminate the need to trim and re-process in post./p pUltimately, with predictable/boosted audio and no need of trimming, session videos could be uploaded directly from the thumb drives./p pBonus points if there is a converter out there to take the 1080 signal out of the recorder and downsample it for older projectors./p h2 The Beta Kit/h2 pstrongRecord Device - $140/strongbr / Hauppauge HD PVRbr /a href= pThis device provides a pass-through record of the presenters laptop directly onto a USB thumb drive. The movie format is an H.264 1920 x 1080 AAC 30 FPS MP4 video. /p pThe unit takes HMDI or component video (with a provided adapter cable) in and provides HDMI out. For audio, there is a 3.5mm microphone jack. To start and stop the record, you basically push the big red button. The audio touch panel lets you mute/unmute the microphone, increase the volume and add 20db boost. /p pstrongPowered Microphone - $32 /strongbr / Audio-Technica ATR-3350 Lavalier Omnidirectional Condenser Microphone  br /a href= pstrongHDMI to VGA (connects to projector) - $10/strongbr / VicTsing 1080P HDMI Male to VGA Female Video Converter Adapter Cable For PC Laptop DVD HDTV PS3 XBOX 360 and other HDMI inputbr /a href= pstrongVGA to HDMI (support non-HDMI PC laptops) - $25/strongbr / IO Crest VGA to HDMI Convertor with Audio support (SY-ADA31025)br /a href= pstrongMini Display Port to HDMI (support non-HDMI Mac laptops) - $10/strongbr / PNY A-DM-HD-W01 Mini DisplayPort to HDMI Adapterbr /a href= h2 Additional Untested Equipment/h2 pstrong2-4 Presenters, if a standalone digital audio recorder does not work/strong/p p4-channel mixer - 17.44br / Nady MM-141 4-Channel Mini Mixerbr /a href= p1/8” to 1/4” - 2.3br / Hosa GPM-103 3.5mm TRS to 1/4 TRS Adaptorbr /a href= p1/4” to 18” - 1.95br / Hosa Cable GMP386 1/4 TS To 1/8 Inch Mini TRS Mono Adaptorbr /a href= pstrongVarious tablet support and alternate dongles/strong/p pCable Matters SuperSpeed USB 3.0/2.0 to HDMI/DVI Adapter for Windows and Mac up to 2048x1152/1920x1200 in Black - 47.99br /a href= pVicTsing Dock to HDMI AV Cable Adapter for iPhone 4 4S iPad 1 2 New iPad (1080P) - 11.99br /a href= pLightning Digital AV Adapter - 43.37br /a href= pEnjoyGadgets Thunderbolt to HDMI Video Adapter Cable, with Audio Support - 9.98br /a href= pMicro HDMI (Type D) to HDMI (Type A) Cable For Microsoft Surface - 5.99br /a href= pSkiva MHL Micro USB to male HDMI cable (6.5 feet) for Samsung Galaxy S3 (SIII LTE i9300 L710 i747 i535 T999), Samsung Note 2, Galaxy S2, Galaxy Note, HTC One X, LG Optimus HD and other MHL Devices (HD-X3) - 11.99br /a href= pLinkS Micro USB to HDMI MHL cable +Micro 5pin to 11pin adapter + 3 Feet Charging Cable in Black Kit-(Compatible with any MHL enable smartphones and tablets) (Adapter kit) - 12.99br /a href= pCable Matters Gold Plated DisplayPort to HDMI Adapter (Male to Female) with Audio in Black - 11.99br /a href= pSamsung ET-H10FAUWESTA Micro USB to HDMI 1080P HDTV Adapter Cable for Samsung Galaxy S3/S4 and Note 2 - Retail Packaging - White - 28.91br /a href= pUSB A Male to Mini 5 pin (B5) Female Adapter - 2.97br /a href= pVarious HDMI converters - 13.99br / AFUNTA Hdmi Cable Adapters Kit (7 Adapters)br /a href= pHDMI cable - 7.69br / Twisted Veins 1.5ft High Speed HDMI 3 Packbr /a href= pVGA to component video (would still need component video cables) - 7.24br / 6-Inch HD15 to Component RCA Breakout Cable Adapter - M/F (HD15CPNTMF)br /a href= pstrongPersonal Voice Recorder Option/strong/p pPersonal Voice Recorder with audio line out - $160br / Zoom H2n Handy Recorderbr /a href= pZoom APH2n Accessory Pack for H2n Portable Recorder - $40br / AC adapter, case, wired remote, tripod, and other goodiesbr /a href= p3.5mm audio cable - $9br / FRiEQ® 3.5mm Male To Male Car and Home Stereo Cloth Jacketed Tangle-Free Auxiliary Audio Cable (4 Feet/1.2M)br /a href= p32MB SD Card - $17br / SanDisk Ultra 32GB SDHC Class 10/UHS-1 Flash Memory Card Speed Up To 30MB/sbr /a href= /div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfixh3 class=field-labelTags: /h3ul class=linksli class=taxonomy-term-reference-0 rel=dc:subjecta href=/tags/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal planet/a/lili class=taxonomy-term-reference-1 rel=dc:subjecta href=/tags/drupal-camps typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal camps/a/lili class=taxonomy-term-reference-2 rel=dc:subjecta href=/tags/session-recording typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=session recording/a/li/ul/div

Blue Drop Shop: Adding Your Theme Classes to CKEditor

Fri, 10/03/2014 - 23:08
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpWYSIWYG editors are the bane of my existence, yet they are a necessary evil if you have clients that want to edit their site content./p pBut somewhere between all the inline styles they create to editing source code, there simply had to be a solution that would let me open up my theme css to content creators. /p pAfter much searching and testing, I have found that unicorn. /p pCKEditor populates the style drop down menu with a js file, and it lets you override it. Problem is, as stated in the docs, it doesn't work. And there were a few various options posted in the CKEditor module issue queue. /p pFirst off, you create a new js file to name a function that will build the drop down select items and the parameters for each. Contrary to what has been suggested in various posts, I put this in my theme's js folder. That way it won't get overridden by a module or library update, and it just makes sense since it's tied to my theme. Only CKEditor will be looking for this file, so there's no need to call it in your template files nor add it to your .info file. /p pFor example, I created a file named ckeditor_styles.js like so:br /  /p p( function() {br /     CKEDITOR.stylesSet.add( 'my_styles', [ // this is the styles set name you will call laterbr /         { name: 'Teal Heading 2', element: 'h2', attributes: { 'class': 'teal' } }, br /         { name: 'Teal Text', element: 'span', attributes: { 'class': 'teal' } },br /         { name: 'Unbold Heading', element: 'span', attributes: { 'class': 'unbold' } }br /     ]);br / } )();/p pIt's pretty straightforward. The name parameter is what you will actually select in the drop down. The element is where you specify where to inject the class. If it's a block-level element (h1, h2, div, p, etc.), the class will added. If it's a span, then the selected text will be wrapped in a classed span. As for attributes, that's where you specify you are calling a class, and also provide the name of the class you want to inject. The resulting drop down will be split into block styles and inline styles./p pThe second step is to let CKEditor know where to find this file, via the advanced options section in the configuration. Navigate to admin/config/content/ckeditor and edit the profile you wish to add this to, most likely Full HTML. Docs will say you only need to set config.stylesSet, but as gleaned from the issue queues (and tested personally), you need to also set config.stylesCombo_styleSet./p pExpand the Advanced Options field set and add the following to the Custom JavaScript Configuration with your styles set name and the path to your js file:/p pconfig.stylesCombo_stylesSet = 'my_styles:/sites/all/themes/mytheme/js/ckeditor_styles.js';br / config.stylesSet = 'my_styles:/sites/all/themes/mytheme/js/ckeditor_styles.js';/p pClear your caches and you should now be able to pick styles from your drop downs that will add either standard elements or spans with the desired classes. /p pSources:br /a href=!/guide/dev_howtos_styles!/guide/dev_howtos_styles/abr /a href= /div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfixh3 class=field-labelTags: /h3ul class=linksli class=taxonomy-term-reference-0 rel=dc:subjecta href=/tags/theming typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=theming/a/lili class=taxonomy-term-reference-1 rel=dc:subjecta href=/tags/configuration typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=configuration/a/lili class=taxonomy-term-reference-2 rel=dc:subjecta href=/tags/drupal-7 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal 7/a/lili class=taxonomy-term-reference-3 rel=dc:subjecta href=/tags/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal planet/a/lili class=taxonomy-term-reference-4 rel=dc:subjecta href=/tags/site-building typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=site building/a/li/ul/div

Blue Drop Shop: Drupal Camp Organizers, Unite!

Fri, 10/03/2014 - 23:04
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpAt DrupalCorn Camp 2014, there seemed to be a fairly high number of camp organizers in attendance, so we held what I like to think of as a SuperBOF. I think we pulled four banquet tables together in order to fit everyone./p pThe purpose was to share pain points and just brainstorm camp stuff. Notes were taken and the doc is shared publicly here: a href= pMost of the discussion was centered around information sharing and coordination of efforts and how to accomplish that. We had thought that creating a private group on g.d.o for organizers to share not-ready-for-prime-time information would work. Turns out, that's not the case, as private only means there is moderation on who can join, but all posts are fully public./p pWhy a private group? Well, mostly for shared contact lists, proposed dates for coordinated planning before announcements, things like that. The intent also is to publicly share as much knowledge as we can, but in a centralized place that's a little less cumbersome than g.d.o./p pIn addition, we created a #drupalcamp IRC channel, and you should totally join if you are a camp organizer. /p pSo stay tuned, add your name to the doc if you want to be included on the proposed quarterly meeting, and join the channel so collaboration can start now!/p /div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-above clearfixh3 class=field-labelTags: /h3ul class=linksli class=taxonomy-term-reference-0 rel=dc:subjecta href=/tags/drupal-camps typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal camps/a/lili class=taxonomy-term-reference-1 rel=dc:subjecta href=/tags/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=drupal planet/a/lili class=taxonomy-term-reference-2 rel=dc:subjecta href=/tags/irc typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=irc/a/li/ul/div

Chapter Three: Chapter Three at Drupalcon Amsterdam

Fri, 10/03/2014 - 20:51
pspan id=docs-internal-guid-667dfd53-d755-7766-07bb-8910b9613770 style=line-height: 1.538em;Wrapping up today, a href=https://amsterdam2014.drupal.orgDrupalcon Amsterdam/a/spanspan style=line-height: 1.538em; created a big buzz around Drupal 8. A crew of over 2,100 participated in /spanspan id=docs-internal-guid-667dfd53-d755-7766-07bb-8910b9613770 style=line-height: 1.538em;sessions, sprints and keynotes, and celebrated the release of the /spana href= style=line-height: 1.538em;Beta 1 version of Drupal 8/aspan style=line-height: 1.538em;./span/p

CiviCRM Blog: Future First's Contact View Edit

Fri, 10/03/2014 - 20:10
div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-item even property=content:encodeddiv Sadly all good things must come to an end./div div  /div div Here at the CiviCRM 2014 Edale Sprint we've been working closely with members of the core team. As well as fixing bugs, working on integrating Google Summer of Code projects, and readying extensions for release, it's been an excellent opportunity for the Future First Software Developers to learn directly from the CiviCRM experts themselves./div div  /div div In a presentation I showed something that the Future First Software Development Team made recently - a brand new contact screen. It went down a treat, so here's a blog article revealing how we did it!/div div  /div div strongBackground:/strong/div div  /div div Future First is a charity that helps state-funded schools and colleges mobilise their former students for the benefit of their current students. Former students can do this by attending in-school events to inspire current students, by offering mentoring or work experience opportunities, by assisting in fundraising, or even by appearing on a poster displayed in the school!/div div  /div div A key part of Future First's offering is a Teacher Dashboard that teachers can log into to engage with their former students. This mostly involves an extensive search system and a communal inbox. It is built from a combination of Drupal custom modules and CiviCRM custom extensions./div div  /div div strongThe legacy:/strong/div div  /div div Future First's Teacher Dashboard is a legacy system. Initially a screen was created to allow teachers to view contacts, based off a profile (with a separate screen to edit). Then notes were attached, so that teachers could add, edit, and remove notes about the alumni. When our Mailbox was operational we added each mail send to and from that alumnus to the profile screen too. Afterwards we added the ability to record mobilisations, so they made their way onto the screen as well!/div div  /div div The result was not pretty: an overburdened, messy screen that didn't allow teachers to view or edit all of the information that was being stored by CiviCRM. It was very slow, as all the mobilisations and emails had to be loaded just to add or remove a note. And everything had to be loaded once to view the contact, then again to edit it, and then a third time to see the saved edit./div div  /div div It was time to start over. /div div  /div div strongThe requirements:/strong/div div  /div div Our main requirements were: /div div - fast/div div - have only one screen for both editing/div div - neater/div div - view and edit everything/div div - maintainable. Our system is growing rapidly, and the screen should be ready to support that./div div  /div div strongThe plan:/strong/div div  /div div With three members of staff to work on the project, it needed to be modular. The data was broken into logical categories, and an api and template file was created for each of these. This structure translated directly into the different tabs./div div  /div div Only the data on the first tab is loaded. When other tabs are clicked AJAX calls the API function for that tab. This retrieves the relevant data, which some jQuery then puts into the appropriate place./div div  /div div Inline editing was used for each field. This feature, provided by the CiviCRM core, allows our users to view and update data without needing to move between different screens. Sadly, this didn't let us update custom data, so we patched it and offered our patch to the core!/div div  /div div strongThe results:/strong/div div  /div div  /div /div /div div class=field field-name-upload field-type-file field-label-hidden div class=field-item eventable class=sticky-enabled theadtrthAttachment/ththSize/th /tr/thead tbody tr class=oddtdspan class=fileimg class=file-icon alt= title=image/png src=/modules/file/icons/image-x-generic.png / a href= type=image/png; length=88576contact_screen_1.png/a/span/tdtd86.5 KB/td /tr tr class=eventdspan class=fileimg class=file-icon alt= title=image/png src=/modules/file/icons/image-x-generic.png / a href= type=image/png; length=70812contact_screen_2.png/a/span/tdtd69.15 KB/td /tr tr class=oddtdspan class=fileimg class=file-icon alt= title=image/png src=/modules/file/icons/image-x-generic.png / a href= type=image/png; length=99346contact_screen_3.png/a/span/tdtd97.02 KB/td /tr tr class=eventdspan class=fileimg class=file-icon alt= title=image/png src=/modules/file/icons/image-x-generic.png / a href= type=image/png; length=67521contact_screen_4.png/a/span/tdtd65.94 KB/td /tr /tbody /table /div /div div class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-hidden clearfix ul class=field-items li class=field-item even a href=/category/civicrm-blog-categories/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a /li li class=field-item odd a href=/category/civicrm-blog-categories/extensions typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Extensions/a /li /ul /div

Victor Kane: DrupalCon Amsterdam 2014 - Historic Mirror on Drupal's Future

Fri, 10/03/2014 - 18:18
!-- google_ad_section_start --pDrupal has immersed all our lives in the web, and the biggest conclusion we can draw from this DrupalCon is that Drupal in particular and we, as creators and consumers of Drupal, are all being rocked to the core by the fast pace of change in the industry. Changes in the development, scope, architecture, process and workforce dynamics prevalent in the development and acquisition of ever-more complex web applications and systems are rocking Drupal too, and the result is a scrambling for solid footing./p pThe footing we all find, and the journeys we take to find it, will determine our future./p pFirst and foremost we need to come to grips with the debates, with what is shaping up. We need to learn a lot just to fathom the consensus on what the options are now. Then we must prick up courage and make choices./p pBut one truth is acknowledged by all: there is no simple and straightforward path forward, from here on in we mix and match, we build on an industry-wide workbench to common standards, or we build not at all. There is no more protective balloon, the big blue bubble has burst, or worse, is in the act of bursting now./p pBut this is not a bad thing. We just need to keep our heads, even ifnbsp;a href= target=_blankDrupal cannot/a. If we can drivenbsp;a href= target=_blank@eaton/a'snbsp;a href= target=_blankPromiscuous Drupal/anbsp;to its logical limit, if we cannbsp;a href= target=_blankKeeping it Simple/anbsp;withnbsp;a href= target=_blank@sdboyer/anbsp;we can bring that knowledge back to the community no matter what, asnbsp;a href= target=_blank@crell/anbsp;guides us throughnbsp;a href= target=_blankManaging Complexity/anbsp;(be sure to check outnbsp;emhis/emnbsp;reading list) and thenbsp;a href= target=_blankportals decouple/a, while beset withnbsp;a href= target=_blankNew Wave PHP/a, and at every turn:nbsp;a href= target=_blankDrupal in the Hip Hop Virtual Machine/anbsp;with thenbsp;a href= target=_blank@outlandishjosh/a./p pThat's the intoxication of sampling the key presentations from this historic DrupalCon Amsterdam 2014: let's find out what it's all about./p pOf course, this is just my own shortlist (grouped by topics, of which, it is worth pointing out, headless is second only to Drupal 8 and way ahead of anything else as a concern), but whether or not I left out any well-deserving items from the list, it's more than enough to be able to say Wow, we live in interesting times./p h3Keynote/h3 ul lia href= target=_blankKeynote: Dries Buytaert/a/li /ul h3Drupal 8/h3 ul lia href= target=_blankDrupal 8: The Crash Course/a/li lia href= target=_blankManaging Complexity/a/li lia href= target=_blankDrupal 8 CMI on Managed Workflow/a/li lia href= target=_blankTwig and the new Drupal 8 Theme System/a/li lia href= target=_blankDrupal 8 multilingual hands-on/a/li lia href= target=_blankDrupal 8 Media/a/li /ul h3Headless Drupal/h3 ul lia href= target=_blankTurbocharging Drupal syndication with Node.JS/a/li lia href= target=_blankDecoupled Front-end and the Future/a/li lia href= target=_blankBuilding Modern Web Applications with Ember.js and Headless Drupal/a/li lia href= target=_blankA Decoupled Drupal with Silex/a/li lia href= target=_blankBOF: Zariz amp; RESTful - We've got your headless covered/a ul lia href= target=_blankVideo/a/li /ul /li /ul h3PHP Renaissance/h3 ul lia href= target=_blankDrupal in the Hip Hop Virtual Machine/a/li lia href= target=_blankNew Wave PHP/a/li lia href= target=_blankOOP For Drupal Developers/a/li lia href= target=_blankDrupal’s PHP Component Future/a/li /ul h3Web Dev Future/h3 ul lia href= target=_blankStyleguide-Driven Development: The New Web Development/a/li lia href= target=_blankDistributed Companies are the Future/a/li lia href= target=_blankOpen Source Enterprise Continuous Delivery with Go/a/li /ul h3Drupal 7/h3 ul lia href= target=_blankFuture-Proof your Drupal 7 site/a/li /ul pCheck some of these out, we need to talk about this over the next few days./p pAnd in later articles and repos, I will be sharing concrete examples of how I am dealing with all of this, and how I am planning, well, my future./p !-- google_ad_section_end --div class=og_rss_groups/divpa href= target=_blankread more/a/p

Code Karate: Drupal 7 Search Krumo Module

Fri, 10/03/2014 - 18:16
div class=field field-name-field-episode-number field-type-number-integer field-label-abovediv class=field-labelEpisode Number:nbsp;/divdiv class=field-itemsdiv class=field-item even171/div/div/divdiv class=field field-name-field-ddod-video field-type-file field-label-hiddendiv class=field-itemsdiv class=field-item evenimg src= alt=Drupal 7 Search Krumo Module - Daily Dose of Drupal episode 171 //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpThe Drupal 7 Search Krumo Module extends the Devel module and makes it easier to debug PHP variables while developing Drupal modules or building Drupal themes. It adds a simple search box that allows you to quickly search through the Krumo output that is generated by the dpm function./p pIf you want to try it out quickly, simply download and install the module and run the following code on the variable you want to debug:/p/div/div/divdiv class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/category/tags/drupalDrupal/a/divdiv class=field-item odda href=/category/tags/drupal/drupal-7Drupal 7/a/divdiv class=field-item evena href=/category/tags/drupal/module-developmentModule Development/a/divdiv class=field-item odda href=/category/tags/drupal/theme-developmentTheme Development/a/divdiv class=field-item evena href=/category/tags/drupal-planetDrupal Planet/a/divdiv class=field-item odda href=/category/tags/tips-and-tricksTips and Tricks/a/div/div/div