Planet Drupal

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

ThinkShout: Introducing the ThinkShout Interns

Tue, 06/23/2015 - 16:00
pimg src=/assets/images/blog/interns_0.jpg alt=interns.jpg/p pWe are thrilled to introduce ThinkShout’s very first interns! In partnership with the Drupal Association, we will be working with two graduates of a href=http://www.epicodus.com/Epicodus’/a first a href=http://www.epicodus.com/php/PHP class/a, Daniel Toader and Bojana Skarich. We’re very excited to welcome them to our offices, and the Drupal Community. They#39;ll both be spending time at the a href=https://assoc.drupal.org/Drupal Association#39;s/a headquarters as well as ours. They#39;ve already mastered the art of posing for ThinkShout photos.../p pWithout further ado, meet our interns!/p h2Daniel Toader/h2 pimg src=/assets/images/blog/interns_1.jpg alt=daniel.jpg/p pDaniel worked previously as a systems analyst for Microsoft and an insurance company before he decided to dive into code. He’s a University of Washington graduate with a degree in informatics. He got his first taste of code while in school. After several years of extensive traveling, Daniel decided it was time to take the plunge into web development, so he brushed up on his Javascript and enrolled in Epicodus. He hopes to someday work as a backend developer./p pFavorite snack: Pretzels and beer./p pFavorite word: Supercalifragilisticexpialidocious/p h2Bojana Skarich/h2 pimg src=/assets/images/blog/interns_2.jpg alt=bojana.jpg/p pBojana comes to us with a background as a public librarian. She’s an Americorp grad with a passion for technology, especially when it’s used for social good. She turned to Epicodus when she decided she wanted to pursue a career in web development development. Front end development is her forte, and she dreams of one day building data-driven websites. She loves Drupal and is looking forward to getting more involved with the community./p pFavorite mythical creature: Griffin/p pFavorite tree: Silver birch/p pWelcome, Daniel and Bojana! We#39;re so happy we could be a part of your continued Drupal education./p

Drupalize.Me: Using Tail to Debug Drupal Sites

Tue, 06/23/2015 - 15:04
div class=field field-name-body field-type-text-with-summary field-label-hidden text-content text-secondarydiv class=field-itemsdiv class=field-item evenTail is command for Unix and Unix-like systems (like OS X) that allows you to take a peek at the contents of the end of a file. From the manual page: tail - output the last part of files. Tail can be really useful for debugging purposes, or for taking a look at the recent access_logs from your Drupal setup. Tail can be particularly useful in a production environment when you may not have PHP error reporting enabled, and need to find the cause of serious errors with your Drupal site./div/div/divdiv id=comment-wrapper-nid-2232/div

Dries Buytaert: Winning back the Open Web

Tue, 06/23/2015 - 10:58
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpThe web was born as an open, decentralized platform allowing different people in the world to access and share information. I got online in the mid-nineties when there were maybe 100,000 websites in the world. Google didn't exist yet and Steve Jobs had not yet returned to Apple. I remember the web as an open web where no one was really in control and everyone was able to participate in building it. Fast forward twenty years, and the web has taken the world by storm. We now have a hundreds of millions of websites. Look beyond the numbers and we see another shift: the rise of a handful of corporate walled gardens like Facebook, Google and Apple that are becoming both the entry point and the gatekeepers of the web. Their dominance has given rise to major concerns./p pWe call them walled gardens because they control the applications, content and media on their platform. Examples include Facebook or Google, which control what content we get to see; or Apple, which restricts us to running approved applications on iOS. This is in contrast to the open web, where users have unrestricted access to applications, content and media./p pFacebook is feeling the heat from Google, Google is feeling the heat from Apple but none of these walled gardens seem to be feeling the heat from an open web that safeguards our privacy and our society's free flow of information./p pThis blog post is the result of people asking questions and expressing concerns about a few of my last blog posts like a href=http://buytaert.net/the-big-reverse-of-the-webthe Big Reverse of the Web/a, a href=http://buytaert.net/the-post-browser-era-of-the-web-is-comingthe post-browser era of the web is coming/a and a href=http://buytaert.net/state-of-drupal-presentation-may-2015my DrupalCon Los Angeles keynote/a. Questions like: Are walled gardens good or bad? Why are the walled gardens winning? And most importantly; how can the open web win? In this blog post, I'd like to continue those conversations and touch upon these questions./p h3Are walled gardens good or bad for the web?/h3 pWhat makes this question difficult is that the walled gardens don't violate the promise of the web. In fact, we can credit them for amplifying the promise of the web. They have brought hundreds of millions of users online and enabled them to communicate and collaborate much more effectively. Google, Apple, Facebook and Twitter have a powerful democratizing effect by providing a forum for people to share information and collaborate; they have made a big impact on human rights and civil liberties. They should be applauded for that./p pAt the same time, their dominance is not without concerns. With over 1 billion users each, Google and Facebook are the platforms that the majority of people use to find their news and information. Apple has half a billion active iOS devices and is working hard to launch a href=http://buytaert.net/the-post-browser-era-of-the-web-is-comingapplications that keep users inside their walled garden/a. The two major concerns here are (1) control and (2) privacy./p pFirst, there is the concern about scale and control. These organizations shape the news that most of the world sees. When too few organizations control the media and flow of information, we must be concerned. They are very secretive about their curation algorithms and have been criticized for inappropriate censoring of information./p pSecond, they record data about our behavior as we use their sites (and the sites their ad platforms serve) inferring information about our habits and personal characteristics, possibly including intimate details that we might prefer not to disclose. Every time Google, Facebook or Apple launch a new product or service, they are able to learn a bit more about everything we do and control a bit more about our life and the information we consume. They know more about us than any other organization in history before, and do not appear to be restricted by data protection laws. They won't stop until they know everything about us. If that makes you feel uncomfortable, it should. I hope that one day, the world will see this for what it is./p pWhile the walled gardens have a positive and democratizing impact on the web, who is to say they'll always use our content and data responsibly? I'm sure that to most critical readers of this blog, the open web sounds much better. All things being equal, I'd prefer to use alternative technology that gives me precise control over what data is captured and how it is used./p h3Why are the walled gardens winning?/h3 pWhy then are these walled gardens growing so fast? If the open web is theoretically better, why isn't it winning? These are important questions about future of the open web, open source software, web standards and more. It is important to think about how we got to a point of walled garden dominance, before we can figure out how an open web can win./p pThe biggest reason the walled gardens are winning is because they have a superior user experience, fueled by data and technical capabilities not easily available to their competitors (including the open web)./p pUnlike the open web, walled gardens collect data from users, often in exchange for free use of a service. For example, having access to our emails or calendars is incredibly important because it's where we plan and manage our lives. Controlling our smartphones (or any other connected devices such as cars or thermostats) provides not only location data, but also a view into our day-to-day lives. Here is a quick analysis of the types of data top walled gardens collect and what they are racing towards:/p div class=figure div class=img style=border: 1px solid #ccc; padding: 4px;display: inline-blockimg src=http://buytaert.net/sites/buytaert.net/files/cache/blog-walled-gardens-data-575x863.jpg style=display:block alt=Walled gardens data//div /div pOn top of our personal information, these companies own large data sets ranging from traffic information to stock market information to social network data. They also possess the cloud infrastructure and computing power that enables them to plow through massive amounts of data and bring context to the web. It's not surprising that the combination of content plus data plus computing power enables these companies to build better user experiences. They leverage their data and technology to turn “dumb experiences” into a href=http://buytaert.net/the-big-reverse-of-the-websmart experiences/a. Most users prefer smart contextual experiences because they simplify or automate mundane tasks./p div class=figure div class=img style=border: 1px solid #ccc; padding: 4px;display: inline-blockimg src=http://buytaert.net/sites/buytaert.net/files/cache/blog-walled-gardens-technology-575x863.jpg style=display:block alt=Walled gardens technology//div /div h3Can the open web win?/h3 pI still believe in the promise of highly personalized, contextualized information delivered directly to individuals, because people ultimately want better, more convenient experiences. Walled gardens have a big advantage in delivering such experiences, however I think the open web can build similar experiences. For the open web to win, we first must build websites and applications that exceed the user experience of Facebook, Apple, Google, etc. Second, we need to take back control of our data./p h4Take back control over the experience/h4 pThe obvious way to build contextual experiences is by combining different systems that provide open APIs; e.g. we can integrate Drupal with a proprietary CRM and commerce platform to build smart shopping experiences. This is a positive because organizations can take control over the brand experience, the user experience and the information flow. At the same time users don't have to trust a single organization with all of our data./p div class=figure div class=img style=border: 1px solid #ccc; padding: 4px;display: inline-blockimg src=http://buytaert.net/sites/buytaert.net/files/cache/blog-open-web-current-state-575x863.jpg style=display:block alt=Open web current state//div pThe current state of the web: one end-user application made up of different platform that each have their own user experience and presentation layer and stores its own user data./p /div pTo deliver the best user experience, you want em“loosely-coupled architectures with a highly integrated user experience”/em. Loosely-coupled architectures so you can build better user experiences by combining your systems of choice (e.g. integrate your favorite CMS with your favorite CRM with your favorite commerce platform). Highly-integrated user experiences so can build seamless experiences, not just for end-users but also for content creators and site builders. Today's open web is fragmented. Integrating two platforms often remains difficult and the user experience is mostly disjointed instead of highly integrated. As our respective industries mature, we must focus our attention to integrating the user experience as well as the data that drives that user experience. The following marketecture illustrates that shift:/p div class=figure div class=img style=border: 1px solid #ccc; padding: 4px;display: inline-blockimg src=http://buytaert.net/sites/buytaert.net/files/cache/blog-open-web-better-integration-575x863.jpg style=display:block alt=Shared integration and user experience layer//div pInstead of each platform having its own user experience, we have a shared integration and presentation layer. The central integration layer serves to unify data coming from distinctly different systems. Compatible with the quot;Big Reverse of the Webquot; theory, the presentation layers is not limited to a traditional web browser but could include push technology like a notification./p /div pFor the time being, we have to integrate with the big walled gardens. They need access to great content for their users. In return, they will send users to our sites. Content management platforms like Drupal have a big role to play, by pushing content to these platforms. This strategy may sound counterintuitive to many, since it fuels the growth of walled gardens. But we can't afford to ignore ecosystems where the majority of users are spending their time./p h4Control personal data/h4 pAt the same time, we have to worry about how to leverage people's data while protecting their privacy. Today, each of these systems or components contain user data. The commerce system might have data about past purchasing behavior, the content management system about who is reading what. Combining all the information we have about a user, across all the different touch-points and siloed data sources will be a big challenge. Organizations typically don't want to share user data with each other, nor do users want their data to be shared without their consent./p pThe best solution would be to create a empersonal information broker/em controlled by the user. By moving the data away from the applications to the user, the user can control what application gets access to what data, and how and when their data is shared. Applications have to ask the user permission to access their data, and the user explicitly grants access to none, some or all of the data that is requested. An application only gets access to the data that we want to share. Permissions only need to be granted once but can be revoked or set to expire automatically. The application can also ask for additional permissions at any time; each time the person is asked first, and has the ability to opt out. When users can manage their own data and the relationships they have with different applications, and by extension with the applications' organizations, they take control over their own privacy. The government has a big role to play here; privacy law could help accelerate the adoption of personal information brokers./p div class=figure div class=img style=border: 1px solid #ccc; padding: 4px;display: inline-blockimg src=http://buytaert.net/sites/buytaert.net/files/cache/blog-open-web-personal-information-broker-575x863.jpg style=display:block alt=Open web personal information broker//div pInstead of each platform having its own user data, we move the data away from the applications to the users, managed by a quot;personal information brokerquot; under the user#039;s control./p /div div class=figure div class=img style=border: 1px solid #ccc; padding: 4px;display: inline-blockimg src=http://buytaert.net/sites/buytaert.net/files/cache/blog-open-web-shared-broker-575x863.jpg style=display:block alt=Open web shared broker//div pThe user#039;s personal broker manages data access to different applications./p /div h3Conclusion/h3 pPeople don't seem so concerned about their data being hosted with these walled gardens since they've willingly given it to date. For the time being, free and convenient will be hard to beat. However, my prediction is that these data privacy issues are going to come to a head in the next five to ten years, and lack of transparency will become unacceptable to people. The open web should focus on offering user experiences that exceed those provided by walled gardens, while giving users more control over their user data and privacy. When the open web wins through improved transparency, the closed platforms follow suit, at which point they'll no longer be closed platforms. The best case scenario is that we have it all: a better data-driven web experience that exists in service to people, not in the shadows./p /div/div/div

Drupal Association News: Drupal.org Homepage Sponsorship

Tue, 06/23/2015 - 00:52
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpemIn the next couple of weeks we'll be launching a new sponsorship opportunity for Drupal Supporters on the homepage of Drupal.org.  The following is background information and a proposal for the program.  We would like a period of public community feedback. Feedback is open until the 6th of July. At that time, we will incorporate the feedback into the sponsorship program plan./em/p h2 Background/h2 pThe Drupal Association has been creating advertising programs on Drupal.org in an effort to do more to serve our mission, and to take the pressure off of DrupalCons to perform financially.  We’ve been working to develop a href=https://assoc.drupal.org/blog/clacina/drupal.org-2015-advertising-initiativesadvertising products/a that are meaningful for advertisers, deliver value to the community, and are respectful of users contributing to the project. /p h2 About the Program/h2 pThe Homepage Sponsorship will highlight partners who support the community through a href=https://www.drupal.org/supportersDrupal Supporter Programs/a.  This includes Supporting Partners, Hosting Supporters and Tech Supporters.  The sponsorship will display in the 300 x 250 ad block that already exists on the Drupal.org homepage.   The creative template is designed and maintained by the Association.  The featured supporter will provide a logo, body copy, button copy, and a link to that will direct to their website.  We will display the partner’s supporter badge, and eventually, pass in any applicable organization credits./p pThe idea for the Homepage Sponsorship originates from the rewards mechanism that Dries discussed in his DrupalCon a href=https://www.youtube.com/watch?v=4NN5EM4CYVEAmsterdam 2014 Keynote/a.  His vision involves building a system that creates an incentive for Drupal companies to contribute to the project by rewarding them with benefits and giving recognition. /p pThere is a larger project in motion which includes the Drupal Association building commit credits for organizations, and developing the algorithm to apply a value to the credits.  The Homepage Sponsorship is one potential reward that will eventually feed into the system.  Until that larger project is complete, the Homepage Sponsorship will be available for purchase by a href=https://www.drupal.org/supportersDrupal Supporters/a.  It will be sold in one week increments, giving the partner 100% of the page views during the campaign.  The program will expand recognition for those organizations who already give back, and will encourage more organizations to participate in Supporter Programs./p h2 Homepage Sponsorship Mock/h2 pimg alt=Homepage Sponsorship src=https://assoc.drupal.org/files/HP%20Sponsor%20Mock-small.png style=width: 600px; height: 353px; //p h2 Advertising Guidelines for Drupal.org/h2 pThe Drupal Association interviewed representatives of the Drupal Community to help guide our advertising strategy and ensure a positive advertising experience on Drupal.org.  We developed informal guidelines; for example, advertising is not appropriate in issue queues, and when possible, products should monetize users who are logged out and not contributing to the Project.  After we received feedback on our most recent program - Try Drupal, we started work on formalizing these guidelines for advertising on Drupal.org. /p pWe created an issue to share a draft a href=https://www.drupal.org/node/2507867advertising policy /adeveloped by the Association and Drupal.org Content Working Group.  The policy will set guidelines for how we advertise - addressing issues like the labeling of ads, content guidelines, etc. with the aim of providing an advertising experience that complements Drupal.org and supports our community values. Whatever decisions are made in that policy will be applied to existing programs, including the Homepage Sponsorship and Try Drupal program./p h2 Talk To Us/h2 pWe want your input about the Homepage Sponsorship.  Please comment on this post, or in the a href=https://www.drupal.org/node/2510332issue,/a with your questions and insights./p p /p /div/div/divdiv class=field field-name-upload field-type-file field-label-hiddendiv class=field-itemsdiv 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=https://assoc.drupal.org/files/HP%20Sponsor%20Mock-small.png type=image/png; length=133493HP Sponsor Mock-small.png/a/span/tdtd130.36 KB/td /tr /tbody /table /div/div/div

Commerce Guys: The Case for a Unified Customer Experience and Content-Driven Commerce

Mon, 06/22/2015 - 22:35
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpimg align=left src=/sites/default/files/blog/files/unified_commerce_experience.png /Commerce Guys has been promoting the value of content-driven commerce for many years, and we are thrilled to see more and more people talking about this continued transformation in the eCommerce market. One company that has recognized this important trend is Forrester Research, who makes a strong and compelling case in their a href=https://www.acquia.com/sites/default/files/library/attachment/content_and_commerce_the.pdfContent And Commerce: The Odd Couple Or The Power Couple?/a. In particular, they point out that companies who differentiate themselves by providing a unified user experience to tell their story should consider a tightly integrated solution that provides both a rich Content Management System (CMS) and a flexible eCommerce transactional engine.br /gt; br / Today there is almost no barrier to selling online, making it increasingly difficult for companies to differentiate themselves online, create a strong web presence, and attract customers. The solution for many will be to focus more on creating unique user experiences, supported by interesting content, which allows their users to execute transactions anywhere along the buying journey within the context of that information. The challenge today is that this experience requires CMS and eCommerce to work together seamlessly. Unfortunately most companies manage these two functions separately with two distinct systems. This approach results in added complexity and a disjointed and inconsistent user experience that is confusing to users and damages their brand. br /br / According to Forrester, the convergence of content and commerce platforms is already well underway. [They] expect that these two solution categories to be foundational elements in digital customer experience management1. They go on to say that In an ideal world, commerce and content platforms would have fully converged into customer experience management platforms, with commerce services seamlessly exposed through best-in-class digital engagement tools and supported by social, testing, and content management services. - But this ideal isn’t likely to exist in the near future1./p h2Drupal + Drupal Commerce Provides Seamless Content amp; Commerce/h2 pThe future is NOW - and the reality is that Drupal + Drupal Commerce is the only platform with commerce natively embedded in a CMS, offering a seamless digital experience management solution with a single code base, administration, and database.br /br /strongemWhy is this not more widely known?/em/strongbr /br / While this may be news to many, Drupal Commerce has been around for over 5 years and has over 57k active sites. It consists of core and contributed modules, support by Commerce Guys and the broader community, that can be dropped into Drupal (which itself has been around for 10+ years and has over 5 million active sites) allowing transactions to occur anywhere within the user experience created. Contextual relationships between content and products are extremely easy to create - something that is hard to do when you bolt together separate CMS and eCommerce platforms. A great example of the power of Drupal + Drupal Commerce is a href=http://www.lush.co.uk target=_blankwww.lush.co.uk/a which helps Lush in the UK tell their story, engage their customers, and sell more product./p pbr /strongemWho Benefits from a Content amp; Commerce Solution?/em/strongbr /br / Potentially everyone, but in particular are brands who benefit from a differentiated user experience that enables them to tell their story through interesting content and community engagement driving sales within the context of that experience. In addition, existing Drupal sites looking to add transactional capabilities is another obvious fit. With an existing investment in technology, skills and content, there is no better choice than to drop in commerce functionality, through Drupal Commerce modules, anywhere. Integrating with a separate eCommerce solution and bolting it onto Drupal is a common approach and certainly possible, but the result is added complexity, cost and valuable customer information that is spread out across multiple systems. Two systems makes it harder to create a level of contextualization and a unified experience that buyers are looking for. Given the increasing importance of targeting and personalizing content and offers and knowing your customer, having customer information in one place allows companies to merchandise more effectively.br /br /strongemWhat Should You Do?/em/strong/p divimg alt=1 src=/sites/default/files/1.png style=width: 50px; float: left; padding: 0px 4px 0px 0px; /Read the a href=https://www.acquia.com/sites/default/files/library/attachment/content_and_commerce_the.pdf target=_blankForrester report./a They get it right, and they are one of a growing number of analysts talking about the value of content-driven commerce./div div style=clear:both; /div divimg alt=2 src=/sites/default/files/2.png style=width: 50px; float: left; padding: 0px 4px 20px 0px; /2. Don't get stuck on features. Yes, they are important, but they will also change, and you need a solution that will adapt and allow you to take advantage of new ideas quickly. Instead, consider how your business will benefit by creating an experience that keeps your customers coming back and makes it easy for them to buy./div div style=clear:both; /div divimg alt=3 src=/sites/default/files/3.png style=width: 50px; float: left; padding: 0px 4px 20px 0px; /3. If you think your business would benefit from a richer user experience, or if you just want to simplify your infrastructure with a single platform that can serve both your content and commerce needs, take a look at a href=http://commerceguys.com/products/drupal-commerceDrupal Commerce/a - you will be pleasantly surprised by what you see./div div-----br / 1. Stephen Powers, Peter Sheldon with Zia Daniell Wigder, David Aponovich, Rebecca Katz emstrongContent And Commerce: The Odd Couple Or The Power Couple?/strong/em emstrongHow To Choose Between Using A Web Content Management Solution, An eCommerce Platform, Or Both /strong/em(Forrester, November 19, 2013) 11,14 p /p /div /div/div/div

Blink Reaction: Building Native Apps - Part 5

Mon, 06/22/2015 - 21:29
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedh2Building Native Mobile Apps with Ionic Framework and Drupal Back-end: Add User Authentication/h2 p dir=ltrToday I will show how to authorize a user in your mobile app with a Drupal website. First of all we should configure Drupal to allow REST authentication, so go to /admin/structure/services and click the “Edit” link opposite of your service name. Here, check the “Session authentication” option and save. Next go to the resources tab and edit user resource alias and check off the following options for it: login, logout, token, and register./p pAlso, we should check the user registration settings on /admin/config/people/accounts to allow new user registration by visitors, and account activation without email or admin confirmation./p p dir=ltrTo login a user with the services module, we must do following steps:/p olli dir=ltr p dir=ltrSend GET request to /services/session/token./p /li li dir=ltr p dir=ltrGet the response with CSRF token./p /li li dir=ltr p dir=ltrSend POST request with username, password with token received before in X-CSRF-Token header to /user/login endpoint./p /li li dir=ltr p dir=ltrReceive an object with user data and new CSRF token on login success or error code with a message on login fail./p /li /olp dir=ltrTo log out a user, we have to send POST request to /user/logout with X-CSRF-token header, that contains the token which we receive on login./p p dir=ltrAnd to register a new user we send a POST request to /user/register API URL with user data. As a response we should get a new user object and error status message on registration fail. The minimum data required for a user registration is username, e-mail address, and password, but we should add a status equal to 1, to immediately make a new account active, ready for use./p h2 dir=ltrIn-app integration/h2 p dir=ltrIt is good practice to save some data on a device to prevent the user from manually editing any information that is needed every time that we run application. We should use Local Storage to store user login status, tokens from the last login time and user data. AngularJS has some modules to add to Local Storage support for an application; I chose a href=https://github.com/agrublev/angularLocalStorageangularLocalStorage/a. It also has a cookie fallback and uses the a href=https://docs.angularjs.org/api/ngCookiesngCookies/a module for it./p p dir=ltrSo we should download these two modules and plug them in our index.html file./p p dir=ltra href=https://gist.github.com/vitaliy-bobrov/f137c25757cc8036b240 target=_blankgist link/a/p p dir=ltrNext we should define the UI Router state for account tab, angularLocalStorage module dependency in our app.js file and add local storage prefix constant, we will add it to our config constant./p p dir=ltra href=https://gist.github.com/vitaliy-bobrov/941596a5f8c1671bf8ad target=_blankgist link/a/p p dir=ltrIn the services.js file we will create a new factory called User. This will contain a list of methods to work with user operations on the REST server, and to save / delete user data from local storage. We use a href=https://docs.angularjs.org/api/ng/service/$rootScope$rootScope/a services to have access to login status and user information from any part of the application./p p dir=ltra href=https://gist.github.com/vitaliy-bobrov/1ad8a2945e55dfabb43b target=_blankgist link/a/p p dir=ltrIn tabs.html we add an Account tab link./p p dir=ltra href=https://gist.github.com/vitaliy-bobrov/86510dc7cf862438d29fgist link/a/p p dir=ltrLet’s create a tab-account template. Here we should show the following: for an unauthorized user, show login and register buttons that will open a popup form for each action; and for a logged-in (authorized) user, show information about user and a logout button. To show these parts of the template conditionally, we use the ng-show directive and loginSuccess variable that are stored globally in $rootScope./p p dir=ltra href=https://gist.github.com/vitaliy-bobrov/e0c61eac289b5c2db176 target=_blankgist link/a/p p dir=ltrTo show popups with login/register forms we should use a href=http://ionicframework.com/docs/api/service/$ionicModal/ target=_blank$ionicModal/a service, which comes with Ionic Framework core. We must create templates for each modal window: login.html and register.html./p p dir=ltra href=https://gist.github.com/vitaliy-bobrov/b3c5844cbd5d59c17ad0 target=_blankgist link/a/p p dir=ltra href=https://gist.github.com/vitaliy-bobrov/24df72c66281fb6c7485 target=_blankgist link/a/p p dir=ltrFinally, we should define a controller for each (login and register) popup. We initialize a new $ionicModal instance and set a template for it, creating methods to open and close the modals, and doLogin, doLogout and doRegistration actions. It will be easy to handle any error message because our User Factory methods return promises. Also, we should save user information to Local Storage and send requests to the server only if it is necessary./p p dir=ltra href=https://gist.github.com/vitaliy-bobrov/6f14a26067647f90b379 target=_blankgist link/a/p p dir=ltrYou can clone and try all this code from my GitHub a href=https://github.com/vitaliy-bobrov/ionicTutorialApp.git target=_blankrepository/a, and to get the code of this part, checkout the part5 branch (just run “git checkout -f part5”). Now we can test the application in a browser - run “ionic serve” prompt command from the project directory and see the result of our work./p p dir=ltrTomorrow, I will add comments to articles and ability to post a comment for logged in users./p /div/div/divdiv class=field field-name-field-blog-category field-type-taxonomy-term-reference field-label-hiddendiv class=field-itemsdiv class=field-item evena href=/taxonomy/term/1 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a/divdiv class=field-item odda href=/taxonomy/term/2 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Best Practices/a/divdiv class=field-item evena href=/taxonomy/term/3 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal How to/a/divdiv class=field-item odda href=/taxonomy/term/4 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal Planet/a/divdiv class=field-item evena href=/taxonomy/term/8 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Learning Series/a/divdiv class=field-item odda href=/taxonomy/term/9 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Technology Tools/a/div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-inline clearfixdiv class=field-labelPost tags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tags/ionic typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Ionic/a/divdiv class=field-item odda href=/tags/apps typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Apps/a/divdiv class=field-item evena href=/tags/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a/div/div/div

Nextide Blog: Maestro How-To: Fire a Workflow After Saving Content with Rules

Mon, 06/22/2015 - 21:02
p/ppA very common use-case for Maestro is to launch a workflow in order to moderate some piece of content. You may have an expense form as a content type and you wish to have a manager review and approve it before handing it off to other departments for processing./p pThis post will show you how to fire off a moderation workflow after saving content with Rules./p pnbsp;/p pbStep 1:/b Create a simple test flow/p pI know you have a super-ultra-complex workflow, but this is best to get off the ground with a simple 1 step flow for the time being!/p pnbsp;/p

Urban Insight: Using SPARQL and Linked Open Data For Content Blocks on Your Drupal 7 Website

Mon, 06/22/2015 - 18:00
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpThe content that you display on your Drupal site doesn’t necessarily have to be content that you own or store in your own database. In addition to your own content, there could be various use cases and methods for dynamically displaying data from outside sources and displaying it on your site./p/div/div/div

Mediacurrent: Migrating Weather.com To Drupal: Improved Page Load Times

Mon, 06/22/2015 - 17:13
img typeof=foaf:Image src=http://d1l4od7sxc8nwf.cloudfront.net/sites/default/files/styles/thumb_blog_spotlight/public/migrating-twc-drupal-page-load-times.png?itok=mhy0FPJy width=200 height=155 alt=Migrating weather.com to Drupal improved page load times by 50% title=Migrating weather.com to Drupal improved page load times by 50% / div style=margin: 0 6px 30px 0px; padding: 10px; background-color: #ccc;/div

J-P Stacey: Architecting a Drupal 7 module into multiple files

Mon, 06/22/2015 - 16:42
pIn the Drupal modules that I inherit or review, I see a lot of different ways of factoring out into separate files, of what might have begun in the main module file. This can be useful for performance (to a limited extent) and legibility, but depending on how you do it, you might end up ironically spoiling both./p pHow should you break down your Drupal module files? Well, I'm not here to tell you the perfect file breakdown. Matching the architecture is good, although what the architecture means in Drupal 7 isn't clear. Outside of a Drupal 8/Symfony-style architectural model, there's a limit to how much the file breakdown really needs to match the architecture, and a limit to how useful doing so would be./p pa href=http://www.jpstacey.info/blog/2015-06-22/architecting-drupal-7-module-multiple-filesRead more of Architecting a Drupal 7 module into multiple files/a/p

BlackMesh: Summer Drupal 8 Sprints

Mon, 06/22/2015 - 16:03
span class=submitted-by/spandiv class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpa href=https://www.drupal.org/sprintsSprints/a are times dedicated to focused work on a project or topic. People in the same location (physical space, IRC, certain issue pages) work together to make progress, remove barriers to completion, and try to get things to done. /ppThis summer, there are many Drupal 8- focused sprint opportunities before DrupalCon Barcelona. /ppSome of these are open to everyone, some have mentors or workshops to help new contributors, some have limited space, depending on the event. /ph2Earlier this summer /h2pDrupalCon Los Angeles had very productive extended sprints, and the main sprint on Friday was huge! Since then, many sprints have continued the progress, including: a href=https://twitter.com/stevepurkiss/status/601694641268883456Drupal Camp Spain/a, a href=https://groups.drupal.org/node/470083DrupalCamp Wroclaw/a, a href=http://moldcamp.comMoldcamp in Chișinău, Moldova/a, and a href=https://twitter.com/emma_maria88/status/607515020596023297Frontend United/a. /ppAnd, we had two sprints (New Hampshire and New Jersey) aided by a href=https://assoc.drupal.org/d8accelerateDrupal 8 Accelerate/a. If you have more money than time for sprinting or resources for planning or hosting a sprint, and you want to help get Drupal 8 out, giving to D8 Accelerate really helps. /ph4New Hampshire, USA/h4 pThe Drupal 8 a href=https://www.drupal.org/node/2280965critical meta issue on SafeMarkup/a was a focus of the a href=https://groups.drupal.org/node/470408New Hampshire, USA sprint/a. /ppimg src=http://yesct.net/sites/default/files/postits-NH.jpg alt=postit board of issues and noting status at NH /br /(photo: a href=https://twitter.com/Cottser/status/607958305823027200@Cottser/a) /ph4Jersey Shore Sprint, New Jersey, USA br /a href=https://twitter.com/drupalcampnjgt;@DrupalCampNJ#DrupalCampNJ/a/h4 pimg src=http://yesct.net/sites/default/files/IMG_20150613_154204.jpg alt=sprinters clustered together, with sunlight streaming in /br /a href=https://www.drupal.org/u/crowdcgcrowdcg/a, a href=https://www.drupal.org/u/kgoelkgoel/a, a href=https://www.drupal.org/u/cilefencilifen/a, a href=https://www.drupal.org/u/jcloysjcloys/a (who got a first Drupal Core commit mention), a href=https://www.drupal.org/u/akalataakalata/a, a href=https://www.drupal.org/u/davidhernandezdavidhernandez/a, a href=https://www.drupal.org/u/ryan-wealRyan Weal/a. br /(photo: a href=https://www.drupal.org/u/pwolaninpwolanin/a, cropped) /ppContinuing from the New Hampshire sprint, a main focus of the a href=https://groups.drupal.org/node/468408Jersey Shore/a sprint was the Drupal 8 a href=https://www.drupal.org/node/2280965critical meta issue on SafeMarkup/a. (I was there too.) /ph2Coming soon! Go to one! h3June 25-28, 2015 br /Twin Cities Drupal Camp, Minneapolis, Minnesota, USA br /a href=https://twitter.com/tcdrupal@TCDrupal/a a href=https://twitter.com/hashtag/tcdrupal?src=hashamp;vertical=defaultamp;f=tweets#TCDrupal/a/h3 /h2pSprints are concurrent with the training day on Thursday, and concurrent with sessions Friday and Saturday. The dedicated sprint day is on Sunday. We are expecting about 10 people on Thursday and 60 people on Sunday. Sunday will have a workshop for new contributors, Core/Contrib sprints, and a a href=https://groups.drupal.org/node/470648Drupal 8 Manual/a sprint. /ppSee the a href=http://2015.tcdrupal.org/drupal-core-and-contrib-sprintssprint page on the tcdrupal.org site/a for details. /ph3June 25-28, 2015 br /Drupal North, Toronto, Canada br /a href=https://twitter.com/drupalnorth@DrupalNorth/a/h3 pSunday is a a href=http://www.drupalnorth.org/schedule/2015-06-28dedicated Drupal 8 sprint day/a. There will be a small unofficial sprint on Thursday. /ppThe whole a href=http://www.drupalnorth.org/en4 day camp is focused on Drupal 8/a. /ph3June 28, 2015 br /Antwerp, Belgium/h3 pThis is a dedicated one day sprint to help get Drupal 8 out. /ppSee the a href=http://drupal.be/evenement/drupal-code-sprintannouncement/a for details. /ph3July 2-8, 2015 br /D8 Accelerate critical issue sprint, London/h3 pThis 7 day sprint will be focused on Drupal 8 critical issues and space is limited. /ppSee the a href=https://groups.drupal.org/node/471468groups.drupal.org post/a for details. /ph3July 4, 2015 br /DrupalCamp Bristol, United Kingdom br /a href=https://twitter.com/drupalcampbris@DrupalCampBris/a a href=https://twitter.com/hashtag/dcbristol?src=hashamp;vertical=defaultamp;f=tweets#dsbristol/a/h3 pa href=https://2015.drupalcampbristol.co.uk/programme/sprintsSprints/a will run concurrent with sessions on Saturday. /ph3July 16-19, 2015 br /NYC Camp, New York, USA br /a href=https://twitter.com/NYCCamp_org@NYCCamp_org/a a href=https://twitter.com/search?q=%23NYCCampamp;src=typdamp;vertical=defaultamp;f=tweets#NYCCamp/a/h3 pMonday to Wednesday are sprint only days, with Drupal 8 Core and Media for Drupal 8 scheduled. Panopoly is scheduled for Tuesday and Wednesday. Sprints will also be concurrent with trainings, summits, and sessions on Thursday through Sunday. /ppSee the a href=http://nyccamp.org/program/sprintssprint page on the nyccamp.org site/a and the a href=http://nyccamp.org/scheduleschedule/a for details. /ph3July 22-26, 2015 br /DrupalCamp North, Sunderland, United Kingdom br /a href=https://twitter.com/drupalcampnorth/with_replies@DrupalCampNorth/a/h3 pWednesday to Friday are dedicated a href=https://groups.drupal.org/node/472063extended sprint days/a and there will also be a sprint room at the a href=http://drupalcampnorth.org/camp/a concurrent with sessions on Saturday and Sunday. /ph3July 22-26, 2015 br /GovCon, Bethesda, Maryland, USA br /a href=https://twitter.com/drupalgovcon@DrupalGovCon/a a href=https://twitter.com/hashtag/drupalgovcon?src=hashamp;vertical=defaultamp;f=tweets#DrupalGovCon/a/h3 pa href=https://www.drupalgovcon.org/drupal-govcon-2015GovCon/a conference is July 22-24 with sprints concurrent with sessions, but there will be a href=https://www.drupalgovcon.org/drupal-govcon-2015/code-sprinttwo dedicated sprint days following on Saturday and Sunday, July 25 and 26/a in Washington, DC at the ForumOne offices. /ph3August 6-9, 2015 br /Drupalaton, Hungary br /a href=https://twitter.com/drupalaton@Drupalaton/a a href=https://twitter.com/hashtag/drupalaton?src=hashamp;vertical=defaultamp;f=tweets#Drupalaton/a/h3 pa href=https://groups.drupal.org/node/472043Sprints/a will be concurrent with the camp all days. /ppLast year was a href=https://twitter.com/da_wehner/status/611639634217537536super focused and relaxing/a. /ph3August 12-15, 2015 br /MidWest Developers Summit (MWDS), Chicago, Illinois, USA br /a href=https://twitter.com/search?q=%23mwds2015amp;src=typdamp;vertical=defaultamp;f=tweets#MWDS2015/a/h3 p4 days of only sprinting, hosted in the a href=https://www.palantir.net/Palantir.net/a offices. /ppDetails still to be announced. See the a href=https://groups.drupal.org/node/455093groups.drupal.org event page/a for more details. /ph3September 11-18, 2015 br /Montréal to Barcelona Sprint, Montréal, Canada/h3 pFor some people in North America, Montréal could be on the way to Barcelona, where a href=https://events.drupal.org/barcelona2015/sprintsDrupalCon extended sprints start September 19/a. /ppSee the a href=http://groups.drupal.org/node/456718groups.drupal.org event page/a for more details. /ph2P.S./h2 pI will be at Twin Cities, GovCon, and MWDS. /ppThanks to a href=https://twitter.com/klobutschar@klobutschar/a for fast changes to a href=http://www.drupical.comhttp://www.drupical.com/a to show the sprints even better. /ppThanks to a href=https://twitter.com/mparker_17@mparker_17/a, a href=https://twitter.com/da_wehner@da_wehner/a, a href=https://twitter.com/ievauzule@ievauzule/a, a href=https://twitter.com/zsofimajor@zsofimajor/a, a href=https://twitter.com/royscholten@royscholten/a, a href=https://twitter.com/adshill@adshill/a, a href=https://twitter.com/ryan_weal@ryan_weal/a, a href=https://twitter.com/kristen_pol@kristen_pol/a, a href=https://twitter.com/emma_maria88@emma_maria88/a, a href=https://twitter.com/opdavies@opdavies/a, and a href=https://twitter.com/davidnarrabilis@davidnarrabilis/a for helping me find more events. /p/div/div/divdiv class=field field-name-field-tags field-type-taxonomy-term-reference field-label-hiddendiv 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/sprints typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Sprints/a/div/div/divdiv class=field field-name-field-blog-images field-type-image field-label-hiddendiv class=field-itemsdiv class=field-item evenimg typeof=foaf:Image src=http://www.blackmesh.com/sites/default/files/drupical_sprints_2015.png width=2019 height=1080 alt= title=http://screencast.com/t/YkMkfJPOo4gF //div/div/div

InternetDevels: DrupalTour siteseeing

Mon, 06/22/2015 - 15:38
div class=field field--name-field-preview-image field--type-image field--label-hiddendiv class=field__itemsdiv class=field__item evenimg src=http://st2.internetdevels.net/sites/default/files/public/blog_preview/drupaltour.jpg width=940 height=626 alt=DrupalTour //div/div/divdiv class=field field--name-body field--type-text-with-summary field--label-hiddendiv class=field__itemsdiv class=field__item evenp style=text-align: justify;If you want pizza you can either go to cafe or order delivery, right? So why should Drupal be different? :) We made Drupal delivery possible to any Ukrainian city with a href=http://internetdevels.com/blog/tags/drupaltour target=_blankDrupalTour/a!/pp style=text-align: justify;img style=vertical-align: middle; src=http://store.internetdevels.com/i/d05533f6c7/940x752-drupaltour_1.jpg alt=DrupalTour width=940 height=752 //p a href=http://internetdevels.com/blog/drupaltourRead more/a/div/div/div

Annertech: Tough at the top (of Google) - Content Strategy, SEO, and Low Bounce Rates

Mon, 06/22/2015 - 12:44
span class=field field-node--title field-name-title field-type-string field-label-hiddenTough at the top (of Google) - Content Strategy, SEO, and Low Bounce Rates/span div class=field field-node--body field-name-body field-type-text-with-summary field-label-hidden div class=field-items div class=field-itempAnnertech is #1 on Google for a number of key search phrases and when we're not, we're usually only beaten by the Drupal Ireland page from g.d.o. (a href=https://groups.drupal.org/ireland target=_blankgroups.drupal.org/ireland/a). How did we get to the top of Google? How do we stay there? Two words: hard work - but it really revolves around two other words: content strategy. Let's get down to the details./p/div /div /div

LevelTen Interactive: DrupalCon LA 2015 Video: Mediacurrent Interview

Mon, 06/22/2015 - 07:00
img typeof=foaf:Image src=http://getlevelten.com/sites/default/files/styles/600x300/public/content/blog/images/untitled_design-18.png?itok=a1XOa5aV width=600 height=300 alt= / pIn last weeks' DrupalCon interview, we featured span class=s1a href=https://www.percona.com/span class=s2Percona/span/a./span... a href=/blog/felipa-villegas/drupalcon-la-2015-video-mediacurrent-interview class=more-linkRead more/a/p

Midwestern Mac, LLC: DrupalCamp St. Louis 2015 finished, session videos available online!

Sun, 06/21/2015 - 20:28
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpa href=https://2015.drupalstl.org/DrupalCamp St. Louis 2015/a was held this past weekend, June 20-21, 2015, at SLU LAW in downtown St. Louis. We had nine sessions and a great keynote on Saturday, and a full sprint day on Sunday./p p style=text-align: center;img src=/sites/midwesternmac.com/files/drupalcamp-stl-registration.jpg width=500 height=262 alt=DrupalCamp St. Louis 2015 Registration /br / The view coming off the elevators at SLU LAW./p pEvery session was recorded (slides + audio), and you can view all the sessions online:/p ullia href=//2015.drupalstl.org/conference/schedule/keynote-alina-mackenzieKeynote - Finding the entrance: Why and how to get involved with the Drupal community/a/li lia href=//2015.drupalstl.org/conference/sessions/git-basics.git basics/a/li lia href=//2015.drupalstl.org/conference/sessions/empowering-content-creators-through-better-uxEmpowering Content Creators Through Better UX/a/li lia href=//2015.drupalstl.org/conference/sessions/out-twig-custom-theme-developmentOut on a TWIG: custom theme development/a/li lia href=//2015.drupalstl.org/conference/sessions/securing-drupalSecuring Drupal/a/li lia href=//2015.drupalstl.org/conference/sessions/age-content-building-meaningful-content-strategiesAge of Content: Building Meaningful Content Strategies/a/li lia href=//2015.drupalstl.org/conference/sessions/scale-your-drupal-searchScale up your Drupal Search/a/li lia href=//2015.drupalstl.org/conference/sessions/high-performance-drupalHigh Performance Drupal/a/li lia href=//2015.drupalstl.org/conference/sessions/challenges-designing-cmsChallenges of designing for a CMS/a/li lia href=https://2015.drupalstl.org/conference/sessions/status-migrate-8Status of Migrate in 8/a/li lia href=https://2015.drupalstl.org/drupalcamp-stl15/schedule/closing-sessionClosing Session/a/li /ulpThe Camp went very well, with almost sixty participants this year! We had a great time, learned a lot together, and enjoyed some great views of downtown St. Louis (check out the picture below!), and we can't wait until next year's DrupalCamp St. Louis (to be announced)!/p /div/div/div

Wim Leers: Eaton Urbina: structured, intelligent and adaptive content

Sun, 06/21/2015 - 20:08
pWhile walking, I started listening to Jeff Eaton#8217;s qInsert Content Here/q podcast episode 25: a href=https://www.lullabot.com/blog/podcasts/insert-content-here/25-noz-urbina-explains-adaptive-contentqNoz Urbina Explains Adaptive Content/q/a. People must#8217;ve looked strangely at me because I was smiling and nodding — while walkingnbsp;:) Thanks a href=http://angrylittletree.comJeff/a span class=ampamp;/span a href=http://urbinaconsulting.comNoz/a!/p pJeff Eaton explained how the web world looks at and defines the term abbr title=What You See Is What You Getspan class=capsWYSIWYG/span/abbr. Turns out that in the semi-structured, non-web world that Noz comes from, span class=capsWYSIWYG/span has a totally different interpretation. And they ended renaming it to what it really was: abbr title=What You See Is One Optionspan class=capsWYSIWOO/span/abbr./p pJeff also asked Noz what “adaptive content” is exactly. Adaptive content is a more specialized/advanced form of structured content, and in fact “structured content”, “intelligent content” and “adaptive content” form anbsp;hierarchy:/p ul listructured content ul liintelligent content ulliadaptivenbsp;content/li/ul /li /ul /li /ul pIn other words, adaptive content is also intelligent and structured; intelligent content is also structured, but not all structured content is also intelligent or adaptive, nor is all intelligent content alsonbsp;adaptive./p pBasically, intelligent content better captures the emprecise/em semantics (e.g. not a emsection/em, but a emproduct description/em). Adaptive content is about using those semantics, plus additional metadata (“hints”) that content editors specify, to adapt the content to the context it is being viewed in. E.g. different messaging for authenticated versus anonymous users, or different nuances depending on how the visitor ended up on the current page (in other words: empersonalization/em)./p pNoz gave an excellent example of how adaptive content can be put to good use: he described how we he had arrived in Utrecht in the Netherlands after a long flight, “checked in” to Utrecht on Facebook, and then Facebook suggested to him 3 emopen/em restaurants, including cuisine type and walking distance relative to his current position. He felt like thanking Facebook for these ads — which obviously is a rare thing, to be grateful fornbsp;ads!/p pFinally, a wonderful quote from Noz Urbina that captures the essence of contentnbsp;modeling:/p blockquote pHow descriptive do we make it without making itnbsp;restrictive?/p /blockquote pIf it isn#8217;t clear by now — stronggo listen to that podcast!/strong It#8217;s well worth the 38 minutes of listening. I only captured a few of the interesting points, to get more people interested and excited.sup id=fnref:1a href=#fn:1 rel=footnote1/a/sup/p h2What about adaptive span class=ampamp;/span intelligent content in Drupalnbsp;8?/h2 pFirst, see my closely related article a href=/article/drupal-8-structured-content-authoring-experienceqDrupal 8: best authoring experience for structured content?/q/a./p pSecond, while listening, I thought of many ways that Drupal 8 is well-prepared for intelligent span class=ampamp;/span adaptive content. (Drupal already does structured content by means of Field span class=capsAPI/span and the span class=capsHTML/span tag restrictions in the body field.) Implementing intelligent span class=ampamp;/span adaptive will surely require experimentation, and different sites/use cases will prefer different solutions,nbsp;but:/p ul liAn codeintelligent_content/code module for Drupal 8: allow site builders/content strategists to define custom HTML tags (e.g. codelt;product_descriptiongt;/code) to capture site-specific semantics. A a href=http://ckeditor.com/blog/CKEditor-4.3-Beta-Releasedspan class=capsCKE/spanditor Widget/a could hugely simplify the authoring experience for creating intelligent content, by showing a specific span class=capsHTML/span representation while editing (abbr title=What You See Is One Optionspan class=capsWYSIWOO/span/abbr!), thanks to span class=capsHTML/span (Twig) templates associated with those custom span class=capsHTML/spannbsp;tags./li liAn codeadaptive_content/code module for Drupal 8: a text filter that allows any tag to be wrapped in a codelt;adaptive_contentgt;/code tag, which specifies the context in which the wrapped content should benbsp;shown/hidden./li liThe latter leads to cacheability problems, because the same content may be rendered in a multitude of different ways, but thanks to a href=https://www.drupal.org/developing/api/8/cache/contextscache contexts in Drupal 8/a and the fact that a href=https://www.drupal.org/node/2278483text filters can specify cache contexts/a means adaptive content that is still cacheable is perfectly possible. (This is in fact exactly what it was intended for!) cachenbsp;contexts/li /ul pI think that those two modules would be emvery/em interesting, useful additions to the Drupal ecosystem. If you are working on this, please let me know — I would love tonbsp;help!/p div class=footnotes hr / ol li id=fn:1 pThat#8217;s right, this is basically voluntary marketing for Jeff Eaton — you#8217;re welcome, Jeff!#160;a href=#fnref:1 rev=footnote#8617;/a/p /li /ol /div ul class=tags lispan class=lineage-item lineage-item-level-0Drupal/span/li lispan class=lineage-item lineage-item-level-0WYSIWYG/span/li lispan class=lineage-item lineage-item-level-0structured content/span/li /ul

Blue Drop Shop: Camp Record Beta Test Four: DrupalCamp STL 2015

Sun, 06/21/2015 - 17:58
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpFollowing a successful MidCamp and with some new ideas how to improve the kit, I was eager to hit the road for more testing. Problem is, I'm a freelancer with a limited budget, and getting to camps comes out of my own pocket. On a lark, I tweeted the following:/p blockquotep dir=ltrPlanning a a href=https://twitter.com/hashtag/drupalcamp?src=hash#drupalcamp/a and need your sessions recorded? Sponsor me amp; I will record your sessions. Ping me! a href=https://twitter.com/hashtag/drupal?src=hash#drupal/a /cc a href=https://twitter.com/drupalstl@drupalstl/a a href=https://twitter.com/TCDrupal@tcdrupal/a/p p— Kevin Thull (@kevinjthull) a href=https://twitter.com/kevinjthull/status/585795769082327042April 8, 2015/a/p/blockquote pTo my delight, both Twin Cities and St. Louis camps took me up on my offer. Of course, the stakes are even higher now, because it's no longer my own money on the line./p pBut I'm also feeling more confident about this solution and improve on the process with each camp. Connecting to non-HDMI-capable laptops remains the biggest challenge overall. I've added in a couple (full) a href=http://www.amazon.com/gp/product/B00EHTUKLY target=_blankDisplayPort to HDMI converters/a and even successfully tested a new a href=http://www.amazon.com/gp/product/B00EV6AARC target=_blankVGA to HDMI converter/a that got my ancient Sony VAIO to display on my home flatscreen:/p blockquotep dir=ltrThe new VGA to HDMI converter shows promise. My ancient Sony Vaio WinXP laptop just connected! a href=https://twitter.com/hashtag/drupalcamp?src=hash#drupalcamp/a a href=http://t.co/PXb0kBvsClpic.twitter.com/PXb0kBvsCl/a/p p— Kevin Thull (@kevinjthull) a href=https://twitter.com/kevinjthull/status/610622204045189120June 16, 2015/a/p/blockquote pAnd at a href=https://2015.drupalstl.org target=_blankDrupalCamp STL/a I finally got the 100% success rate that I've been shooting for! Three sessions needed fixing in post, but overall, this camp went very smoothly. A huge bonus was the fact that the two rooms were next to each other, minimizing the distance to cover when trying to coordinate laptop hookups and verify timely starts and stops of the records./p pTwin Cities is next week, with a much more challenging schedule: five concurrent sessions across two buildings and multiple floors. My Fitbit will likely hit a new high. That, and I need to finally get down to some documentation and podium signage. It's time to share the knowledge I've gained and get more hands and minds involved./p pAnd now for the learnings from DCSTL:/p ulliswapping thumb drives throughout the day means recordings can be posted during camp/li liwell-timed presenter starts/stops means no trimming, which means more recordings can be posted during camp/li lione room had screen flicker and setting the PVR resolution to 1080 helped (typically, the resolution needs to come down to 720 for this, as well as fixing color shifts)/li lihaving extra SD cards means bad audio can be fixed during down times, which means more recordings can be posted during camp/li lipower strips at the podium shouldn't be assumed, and the powered USB hub and voice recorder both have short plugs/li linever plug the powered usb into the laptop, because that can kill your record if resolution changes or the laptop goes to sleep/li litaping down individual components means less cord chaos throughout the day/li liaccess to ethernet port with a reasonably large pipe going up will get videos posted faster/li /ul/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/lili class=taxonomy-term-reference-3 rel=dc:subjecta href=/tags/dcstl typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=dcstl/a/li/ul/div

Drupal core announcements: Requiring hook_update_N() for Drupal 8 core patches beginning June 24

Sat, 06/20/2015 - 02:58
pIn a href=https://www.drupal.org/node/2507899[policy, no patch] Require hook_update_N() for Drupal 8 core patches beginning June 24/a, the Drupal 8 release managers outline a policy to begin requiring hook_update_N() implementations for core patches that introduce data model changes starting after the next beta release. The goal of this policy change is to start identifying common update use-cases, to uncover any limitations we have for providing update functions in core, and to prepare core developers for considering upgrade path issues as we create the last few betas and first release candidates of Drupal 8. We need your help reviewing and communicating about this proposed policy, as well as identifying core issues that will be affected. a href=https://www.drupal.org/node/2507899Read the issue for more details/a./p

Drupal Association News: Updates to our 2015 Financial Plan

Fri, 06/19/2015 - 20:41
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpI want to share today that the Association is implementing a new financial plan to address lower than anticipated revenues in 2015. To align our spending more closely with our revenue, we are implementing expense cuts that I’m very sorry to say include staffing. Regrettably, we are losing three staff people today from operations, engineering and our community teams. This was not a decision we came to lightly, and we’re committed to helping those staff through their transition as best we can. In this post I want to share some information about how we got here, and our revised plan./p h3 A Brief history/h3 pThis is a really hard post to write because we a href=https://assoc.drupal.org/blog/holly.ross.drupal/2015-leadership-plan-budgetdelivered a plan/a to the community at the beginning of 2015, and it’s clear that we are not going to be able to fully execute to that plan. I take responsibility for that./p pI started at the Association two and half years ago, at a very different time for the organization. At that point in early 2013, the Association was a handful of staff, mostly focused on the DrupalCons. The D7 upgrade of Drupal.org had been halted. Not without some good reason, community trust in the Association was low, and that’s among the people who even knew the Association existed./p pWhen I joined, the message I heard from the board and from the many community members I talked to was that the Association had to learn to implement consistently and communicate more. In other words, we needed to build our credibility in the community by executing our work well and making sure the community knew what we were up to and how to get involved./p pOne thing that was clear from the outset was that Drupal.org was key to our success. If we could not begin to make visible improvements to Drupal.org with the community, we would fail. With support from the board, we decided to invest our healthy reserve in ourselves and build a team that could improve Drupal.org. As our CTO Josh Mitchel pointed out in his a href=https://assoc.drupal.org/blog/joshuami/drupal-association-cto-year-1anniversary blog post/a, we’ve done a LOT on Drupal.org. We’ve also made great strides in DrupalCons, introducing more first-time attendee support, providing more resources to all the sprints, and adding the third Con in global communities that are so eager to have us there. Our marketing team has helped create some a href=https://www.drupal.org/drupal-8.0key content for Drupal 8/a and we’ve even raised over $210,000 to help a href=https://www.crowdrise.com/d8accelerate/fundraiser/drupalconinc fund the completion of D8 release blockers,/a The revenue we generate to do this work has also increased, and diversified. We've grown the a href=https://jobs.drupal.org/Drupal Jobs/a, and rolled out a href=https://www.drupal.org/try-drupalTry Drupal/a. You can see, even with our revised expectations for 2015, that things are still growing. One of our key programs, Supporting Partners, is up 26% over this same time period last year, for example. Growth of this program was only 4% in 2014./p pimg alt= src=https://assoc.drupal.org/files/revenueforecast.png style=width: 460px; height: 349px; border-width: 0px; border-style: solid; margin: 5px; float: left; //p p /p pSo lots of amazing things are happening, but we have to address that we overestimated what was possible for revenue. We have to adjust our plan to meet reality./p h3 Changing the Plan/h3 pAddressing our situation is not work we took lightly. We set several goals for the process that guided our thinking throughout:/p ulli Solve for short-term revenue shortfalls while retaining resources we need to succeed long-term/li li Minimize staff impact/li li Do this once - find the scenario we can truly sustain, and then grow out of/li li Retaining credibility with staff and ensuring we communicate how valuable they are for our future/li li Maintain community confidence/li /ulpThe strategy we used was two-fold. First, we strove to preserve our core services to the community and our ability to fund our own work. Second, we decided to take action as quickly as possible because the sooner we made changes to the plan, the greater the long-term benefit to the organization. We know that this second strategy makes some of this seem like it's out of the blue, but it means that we impact as few people as possible./p pOur leadership team looked at three approaches to addressing our cash flow issues:/p ulli strongIncremental revenue:/strong Our new forecast extends actuals from the beginning of 2015 out through the end of the year. We believe that it is possible for us to improve upon this forecast slightly because, although our primary mistake was overestimating revenue, we also had some staffing change-ups (a retirement, hiring new reps) on the team at the beginning of the year that adversely affected the numbers. There is some room to modestly improve our revenue from the forecast./li li strongNon-labor expense:/strong We looked at travel, consulting fees, hardware and software, among other places in the budget where we had built in buffers or non-essential expenses. Eliminating these now, and not carrying them into 2016 was a key part of our process./li li strongLabor expense:/strong This was the last option we looked at because at the end of the day, not only do all our staff give the community everything they’ve got, we really like each other here. I care deeply for the well-being of everyone at the Association. There is also lot of discussion in the business community about the long-term negative impacts of layoffs on organizations. We looked at lots of ways to reduce labor expense, but were not able to find a solution that did not include some layoffs./li /ulpUsing this process, we were able to identify $450,000 in non-labor expense savings, and increase revenue projections $250,000 from July 1 2015 through December 31 2016. That was enough to solve our 2015 revenue shortfalls, but it did not address the issues long-term. We needed to reach deeper to ensure our long-term success. We had to consider labor reductions./p pPrior to looking at any other staff, the leadership team at the Association decided that the first staff cut had to come from us. As a team, Megan, Joe, Josh, and Matt volunteered a 10% reduction, and I volunteered a 15% reduction. But we still weren’t there. Looking at the remaining labor cuts, we wanted to use a href=https://assoc.drupal.org/aboutour values/a as our guide. We know that our team believes in our teamwork value above all else, and would want to minimize layoffs as much as possible. With that in mind, we experimented with the model and determined that we could limit layoffs to three if we asked remaining staff to take a 5% pay cut across the board./p pAll told, here’s what measures look like:/p pimg alt= src=https://assoc.drupal.org/files/Screen%20Shot%202015-06-11%20at%2011.57.33%20AM.png style=width: 665px; height: 196px; border-width: 0px; border-style: solid; margin: 5px; float: left; //p p /p pWe believe this approach meets our goals and puts us in the best position possible to continue the great work we’ve been doing./p h3 What Happens Next?/h3 pOn the financial front, we’ll be managing to our cash flow for the next 18 months, as well as modernizing our budgeting and forecasting tools to reflect an Agile methodology. This will let us see further into the future more often, and give us more opportunities to update our plans based on what’s actually happening. And, if we find we are performing favorably to our plan, our first action will be to restore salaries for our staff./p pMost importantly, we’re going to be focused on our team. They all got the news earlier today, and we’re taking this time to talk things through all together, in our teams, and one on one. I am here to answer questions and hear concerns for every one of them. We’ll also implement monthly internal review of our progress to the new plan with staff so that they have transparency on a monthly basis about what’s happening. These people are the best thing we have going for us, and I won’t ever be able to make this up to any of them, but I am committed to helping them find the best path forward they can./p h3 Thank you/h3 pSharing this is not easy. The only thing that makes it better is knowing that the Association, like Drupal itself, has so much potential. I want to thank our Supporters, partners, sponsors, members, and the general community for everything you’ve given us so far. The only way we will realize our potential and move forward is together, and we are so happy that we get to do that with you./p /div/div/div

LevelTen Interactive: Drupal 8: Marketer Friendly

Fri, 06/19/2015 - 19:12
img typeof=foaf:Image src=http://getlevelten.com/sites/default/files/styles/600x300/public/content/blog/images/a_strong_case_for_your_enterprise-2.png?itok=Ki5wCkIj width=600 height=300 alt=drupal 8 for marketers / pThe digital marketing world keeps changing, basically every day, or whenever Google decides it’s time to change their algorithm. As a person who practices digital marketing, I know the challenges of working with a CMS and the need to for it to allow me to publish blog posts (like this one) easily and have it be mobile responsive, because who uses actual computers these days?... a href=/blog/felipa-villegas/drupal-8-marketer-friendly class=more-linkRead more/a/p