Planet Drupal

Syndicate content
drupal.org - aggregated feeds in category Drupal Planet
Updated: 58 min ago

Pronovix: An introduction to the Radioactivity module

Tue, 02/26/2013 - 14:14
div class=grid-1 alpha26 Feb/divdiv class=field field-name-titleh2a href=/blog/robertkovacs/introduction-radioactivity-moduleAn introduction to the Radioactivity module/a/h2/divdiv class=field field-name-bodypThe Radioactivity module provides a custom field type with a special radioactivity metric that can be assigned to content types. User interaction can maintain high-level radiation or - if interaction is not significant - a cool down mechanism can kick in. It can be used as a ‘hotness’ metric, a regular view counter, and even more.br / I explain the principles and walk you through the setup of this highly useful module. /p /divdiv class=field field-name-node-linkdiv class=read-morea href=/blog/robertkovacs/introduction-radioactivity-moduleRead more/a/div/div

undpaul: Theming in Drupal 8 with Twig (Part 2)

Tue, 02/26/2013 - 13:49
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even pFollowing up on the a href=http://www.undpaul.de/blog/2013/02/18/theming-drupal-8-twig-part-1 title=Theming in Drupal 8 with Twig (Part 1)#10;first blog post/a on emTheming in Drupal 8 with Twig/em, this second part will cover Twig's syntax./p pIn order to explain these changes more clearly I want to compare the known PHPTemplate syntax with the new Twig template syntax. All examples mentioned in this blog post are based on the latest development state of the a href=http://drupal.org/sandbox/pixelmord/1750250 titel=Drupal 8 Twig SandboxDrupal 8 Twig Sandbox/a./p/div/div/divdiv class=field field-name-taxonomy-vocabulary-1 field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/blog/tags/drupal-planet-englishdrupal planet english/a/div/div/div

epiqo: All your pants are in danger - CSRF explained

Tue, 02/26/2013 - 10:39
div class=field field-name-field-intro field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item evenpCross Site Request Forgery (CSRF) is a common form of attack against a web application. This post tries to shed some light on how it works and how exploits can be crafted. We will tailor this to a Drupal use case and example code./p /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:encodedpSome general considerations:/p ulliFirst, keep in mind how web browsers and authentication works: if you are logged-in on a site with cookies, then your browser will always send along the cookies with any request it makes to that site. If another site embeds resources from that site (images, javascript, iframes ...), then the resource will be requested with your cookies attached./li liSecond, it is important to know that CSRF can only be applied to write operations. That means that a page callback must change the application's data. Example: the path /node/1 cannot be vulnerable to CSRF exploits in a standard Drupal installation, because a node is only displayed and not changed./li liThird, you must know that a CSRF attack is always performed on behalf of a particular user. That means that the attack is performed blindly, which means that the original attacker cannot access the response during the attack./li /ulpConfused? Me too, let's look at a real Drupal example./p h2The simple GET case/h2 pThis pattern is probably most widely known among developers. Here's example module code that provides a menu callback to delete some example pants data:/p div class=codeblockcodespan style=color: #000000span style=color: #0000BBlt;?phpbr //spanspan style=color: #FF8000/**br / * Implements hook_menu().br / */br //spanspan style=color: #007700function /spanspan style=color: #0000BBmymodule_menu/spanspan style=color: #007700() {br /  /spanspan style=color: #0000BB$items/spanspan style=color: #007700[/spanspan style=color: #DD0000'mymodule/pants/%/delete'/spanspan style=color: #007700] = array(br /    /spanspan style=color: #DD0000'title' /spanspan style=color: #007700=gt; /spanspan style=color: #DD0000'Delete pants'/spanspan style=color: #007700,br /    /spanspan style=color: #DD0000'page callback' /spanspan style=color: #007700=gt; /spanspan style=color: #DD0000'mymodule_delete_pants'/spanspan style=color: #007700,br /    /spanspan style=color: #DD0000'page arguments' /spanspan style=color: #007700=gt; array(/spanspan style=color: #0000BB2/spanspan style=color: #007700),br /    /spanspan style=color: #DD0000'access arguments' /spanspan style=color: #007700=gt; array(/spanspan style=color: #DD0000'delete pants objects'/spanspan style=color: #007700),br /  );br /  return /spanspan style=color: #0000BB$items/spanspan style=color: #007700;br /} p/p/spanspan style=color: #FF8000/**br / * Page callback to delete pants.br / */br //spanspan style=color: #007700function /spanspan style=color: #0000BBmymodule_delete_pants/spanspan style=color: #007700(/spanspan style=color: #0000BB$pants_id/spanspan style=color: #007700) {br /  /spanspan style=color: #0000BBdb_delete/spanspan style=color: #007700(/spanspan style=color: #DD0000'mymodule_pants'/spanspan style=color: #007700)-gt;/spanspan style=color: #0000BBcondition/spanspan style=color: #007700(/spanspan style=color: #DD0000'pants_id'/spanspan style=color: #007700, /spanspan style=color: #0000BB$pants_id/spanspan style=color: #007700)-gt;/spanspan style=color: #0000BBexecute/spanspan style=color: #007700();br /  /spanspan style=color: #0000BBdrupal_set_message/spanspan style=color: #007700(/spanspan style=color: #0000BBt/spanspan style=color: #007700(/spanspan style=color: #DD0000'Deleted pants %id'/spanspan style=color: #007700, array(/spanspan style=color: #DD0000'%id' /spanspan style=color: #007700=gt; /spanspan style=color: #0000BB$pants_id/spanspan style=color: #007700)));br /}br //spanspan style=color: #0000BB?gt;/span/span/code/div pPretty straight forward, right? What could possibly go wrong with that code? The menu entry is protected with a permission, so everything is fine?/p pWrong. The usual HTML snippet for exploiting CSRF here looks like this (example.com is your Drupal site):/p div class=codeblockcodelt;img src=http://example.com/mymodule/pants/1337/deletegt;/code/div h2Chain of an attack/h2 ulliThe attacker posts a comment on your site: Look what a nice picture I found and the image snippet from above./li liYou are logged in as admin and you see that there is a new comment, so you go to that comment page./li liYour browser renders the content, sees the image and tries to fetch it./li liYour browser sends the cookies along, so permission is granted to the page callback (you as admin are allowed to delete pants)./li liThe delete query is executed and pants with ID 1337 are removed./li liYour browser receives an HTML response from Drupal and cannot display it. It will show a broken image or similar./li liYou think: What a dumb comment, the image does not even work, LOL!/li liLater you realize that somehow the 1337 pants are gone, but you have no idea why./li /ulpThe attacker does not even have to post the malicious HTML snippet on your site, she can also post it on her own site, or to Facebook for example. She only needs you to load the image or follow the link, and all your pants are in danger./p h2Solution/h2 pThere are two common strategies to solve this problem:/p ullistrongConfirmation form/strong: the action is not performed immediately and the user has to press an extra button in order to proceed with deleting pants./li listrongSecurity Tokens/strong: the menu link has an additional security token in its path that is validated before executing the action. a href=http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_get_token/7drupal_get_token()/a and a href=http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_valid_token/7drupal_valid_token()/a can generate/validate the tokens for you and when the link is displayed the token is added. An attacker cannot know your token, so the validation will fail and access will be denied in that case./li /ulpA typical use case for such action links that have to be protected is implemented in the a href=http://drupal.org/project/rules_linkRules Link module/a that we heavily use for our a href=http://drupal.org/project/recruiterRecruiter/a and a href=http://epiqo.com/jobiqojobiqo/a products. I would recommend to look at its hook_menu() implementations and access/page callbacks for examples for confirmation forms and token protection. There is also an interesting a href=http://drupalscout.com/knowledge-base/protecting-your-drupal-module-against-cross-site-request-forgeries-csrfDrupal Scout article about how to protect your Drupal site against CSRF/a./p h2More advanced POST cases/h2 pI will follow-up with CSRF examples for POST requests in a future blog post. Stay tuned!/p /div/div/div

Web Wash: Create Responsive Image Galleries in Drupal 7 with Juicebox

Tue, 02/26/2013 - 09:16
div class=field field-name-field-ww-summary field-type-text-long field-label-hiddendiv class=field-itemsdiv class=field-item evenpMost websites these days have some sort of image gallery functionality. With the rise of mobile and tablet devices, it's important to make sure that image galleries are responsive. There's nothing more painful than trying to press the tiny emnext/em button when viewing a non-responsive image gallery on a mobile device./p pa href=http://www.juicebox.net/Juicebox/a is a JavaScript library that allows you to create HTML5 responsive image galleries on your website. However, it is important to note that a href=http://www.juicebox.net/Juicebox/a is not open source. The library is available in two versions: the free Lite version and the fully-featured Pro version./p pThe a href=http://drupal.org/project/juiceboxJuicebox/a module for Drupal integrates Juicebox easily into Drupal. A Gallery can be implemented using a field formatter or by using a href=http://drupal.org/project/viewsViews/a./p /div/div/div

Drupal core announcements: Drop PUT support from REST.module

Tue, 02/26/2013 - 08:49
pThe REST team believes it's in Drupal's best interest to back off from supporting PUT requests directly in the rest.module. While it is still supportable by the core routing system, the semantics of PUT and the complexity of Drupal entities are just too incompatible to be viable at this time./p pFeedback on this decision is welcome in the a href=http://groups.drupal.org/node/284948announcement thread/a until 4 March, but at this time we don't believe it is possible to support well./p

Open Source Training: 7 of our Favorite Presentations from DrupalCon Sydney

Tue, 02/26/2013 - 05:08
pimg src=http://www.ostraining.com/images/conferences/DCSYDlogo.png width=200 height=75 alt=DrupalCon Sydney style=float: right; /At the beginning of February, Australia held the first ever DrupalCon outside of Europe or North America./p pAll of the DrupalCon Sydney sessions were taped and put all online, saving you the cost of airfare, hotel and food, although Sydney would have been really nice in February! In fact, the DrupalCon team did an extraordinary job. Not only did they record every session, but they posted videos online within hours of each session ending. /pimg src=http://feeds.feedburner.com/~r/ostrainingdrupal/~4/2KNYXS5Vpqs height=1 width=1/

Commerce Guys: 15 Secrets to Rocking Your Drupalcon

Mon, 02/25/2013 - 23:16
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpI absolutely love going to Drupalcons. The excitement is palpable and it's always so great to catch up with the core team, sponsors, speakers amp; other awesome contributors in person. But it wasn't always so for me! Chicago was overwhelming and I couldn't help but feel out of place, not to mention the killer bout of Drupal-Flu that had me sick as a dog for a week! But things have really changed since that first conference. Sydney was the best yet! I suppose the gorgeous beach location mid-australian summer didn't hurt; no one complains about having meetings on the beach over cocktails ;)/p pSo, here goes, I'm going to give you the tricks of the trade so your Drupalcons will be as much fun or even better than my own!/p pb1) Have a plan./b You'd be surprised how useful it is to know what you want to get out of a conference in advance. Know who you'd like to meet, or perhaps one thing you'd like to work on mastering. I usually go with 3-5 concrete things I can accomplish for myself, and those who sponsor my trips. In fact, I think next time I might even schedule meetings ahead of time to make the most of my between-session time. Which leads me to point #2./p pb2) Don't skip the sessions./b Everyone will tell you oh you can watch the video, talk to people while you can!, but honestly, I disagree. I get a lot of benefit out of being at the session live. You'll be much more engaged when you're there in person, and I often meet people interested in the same topics of the sessions I don't dare miss. I suggest picking two to three presentations each day that are must-sees to maximize the time between mingling amp; meetings. There's even a handy-dandy scheduler installed on most conference sites to help you organize!/p pb3) Don't be shy, guys./b If you sit on the sidelines you're really missing the entire point. Only at the cons and the occasional special camp will so many totally amazing people converge! Switch off your computer and talk to some people! You might not know everyone, but this is a thankfully un-snobby community where noobs are welcomed and appreciated. Go talk to people you appreciate, shake their hand or buy them a drink. Or best of all, ask what their pet project is, and find out if you can help!/p pb4) Take or Tweet notes./b While you're there in that session, jot down notes or live-tweet your experience. It's great for sharing, and even better for going back and looking at your favorite parts! Just don't tweet 50 times in one session, that can get a little obnoxious. Save it for the very best stuff!/p pb5) Be a curious cat./b Every session is supposed to have time for Q amp; A, so while you're jotting down some notes, try noting a few questions. Not only will you stimulate conversation, but you'll save presenters from that awkward any questions? Bueller? pause. Session speakers will love you for it!/p pb6) Get into the core of it./b The cons have not been the same for me since getting involved in core contribution, hand to god. If you take away one thing from this article, I hope this is it, because no matter your skills or aspirations, core needs you. It's not easy to keep up with it, but it really is worth your investment. Not enough people make the leap, and everyone who isn't helping is basically using the system in my opinion. Respect, conviviality, fun, knowledge and a lot more are at your fingertips. Carpe diem./p pb7) Stay for sprinting for god's sake./b I met a few people who left before the sprint on this last trip, and I'm wagging my finger at you lot. Skipping sprinting is like eating the frosting off a cake. It's better to have the whole experience, and much more satisfying in the end. Think of what Drupal could be if everyone who attended the conference got involved in sprinting. Stop thinking it's not for you. It is, and it's magically delicious./p pb8) Not sure about sprint-day? Go to the core contributor's sessions./b Check out the sessions, usually led by XJM, about how to get started in core contribution. What's great about these sessions is that they teach you where square one is before they teach you what to do. It's a fantastic way to get started! Even if you're an experienced Drupalist, core contribution can present a different challenge and Jess helps you get in the game a lot faster./p pb9) Plan vacay./b I am guilty of a very serious offense -- traveling half way across the world to Sydney, and NOT planning a single day of sight seeing. It was stupid. It was really really stupid. I ended up extending my trip by 2 days so I could go pet koalas, visit the aquarium's sharks, and hang out in down town Sydney. I'm sure the unexpected delay was not convenient for my co-workers, and I'll not make that mistake again! Just plan to take a couple of days if you can, it's worth it if you're traveling somewhere you'll probably never be again./p pb10) Stay on site./b As someone who's stayed off-site (air bamp;b, rented apartments amp; the like) in order to save cash, I can testify that it might not be worth it. The money saved really harshes the experience because often we weren't close enough to the conference hotel to really benefit from after-session activities like spontaneous brainstorms, sprints and all the people you meet over a beer or virgin cocktail if beer's not your thing. (Yes, you can go out for drinks and not drink alcohol! It's actually more common than you might think!)/p pb11) Say thank you./b Enthusiasm is very contagious. Please go tell people when they did something you think is cool, you're their mana you know. You keep them going when they need it, and they need it a lot./p pb12) Wash. Your. Hands./b Ever since Chicago, I've learned to wash my hands surgeon-style. It seriously does make a difference!/p pb13) I has a lolcat./b You don't have to be Angie to give a great session -- so submit your idea! If you have an idea or an interesting perspective, submit it! Just make sure you allow yourself plenty of practice, prep and of course pictures of animals./p pb14) Take care of yourself./b Get some sleep amp; plan travel that makes sense. This time around I planned over 80 hours of transit to save a little cash and it totally was NOT worth it. I did however get at least 7hrs of sleep each night, and it allowed me to stay awake during the conference which helps ;)/p pb15) Try out ladders!/b One of the things Dries mentioned during Qamp;A sessions was that the learning curve is pretty high for Drupal 8 what with incorporation of a more object-oriented development style, Symfony and Twig. You're gonna have to learn this stuff anyway, so why not contribute it to a Drupal Ladder? There are lots of ways you can help with Ladders (outlines, sub-outlines, curriculum suggestions or reviews, sprint planning, people-wrangling, etc etc) and you will feel great making a difference that helps adoption in such an impactful way!/p pstrongBonus:/strong Write a wrap-up post. This way you can share your best experiences with others! So that's how I have a rockin' time at these things! Do you agree? Do you disagree? Do you have other ideas? Share your thoughts with us in the comments below!/p pimg align=left alt=PayPal src=http://commerceguys.com/sites/default/files/blog/files/CG-druplicon.jpg style= margin: 0;padding: 0px 10px 10px 10px; width=350 //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=http://commerceguys.com/tags/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabelPlanet Drupal/a/div/div/div

Open Source Training: Adding Meta Tags to Drupal Content

Mon, 02/25/2013 - 21:25
pimg src=http://www.ostraining.com/images/drupal/meta-tags.jpg width=200 height=200 alt=meta-tags style=float: right; /Search engine optimization (SEO) is often at the top of the to-do list when planning a site./p pThere was a time when the lt;metagt; tag had been considered one way to help your pages rise to the top of a search engine result. Although that is not always the case anymore, it can still be useful to meta tags available to search engines so they can use it if they choose./p pIn this tutorial, we'll explore the Meta tags module, a fast and easy way to add metadata to your nodes, terms, and users./pimg src=http://feeds.feedburner.com/~r/ostrainingdrupal/~4/o_Y54ofvpEg height=1 width=1/

Phase2 Technology: OpenPublic Drupal: Join us for a Great Webinar!

Mon, 02/25/2013 - 21:07
I am very excited to participate in the an OpenPublic webinar hosted by Acquia this Wednesday, with my Phase2 public sector parters in crime, Greg Wilson, and Karen Borchert. Our goal for OpenPublic this year is to celebrate and highlight what can be build with OpenPublic and Drupal and how we can nurture this growing community of users.

IXIS: A New look for New Teachers in 2013

Mon, 02/25/2013 - 19:12
pWe have recently launched a revamped site fornbsp;a href=http://www.tes.co.uk/Times Education/anbsp;targetting newly qualified teachers with the NUT./p pa href=http://newteachers.tes.co.uk/New Teachers/anbsp;is a core asset of Times Education, providing teaching tips, resources, online live advice chat and the latest job vacancies for new teachers./p pIxis have worked with Times Education for 4 years, providing development and consultancy support to a range of sites including assets for headteachers and the provision of careers guidance for schools. We also provide a hosting and support infrastructure that ensures the sites are secure and performing especially under heavy traffic loads at peak times./ppa href=http://www.ixis.co.uk/blog/new-look-new-teachers-2013 target=_blankread more/a/p

Bluespark Labs: New in Drupal Rooms

Mon, 02/25/2013 - 19:00
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpWe’ve been keeping busy since our last update on Rooms! We’ve just released Rooms RC2 and are readying for a V 1.0 release before we meet up for DrupalCon in Portland. /p pPlease download and test, as we will not be adding any new features for 1.0, just cleaning up and fixing bugs. We’re very close!/p h3New functionality recently added:/h3 ulliFlexible availability search with group size and children/li liRevamped room selection to allow the selection of add-ons on room booking/li liAdded drag and select dates in calendar and assign status to them rather than using form/li liCleaned up the inquiry forms/li liMade it easier to customize/li liFixed some minor bugs/li /ulpWe’ve also refreshed the rooms branding, including a redesigned logo:/p pimg src=http://www.bluespark.com/files/images/page/rooms_logo_2_18.png alt=the refreshed Drupal Rooms logo //p pWe'll be working to extend this rebranding to the drupalrooms.com site./p pAlso, we’ve been focusing on UX.  We’ll make small fixes to the existing module but also spend time thinking about the bigger picture. We’re currently working on wires that incorporate UX best practices. Contact us for ideas/opinions on UX!/p h3Longer term goals:/h3 pAs soon as we can, we plan to develop Rooms distributions within the accommodations market. Of course, all the tools will remain open source, and users will be able to download and install packaged hotel web sites.  Several themes will be available./p pWe want to continue to foster an ecosystem of people using Drupal Rooms and develop optional subscription services to them beyond what Drupal Rooms does. The first service we plan to offer is linking room availability with big online hotel reservation sites--with the added benefit that the hotel owner will retain his/her purchase data (and commission money), not the OTAs./p pLater, we might expand this functionality into more widespread travel sites or other types of bookings (ticket purchase, tour packages, cooking classes, etc). We've even had some inquiries on how Rooms could be used within hospitals./p pWe believe that this first version of Rooms will offer the most complete, feature-rich, and flexible Drupal-based hotel booking solution available. /p pbLet us help with your Rooms implementation/b from back end customization to front-end themeing. We’re happy to work directly with clients or in partnership with other devs. Contact us!/p h3Get involved in Rooms!/h3 pWith over 25,000 downloads and over 300 sites reporting using Rooms, we know people are excited about Rooms - a powerful Drupal module to handle hotel bookings but the basics of a Drupal Hotel CMS that is both flexible and user-friendly - meeting the real needs of hotel owners. So let’s talk Rooms!/p ulliCome see us at Drupalcon Portland at our stand or in our BoF./li liHelp us make Rooms better and better as we work toward V1 release. [Comments/feature requests: a href=http://drupal.org/node/1897010]http://drupal.org/node/1897010]/a/li liIf you are a hotel owner or hotel website builder get in touch - we want to talk with you! We need your market experience to make sure Rooms has everything you need to make your business stronger./li liLearn more about a href=/drupal-roomsRooms here./a/li /ul/div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/blog/newsAnnouncements/a/divdiv class=field-item odda href=/blog/drupal-roomsDrupal Rooms/a/divdiv class=field-item evena href=/blog/drupal-planetDrupal Planet/a/div/div/div

Matt Grasmick: Introducing Devit

Mon, 02/25/2013 - 17:04
pimg src=http://grasmash.com/sites/default/files/styles/medium-large/public/field/image/devit.jpg width=312 height=350 alt=Devit Admin style=float:right; margin: 0 0 1em 1em; class=image-medium-large /br / You have a live website and you need to copy a fresh version of the (live) database onto your local machine for development. Next, you need to run through one or more of these rote tasks:/p ul liDisable Drupal core caches (page cache, block cache, CSS amp; JS optimization, etc.)/li liSanitize user data/li liUpdate Drupal's file system paths (public, private, tmp directories)/li liEnable email rerouting/li liUpdate logging and error level settings/li liRe-configure a contrib module. E.g., a href=http://drupal.org/project/securesiteSecure Site/a (enable, set permissions, guest accounts). /ul pDoes this sound familiar? If so, I have good news! I've created a module that will help you automate that process./p pa href=http://drupal.org/project/devitDevit/a allows you to select or create tasks that should be run when your database needs to be emdeved/em. You can initiate these tasks via an administrative page, or via Drush./p pDevit comes with a submodule that will provide you with the basic tasks, but it also provides an API that allows you to create your own tasks! Ideally, various contrib modules will be packaged with their own Devit tasks. For example:/p ul lia href=http://drupal.org/project/securesiteSecure Site/a could have a Devit task that enables secure_site and sets default permissions, passwords, etc./li lia href=http://drupal.org/project/advaggAdvagg/a could have a task that disables all of its fancy features./li lia href=http://drupal.org/project/featuresFeatures/a could have a task that performs a features revert and enables the Features UI module./li /ul h3Choosing amp; executing Devit tasks/h3 pThere are a few ways to choose and execute the selection devit tasks that you'd like to run./p ol liThe devit_ui sub-module provides a user interface that allows administrators to choose and execute Devit tasks (image above). /li liYour own, custom devit tasks can be defined with a default status of TRUEmdash;these will run when your site is deved via Drush./li liA selection of Devit tasks can be defined in a devit.settings.php file. This option allows you to easily define a set of Devit tasks that are unique to your development environment. These settings will supersede the default status of your tasks, and the Devit configuration stored in your database. Must be executed via Drush./li /ol pThis file must be placed in your site directory, e.g., /sites/default. It contains a simple, flat array keyed by task names:/p div class=geshifilter pre class=php geshifilter-php style=font-family:monospace;span style=color: #666666; font-style: italic;// Set whether a task should be executed when Devit is run./span span style=color: #000088;$tasks/span span style=color: #339933;=/span a href=http://www.php.net/arrayspan style=color: #990000;array/span/aspan style=color: #009900;#40;/span span style=color: #666666; font-style: italic;// Key rows by task name./span span style=color: #0000ff;'clear-caches'/span span style=color: #339933;=gt;/span span style=color: #009900; font-weight: bold;TRUE/spanspan style=color: #339933;,/span span style=color: #0000ff;'update-file-paths'/span span style=color: #339933;=gt;/span span style=color: #009900; font-weight: bold;FALSE/spanspan style=color: #339933;,/span span style=color: #009900;#41;/spanspan style=color: #339933;;/span/pre/div pHere's a quick example of deving your site via Drush!/p pre $ drush devit Please enter the new password for all users [password]: new_pass Set files directory path [sites/files]: new_files_dir Files directory path changed to new_files_dir. [success] Site ready for development! /preh3Defining your own tasks/h3 pDevit provides an API that works much like the Menu API. The hook_devit_tasks() function allows you to define your own Devit tasks, and gives you the familiar framework to specify details like title, description, task callback, user access callback, file includes, etc.br / Here's a quick example:/p div class=geshifilter pre class=php geshifilter-php style=font-family:monospace;span style=color: #009933; font-style: italic;/** * Implements hook_devit_tasks(). *//span span style=color: #000000; font-weight: bold;function/span yourmodule_devit_tasksspan style=color: #009900;#40;/spanspan style=color: #009900;#41;/span span style=color: #009900;#123;/span span style=color: #000088;$tasks/span span style=color: #339933;=/span a href=http://www.php.net/arrayspan style=color: #990000;array/span/aspan style=color: #009900;#40;/spanspan style=color: #009900;#41;/spanspan style=color: #339933;;/span nbsp; span style=color: #000088;$tasks/spanspan style=color: #009900;#91;/spanspan style=color: #0000ff;'disable-caching'/spanspan style=color: #009900;#93;/span span style=color: #339933;=/span a href=http://www.php.net/arrayspan style=color: #990000;array/span/aspan style=color: #009900;#40;/span span style=color: #0000ff;'title'/span span style=color: #339933;=gt;/span tspan style=color: #009900;#40;/spanspan style=color: #0000ff;'Disable core caching features'/spanspan style=color: #009900;#41;/spanspan style=color: #339933;,/span span style=color: #0000ff;'description'/span span style=color: #339933;=gt;/span tspan style=color: #009900;#40;/spanspan style=color: #0000ff;'Disables page cache, page compression, block cache, and CSS amp; JS optimization.'/spanspan style=color: #009900;#41;/spanspan style=color: #339933;,/span span style=color: #0000ff;'task callback'/span span style=color: #339933;=gt;/span span style=color: #0000ff;'yourmodule_disable_caching'/spanspan style=color: #339933;,/span span style=color: #0000ff;'access arguments'/span span style=color: #339933;=gt;/span span style=color: #0000ff;'administer site configuration'/spanspan style=color: #339933;,/span span style=color: #009900;#41;/spanspan style=color: #339933;;/span nbsp; span style=color: #b1b100;return/span span style=color: #000088;$tasks/spanspan style=color: #339933;;/span span style=color: #009900;#125;/span nbsp; span style=color: #009933; font-style: italic;/** * Disables core caching. *//span span style=color: #000000; font-weight: bold;function/span yourmodule_disable_cachingspan style=color: #009900;#40;/spanspan style=color: #009900;#41;/span span style=color: #009900;#123;/span variable_setspan style=color: #009900;#40;/spanspan style=color: #0000ff;'cache'/spanspan style=color: #339933;,/span span style=color: #0000ff;quot;0quot;/spanspan style=color: #009900;#41;/spanspan style=color: #339933;;/span variable_setspan style=color: #009900;#40;/spanspan style=color: #0000ff;'block_cache'/spanspan style=color: #339933;,/span span style=color: #0000ff;quot;0quot;/spanspan style=color: #009900;#41;/spanspan style=color: #339933;;/span variable_setspan style=color: #009900;#40;/spanspan style=color: #0000ff;'preprocess_js'/spanspan style=color: #339933;,/span span style=color: #0000ff;quot;0quot;/spanspan style=color: #009900;#41;/spanspan style=color: #339933;;/span variable_setspan style=color: #009900;#40;/spanspan style=color: #0000ff;'preprocess_css'/spanspan style=color: #339933;,/span span style=color: #0000ff;quot;0quot;/spanspan style=color: #009900;#41;/spanspan style=color: #339933;;/span variable_setspan style=color: #009900;#40;/spanspan style=color: #0000ff;'page_compression'/spanspan style=color: #339933;,/span span style=color: #0000ff;quot;0quot;/spanspan style=color: #009900;#41;/spanspan style=color: #339933;;/span span style=color: #009900;#125;/span/pre/div h3Wrap Up/h3 pThis module is still very much in development, but I'd like to gauge the level of interest in this tool. Would you use it? Do you have any ideas to contribute?/p pYou could say things like:/p ul liI want to help you!/li liGreat idea, but you should consider.../li liMatt, this is a terrible idea because..../li liThis module is like a beautiful snowflake./li /ul pThanks!/p 7.x, devify, drupal, development, drush

Palantir: Share Your Dreams

Mon, 02/25/2013 - 16:37
span class=featured-blog-image img typeof=foaf:Image src=http://www.palantir.net/sites/default/files/styles/bloglandingpage-thumbnail/public/blog/images/KingCenterDreams.png width=262 height=175 alt=The King Center#039;s quot;Share Your Dreamsquot; feature collects and aggregates dreams. title=The King Center#039;s quot;Share Your Dreamsquot; feature collects and aggregates dreams. / /span pAt their essence, dreams are an abstraction. But dreams—and hope—are also at the origin of all social and political movements. These movements foster change and progress, which are tangible and concrete. The transformation of dreams into realities is reliant upon action, yes, but also upon having the bravery, and the platforms, to share one’s dreams./p pThere are few dreams as revelatory as those of Dr. Martin Luther King, whose resonant speeches continue to teach citizen activists about the tenets of nonviolent means for advancing global social and political movements. The year 2013 marks a significant milestone in Dr. King’s legacy: the 50th anniversary of the March on Washington and King's “I Have a Dream” speech. a href=http://www.thekingcenter.org/The King Center/a is commemorating this watershed moment in history with year-long events and new initiatives meant to actively engage and inspire future generations./p pOne such initiative is the addition of the a href=http://www.thekingcenter.org/dreams“Share Your Dreams” feature/a on The King Center website, on which Palantir.net led the technical development as a continuation of a href=http://palantir.net/experience/king-centerour work/a on the site launch just over one year ago. The feature enables people from all over the world to not only contribute to an archive of aspirational messages but also to create connections between and be inspired by people on the other side of the world. Before even its public launch which is to occur in the coming weeks, “Share Your Dreams” has inspired more than 3,800 submissions which came in both via the website and via handwritten messages shared at event pop-up booths and populated by site administrators./p pWorking with a talented team of players including Camp;G Partners, Microstrategies, and most importantly The King Center and their generous sponsor JPMorgan Chase, Palantir helped create a multidimensional site feature which includes a submission and approval system, visualization of content through cloud and map displays, rotation of featured content, and a search system. The feature, in and of itself, was the result of a dream to aggregate dreams./p pThe milestones around Dr. King’s legacy coincide with other important historical milestones including the 150th anniversary of the Emancipation Proclamation and African American History Month. Pay tribute to these by sharing your dreams, sharing with your children to give voice to theirs, and sharing with your friends and loved ones to radiate hope to our global community and raise awareness about nonviolent ways to promote social change./p

Evolving Web: Ottawa's First Ever DrupalCamp a Success!

Mon, 02/25/2013 - 16:10
img typeof=foaf:Image src=http://evolvingweb.ca/sites/default/files/styles/medium/public/drupalcampott-logo2.png width=293 height=220 alt= /pOttawa held its first DrupalCamp on February 22-23rd. The camp included a summit about Drupal for government, a codesprint, and sessions. Being in Ottawa, the themes for the camp included the a href=https://github.com/wet-boew/wet-boew-drupalDrupal Web Experience Toolkit (WET) distro/a and adoption of Drupal by the Government of Canada. The WET distro has been adopted by many government departments, and the camp provided a venue for people to discuss progress of and the direction of the distro./p a href=/story/ottawas-first-ever-drupalcamp-successread more/a

TimOnWeb.com: Dropbucket.org - Drupal Snippets Repository is Launched!

Mon, 02/25/2013 - 15:45
div class=field field-name-body field-type-text-with-summary field-label-hiddenpimg src=http://timonweb.com/sites/default/files/styles/fit_width/public/uploads/2013/02/dropbucket-logo.png width=650 height=301 alt=Dropbucket - Drupal snippets storage class=image-fit_width //p pI've been doing Drupal for last six or seven years and tried lots of ways of storing snippets. I used internal capabilities of IDE's (like snippets in Eclipse or code templates in Netbeans), I stored them in notepad, evernote, used lots of different downloadable snippet managers and stuff. /p pBut there always were two needs which I couldn't satisfy with these approaches: I wanted snippets to be stored online (so I didn't lost them when I format my HDD or uninstall IDE) and I wanted to share my drupal snippets in a dedicated place, where drupalers gather./p pWe Drupal people, we love to share, this is in our blood and this is an underlying power which drives Drupal community, do something and share with others! So why not to share with our snippets? I believe every of us has loads of different chunks of code which we use on a daily basis, we need to store them, we need to share them. That's why I created a href=http://dropbucket.orgdropbucket.org/a - Drupal snippets repository, a place where you can put your little drops of drupal code and fill the snippet bucket./p /div Read on about a href=http://timonweb.com/dropbucket-drupal-snippets-repository-is-launchedDropbucket.org - Drupal Snippets Repository is Launched!/a

Dries Buytaert: Code freeze and thresholds

Mon, 02/25/2013 - 15:42
pAs of Monday, February 18, a href=http://buytaert.net/drupal-8-feature-freeze-extendedDrupal 8 feature completion phase/a has officially ended. Since December 1, the original code freeze date, we've managed to add numerous awesome features that were previously in-progress, such as:/p ul liWYSIWYG with CKEditor/li liIn-Place Editing/li liEntity Reference Field/li liDate and Time Field/li liRevised content creation form/li liTour module to offer step-by-step help/li liAPI support for Multilingual configuration/li liRevamped and far more usable UI for configuring translatable entities and fields/li liA RESTful API for entity CRUD in Drupal core/li liSupport for Views to be output in JSON, XML, or other formats made available by contributed modules/li liImportant under-the-hood improvements to allow for native ESI/CSI/SSI caching support in Drupal./li /ul pThere are also a handful of a href=http://drupal.org/project/issues/search/drupal?text=amp;assigned=amp;submitted=amp;participant=amp;status%5B%5D=Openamp;version%5B%5D=8.xamp;issue_tags_op=oramp;issue_tags=RTBC+Feb+18features that were RTBC by Feb 18/a, but not quite ready for commit. They are still undergoing consideration. All things considered, I'm glad we extended the code freeze./p h2What happens now?/h2 pWe now enter the a href=http://buytaert.net/updated-drupal-8-release-scheduleclean-up phase/a of Drupal 8, where focus turns to refactoring of existing subsystems, better integrating features, and improving the consistency and coherence of the existing functionality. While APIs can and will still change as this coherence shapes up, contributed module authors are nevertheless encouraged to start porting their modules now, as there is still time to influence and fix APIs and the overall developer experience in Drupal 8. This will become much harder as we get closer to code freeze./p h2So ... REALLY, what happens now?/h2 pIn the course of adding all of the great features we've added so far to Drupal 8, we've accumulated some technical debt and are currently well over the a href=http://buytaert.net/issue-queue-thresholds-for-drupal-coreissue queue thresholds for Drupal core/a. We roll a release candidate of Drupal 8 when there are 0 critical bugs and tasks remaining. Our over-arching goal should therefore be to reduce the number of threshold issues over time./p pAt the same time, there are a lot of small, non-destabilizing features that would make Drupal 8 better. Especially for the kinds of iterative improvements that we would allow into 8.1 or 8.2, it doesn't make sense to hold those up until then, if we're able to get them into 8.0 without it delaying the 8.0 release date./p pTo help with this goal, catch and I have discussed a plan for allowing emsome/em features to continue to be committed to core up until RC1, providing we are under thresholds. To help guide us towards release, we plan to reduce the critical task/bug thresholds by one per week, starting the week of code freeze:/p ul liJuly 1: 14/li liJuly 8: 13/li liJuly 15: 12/li li…/li liSeptember 2: 5/li liSeptember 9: 4/li liSeptember 16: 3/li listrongSeptember 23: 2/strong/li /ul pSeptember 23 is the week of a href=http://prague2013.drupal.org/DrupalCon Prague/a, and our goal would be to come out of the conference with a first Drupal 8 RC by fixing the last two critical bugs and two critical tasks (or however many there actually are) at the sprint. :-)/p pHowever, there are some caveats:/p ul liFeatures can't require any new major/critical follow-ups, as that would impact the timing of release. In general, this means no new big features, as those tend not to be possible to accomplish without some fairly large follow-ups needed (e.g. Responsive Layout Builder, Project Browser, a new core theme, Symfony Form API). These kinds of issues will likely be moved to Drupal 9./li liPrimarily, this means small, self-contained, iterative improvements that we'd be willing to backport to Drupal 8 (see a href=http://groups.drupal.org/node/210973http://groups.drupal.org/node/210973/a)./li liCommitter attention will generally be prioritized on tasks/bugs first, rather than features./li /ul pFor now, we've decided to leave the major bugs/tasks threshold at 100 throughout release, and emnot/em tie them to the release date trigger for Drupal 8. I will re-evaluate this as we get closer to release./p h2What isn't bound by thresholds?/h2 pWe obviously want Drupal 8 to ship as a coherent product, so a major focus will be around better emintegration/em of existing features. For example, work required to get the Symfony pieces of Drupal working well with blocks and enabling ESI/CSI/SSI caching. Turning administrative pages into Views so that they can be better tuned for the task at hand. Completing conversions of major APIs such as Twig, new Entity API, CMI, and so on, to fix rough edges such as the inability to translate/in-place-edit node titles./p pGeneral guidance on what constitutes a task or a feature is available at a href=http://drupal.org/node/1181250http://drupal.org/node/1181250/a. As we work through the list of these integration items, some features may be recategorized into tasks. At the same time, some issues currently categorized as tasks go beyond strictly integration and polish and will be descoped or recategorized as features./p h2Kudos!/h2 pWhile we still have a lot of work to do, I want to pause and give a sincere thanks to each and every one of the 1,077+ contributors to Drupal 8 so far. You've all done absolutely amazing work and helped establish Drupal 8 as a far more usable, flexible, designer-friendly, future-proof framework for all of us to use for the years to come. Now let's band together and get our baby polished up and out in the world for everyone to enjoy! :-)/p

LevelTen Interactive: Don#039;t Lose Your Assets In a Redesign (part 2)

Mon, 02/25/2013 - 15:36
img typeof=foaf:Image src=http://www.leveltendesign.com/sites/default/files/styles/600x300/public/content/blog/images/surveyor_croped.jpg width=600 height=300 alt=painting of surveyor standing on rural path / p class=LightGrid-Accent31In a href=http://www.leveltendesign.com/blog/tom-mccracken/dont-lose-your-assets-redesign-part-1part one/a of this series, I talked about the importance of properly transferring the value you have built in your existing website. The first step of this process is to conduct a content and SEO audit of your existing site. In this post, I will talk about what to do with that data.... a href=/blog/tom-mccracken/dont-lose-your-assets-redesign-part-2 class=more-linkRead more/a/p

Web Omelette: 15 Beautiful Responsive Themes for Drupal 7

Mon, 02/25/2013 - 13:30
div class=section field field-name-field-image field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item odda href=/15-beautiful-responsive-themes-drupal-7 class=colorbox-loadimg data-src=http://www.webomelette.com/sites/default/files/styles/tb-wall-double-style/public/field/image/tablet.jpg src=http://www.webomelette.com/sites/default/files/tb_wall_lazyload_images/500x375.png width=500 height=375 alt=responsive drupal themes //a/div/div/divdiv class=section field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item oddpI’ve been looking around lately for some nice looking premium strongresponsive Drupal themes/strong and I have to say there are some beautiful ones out there. So I decided to share 15 I found look particularly nice. /p /div/div/div

Acquia: Drupal How-To: Keep on top of news and developments

Mon, 02/25/2013 - 12:36
div class=field field-name-body field-type-text-with-summary field-label-hidden div class=field-items div property=content:encoded class=field-item evenpIf you’re new to Drupal you maybe haven’t noticed yet. Things more fast in Drupal. One of the mottos is: “The Drop is always moving”. It can be hard to find out what new tools and methods are becoming popular and where the action is. Good thing is, there’s lots of great sources with a high signal-to-noise ratio. /p/div /div /div span property=dc:title content=Drupal How-To: Keep on top of news and developments class=rdf-meta/span

flink: Lightness of Leaflet displays the brilliance of Google Maps in high-res

Mon, 02/25/2013 - 12:10
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/candle%20light.jpgimg typeof=foaf:Image src=http://flink.com.au/sites/default/files/styles/large/public/field/image/candle%20light.jpg width=480 height=372 alt=Lightness of Leaflet and brilliance of Google Maps in high res //div/div/divdiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpWe can be a little cheeky at flink. Last year we wrote on these pages an article titled em27 reasons not to use Google Maps/em. Drawing from a variety of tile providers, it show-cased 27 alternatives to the by now rather stale look amp; feel of the Google-anno-2006 map./p pThe article and the maps are still there. Still generated using the lightweight, mobile-optimised map rendering library a href=http://leafletjs.comLeaflet JS/a and its Drupal companion modules a href=http://drupal.org/project/leafletLeaflet/a and a href=http://drupal.org/project/leaflet_more_mapsLeaflet More Maps/a. /p pBut we've added something: Google Maps./p pYep, you read that correctly. We now call the article em27 reasons not to use Google Maps… and 2 to do so/em./p pWhat are these 2 ? First, we realised that it was very easy to extend a href=http://drupal.org/project/leaflet_more_mapsLeaflet More Maps/a, so that the lightness of the Leaflet API can now be applied to Google map tiles, without having to use or download anything from the slightly heavier Google Map API. All these maps are rendered via the smaller Leaflet JS API.br / Second, while we were at it, for those lucky enough to read this on a high resolution screen, we implemented Google's high-dpi tile set. /p pWant to know how it works? Let us explain that another time. For now, if you have a Retina® or similar display, just compare and contrast for a second the standard and high-dpi versions of the Google roadmaps shown side-by-side on this a href=http://flink.com.au/tips-tricks/27-reasons-not-to-use-google-mapsdemo page/a. See how much tighter and easier the fonts are to read? And how at certain zoom levels the almost furry-looking webs of streets appear sharp and fine like highly strung hairs?br / Brilliant!/p pThanks Google Maps. You're back in the good books ;-)/p pIf you know of any providers serving up high-dpi versions of their map tiles, let us know and we'll add them to a href=http://drupal.org/project/leaflet_more_mapsLeaflet More Maps/a for all of us to enjoy./p /div/div/divdiv class=field field-name-field-file-under field-type-taxonomy-term-reference field-label-above h3 class=field-labelFile under:nbsp;/h3 span class=field-items a href=/file-under/planet-drupal typeof=skos:Concept property=rdfs:label skos:prefLabelPlanet Drupal/a /span /div