Skip to content

Instantly share code, notes, and snippets.

@shadcn
shadcn / gist:5490042
Last active December 16, 2015 20:09
Drupal 7 - Get breadcrumb by node id.
<?php
function _get_breadcrumb_by_nid($nid) {
$node = node_load($nid);
// If a node is not found, return.
if (!$node) {
return;
}
@shadcn
shadcn / gist:6667198
Created September 23, 2013 06:56
Responsive panels regions hooks for OA2
<?php
/**
* Implements hook_responsive_panels_regions_positions_alter().
*/
function oa_dashboard_responsive_panels_regions_positions_alter(&$positions) {
// We use the top position for the breadcrumb only, so we unset it here.
unset($positions['top']);
}
<?php
/**
* Implements hook_oa_responsive_regions_positions_alter().
*/
function oa_dashboard_oa_responsive_regions_positions_alter(&$positions) {
// We will keep the top position for the oa navbar so we unset it here.
unset($positions['top']);
}
@shadcn
shadcn / gist:8441724
Created January 15, 2014 18:34
Drupal: function to find users with only authenticated role.
<?php
/**
* Helper function to find users with authenticated role only.
*/
function _users_with_authenticated_role_only() {
return db_query('SELECT uid, name, mail FROM users u WHERE uid > 0 AND NOT EXISTS (SELECT 1 from users_roles ur WHERE u.uid = ur.uid)')->fetchAll();
}
<?php
/**
* Implements hook_forms().
*/
function node_ajax_loader_forms($form_id, $args) {
$forms = array();
if (strncmp($form_id, 'node_ajax_loader_form_', 22) === 0) {
$forms[$form_id] = array('callback' => 'node_ajax_loader_form');
}
@shadcn
shadcn / assign_permission.php
Last active April 20, 2016 18:28
Progammatically assign permissions to users in Drupal 8
<?php
use Drupal\user\RoleInterface;
// Allow anonymous and authenticated users to access contact form.
user_role_grant_permissions(RoleInterface::ANONYMOUS_ID, array('access site-wide contact form'));
user_role_grant_permissions(RoleInterface::AUTHENTICATED_ID, array('access site-wide contact form'));
@shadcn
shadcn / settings.local.php
Created December 14, 2016 08:23
Example settings.local.php
<?php
/**
* @file
* Local development override configuration feature.
*
* To activate this feature, copy and rename it such that its path plus
* filename is 'sites/default/settings.local.php'. Then, go to the bottom of
* 'sites/default/settings.php' and uncomment the commented lines that mention
* 'settings.local.php'.
@shadcn
shadcn / local.services.yml
Created December 14, 2016 08:24
Example local.services.yml
# Local development services.
#
# To activate this feature, follow the instructions at the top of the
# 'example.settings.local.php' file, which sits next to this file.
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
parameters:
twig.config:
debug: true
@shadcn
shadcn / gist:4c79632956564f1d2ef321ad6aa83941
Created May 11, 2016 08:36
Drupal Element::children in Twig templates
{% for key, child in element if key|first != '#' %}
<div>{{ child }}</div>
{% endfor %}
@shadcn
shadcn / PANTHEON.md
Last active February 23, 2017 18:38
How to create a composer-based project on Pantheon.

How to create a composer-based project on Pantheon.

  1. Install Terminus: composer global require pantheon-systems/terminus.
  2. Head to your Pantheon dashboard, go to your Account and click on Machine Tokens.
  3. Create a new token and use it auth with Pantheon: terminus auth:login --machine-token=MACHINE-TOKEN
  4. Create a new site on Pantheon using terminus: terminus site:create name-of-site "Name of Site" 35b0e365-a191-4c70-adbe-9d02d01343f3. 35b0e365-a191-4c70-adbe-9d02d01343f3 is the uuid of the Drops 8 Composer upstream. You can see a list of upstream by running terminus upstream:list
  5. Once the site is created, you can head to http://dev-name-of-site.pantheonsite.io and continue with setup.
  6. Cloning your site on your local should give you a composer-based template.