Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 9 min 36 sec ago Default Search API Sorts Per View in Drupal 7

Tue, 01/31/2017 - 11:24
pIt#39;s been a while since I#39;ve written a post here (especially, Drupal-related). But today I have something interesting to share./p pThere#39;s a module callednbsp;strongSearch API sorts/strongnbsp;(a href= thatnbsp;provides custom sorts and a global sort block for Search API. The module itself is ok, but .../p pa href= class=btnRead now/a/p

Web Omelette: Advanced techniques for route access control in Drupal 8

Tue, 01/31/2017 - 09:00
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item evenpDrupal 8 is very flexible when it comes to controlling access to your routes. It inherits quite a bit from the Symfony routing system, but adds its own flavour on top of that. In this article we are going to look at an example of a complex access requirement. In doing so, we won't cover the simpler use cases which are already described in the a href= docs/a, but we will sure make use of some of them./p h2The requirement/h2 pSo let's imagine this scenario: we have two types of users (employees and managers) whose persona is not determined by a user role. Let's say their role is determined on the fly as a result of an API call or some dynamic thing./p pNow, let's say we have 3 routes: Route A (accessible for employees only), Route B (accessible for managers only) and Route C (accessible for both)./p pFinally, imagine we have a service called codeUserType/code which we can ask what type of person the current user is./p h2Implementation/h2 pOne of the cool things about the Route access control in Drupal 8 is the ability, as the docs show, to delegate the access checking to a service. So a basic implementation for Route A and Route C can be something like this./p pre class=brush: phpmy_module.route_a: path: 'route-a' defaults: _controller: '\Drupal\my_module\Controller\DefaultController::buildRouteA' _title: 'Route A' requirements: _company_access_check_employee: 'true' /prepThis is the route definition. As you can see, as per the docs, we have a requirement for the codecompany_access_check/code access service to return the access result. So let's quickly see that service:/p pre class=brush: phpmy_module.company_access_check: class: Drupal\my_module\Access\CompanyAccessCheck arguments: ['@user_type'] tags: - { name: access_check, applies_to: _company_access_check_employee } /prepA simple tagged service definition with a dependency to our fictitious codeUserType/code service that tells us the type of person the current user is. Additionally, we specify that this access checking service should be applied to all routes with the requirement code_company_access_check_employee/code./p pI am not going to show you this class because an example is already covered in the docs. However, it has one method called codeaccess()/code which by default gets passed the codeAccountInterface/code of the current user. So with the help of our codeUserType/code service we can determine whether the current user is an employee. Then we can return either codeAccessResult::forbidden()/code or codeAccessResult::allowed()/code./p pFor managers, we do the same: create a new service and apply it to Route C./p pSo where does the complication come? Well, you guessed it: Route B which requires both. If we add two requirements to the route, let's say something like this:/p pre class=brush: phpmy_module.route_b: path: 'route-b' defaults: _controller: '\Drupal\my_module\Controller\DefaultController::buildRouteB' _title: 'Route B' requirements: _company_access_check_employee: 'true' _company_access_check_manager: 'true' /prepIt will check for both but grant access only if emboth/em return positive. So in our case this won't be very helpful since we need to check if the user is emeither/em. For the purposes of this article, please forgive the implication that managers are not also employees./p h2The solution/h2 pWhat we can do is create another access service called something like codecompany_access_check_both/code which is responsible for determining if the current user is of one of the user roles. This is fine if our requirements are as simple as we described them. But what happens when we have multiple user types and a bunch of different routes where we have to mix and match the user types which have access to them? Creating a service for all these different types of combinations is not very efficient./p pSo instead, let's create a generic service called codecompany_access_check_multiple/code AND specify in the route the type of user that has access to it in the form of a custom option. For example, the route definition can be something like this:/p pre class=brush: phpmy_module.route_b: path: 'route-b' defaults: _controller: '\Drupal\my_module\Controller\DefaultController::buildRouteB' _title: 'Route B' requirements: _company_access_check_multiple: 'true' options: _company_access_users: - Employee - Manager /prepIn this route we created a custom option called code_company_access_users/code in which we list the types of users that should have access to it./p pBut how can we make use of this inside our service? Well, the Route object can be inspected and the list of allowed user types can be retrieved:/p pre class=brush: php$types = $route-gt;getOption('_company_access_users'); /prepSo if the route has that option, code$types/code will tell us what type the current user needs to be in order to have access./p pHowever, where do we get the Route object? As we know, the codeaccess()/code method of the service only receives the user account as a parameter. We might be tempted to inject the current route match service into our own. This does the trick, but only when the route in question is being checked upon a user actually going to it. It will miserably fail when a given route is being checked for access from another one (for example when building menu links)./p pIf we dig deep and look closely, before our codeaccess()/code method is called, an arguments resolver is employed via the codeAccessArgumentsResolverFactory/code. This allows for the current user account to be passed to the codeaccess()/code method. But what not many people know is that if we type hint our codeaccess()/code method with either codeRoute/code, codeRouteMatchInterface/code or codeRequest/code, we will be getting those parameters as well. And in this case, the codeRoute/code object is that of the route being checked for access rather than the current route./p pSo something like this:/p pre class=brush: phppublic function access(AccountInterface $account, Route $route) { $types = $route-gt;getOption('_company_access_users'); // etc } /prepSo there you have it. A neat little trick that opens the door to some complex access restriction rules on your routes./p /div/div/div Blog: AGILEDROP: Virtual Drupal Camps

Tue, 01/31/2017 - 08:41
a href= src= //a Drupal events have a lot of positive things for Drupal users. We highlighted them in the previous blog post. But there are many Drupalistas around the world, who can't attend such events, due to the expenses, time, work responsibilities, and many other reasons including the fact that many don't live near any of the available Drupal Camps. With that, they are automatically deprived for knowledge about Drupal. And that knowledge may come in hand for them, especially if they professionally work with Drupal. Luckily, organizers came up with one of the solutions. It's online or virtual Drupal Camp… a href= MORE/a

Jeff Geerling's Blog: Set up BLT and Drupal VM entirely within Windows 10

Tue, 01/31/2017 - 03:15
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedp style=text-align: center;img src=// width=650 height=366 alt=BLT - Setup complete on Windows 10 class=insert-image //p pQuite often, I get inquiries from developers about how to get Drupal VM working on Windows 10—and this is often after encountering error after error due to many different factors. Just for starters, I'll give a few tips for success when using Drupal VM (or most any Linux-centric dev tooling or programming languages) on Windows 10:/p/div/div/div

Aten Design Group: Drupal 101 at General Assembly Denver

Mon, 01/30/2017 - 23:19
div class=event--header h2 class=event--subheadimg src=/sites/all/themes/aten2014/images/logo-aten-reversed.svg alt=Aten spanPresents/span/h2 h1 class=event--titleem3-hour class/em strongDrupal 101/strong/h1 timestrongGeneral Assmbly Training:/strong February 8, 2017, 6pm - 9pm MT/time diva href= class=link--primaryRegister Now/a/div /div pGet a crash course in the basics of building a website using Drupal./p pIn this 3-hour training, we'll dive into the world of Drupal and learn about content types, views, blocks amp; themes as we build a site together./p pThis webinar is ideal for those with experience working with content management systems like Drupal, Wordpress, Joomla, or Craft./p div class=partnership div class=partner-contentBrought to you in partnership with/div div class=partner-logoimg src= alt=General Assembly //div /div div class=block--event-register pstrongReserve your spotnbsp;today/strong/p time class=event--timeFebruary 8, 2017, 6pm - 9pm MT/time a href= class=link--primaryRegister Now/a /div

Chromatic: Drupal Code Standards: The t() Function

Mon, 01/30/2017 - 19:24
pThis is the fifth post in a series about coding standards. In this post we’ll talk about how to use translation functions in both Drupal 7 and 8. This is so essential that it deserves its own post!/p

Evolving Web: Drupal 8 Migration: Migrating files / images (Part 3)

Mon, 01/30/2017 - 16:00
a href= img src= width=220 height=127 alt=Migration: Managing files typeof=Image class=img-responsive //apA tutorial on migrating files / images to a Drupal 8 site and associating them to other entities./p a href= hreflang=enread more/a

MTech, LLC: Migrating Date Ranges from CSV into Date Range Module

Mon, 01/30/2017 - 15:09
spanMigrating Date Ranges from CSV into Date Range Module/span div class=field field--name-body field--type-text-with-summary field--label-hidden field--itempAs you might know, the Datetime Range module is currently an experimental module within Drupal 8 core. This module allows you to create specific time intervals, such as: the creation date and the expiration of a product, a schedule of a workshop or event which has different blocks of hours, or hotel room reservations, etc./p/div spana title=View user profile. href= lang= about= typeof=schema:Person property=schema:name datatype= xml:lang=Gerardo Hernández/a/span spanMon, 01/30/2017 - 08:09/span

J-P Stacey: That was Drupal Global Sprint Weekend 2017

Mon, 01/30/2017 - 14:51
pLast weekend was the a href= Global Sprint Weekend/a, and a href= Yorkshire took part in Sheffield/a. Our venue was the fantastic a href= St coworking and event space/a, and it's fair to say that having such a great venue was a key part of what made the day a success. /p pa href= more of That was Drupal Global Sprint Weekend 2017/a/p

MD Systems blog: Media initiative is official and we are one of its leading parts

Mon, 01/30/2017 - 09:53
The Media Initiative finally became one of the official Drupal core initiatives. We’ve been part of it since its inception more than 3 years ago and we are still one of its leading parts.

ADCI Solutions: Spinning up the Drupal environment with Drupal VM

Mon, 01/30/2017 - 05:14
pWhat if we tell you that spinning up a Drupal environment could be fun? Yes, we mean it. Drupal Virtual Machine (VM) gives us a plenty of options to ease a whole development process. Other than that, Drupal VM is a universal solution that will work equally on different host machines with different operation systems./p pWe are going to guide you through the main topics related to an installation and usage of Drupal VM. You will learn about migrating a Drupal website to the Drupal VM environment in general and disabling an automatic installation of Drupal, mounting a local Drupal codebase and uploading a database to the virtual machine in particular. After that you’ll be skilled enough to extend the default configuration for your needs./p pWe give the useful links and examples throughout the article so click to read the full article a href=;utm_medium=drupal-planet-feedamp;utm_content=rss-summaryhere/a./p pa href=;utm_medium=drupal-planet-feedamp;utm_content=rss-picimg alt=Drupal Virtual Machine (VM) src= style=width: 720px; height: 340px; //a/p

Drupal Modules: The One Percent: Drupal Modules: The One Percent — User Personas (video tutorial)

Mon, 01/30/2017 - 04:39
span class=field field--name-title field--type-string field--label-hiddenDrupal Modules: The One Percent — User Personas (video tutorial)/span div class=field field--name-field-screenshot field--type-image field--label-hidden field__item img src= width=480 height=237 alt=Project page screenshot typeof=foaf:Image class=image-style-large //div span class=field field--name-uid field--type-entity-reference field--label-hiddenspan lang= about= typeof=schema:Person property=schema:name datatype= xml:lang=NonProfit/span/span span class=field field--name-created field--type-created field--label-hiddenSun, 01/29/2017 - 21:39/span div class=field field--name-field-episode field--type-integer field--label-inline div class=field__labelEpisode/div div class=field__item17/div /div div class=clearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__itempHere is where we bring awareness to Drupal modules running on less than 1% of reporting sites. Today we'll look at User Personas, a module which allows you to assign groups of roles to your users./p/div

Third Grove: Five tips for efficient and effective agile development teams

Mon, 01/30/2017 - 01:19
span property=schema:name class=field-name--titleFive tips for efficient and effective agile development teams/span span class=field-name--uid rel=schema:authorspan lang= about= typeof=schema:Person property=schema:name datatype= xml:lang=john/span/span span property=schema:dateCreated content=2017-01-30T00:19:35+00:00 class=field-name--createdSun, 01/29/2017 - 19:19/span

Jay How To Configure Let's Encrypt For Drupal Virtualmin

Mon, 01/30/2017 - 00:13
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://letsencrypt.orgLet's Encrypt/a is taking over the world with its free SSL certificates, and I'm using it on ALL of my websites. But using it in conjunction with a href=https://www.drupal.orgDrupal/a amp; a href=https://virtualmin.comVirtualmin/a is not as easy as it should be, so today I'll show everyone how to make it work 100%. It took me a few hours of detective work to figure out the following two prerequisites that need to be taken care of before using a href=https://letsencrypt.orgLet's Encrypt/a:/p p#1. In the .htaccess file for a href=https://www.drupal.orgDrupal/a 7, find the line with the following code (for example, line 83 in the most recent version of a href=https://www.drupal.orgDrupal/a 7, 7.53):/p pspan style=background-color:#FFFFAARewriteRule (^|/)\. - [F]/span/p pChange it to the following code:/p pspan style=background-color:#FFFFAARewriteRule (^|/)\.(?!well-known) - [F]/span/p/div/div/divdiv class=field field-name-field-blog-tags field-type-taxonomy-term-reference field-label-abovediv class=field-labelTags:nbsp;/divdiv class=field-itemsdiv class=field-item evena href=/tag/centos typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=CentOS/a/divdiv class=field-item odda href=/tag/drupal-7 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal 7/a/divdiv class=field-item evena href=/tag/drupal-8 typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal 8/a/divdiv class=field-item odda href=/tag/drupal-planet typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal Planet/a/divdiv class=field-item evena href=/tag/php typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=PHP/a/div/div/div

Janez Urevc: Playing with the Sculpin static site generator

Sun, 01/29/2017 - 22:08
spanPlaying with the Sculpin static site generator/span div class=field field--name-body field--type-text-with-summary field--label-hidden field--itempimg src= alt=Sculpin generator //p pI can hear you asking: What the hack is that? Let me quote the a href='s authors/a:/p blockquoteSculpin is a static site generator written in PHP. It converts Markdown files, Twig templates and standard HTML into a static HTML site that can be easily deployed. /blockquote pFew days ago a need for a very simple website arose which was way too simple to use a href= 8/a for it. Even a href=https://wordpress.orgWordpress/a would be way over the top. On the other hand I really wanted to try static HTML generators for a while and this seemed a perfect opportunity to do that./p pThere are many static HTML generators out there, a href= probably being the most popular (it is also supported by a href= pages/a, which makes hosting trivial). I, however, decided to go with Sculpin because it is written in PHP and is using Symfony and Twig. I am already more or less familiar with all this technologies, which made the task a bit easier./p pResult?/p pFew hours, very simple a href= based theme, a href=, some a href= and violà! Site was done and running. It is performant, I can host it literary everywhere, no need to clear caches every time when something behaves strange, no updates, security out of the box, .../p pI could totally use something similar for this blog too. Heresy against The religion of Drupal™ you say? Maybe.... But think about it. I am already using Markdown (not really a WYSIWYG fan) to write my posts. That wouldn't change at all. I use a href= for comments, which would play perfectly fine with static HTML. I could use a Forms/a or something similar to run the contact form or simply ask people to reach out via Twitter or IRC. That's it. It could probably be done in a day while it took me 3 or 4 days to a href= my Drupal 7 blog to Drupal 8/a. Not to mention the significantly easier maintenance./p pI might even consider doing that when the migration to Drupal 9 comes around. We'll see what the hip thing at that time will be.../p h2All this got me thinking.../h2 pSolutions like Jekyll and Sculpin are gaining popularity in the lowest end of the web market. By that they are eating into what used to be market of CMSes like Drupal and Wordpress just a few years ago. Benefits are clear (mainly performance and easy maintenance). The user experience and the ease of use is still on the CMS side, but for slightly tech savvy users it is completely doable. And this might very likely change in the next few years (every software tries to improve over time, right). That said, this kind of tools might (together with pure SaaS solutions) dominate the lower-end web market in the future./p pBut Drupal 8 is enterprise-oriented. That's what we care about! you'll say. OK. Probably true, but.../p pIt is easier than ever to build custom web projects in PHP. In the times before Composer, Packagist and all other nice stuff that we have today existed it was total PITA to find and bring a bunch of 3rd party libraries together to help you build a custom app. In just a few short years this became much simpler and will become even easier as our tools and ecosystem evolve. And PHP is not alone in this world. There are many new and modern languages/platforms that are all doing similar things from this perspective. All of them have some kind of package manager, dependency resolver, repositories of 3rd party packages, etc. It is to be expected that this will only continue. Tools will become even easier to use, 3rd party libraries/packages will become more powerful and building custom projects based on them even faster./p pHigher-end projects usually have some budget to invest into development. What would you choose if the cost of development using a CMS like Drupal would be similar to the cost of building a custom project? Specially if you don't need all the features and complexity that CMS offers?/p pAre you saying that Drupal is going away? you ask./p pOf course not. Drupal is a great tool that can efficiently solve many problems. But there are definitely better tools for some others. It also seems that there is strong competition on all sides of the web market, which is eating into the pie that was reserved for traditional CMSes in the past. Drupal will need to think about this and position itself into that segment of the market where it is the strongest. The days of Drupal for everything are clearly over./p pemWhat is your opinion about this? What do you think future will bring us? Let's continue the discussion in the comments below!/em/p /div spanspan lang= about= typeof=schema:Person property=schema:name datatype= xml:lang=slashrsm/span/span spanSun, 29.01.2017 - 22:08/span div class=field field--name-field-tags field--type-entity-reference field--label-inline div class=field--labelTags/div div class=field__items div class=field--itema href= hreflang=enDrupal/a/div div class=field--itema href= hreflang=enweb/a/div /div /div div class=field field--name-field-related field--type-entity-reference field--label-above div class=field--labelEnjoyed this post? There is more!/div div class=field__items div class=field--itema href= hreflang=enJoin us at the next Drupal Media sprint at the Mountain camp in Davos!/a/div div class=field--itema href= hreflang=enDrupal dev environment on Docker/a/div div class=field--itema href= hreflang=enEntity browser feature freeze will happen in two weeks/a/div /div /div div class=field field--name-disqus field--type-disqus-comment field--label-hidden field--itemdrupal-render-placeholder callback=Drupal\disqus\Element\Disqus::displayDisqusComments arguments=0=Playing%20with%20the%20Sculpin%20static%20site%20generator1=https%3A// token=437ec65d/drupal-render-placeholder/div

Red Route: Do you really need Drupal for that? How to choose the right technology for your project

Sun, 01/29/2017 - 19:40
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=schema:articleBody content:encodedpWe're moving house soon, and we're planning to rent out the flat we live in now. We could use an estate agent, and get the flat up on all the usual property boards. But, in the spirit of the a href=, and because we don't want to pay commission to agents, we decided to put up our own website advertising the flat./p pAs with most developers, as soon as I had the idea of a project, my mind was racing with possibilities, and I had to stop myself from jumping straight into a code editor./p h2 id=h1What technology will we use?/h2 pWhenever a web project starts, this is one of the most fundamental questions to answer. Until you've decided this, you can't get very far with building the thing./p pA lot of developers will default to their standard toolkit. We tend to use what we've used before, what we're comfortable with. Most of the sites I've built over the last few years have used Drupal. For a while I used to choose Wordpress for smaller, simpler sites, and Drupal for anything that needed more flexibility and complexity, but as I got more familiar with Drupal, I became more efficient with it, to the point where it was quicker and easier to use Drupal./p pBesides, often those smaller sites will end up evolving into something more complex, and with Drupal it's fairly straightforward to set the CMS up so that it isn't too intimidating to the editors. In my mind, that leaves the ease of updates as the only thing in favour of Wordpress, and that's a double-edged sword if people don't test updates properly./p pBut it's important to remember that developer convenience shouldn't be the deciding factor in how you approach a project. Your technology choice should be guided by the needs of the project and its stakeholders./p h3 id=h2Does the site even need a CMS?/h3 pThere are two questions I’d always ask when planning a project:/p olliHow often is the content going to be updated?/li liWho’s going to be updating it?/li /olpContent management systems are very useful and very powerful, but they bring additional complexity with them. You have to make sure that the software and the server it's running on are configured correctly, and that they're kept up to date. The more you can reduce the complexity, the fewer challenges you'll have./p pThese days, for simple sites, I'd be more inclined to use a static site generator like Jekyll, as long as the people editing the content would be able to handle writing in Markdown. Security and performance both get a lot easier to handle if you're just serving flat files./p pFor this project, the content is hardly ever going to change, and when it does, it will be me who edits it, and I’m comfortable editing raw HTML. So no, we don't need a CMS. And because there's only enough content to fill a single page, we don't even need any kind of site generator. Just a single HTML file, with some CSS and JavaScript - keep things as simple as possible./p h2 id=h3Where do we start?/h2 pNo matter how complex your project, there’s always the option of starting from a completely blank slate, but unless what you're doing is very bespoke, do you really need to roll your own every single time? The problems that you’re likely to face in a web project are almost certainly problems that somebody else has already solved, so why not stand on the shoulders of giants?/p pHaving decided to build a single page site, I found a a href= page template based on Bootstrap/a that looked OK. Bootstrap and Foundation are often criticised for contributing to a culture where a href= lot of websites look the same/a, and perhaps rightly so. But a lot of the time, the people who publish content websites don't want or need their site to be unique. There's a reason why a lot of startups use these frameworks - they want to get something out there quickly, so that they can show the market what they've got, so that they can get some income and start iterating./p pYes, I feel a little lazy for spending five minutes googling single page templates, but what would be the value for me of doing something else? Perhaps I could use a href= side project as a learning opportunity/a? A chance to try out a new technology, or a new way of doing things?/p pThose can be good reasons to choose a technology, especially for a personal project, but I wanted to get a basic site together quickly. I wanted it to be a href= enough/a with minimal effort on my part. By starting with a template, I very quickly had something presentable enough to start showing to people. If I’d started from an empty file, perhaps I would have built something with more of myself in it, something I could be more proud of, but it would have taken a lot longer. Moving house is stressful, and I've got a day job and a family, and a bunch of other things on the go, so I didn't want to spend enormous amounts of time on this./p pIn short, I had a fairly clear idea of my minimum viable product, and using a template meant that I was quickly able to reach the point where I could focus on the content. After all, the content should always be the main thing./p pBeing a developer, I'm always looking for things to improve. For instance, perhaps I could get the site loading faster by a href= FontAwesome to inline SVG/a, or maybe I could do something clever with the images or critical CSS./p pBut the point is that the website isn't there to impress other developers - it's there to get a message out to the world - that we're looking for someone to a href= our flat/a./p /div/div/divdiv class=field field-name-taxonomy-vocabulary-4 field-type-taxonomy-term-reference field-label-above div class=field-labelTags:nbsp;/div div class=field-items div class=field-item evena href=/category/tags/development typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=development/a/div div class=field-item odda href=/category/tags/technology typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=technology/a/div div class=field-item evena href=/category/tags/drupal typeof=skos:Concept property=rdfs:label skos:prefLabel datatype=Drupal/a/div /div /div a href=/blog/terms class=taxonomy-link-allAll tags/a span rel=schema:url resource=/articles/do-you-really-need-drupal-how-choose-right-technology-your-project class=rdf-meta element-hidden/spanspan property=schema:name content=Do you really need Drupal for that? How to choose the right technology for your project class=rdf-meta element-hidden/span Drupal Developer's blog: Drush commands for every day usage

Sun, 01/29/2017 - 18:56
div dir=ltr style=text-align: left; trbidi=ona href= target=_blankDrush/a stands for quot;Drupal shellquot; which means a powerful tool for managing Drupal installation from command line interface. Drush provides a lot of useful commands for dealing with a cache, modules, cron, database etc. But some of contrib modules also provide some extra drush commands for specific functionality (like features module comes with commands for managing features). Here#39;s a bunch of a useful drush commands which I use every href= more »/a

DrupalOnWindows: Continuous integration and testing with Drupal on AppVeyor

Sun, 01/29/2017 - 07:00
div class=field field-name-body field-type-text-with-summary field-label-hiddendiv class=field-itemsdiv class=field-item even property=content:encodedpYou can now easily test your Drupal projects on a href= Currently, AppVeyor is the major player in CI regarding Windows Servers. On other CI systems (Travis, Bitbucket pipelines) you are limited to Docker containers for the *nix platform. (This will soon change as some CI will throw Windows containers into the mix)./p pUntil then, the only tool to CI your Drupal (or any PHP project) on a Windows based environment using IIS is a href= class=form-item form-type-item labelLanguage /label English /div div class=view view-read-more view-id-read_more view-display-id-entity_view_1 view-dom-id-ab90384e15084ad289257baffab7f76f div class=view-header hr/ h2More articles.../h2 /div div class=view-content div class=item-list ul li class=views-row views-row-1 views-row-odd views-row-first div class=views-field views-field-title span class=field-contenta href=/en/content/remote-debugging-production-php-applications-xdebugRemote debugging production PHP applications with XDebug/a/span /div/li li class=views-row views-row-2 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/setting-code-syntax-higlighting-drupalSetting up Code Syntax Higlighting with Drupal/a/span /div/li li class=views-row views-row-3 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/database-transactions-drupalDatabase Transactions in Drupal/a/span /div/li li class=views-row views-row-4 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/drupal-8-performance-moving-service-container-cache-away-databaseDrupal 8 Performance: Moving the service container cache away from the database/a/span /div/li li class=views-row views-row-5 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/drupal-fields-or-properties-or-something-elseDrupal: Fields or Properties (or something else)/a/span /div/li li class=views-row views-row-6 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/pdf-generation-phpPDF Generation in PHP/a/span /div/li li class=views-row views-row-7 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/using-heatmaps-boost-conversions-heatmapme-drupal-integrationUsing Heatmaps to boost conversions: Drupal integration/a/span /div/li li class=views-row views-row-8 views-row-even div class=views-field views-field-title span class=field-contenta href=/en/blog/deploying-drupal-pro-part-1-file-structureDeploying Drupal Like a Pro - Part 1: File Structure/a/span /div/li li class=views-row views-row-9 views-row-odd div class=views-field views-field-title span class=field-contenta href=/en/blog/when-php-crashes-how-collect-meaningful-information-and-what-do-itWhen PHP crashes: how to collect meaningful information and what to do with it/a/span /div/li li class=views-row views-row-10 views-row-even views-row-last div class=views-field views-field-title span class=field-contenta href=/en/blog/drupal-8-couchbase-integrationDrupal 8 Couchbase Integration/a/span /div/li /ul/div /div /div Drupal 8 survey Feeds/Migrate usage and functionality

Sat, 01/28/2017 - 17:25
We are working on porting Feeds to Drupal 8 today at the Global Sprints weekend in Amsterdam. We would like to know from you how you use these and similar import/export modules and what functionality you like but still miss in Drupal 8. Please take the survey here:

MidCamp - Midwest Drupal Camp: Vote for your favorite MidCamp T-Shirt Design

Sat, 01/28/2017 - 16:38
pimg alt=MidCamp T-Shirts src= //p h2MidCamp 2017 T-Shirts/h2 pWe need your help. We have all these great options for this year#39;s MidCamp T-Shirts, and we just can#39;t decide which one to make. Please fill out our poll to make your voice heard!/p pa class=btn href= style=margin:0 auto; width: 200px;Vote for your favorite/a/p piframe frameborder=0 height=3000 marginheight=0 marginwidth=0 src= width=940Visit the site for the poll./iframe/p h2Sponsor MidCamp/h2 pWe#39;re currently seeking Lunch and Coffee sponsors for MidCamp 2017. nbsp;Lunch is thenbsp;perfect opportunity to get your name in front of all of the attendees!nbsp; Drupalers like coffee. Some might even say Drupalers love coffee! nbsp;Earn the gratitude of our attendees by having your name and logo associated with the liquid refueling station! We are looking to four sponsors for each day to cover the costs. nbsp;a href= out more/a./p h2Join Us/h2 ul lia href= a Ticket/a/li lia href= a Session/a/li lia href= the Submitted Session list/a/li lia href= out our awesome sponsors!/a/li /ul h2Stay connected:/h2 ul liVisitnbsp;a href=https://www.midcamp.org liLike a href= on Facebook/a/li liFollownbsp;a href=;on twitter/a/li liWatchnbsp;a href= on Youtube/a/li /ul