Drupal
Commandbar
This module adds an extendable command bar to the Drupal 8 administrative toolbar. The base functionality provides an ajax menu search autocomplete widget to quickly discover and jump to any page in the administrative menu, but it can be extended by other modules to add additional functionality such as searching users and content, or performing administrative actions like clearing the cache.
This module was created to answer a couple of usability issues with Drupal, as outlined in #1781422: Implement the auto-complete search menu jumpbar in the responsive core toolbar update:
1. New users should be able to map existing knowledge to the Drupal 8 information architecture. These users may be coming from older versions of Drupal, or from other software. Being able to search not only the titles of menu items, but also the descriptions, allows for this mapping. For example, you can search for 'modules' and reveal the 'Extend' menu link.
2. Discovery of new pages is a challenge. Major improvements have been made to this in Drupal 8, but it's often still difficult to find a particular page, especially after installing a module. A menu search allows you rapidly discover what new pages might have been added and explore them. The default administration menu then gives you a solid 'you are here' marker when you get to any of those pages.
Another important purpose of this module is to create an established interface element that can be extended to provide powerful functionality by contributed modules. For example, administrative users may be able to create custom shortcuts that will trigger actions like clearing the cache, creating a new users or publishing content. Other modules can provide auto-suggestions and implement their own actions when the form gets submitted.
I have been speaking with several contributors about the possibility of adding this to Drupal 8 core, but wanted to post this project for people to test around with while that discussion goes on.
Acquia: Drupal: A Global Army of Nerds
It's the DrupalCon Portland Floor Show! I went around the exhibitors' area and through the halls of the Oregon Convention Center asking two vital questions to our community: What is your favorite thing about Drupal? Why should other people come to DrupalCon?
drupalcon_portland_floorshow_final.mp3Mail Dumpster
Mail dumpster lets you suppress mail messages from modules that you can't otherwise disable (looking at you UberCart). Advanced Mail Reroute is the right tool for the job, but the D7 port is sketchy and throws errors, so I tossed this together in a hurry.
Workbench Revision Information Weight
I was required to create a workflow for a project i am working on using the Workbench module
but as some of you already know "Publishing Options" & "Revision Information" are buried in Drupal's Vertical Tabs.
This is not ideal as it leads to editors getting confused.
So i created a simple module to adjust the weights of the "Publishing Options" & "Revision Information" in the vertical tabs
Blink Reaction: Drupalcon Through a Creative Lens
Let me preface this blog by stating the following facts about myself. I come from advertising. This was my first Drupalcon. I was attending on a severely sprained ankle and had left my fiancé (now wife) at home just two weeks before our wedding. Needless to say on my shaky flight to a city that is stuck with a perpetual rain cloud over it, my mind was not focused on Drupal.
Drupalize.Me: Learning by Trial and Error - Installing and Touring Drupal 8
A month or so ago the Drupalize.Me team started a discussion on how to start helping others learn Drupal 8. We knew Drupal 8 wasn't ready for our typical curriculum and video production process, but thought you would be interested to learn along with us about Drupal 8 as it continues to evolve. This blog post is the kick off to that series. As we stated in a recent podcast where we announced this idea, we need everyone to understand that the things we discuss are still in development and could change, or even be removed from D8 altogether.
Weather Underground API
I'm trying to progress development of some code, wanted to cut my teeth and develop my own branch of a module. This module is using the Weather Underground API from http://api.wunderground.com/api
4Sitestudios.com Drupal Blog: Creating a New Design Direction for the New 4SiteStudios.com
This series outlines our project process through the lens of our development of the new 4SiteStudios.com. In this post, we will discuss our process for developing a creative direction for a client.
I’m coming up with a design for the new 4Site website following the same process and with the same deliverables as our clients’ sites. That means starting out with some conversations with the decision-makers (“the boss” - aka Heming - in this case) to figure out what kind of personality the company has and what kind of customers/clients/visitors the site will have. Because I’m so close to 4Site, I see so many design possibilities that it can become overwhelming to choose just one! This is where the reviews and multi-stage deliverables come into play. Where they help clients decide what design direction they’d like, the 4Site design deliverables help me and my team discuss internally what works and what can be improved.
I start out with style tiles to reflect a few different ideas based off of my discussions with the team, then create a component style guide to reflect all the changes we want to see and get an idea of what some individual pieces of the site will look like. This part is a narrowing-down of the style tile directions, but often I need to combine elements from several tiles, which poses a challenge to create balance and proper visual hierarchy, and can often take longer than the style tile stage.
With the 4Site redesign, I spoke with Heming initially to figure out how we’d like to portray ourselves as a company. We had just released our new logo, which is a minimalist version of our old logo, to be more modern and versatile. That now needs to be paired with the friendly, eclectic, historic feel of Columbia Heights, our neighborhood. Getting the clean, minimalist technology direction to mesh well with the artsy, hip aesthetic was definitely challenging. The first round of design (the style tiles) covered the gamut of ‘just clean,’ ‘clean and eclectic,’ and ‘just eclectic.’ Then, going into the component style guide after getting everyones thoughts and feedback, I had to come up with the real combo. I’m pretty sure I had a few dreams about it, and every time I walked up 14th to the office I’d see something new to include in the design. It took a long time to come up with which elements should reflect which parts of our company, as well as showcase our work, but in the end we all were very happy with the results.
The component style guide wound up being a reflection of who we are as a company, and the type of work we do. We work primarily with non-profits and like to think of ourselves as “do-gooders,” so we have a lot of inviting textures. Our roots are as a design and creative services company, so we have some playful fonts here and there. And finally, because we’re pretty tech-savvy (geeky!), and are on the cutting-edge of web design and development, we have a clean, open, airy feel. A few Victorian accents add the Columbia Heights feel (since the modern elements are already covered with the other aesthetics). And... voila! There’s our concept for the new 4Site website theme.
Our style tiles and component style guide are working documents that inform our design mockups. Below is the component style guide for the new website. Let us know what you think!
New 4SiteStudios.com Component Style Guide from 4sitestudiosCommerce Guys: The trail has ended, but not the journey. Time to build!
Thanks to everyone who stopped by the Commerce Village at DrupalCon Portland to drink, see demos, and meet the folks who make Drupal Commerce thrive. We had some great sessions, too, both in our Village Square and in the main conference.
If you couldn't make it, don't worry: we recorded all the sessions and have posted them to our site. And although there were some only-at-DrupalCon opportunities, home-schooled Drupalistas won't remain empty-handed! Read on....
It takes a (Commerce) VillageFirst we once again want to thank our attending Service Providers for making DrupalCon — and Drupal Commerce itself — such a success. The feedback throughout the village from attendees was amazing. Everyone told us they learned a lot from each of our providers and they, in turn, got to meet so many of their userbase face-to-face... and introduce potential users to their solutions.
...and did you get to see Commerce Platform?
The big Commerce Guys news from the show was Commerce Platform, our new cloud-based hosting solution for smarter development.
You can see what's coming by checking out Damien and Robert's Commerce Platform demo and then request to be part of the private beta. Platform's unique architecture gives site-builders unprecedented flexibility to create and control their sites. (Believe us, you'll want to watch the demo.)
… and did you talk to us about our *New* Delivery Partner Program?There are lots of opportunities for creating and running Drupal Commerce sites, and we need your help!
Mike O'Connor talked about our Drupal Commerce Delivery Partner Program, and we had a chance to speak to many of you. But if you're an experienced Drupal development company and have an interest in growing your eCommerce practice... and you're not yet on our list, Get in Touch with us to start getting the leads, co-marketing, and support you need to expand into this fast-growing field.
There's always something exciting happening at Commerce Guys. As always, stay in touch with us through Twitter, Facebook, or join our mailing list. See you in Prague in September... and in Austin for DrupalCon 2014
Tags: drupalcon portlandcommerce villagePlanet DrupalDrupal Developer Days Dublin 2013
Drupal Developer Days is a great tradition in Europe to provide space for developers and site builders to get together in the summer. After such prior locations as Barcelona and Brussels, the Drupal Developer Days is coming to Dublin this year!
The conference program includes great sessions on security, project management, automation, multilingual, mapping, REST, continuous integration and so on! Lots of opportunities to learn about Drupal and the entry ticket is only €25.
The event is also ideally timed to coincide with the last days before Drupal 8's API freeze. There is a whole weeklong sprint included for those who want to work on solving major and critical issues as well as any patches still viable before API freeze. If you are still to take your first steps to contribute, the Community Tools Workshop is for you to delve into giving back.
There will be a recruitment event there too, so when you register make sure to say that you're looking for a job. Acquia will be there so come talk with us about the work we do if you are interested in joining!
Dries Buytaert: Drupal Developer Days Dublin 2013
Drupal Developer Days is a great tradition in Europe to provide space for developers and site builders to get together in the summer. After such prior locations as Barcelona and Brussels, the Drupal Developer Days is coming to Dublin this year!
The conference program includes great sessions on security, project management, automation, multilingual, mapping, REST, continuous integration and so on! Lots of opportunities to learn about Drupal and the entry ticket is only €25.
The event is also ideally timed to coincide with the last days before Drupal 8's API freeze. There is a whole weeklong sprint included for those who want to work on solving major and critical issues as well as any patches still viable before API freeze. If you are still to take your first steps to contribute, the Community Tools Workshop is for you to delve into giving back.
There will be a recruitment event there too, so when you register make sure to say that you're looking for a job. Acquia will be there so come talk with us about the work we do if you are interested in joining!
Node Password
Adds simple password authentication to nodes.
To use - install module and enable, then add a field to any node content type called "node_password".
Now if you fill in this node_password field on any node it will become protected.
Organic Groups Email
Organic Groups Email for Organic Groups
- Adds a configuration page for the notification emails
- Email content can be entered into textarea/wysiwyg (if available) form
- Allows different language versions of each email
N.B. After install you will need to enable the rules, as they are disabled by default - inline with the rules supplied by Organic Groups that this module replaces.
CreditOrganic Groups Email is being developed by Tom Kirkpatrick (mrfelton) of SystemSeed. The author may be contacted for paid customisations of this module, Drupal consultation or other Drupal-related projects.
Paul Booker: Managing features from the command line (Quick summary )
To revert all features ..
drush fra -y drush cc allTo revert a specific feature..
drush fr -y feature drush cc allIf a feature has been overridden, it can be reverted. This means that the version in the database is destroyed and the version defined in code, in your feature, is used.
If you're deploying a feature to one of you servers you would ..
git pull drush fra -y drush cc allTo update your feature ..
drush fu -y feature drush cc allUpdating an overridden feature will ensure that the version of the feature defined in code is made to match the version stored in the database.
A feature is overridden when a user uses the UI to make configuration changes. These changes are stored in the database, and override what is stored in code.
Tags: featuredrushdrupalplanet TweetGridster
API module to include gridster javascript library, see http://gridster.net
Instructions
Download the module.
Download the gridster javascript library (Download)
Place it under sites/all/libraries/gridster so that the file can be found under sites/all/libraries/gridster/src/jquery.gridster.js
Enable the module
This module does nothing by itself, it just provides the gridster library so that other modules can use it.
You can load the library like this:
<?phplibraries_load('gridster');
?>
or
<?php
libraries_load('gridster', 'minified');
?>
for the minified version (make sure you have jquery.gridster.min.js in sites/all/libraries/gridster/src).
Drupal.org Featured Case Studies: Georgia.gov
Propeople Blog: How to create slideshows with embedded YouTube videos in Drupal 7
One of the popular functionalities we build at Propeople Drupal Agency are slideshows. Thanks to views_slideshow module it’s a very easy task to implement. Sometimes slideshows contain embedded YouTube videos. And thanks to the great Media module, it is not a very hard task to do either.
The only problem we face is when the user clicks play – the slideshow still switches to the next slide. This article addresses this problem.
We have found a nice example of reacting on YouTube player play / pause.
In order to use this example we will need to override media-youtube-video template as we will need to change the output.
In order to accomplish this we can create our own template and add it to suggestions in case this field is displayed in a view with slideshow.
<?php
/**
* Implements hook_theme().
*/
function mymodule_theme() {
return array(
'mymodule_media_youtube_video' => array(
'variables' => array('uri' => NULL, 'options' => array()),
'template' => 'mymodule-media-youtube-video',
),
);
}
/**
* Preprocess function for template media-youtube-video.tpl.php
*/
function mymodule_preprocess_media_youtube_video(&$variables) {
if (!_mymodule_search_backtrace('template_preprocess_views_view_field')) {
return;
}
$views_id = drupal_static('mymodule_preprocess_views_view_field');
if (empty($views_id)) {
return;
}
drupal_add_js('http://www.youtube.com/player_api');
drupal_add_js(drupal_get_path('module', 'mymodule') . '/mymodule.js');
$variables['theme_hook_suggestions'] = array('mymodule_media_youtube_video');
$variables['iframe_id'] = 'media-youtube-' . $variables['id'];
$variables['views_id'] = $views_id;
}
?>
The mymodule_preprocess_media_youtube_video() function does some tricks:
1. It checks whether rendering of media file is done inside the view. For this we check the backtrace for template_preprocess_views_view_field function. This is pretty hacky but I haven't found a nicer way to check. It is needed so we do not modify output if for example media file displayed in the node.
2. It loads $views_id from static variable. This is another pretty ugly hack, but it is needed for passing a variable to javascript (so we know what slideshow to pause / start). Also when we prepare that variable we check if a view actually uses slideshow style.
I would love to hear if you know a better workaround for these two hacks. Write in the comment form below or on our social profiles: Twitter, Facebook.
The function where we prepare the view id:
<?php
/**
* Preprocess function for views-view-field.tpl.php.
*
* Statically cache view information to pass to mymodule.js so we know what slideshow to pause.
*/
function mymodule_preprocess_views_view_field(&$variables) {
$views_slideshow_id = &drupal_static(__FUNCTION__);
$views_slideshow_id = '';
$view = $variables['view'];
if ($view->style_plugin->plugin_name == 'slideshow') {
$views_slideshow_id = $view->name . '-' . $view->current_display;
}
}
?>
Now the template file:
<div class="<?php print $classes; ?> media-youtube-<?php print $id; ?>">
<iframe id="<?php print $iframe_id; ?>"
class="media-youtube-player media-youtube-mymodule" <?php print $api_id_attribute; ?>
width="<?php print $width; ?>"
height="<?php print $height; ?>"
title="<?php print $title; ?>"
src="<?php print $url; ?>"
frameborder="0"
allowfullscreen
data-iframe_id='<?php print $iframe_id; ?>'
data-video_id='<?php print $video_id; ?>'
data-views_id='<?php print $views_id; ?>'
>
<?php print $alternative_content; ?></iframe>
</div>
As you can see, we are passing iframe_id, video_id and views_id as attributes of the iframe so javascript can use them.
And the last piece is the javascript itself:
<javascript>
(function ($) {
Drupal.behaviors.mymodule = {
attach: function (context) {
$('.media-youtube-mymodule').once('mymodule').load(function() {
iframe_id = $(this).data('iframe_id');
video_id = $(this).data('video_id');
views_id = $(this).data('views_id');
// Example of interacting with YouTube API's
//@link http://jsfiddle.net/masiha/4mEDR/
var mymodule_player = new YT.Player(iframe_id, {
videoId: video_id,
events: {
'onStateChange': function (event) {
if (event.data == YT.PlayerState.PLAYING) {
Drupal.viewsSlideshow.action({
"action": 'pause',
"slideshowID": views_id,
"force": true
});
}
else if (event.data == YT.PlayerState.PAUSED) {
Drupal.viewsSlideshow.action({
"action": 'play',
"slideshowID": views_id,
"force": true
});
}
}
}
});
});
}
};
})(jQuery);
</javascript>
The full code of this drupal module can be downloaded here.
Now, after enabling this module, if you build a slideshow with media youtube files it should apply this functionality automatically.
Enjoy.
Language English Tags: DrupalDevelopmentTutorialsCheck this option to include this post in Planet Drupal aggregator: planetJnotify
An easy way to integrate message from jnotify library. this module provide the whole interface to integrate a jnotify message on a page load, or an click event on your site.
There is a module for that!: Arabic music notation in the browser
I created a bare-bones content filter to add musical notation to Drupal content, using the VexFlow / VexTab music engraving library. Here's a little sample, also showing my fork of the original library to handle basic Arabic musical notation (quarter tones and special scales):
tabstave notation=true tablature=false clef=treble key=Rast notes C/4 D/4 E%@/4 F/4 | G/4 A/4 B%@/4 C/5Feel free to fiddle with the music snippet above.
