chore: fix syntax highlighting languages

This commit is contained in:
Oliver Davies 2023-04-22 16:49:04 +01:00
parent 14d096a53b
commit 84be97413d
68 changed files with 215 additions and 215 deletions

View file

@ -32,7 +32,7 @@ database. Then, using [Sequel Pro](http://www.sequelpro.com), I ran the
following SQL query to give me a list of Blog posts on my site - showing just following SQL query to give me a list of Blog posts on my site - showing just
their titles and nid values. their titles and nid values.
```language-sql ```sql
SELECT title, nid FROM node WHERE TYPE = 'blog' ORDER BY title ASC; SELECT title, nid FROM node WHERE TYPE = 'blog' ORDER BY title ASC;
``` ```
@ -40,7 +40,7 @@ I made a note of the nid's of the returned nodes, and kept them for later. I
then ran a similar query against the term_data table. This returned a list of then ran a similar query against the term_data table. This returned a list of
Taxonomy terms - showing the term's name, and it's unique tid value. Taxonomy terms - showing the term's name, and it's unique tid value.
```language-sql ```sql
SELECT NAME, tid FROM term_data ORDER BY NAME ASC; SELECT NAME, tid FROM term_data ORDER BY NAME ASC;
``` ```
@ -50,7 +50,7 @@ query against the database. I'm using aliases within this query to link the
node, term_node and term_data tables. For more information on SQL aliases, take node, term_node and term_data tables. For more information on SQL aliases, take
a look at <http://w3schools.com/sql/sql_alias.asp>. a look at <http://w3schools.com/sql/sql_alias.asp>.
```language-sql ```sql
SELECT * FROM node n, term_data td, term_node tn WHERE td.tid = 84 AND n.nid = tn.nid AND tn.tid = td.tid; SELECT * FROM node n, term_data td, term_node tn WHERE td.tid = 84 AND n.nid = tn.nid AND tn.tid = td.tid;
``` ```
@ -65,7 +65,7 @@ To confirm everything, I ran a simple query against an old post. I know that the
only taxonomy term associated with this post is 'Personal', which has a tid only taxonomy term associated with this post is 'Personal', which has a tid
value of 44. value of 44.
```language-sql ```sql
SELECT nid, tid FROM term_node WHERE nid = 216; SELECT nid, tid FROM term_node WHERE nid = 216;
``` ```

View file

@ -21,7 +21,7 @@ when a complete node was displayed.
I have previously seen it done this way by adding this into in a node.tpl.php I have previously seen it done this way by adding this into in a node.tpl.php
file: file:
```language-php ```php
if ($teaser) { if ($teaser) {
// The teaser output. // The teaser output.
} }
@ -40,7 +40,7 @@ looks for and attempts to use when displaying a node, and this is where I'll be
adding a new suggestion for my teaser-specific template. Using the `debug()` adding a new suggestion for my teaser-specific template. Using the `debug()`
function, I can easily see what's already there. function, I can easily see what's already there.
```language-php ```php
array ( array (
0 => 'node__article', 0 => 'node__article',
1 => 'node__343', 1 => 'node__343',
@ -51,7 +51,7 @@ array (
So, within my theme's template.php file: So, within my theme's template.php file:
```language-php ```php
/** /**
* Implementation of hook_preprocess_HOOK(). * Implementation of hook_preprocess_HOOK().
*/ */
@ -67,7 +67,7 @@ function mytheme_preprocess_node(&$variables) {
After adding the new suggestion: After adding the new suggestion:
```language-php ```php
array ( array (
0 => 'node__article', 0 => 'node__article',
1 => 'node__343', 1 => 'node__343',

View file

@ -67,7 +67,7 @@ Within the **Builds** section of the item, I added an _Execute Shell_ step,
where I could enter a command to execute. Here, I pasted a modified version of where I could enter a command to execute. Here, I pasted a modified version of
the original publish.sh script. the original publish.sh script.
```language-bash ```bash
#!/bin/bash #!/bin/bash
set -uex set -uex
@ -94,7 +94,7 @@ or greater than the time of the build.
The YAML front matter: The YAML front matter:
```language-yaml ```yaml
--- ---
... ...
talks: talks:
@ -105,7 +105,7 @@ talks:
The Twig layout: The Twig layout:
```language-twig ```twig
{% for talk in talks|reverse if talk.date >= now %} {% for talk in talks|reverse if talk.date >= now %}
{# Upcoming talks #} {# Upcoming talks #}
@ -155,7 +155,7 @@ script.
### Updating Composer ### Updating Composer
```language-bash ```bash
if [ -f composer.json ]; then if [ -f composer.json ]; then
/usr/local/bin/composer install /usr/local/bin/composer install
fi fi
@ -167,7 +167,7 @@ composer.json exists.
### Updating Sculpin Dependencies ### Updating Sculpin Dependencies
```language-bash ```bash
if [ -f sculpin.json ]; then if [ -f sculpin.json ]; then
sculpin install sculpin install
fi fi
@ -178,7 +178,7 @@ that the required custom bundles and dependencies are installed.
### Managing Redirects ### Managing Redirects
```language-bash ```bash
if [ -f scripts/redirects.php ]; then if [ -f scripts/redirects.php ]; then
/usr/bin/php scripts/redirects.php /usr/bin/php scripts/redirects.php
fi fi

View file

@ -24,7 +24,7 @@ using a [Twig][2] template.
For example: For example:
```language-php ```php
# test.php # test.php
require __DIR__ '/vendor/autoload.php'; require __DIR__ '/vendor/autoload.php';
@ -64,7 +64,7 @@ and replace them with the `boolean_string` filter.
Before: Before:
<div v-pre markdown="1"> <div v-pre markdown="1">
```language-twig ```twig
{{ filter.isArchive ? 'true' : 'false' }} {{ filter.isArchive ? 'true' : 'false' }}
``` ```
</div> </div>
@ -72,7 +72,7 @@ Before:
After: After:
<div v-pre markdown="1"> <div v-pre markdown="1">
```language-twig ```twig
{{ filter.isArchive|boolean_string }} {{ filter.isArchive|boolean_string }}
``` ```
</div> </div>
@ -80,7 +80,7 @@ After:
This can then be used to generate output like this, whereas having blank values This can then be used to generate output like this, whereas having blank values
would have resulted in errors when importing to Gmail. would have resulted in errors when importing to Gmail.
```language-xml ```xml
<apps:property name='shouldArchive' value='true'/> <apps:property name='shouldArchive' value='true'/>
``` ```

View file

@ -14,7 +14,7 @@ I see this regularly when working on Drupal sites when someone wants to check
whether the current user is logged in to Drupal (authenticated) or not whether the current user is logged in to Drupal (authenticated) or not
(anonymous). (anonymous).
```language-php ```php
global $user; global $user;
if ($user->uid) { if ($user->uid) {
// The user is logged in. // The user is logged in.
@ -23,7 +23,7 @@ if ($user->uid) {
or or
```language-php ```php
global $user; global $user;
if (!$user->uid) { if (!$user->uid) {
// The user is not logged in. // The user is not logged in.
@ -34,7 +34,7 @@ The better way to do this is to use the
[user_is_logged_in()](http://api.drupal.org/api/drupal/modules!user!user.module/function/user_is_logged_in/7) [user_is_logged_in()](http://api.drupal.org/api/drupal/modules!user!user.module/function/user_is_logged_in/7)
function. function.
```language-php ```php
if (user_is_logged_in()) { if (user_is_logged_in()) {
// Do something. // Do something.
} }
@ -47,7 +47,7 @@ load the global variable.
A great use case for this is within a `hook_menu()` implementation within a A great use case for this is within a `hook_menu()` implementation within a
custom module. custom module.
```language-php ```php
/** /**
* Implements hook_menu(). * Implements hook_menu().
*/ */

View file

@ -11,12 +11,12 @@ How to checkout a specific revision from a SVN (Subversion) repository.
If you're checking out the repository for the first time: If you're checking out the repository for the first time:
```language-bash ```bash
$ svn checkout -r 1234 url://repository/path $ svn checkout -r 1234 url://repository/path
``` ```
If you already have the repository checked out: If you already have the repository checked out:
```language-bash ```bash
$ svn up -r 1234 $ svn up -r 1234
``` ```

View file

@ -16,7 +16,7 @@ configuration until after I created the form components. I added 'Name',
'Email', 'Subject' and 'Message' fields, as well as a 'Category' select list. 'Email', 'Subject' and 'Message' fields, as well as a 'Category' select list.
Below 'Options', I entered each of my desired options in the following format: Below 'Options', I entered each of my desired options in the following format:
```language-ini ```ini
Email address|Visible name Email address|Visible name
``` ```

View file

@ -31,7 +31,7 @@ have one) or the standard settings.php file.
The first thing that we need to do is to enable rerouting. Without doing this, The first thing that we need to do is to enable rerouting. Without doing this,
nothing will happen. nothing will happen.
```language-php ```php
$conf['reroute_email_enable'] = TRUE; $conf['reroute_email_enable'] = TRUE;
``` ```
@ -39,14 +39,14 @@ The next option is to whether to show rerouting description in mail body. I
usually have this enabled. Set this to TRUE or FALSE depending on your usually have this enabled. Set this to TRUE or FALSE depending on your
preference. preference.
```language-php ```php
$conf['reroute_email_enable_message'] = TRUE; $conf['reroute_email_enable_message'] = TRUE;
``` ```
The last setting is the email address to use. If you're entering a single The last setting is the email address to use. If you're entering a single
address, you can add it as a simple string. address, you can add it as a simple string.
```language-php ```php
$conf['reroute_email_address'] = 'person1@example.com'; $conf['reroute_email_address'] = 'person1@example.com';
``` ```
@ -57,7 +57,7 @@ If you want to add multiple addresses, these should be added in a
semicolon-delimited list. Whilst you could add these also as a string, I prefer semicolon-delimited list. Whilst you could add these also as a string, I prefer
to use an array of addresses and the `implode()` function. to use an array of addresses and the `implode()` function.
```language-php ```php
$conf['reroute_email_address'] = implode(';', array( $conf['reroute_email_address'] = implode(';', array(
'person1@example.com', 'person1@example.com',
'person2@example.com', 'person2@example.com',

View file

@ -39,7 +39,7 @@ have a list of all the galleries on my site which are published, and what
they're unique node ID values are. To do this, I opened Sequel Pro and entered they're unique node ID values are. To do this, I opened Sequel Pro and entered
the following code: the following code:
```language-sql ```sql
SELECT title SELECT title
AS title, nid AS title, nid
AS gallery_idFROM node AS gallery_idFROM node
@ -55,7 +55,7 @@ For example, using [aliasing](http://www.w3schools.com/sql/sql_alias.asp) within
my SQL statement, I can retrieve a list of all the published photos within the my SQL statement, I can retrieve a list of all the published photos within the
'British Squad 2008' gallery by using the following code: 'British Squad 2008' gallery by using the following code:
```language-sql ```sql
SELECT n.title, n.nid, p.field_gallery_nid SELECT n.title, n.nid, p.field_gallery_nid
FROM node n, content_type_photo p FROM node n, content_type_photo p
WHERE p.field_gallery_nid = 105 WHERE p.field_gallery_nid = 105
@ -66,7 +66,7 @@ AND n.nid = p.nid;
I can easily change this to count the number of published nodes by changing the I can easily change this to count the number of published nodes by changing the
first line of the query to read SELECT COUNT(\*). first line of the query to read SELECT COUNT(\*).
```language-sql ```sql
SELECT COUNT(*) SELECT COUNT(*)
FROM node n, content_type_photo p FROM node n, content_type_photo p
WHERE p.field_gallery_nid = 105 WHERE p.field_gallery_nid = 105
@ -80,7 +80,7 @@ to each gallery by creating a custom node-gallery.tpl.php file within my theme.
I can then use the following PHP code to retrieve the node ID for that specific I can then use the following PHP code to retrieve the node ID for that specific
gallery: gallery:
```language-php ```php
<?php <?php
$selected_gallery = db_result(db_query(" $selected_gallery = db_result(db_query("
SELECT nid SELECT nid
@ -94,7 +94,7 @@ AND title = '$title'
I can then use this variable as part of my next query to count the number of I can then use this variable as part of my next query to count the number of
photos within that gallery, similar to what I did earlier. photos within that gallery, similar to what I did earlier.
```language-php ```php
<?php <?php
$gallery_total = db_result(db_query(" $gallery_total = db_result(db_query("
SELECT COUNT(*) SELECT COUNT(*)
@ -109,7 +109,7 @@ album. This was done by using a similar query that also sorted the results in a
descending order, and limited it to one result - effectively only returning the descending order, and limited it to one result - effectively only returning the
created date for the newest photo. created date for the newest photo.
```language-php ```php
<?php <?php
$latest_photo = db_result(db_query(" $latest_photo = db_result(db_query("
SELECT n.created SELECT n.created
@ -124,7 +124,7 @@ ORDER BY n.created DESC LIMIT 1
This was all then added into a 'print' statement which displayed it into the This was all then added into a 'print' statement which displayed it into the
page. page.
```language-php ```php
<?php <?php
if ($selected_gallery_total != 0) { if ($selected_gallery_total != 0) {
$output = '<i>There are currently ' . $selected_gallery_total . ' photos in this gallery.'; $output = '<i>There are currently ' . $selected_gallery_total . ' photos in this gallery.';
@ -140,7 +140,7 @@ You will notice that the returned date value for the latest photo added is
displaying the UNIX timestamp instead of in a more readable format. This can be displaying the UNIX timestamp instead of in a more readable format. This can be
changed by altering the 'print' statement to include a PHP 'date' function: changed by altering the 'print' statement to include a PHP 'date' function:
```language-php ```php
<?php <?php
if ($selected_gallery_total != 0) { if ($selected_gallery_total != 0) {
$output = '<i>There are currently ' . $selected_gallery_total . ' photos in this gallery.'; $output = '<i>There are currently ' . $selected_gallery_total . ' photos in this gallery.';

View file

@ -19,7 +19,7 @@ before, and create something different that also displays the created and
modified dates. Picking the node ID of the required gallery, I used the modified dates. Picking the node ID of the required gallery, I used the
following SQL query to display a list of photos. following SQL query to display a list of photos.
```language-sql ```sql
SELECT n.title, n.nid, n.created, n.changed, p.field_gallery_nid SELECT n.title, n.nid, n.created, n.changed, p.field_gallery_nid
FROM node n, content_type_photo pWHERE n.type = 'photo' FROM node n, content_type_photo pWHERE n.type = 'photo'
AND p.field_gallery_nid = 103AND n.nid = p.nid AND p.field_gallery_nid = 103AND n.nid = p.nid
@ -36,7 +36,7 @@ gallery to the same time.
The result that I'm given is '1217149200'. I can now use an UPDATE statement The result that I'm given is '1217149200'. I can now use an UPDATE statement
within another SQL query to update the created and modified dates. within another SQL query to update the created and modified dates.
```language-sql ```sql
UPDATE node UPDATE node
INNER JOIN content_type_photo INNER JOIN content_type_photo
ON node.nid = content_type_photo.nid ON node.nid = content_type_photo.nid

View file

@ -14,7 +14,7 @@ that I'd include it in
[Part 3](/blog/create-better-photo-gallery-drupal-part-3/ 'Create a Better Photo Gallery in Drupal - Part 3'), [Part 3](/blog/create-better-photo-gallery-drupal-part-3/ 'Create a Better Photo Gallery in Drupal - Part 3'),
but I forgot). So, here it is: but I forgot). So, here it is:
```language-php ```php
<?php <?php
// Queries the database and returns a list of nids of published galleries. // Queries the database and returns a list of nids of published galleries.

View file

@ -22,14 +22,14 @@ the heading information from the original View. I can now use the function
called 'views_embed_view' to embed my taxonomy display onto the display. The called 'views_embed_view' to embed my taxonomy display onto the display. The
views_embed_view function is as follows: views_embed_view function is as follows:
```language-php ```php
<?php views_embed_view('my_view', 'block_1', $arg1, $arg2); ?> <?php views_embed_view('my_view', 'block_1', $arg1, $arg2); ?>
``` ```
So, to display the galleries that are assigned the taxonomy of 'tournaments', I So, to display the galleries that are assigned the taxonomy of 'tournaments', I
can use the following: can use the following:
```language-php ```php
<?php print views_embed_view('photo_gallery', 'page_2', 'tournaments'); ?> <?php print views_embed_view('photo_gallery', 'page_2', 'tournaments'); ?>
``` ```
@ -38,7 +38,7 @@ generate the same code for each taxonomy term. It dynamically retrieves the
relevant taxonomy terms from the database, and uses each name as the argument relevant taxonomy terms from the database, and uses each name as the argument
for the view. for the view.
```language-php ```php
<?php <?php
$terms = db_query("SELECT * FROM {term_data} WHERE vid = 1"); $terms = db_query("SELECT * FROM {term_data} WHERE vid = 1");
while ($term = db_fetch_array($terms)) { while ($term = db_fetch_array($terms)) {

View file

@ -21,7 +21,7 @@ Tools and [LESS](http://drupal.org/project/less 'LESS module on drupal.org')
modules, and then to enable both modules. I'm doing this using Drush, but you modules, and then to enable both modules. I'm doing this using Drush, but you
can of course do this via the admin interface at admin/modules. can of course do this via the admin interface at admin/modules.
```language-bash ```bash
$ drush dl less omega omega_tools; $ drush dl less omega omega_tools;
$ drush en -y less omega_tools $ drush en -y less omega_tools
``` ```
@ -30,14 +30,14 @@ With the Omega Tools module enabled I get the drush omega-subtheme command that
creates my Omega subtheme programatically. Using this command, I'm creating a creates my Omega subtheme programatically. Using this command, I'm creating a
new subtheme, enabling it and setting it as the default theme on my site. new subtheme, enabling it and setting it as the default theme on my site.
```language-bash ```bash
$ drush omega-subtheme "Oliver Davies" --machine_name="oliverdavies" --enable --set-default $ drush omega-subtheme "Oliver Davies" --machine_name="oliverdavies" --enable --set-default
``` ```
By default, four stylesheets are created within the subtheme's css directory. By default, four stylesheets are created within the subtheme's css directory.
The first thing that I'm going to do is rename `global.css` to `global.less`. The first thing that I'm going to do is rename `global.css` to `global.less`.
```language-bash ```bash
$ mv css/global.css css/global.less $ mv css/global.css css/global.less
``` ```
@ -48,7 +48,7 @@ then `Ctrl+R` to replace, entering `global.css` as the search phrase, and then
oliverdavies.info, I need to clear Drupal's caches for the changes to be oliverdavies.info, I need to clear Drupal's caches for the changes to be
applied. applied.
```language-bash ```bash
$ drush cc all $ drush cc all
``` ```

View file

@ -42,7 +42,7 @@ page.
I added the following code into my About page, as described in the Fancy Slide I added the following code into my About page, as described in the Fancy Slide
readme.txt file - the number representing the ID of the slideshow. readme.txt file - the number representing the ID of the slideshow.
```language-php ```php
<?php print theme('fancy_slide', 1); ?> <?php print theme('fancy_slide', 1); ?>
``` ```

View file

@ -16,13 +16,13 @@ sub-theme of [Zen](https://drupal.org/project/zen).
First, download the [Zen](https://drupal.org/project/zen 'The Zen theme') theme First, download the [Zen](https://drupal.org/project/zen 'The Zen theme') theme
if you haven't already done so. if you haven't already done so.
```language-bash ```bash
$ drush dl zen $ drush dl zen
``` ```
This will now enable you to use the "drush zen" command. This will now enable you to use the "drush zen" command.
```language-bash ```bash
$ drush zen "Oliver Davies" oliverdavies --description="A Zen sub-theme for oliverdavies.co.uk" --without-rtl $ drush zen "Oliver Davies" oliverdavies --description="A Zen sub-theme for oliverdavies.co.uk" --without-rtl
``` ```

View file

@ -23,7 +23,7 @@ best solution I think is to use table prefixes and create a different domain
table per environment. With a live, staging and local domains, the tables would table per environment. With a live, staging and local domains, the tables would
be named as follows: be named as follows:
```language-bash ```bash
live_domain live_domain
local_domain local_domain
staging_domain staging_domain
@ -33,7 +33,7 @@ Within each site's settings.php file, define the prefix for the domain table
within the databases array so that each site is looking at the correct table for within the databases array so that each site is looking at the correct table for
its environment. its environment.
```language-php ```php
$databases['default']['default'] = array( $databases['default']['default'] = array(
'driver' => 'mysql', 'driver' => 'mysql',
'database' => 'foobar', 'database' => 'foobar',

View file

@ -40,7 +40,7 @@ itself, along with it's descriptive text. To view the existing tokens and types,
use `dpm(token_get_info());`, assuming that you have the use `dpm(token_get_info());`, assuming that you have the
[Devel module](http://drupal.org/project/devel) installed. [Devel module](http://drupal.org/project/devel) installed.
```language-php ```php
/** /**
* Implements hook_token_info(). * Implements hook_token_info().
*/ */
@ -66,7 +66,7 @@ Now that the Token module is aware of our new token, we now need to determine
what the token is replaced with. This is done using `hook_tokens()`. Here is the what the token is replaced with. This is done using `hook_tokens()`. Here is the
basic code needed for an implementation: basic code needed for an implementation:
```language-php ```php
/** /**
* Implements hook_tokens(). * Implements hook_tokens().
*/ */
@ -88,7 +88,7 @@ available tokens using a `switch()`. For each token, you can perform some logic
to work out the replacement text and then add it into the replacements array to work out the replacement text and then add it into the replacements array
using `$replacements[$original] = $new;`. using `$replacements[$original] = $new;`.
```language-php ```php
/** /**
* Implements hook_tokens(). * Implements hook_tokens().
*/ */
@ -123,7 +123,7 @@ function foo_tokens($type, $tokens, array $data = array(), array $options = arra
An example from Copyright Block module: An example from Copyright Block module:
```language-php ```php
/** /**
* Implements hook_tokens(). * Implements hook_tokens().
*/ */
@ -153,7 +153,7 @@ With everything defined, all that we now need to do is pass some text through
the `token_replace()` function to replace it with the values defined within the `token_replace()` function to replace it with the values defined within
`hook_token()`. `hook_token()`.
```language-php ```php
$a = t('Something'); $a = t('Something');
// This would use any token type - node, user etc. // This would use any token type - node, user etc.
$b = token_replace($a); $b = token_replace($a);

View file

@ -13,7 +13,7 @@ tags:
For reference, this is the code needed to display a menu in a Drupal 7 template For reference, this is the code needed to display a menu in a Drupal 7 template
file, including the navigation ARIA role. file, including the navigation ARIA role.
```language-php ```php
$menu_name = 'menu-footer-menu'; $menu_name = 'menu-footer-menu';
$menu_id = 'footer-menu'; $menu_id = 'footer-menu';
print theme('links', array( print theme('links', array(

View file

@ -18,7 +18,7 @@ Here's how to do it.
For example (with some slight modifications): For example (with some slight modifications):
```language-bash ```bash
oliver@oliver-mbp:~/Development/drupal(master) $ oliver@oliver-mbp:~/Development/drupal(master) $
oliver@oliver-mbp:~/Development/a11y_checklist(7.x-1.0) $ oliver@oliver-mbp:~/Development/a11y_checklist(7.x-1.0) $
``` ```
@ -27,13 +27,13 @@ Here's how to do it.
To begin with, create a new file to contain the functions, To begin with, create a new file to contain the functions,
```language-bash ```bash
vim ~/.bash/git-prompt vim ~/.bash/git-prompt
``` ```
Paste the following code into the file, and save it. Paste the following code into the file, and save it.
```language-bash ```bash
parse_git_branch () { parse_git_branch () {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
} }
@ -53,13 +53,13 @@ parse_git_branch_or_tag() {
Edit your `.bashrc` or `.bash_profile` file to override the PS1 value. Edit your `.bashrc` or `.bash_profile` file to override the PS1 value.
```language-bash ```bash
vim ~/.bashrc vim ~/.bashrc
``` ```
Add the following code at the bottom of the file, and save it. Add the following code at the bottom of the file, and save it.
```language-bash ```bash
source ~/.bash/git-prompt source ~/.bash/git-prompt
PS1="\u@\h:\w\$(parse_git_branch_or_tag) $ " PS1="\u@\h:\w\$(parse_git_branch_or_tag) $ "
``` ```

View file

@ -19,7 +19,7 @@ formatted with commas etc - like where I've used it within the
[Gold Event listing](http://www.horseandcountry.tv/events/paid) on the Horse & [Gold Event listing](http://www.horseandcountry.tv/events/paid) on the Horse &
Country TV website. Country TV website.
```language-php ```php
$page_id = "143394365692197"; $page_id = "143394365692197";
$xml = @simplexml_load_file("http://api.facebook.com/restserver.php?method=facebook.fql.query&amp;query=SELECT%20fan_count%20FROM%20page%20WHERE%20page_id=".$page_id."") or die ("a lot"); $xml = @simplexml_load_file("http://api.facebook.com/restserver.php?method=facebook.fql.query&amp;query=SELECT%20fan_count%20FROM%20page%20WHERE%20page_id=".$page_id."") or die ("a lot");
$fans = $xml->page->fan_count; $fans = $xml->page->fan_count;

View file

@ -21,7 +21,7 @@ process/page.inc.
The first step is to use the default mytheme_process() and mytheme_preprocess() The first step is to use the default mytheme_process() and mytheme_preprocess()
functions to utilise my custom function. So within my template.php file: functions to utilise my custom function. So within my template.php file:
```language-php ```php
<?php <?php
/** /**
@ -45,7 +45,7 @@ function mytheme_process(&$variables, $hook) {
Now, to write the `mytheme_invoke()` function: Now, to write the `mytheme_invoke()` function:
```language-php ```php
<?php <?php
/** /**

View file

@ -17,7 +17,7 @@ to write a .php script and bootstrap Drupal to gain access to functions like
To bootstrap Drupal, you would need to add some additional lines of code to the To bootstrap Drupal, you would need to add some additional lines of code to the
stop of your script. Here is an alternative way. stop of your script. Here is an alternative way.
```language-php ```php
<?php <?php
// Bootstrap Drupal. // Bootstrap Drupal.
@ -36,14 +36,14 @@ http://example.com/foo.php to execute it. This is where the "drush php-script"
command (or "drush scr" for short) is useful, and can be used to execute the command (or "drush scr" for short) is useful, and can be used to execute the
script from the command line. script from the command line.
```language-bash ```bash
$ drush scr foo.php $ drush scr foo.php
``` ```
It also means that I no longer need to manually bootstrap Drupal, so my script It also means that I no longer need to manually bootstrap Drupal, so my script
is much cleaner. is much cleaner.
```language-php ```php
// Just do stuff. // Just do stuff.
$node = node_load(1); $node = node_load(1);
``` ```
@ -56,14 +56,14 @@ can now run the following command to go up one level, into the scripts directory
and then execute the script. Note that you do not need to include the file and then execute the script. Note that you do not need to include the file
extension. extension.
```language-bash ```bash
$ drush scr ../scripts/foo $ drush scr ../scripts/foo
``` ```
Or, if you're using Or, if you're using
[Drush aliases](http://deeson-online.co.uk/labs/drupal-drush-aliases-and-how-use-them 'Drupal, Drush aliases, and how to use them'): [Drush aliases](http://deeson-online.co.uk/labs/drupal-drush-aliases-and-how-use-them 'Drupal, Drush aliases, and how to use them'):
```language-bash ```bash
$ drush @mysite.local scr foo $ drush @mysite.local scr foo
``` ```

View file

@ -26,7 +26,7 @@ need to download that as well.
By declarding the core version of Drupal, such as "drupal-6", Drush will By declarding the core version of Drupal, such as "drupal-6", Drush will
download that instead. download that instead.
```language-bash ```bash
$ drush dl drupal-6 $ drush dl drupal-6
``` ```
@ -34,20 +34,20 @@ This downloads the most recent stable version of Drupal 6. If you don't want
that, you can add the --select and additionally the --all options to be that, you can add the --select and additionally the --all options to be
presented with an entire list to chose from. presented with an entire list to chose from.
```language-bash ```bash
$ drush dl drupal-6 --select $ drush dl drupal-6 --select
$ drush dl drupal-6 --select --all $ drush dl drupal-6 --select --all
``` ```
If you want the most recent development version, just type: If you want the most recent development version, just type:
```language-bash ```bash
$ drush dl drupal-6.x $ drush dl drupal-6.x
``` ```
The same can be done for other core versions of Drupal, from Drupal 5 upwards. The same can be done for other core versions of Drupal, from Drupal 5 upwards.
```language-bash ```bash
# This will download Drupal 5 # This will download Drupal 5
$ drush dl drupal-5 $ drush dl drupal-5
# This will download Drupal 8 # This will download Drupal 8

View file

@ -43,7 +43,7 @@ the site went live).
This I believe is the Drupal code where the error was being triggered: This I believe is the Drupal code where the error was being triggered:
```language-php ```php
// modules/contrib/commerce_stripe/src/Plugin/Commerce/PaymentGateway/Stripe.php // modules/contrib/commerce_stripe/src/Plugin/Commerce/PaymentGateway/Stripe.php
public function createPayment(PaymentInterface $payment, $capture = TRUE) { public function createPayment(PaymentInterface $payment, $capture = TRUE) {
@ -70,7 +70,7 @@ public function createPayment(PaymentInterface $payment, $capture = TRUE) {
I can also see in the Stripe library where the original error is generated. I can also see in the Stripe library where the original error is generated.
```language-php ```php
private static function _specificAPIError($rbody, $rcode, $rheaders, $resp, $errorData) private static function _specificAPIError($rbody, $rcode, $rheaders, $resp, $errorData)
{ {
$msg = isset($errorData['message']) ? $errorData['message'] : null; $msg = isset($errorData['message']) ? $errorData['message'] : null;

View file

@ -16,7 +16,7 @@ necessary command every time.
For example, here is the command provided to clone Drupals For example, here is the command provided to clone Drupals
[Override Node Options module](https://www.drupal.org/project/override_node_options): [Override Node Options module](https://www.drupal.org/project/override_node_options):
```plain ```
git clone --branch 8.x-2.x https://git.drupal.org/project/override_node_options.git git clone --branch 8.x-2.x https://git.drupal.org/project/override_node_options.git
``` ```
@ -51,7 +51,7 @@ patches to.
Again, here is the provided command to clone the Override Node Options module: Again, here is the provided command to clone the Override Node Options module:
```plain ```
git clone --branch 8.x-2.x https://git.drupal.org/project/override_node_options.git git clone --branch 8.x-2.x https://git.drupal.org/project/override_node_options.git
``` ```

View file

@ -37,7 +37,7 @@ watch session was also ending the script process.
### composer.json ### composer.json
```language-json ```json
"scripts": { "scripts": {
"clean": "rm -rf output_*/", "clean": "rm -rf output_*/",
"dev": "sculpin generate --clean --no-interaction --server --watch", "dev": "sculpin generate --clean --no-interaction --server --watch",
@ -49,7 +49,7 @@ Run with `composer run <name>`, e.g. `composer run dev`.
### package.json ### package.json
```language-json ```json
"scripts": { "scripts": {
"init": "yarn && bower install", "init": "yarn && bower install",
"dev": "gulp watch", "dev": "gulp watch",

View file

@ -23,7 +23,7 @@ The first thing that I needed to do to render the form was to load an empty
instance of the entityform using `entityform_empty_load()`. In this example, instance of the entityform using `entityform_empty_load()`. In this example,
`newsletter` is the name of my form type. `newsletter` is the name of my form type.
```language-php ```php
$form = entityform_empty_load('newsletter'); $form = entityform_empty_load('newsletter');
``` ```
@ -38,7 +38,7 @@ As this function is within the `entityform.admin.inc` file and not autoloaded by
Drupal, I needed to include it using `module_load_include()` so that the Drupal, I needed to include it using `module_load_include()` so that the
function was available. function was available.
```language-php ```php
module_load_include('inc', 'entityform', 'entityform.admin'); module_load_include('inc', 'entityform', 'entityform.admin');
$output = entityform_form_wrapper($form, 'submit', 'embedded'), $output = entityform_form_wrapper($form, 'submit', 'embedded'),

View file

@ -29,7 +29,7 @@ lot of them would fail where they would pass when run within Drupal VM.
Heres an excerpt from my `docker-compose.yml` file: Heres an excerpt from my `docker-compose.yml` file:
```language-yaml ```yaml
services: services:
php: php:
image: wodby/drupal-php:5.6 image: wodby/drupal-php:5.6
@ -53,7 +53,7 @@ across both and the Nginx backend is set to use the `php` container.
This is the command that I was using to run the tests: This is the command that I was using to run the tests:
```language-bash ```bash
$ docker-compose run --rm \ $ docker-compose run --rm \
-w /var/www/html/web \ -w /var/www/html/web \
php \ php \
@ -71,7 +71,7 @@ the `--rm` option.
This resulted in 60 of the 112 tests failing, whereas they all passed when run This resulted in 60 of the 112 tests failing, whereas they all passed when run
within a Drupal VM instance. within a Drupal VM instance.
```language-markup ```
Test summary Test summary
------------ ------------
@ -95,7 +95,7 @@ site, I got this error message:
Whereas `curl http://nginx` returns the HTML for the page, so included it with Whereas `curl http://nginx` returns the HTML for the page, so included it with
the `--url` option to `run-tests.sh`, and this resulted in my tests all passing. the `--url` option to `run-tests.sh`, and this resulted in my tests all passing.
```language-bash ```bash
$ docker-compose run --rm \ $ docker-compose run --rm \
-w /var/www/html/web \ -w /var/www/html/web \
php \ php \
@ -105,7 +105,7 @@ $ docker-compose run --rm \
--class OverrideNodeOptionsTestCase --class OverrideNodeOptionsTestCase
``` ```
```language-markup ```
Test summary Test summary
------------ ------------

View file

@ -29,7 +29,7 @@ message.
For example: For example:
```language-bash ```bash
--author="opdavies <opdavies@381388.no-reply.drupal.org>" --author="opdavies <opdavies@381388.no-reply.drupal.org>"
``` ```
@ -61,7 +61,7 @@ From the [manual page](http://git-scm.com/docs/git-format-patch):
Here is a section of a patch that I created for the Here is a section of a patch that I created for the
[Metatag module](http://drupal.org/project/metatag) using `git format-patch`: [Metatag module](http://drupal.org/project/metatag) using `git format-patch`:
```language-bash ```bash
From 80c8fa14de7f4a83c2e70367aab0aedcadf4f3b0 Mon Sep 17 00:00:00 2001 From 80c8fa14de7f4a83c2e70367aab0aedcadf4f3b0 Mon Sep 17 00:00:00 2001
From: Oliver Davies &lt;oliver@oliverdavies.co.uk&gt; From: Oliver Davies &lt;oliver@oliverdavies.co.uk&gt;
Subject: [PATCH] Exclude comment entities when checking if this is the page, Subject: [PATCH] Exclude comment entities when checking if this is the page,
@ -116,14 +116,14 @@ best command to do this with is the `git am` command.
For example, within your repository, run: For example, within your repository, run:
```language-bash ```bash
$ git am /path/to/file $ git am /path/to/file
$ git am ~/Code/metatag-comment-fragment-conflict-2265447-4.patch $ git am ~/Code/metatag-comment-fragment-conflict-2265447-4.patch
``` ```
You should end up with some output similar to the following: You should end up with some output similar to the following:
```language-bash ```bash
Applying: #2272799 Added supporters section Applying: #2272799 Added supporters section
Applying: #2272799 Added navigation tabs Applying: #2272799 Added navigation tabs
Applying: #2272799 Fixed indentation Applying: #2272799 Fixed indentation

View file

@ -19,13 +19,13 @@ First, I need to download the
make my module dependent on date_popup by adding the following line into my make my module dependent on date_popup by adding the following line into my
module's .info file. module's .info file.
```language-ini ```ini
dependencies[] = date_popup dependencies[] = date_popup
``` ```
Within my form builder function: Within my form builder function:
```language-php ```php
$form['date'] = array( $form['date'] = array(
'#title' => t('Arrival date'), '#title' => t('Arrival date'),

View file

@ -22,7 +22,7 @@ original user.pages.inc file. Within the duplicate file, I made the same changes
to the function that I did in earlier code, and saved the changes. Now, within to the function that I did in earlier code, and saved the changes. Now, within
my Terminal, I can navigate to Drupal's root directory and create the patch. my Terminal, I can navigate to Drupal's root directory and create the patch.
```language-bash ```bash
diff -rup modules/user/user.pages.inc modules/user/user.pages2.inc > /Users/oliver/Desktop/different_messages_for_blocked_users.patch diff -rup modules/user/user.pages.inc modules/user/user.pages2.inc > /Users/oliver/Desktop/different_messages_for_blocked_users.patch
``` ```
@ -32,13 +32,13 @@ specified patch file.
To apply the patch to my Drupal installation, I go back to Terminal and run the To apply the patch to my Drupal installation, I go back to Terminal and run the
following code: following code:
```language-bash ```bash
patch -p0 < /Users/oliver/Desktop/different_messages_for_blocked_users.patch patch -p0 < /Users/oliver/Desktop/different_messages_for_blocked_users.patch
``` ```
If, for some reason, I need to reverse the patch, I can run this code: If, for some reason, I need to reverse the patch, I can run this code:
```language-bash ```bash
patch -p0 -R < /Users/oliver/Desktop/different_messages_for_blocked_users.patch patch -p0 -R < /Users/oliver/Desktop/different_messages_for_blocked_users.patch
``` ```

View file

@ -20,14 +20,14 @@ already installed.
Firstly, I'm going to ensure that all of my installed packages are up to date, Firstly, I'm going to ensure that all of my installed packages are up to date,
and install any available updates. and install any available updates.
```language-bash ```bash
$ sudo apt-get update $ sudo apt-get update
``` ```
Now, I need to download the subversion, subversion-tools and libapache2 Now, I need to download the subversion, subversion-tools and libapache2
packages. packages.
```language-bash ```bash
$ sudo apt-get install subversion subversion-tools libapache2-svn $ sudo apt-get install subversion subversion-tools libapache2-svn
``` ```
@ -39,7 +39,7 @@ Now, I need to create the directory where my repositories are going to sit. I've
chosen this directory as I know that it's one that is accessible to my managed chosen this directory as I know that it's one that is accessible to my managed
backup service. backup service.
```language-bash ```bash
$ sudo mkdir /home/svn $ sudo mkdir /home/svn
``` ```
@ -48,7 +48,7 @@ $ sudo mkdir /home/svn
First, I'll create a new folder in which I'll create my test project, and then First, I'll create a new folder in which I'll create my test project, and then
I'll create a repository for it. I'll create a repository for it.
```language-bash ```bash
$ sudo mkdir ~/test $ sudo mkdir ~/test
$ sudo svnadmin create /home/svn/test -m 'initial project structure' $ sudo svnadmin create /home/svn/test -m 'initial project structure'
``` ```
@ -57,14 +57,14 @@ This will create a new repository containing the base file structure.
## Adding files into the test project ## Adding files into the test project
```language-bash ```bash
$ cd ~/test $ cd ~/test
$ mkdir trunk tags branches $ mkdir trunk tags branches
``` ```
I can now import these new directories into the test repository. I can now import these new directories into the test repository.
```language-bash ```bash
$ sudo svn import ~/test file:///home/svn/test -m 'Initial project directories' $ sudo svn import ~/test file:///home/svn/test -m 'Initial project directories'
``` ```
@ -75,7 +75,7 @@ needs to be owned by the same user and group that Apache runs as. In Ubuntu,
this is usually www-data. To change the owner of a directory, use the chown this is usually www-data. To change the owner of a directory, use the chown
command. command.
```language-bash ```bash
$ sudo chown -R www-data:www-data /home/svn $ sudo chown -R www-data:www-data /home/svn
``` ```
@ -84,13 +84,13 @@ $ sudo chown -R www-data:www-data /home/svn
The first thing that I need to do is enable the dav_svn Apache module, using the The first thing that I need to do is enable the dav_svn Apache module, using the
a2enmod command. a2enmod command.
```language-bash ```bash
$ sudo a2enmod dav_svn $ sudo a2enmod dav_svn
``` ```
With this enabled, now I need to modify the Apache configuration file. With this enabled, now I need to modify the Apache configuration file.
```language-bash ```bash
$ cd /etc/apache2 $ cd /etc/apache2
$ sudo nano apache2.conf $ sudo nano apache2.conf
``` ```
@ -98,7 +98,7 @@ $ sudo nano apache2.conf
At the bottom of the file, add the following lines, and then save the file by At the bottom of the file, add the following lines, and then save the file by
pressing Ctrl+X. pressing Ctrl+X.
```language-apacheconf ```
<Location "/svn"> <Location "/svn">
DAV svn DAV svn
SVNParentPath /home/svn SVNParentPath /home/svn
@ -107,7 +107,7 @@ pressing Ctrl+X.
With this saved, restart the Apache service for the changes to be applied. With this saved, restart the Apache service for the changes to be applied.
```language-bash ```bash
sudo service apache2 restart sudo service apache2 restart
``` ```
@ -125,7 +125,7 @@ password before viewing or performing any actions with the repository.
Re-open apache2.conf, and replace the SVN Location information with this: Re-open apache2.conf, and replace the SVN Location information with this:
```language-apacheconf ```
<Location "/svn"> <Location "/svn">
DAV svn DAV svn
SVNParentPath /home/svn SVNParentPath /home/svn
@ -138,7 +138,7 @@ Re-open apache2.conf, and replace the SVN Location information with this:
Now I need to create the password file. Now I need to create the password file.
```language-bash ```bash
$ htpasswd -cm /etc/svn-auth oliver $ htpasswd -cm /etc/svn-auth oliver
``` ```
@ -152,7 +152,7 @@ For example, now want to checkout the files within my repository into a new
directory called 'test2' within my home directory. Firstly, I need to create the directory called 'test2' within my home directory. Firstly, I need to create the
new directory, and then I can issue the checkout command. new directory, and then I can issue the checkout command.
```language-bash ```bash
$ cd ~ $ cd ~
$ mkdir test2 $ mkdir test2
$ svn checkout http://127.0.0.1/svn/test/trunk test2 $ svn checkout http://127.0.0.1/svn/test/trunk test2
@ -168,7 +168,7 @@ Now you can start adding files into the directory. Once you've created your
files, perform a svn add command, passing in individual filenames as further files, perform a svn add command, passing in individual filenames as further
arguments. arguments.
```language-bash ```bash
$ svn add index.php $ svn add index.php
$ svn add * $ svn add *
``` ```

View file

@ -12,7 +12,7 @@ Within the [Docksal documentation for Drupal settings][0], the example database
settings include hard-coded credentials to connect to the Drupal database. For settings include hard-coded credentials to connect to the Drupal database. For
example, within a `settings.php` file, you could add this: example, within a `settings.php` file, you could add this:
```language-php ```php
$databases['default']['default'] = [ $databases['default']['default'] = [
'driver' => 'mysql', 'driver' => 'mysql',
'host' => 'db', 'host' => 'db',
@ -76,7 +76,7 @@ If you see this, the environment variables arent being passed into Docksal
`.docksal/docksal.yml` and add `MYSQL_DATABASE`, `MYSQL_PASSWORD` and `.docksal/docksal.yml` and add `MYSQL_DATABASE`, `MYSQL_PASSWORD` and
`MYSQL_USER` to the `environment` section of the `cli` service. `MYSQL_USER` to the `environment` section of the `cli` service.
```language-yml ```yaml
version: '2.1' version: '2.1'
services: services:
cli: cli:

View file

@ -16,7 +16,7 @@ Using a file structure similar to this, organise your font files into
directories, using the the font name for both the directory name and for the directories, using the the font name for both the directory name and for the
file names. file names.
```language-bash ```bash
. .
├── FuturaBold ├── FuturaBold
│ ├── FuturaBold.eot │ ├── FuturaBold.eot
@ -44,7 +44,7 @@ Within your SASS file, start an `@each` loop, listing the names of the fonts. In
the same way as PHP's `foreach` loop, each font name will get looped through the same way as PHP's `foreach` loop, each font name will get looped through
using the `$family` variable and then compiled into CSS. using the `$family` variable and then compiled into CSS.
```language-scss ```scss
@each $family in FuturaBook, FuturaBold, FuturaBoldItalic, FuturaItalic { @each $family in FuturaBook, FuturaBold, FuturaBoldItalic, FuturaItalic {
@font-face { @font-face {
font-family: #{$family}; font-family: #{$family};
@ -62,6 +62,6 @@ using the `$family` variable and then compiled into CSS.
When the CSS has been compiled, you can then use in your CSS in the standard When the CSS has been compiled, you can then use in your CSS in the standard
way. way.
```language-scss ```scss
font-family: "FuturaBook"; font-family: "FuturaBook";
``` ```

View file

@ -17,7 +17,7 @@ defined within settings.php (this is also best practice on all Drupal sites).
The way that was recommended was by using a `switch()` function based on The way that was recommended was by using a `switch()` function based on
Pantheon's environment variable. For example: Pantheon's environment variable. For example:
```language-php ```php
switch ($_SERVER['PANTHEON_ENVIRONMENT']) { switch ($_SERVER['PANTHEON_ENVIRONMENT']) {
case 'dev': case 'dev':
// Development environment. // Development environment.
@ -48,7 +48,7 @@ file.
To do this, add the following code to the bottom of settings.php: To do this, add the following code to the bottom of settings.php:
```language-php ```php
if (isset($_SERVER['PANTHEON_ENVIRONMENT'])) { if (isset($_SERVER['PANTHEON_ENVIRONMENT'])) {
if ($_SERVER['PANTHEON_ENVIRONMENT'] != 'live') { if ($_SERVER['PANTHEON_ENVIRONMENT'] != 'live') {
// You can still add things here, for example to apply to all sites apart // You can still add things here, for example to apply to all sites apart
@ -79,7 +79,7 @@ Within the sites/default directory, I also include an example file
(example.settings.env.php) for reference. This is duplicated, renamed and (example.settings.env.php) for reference. This is duplicated, renamed and
populated accordingly. populated accordingly.
```language-php ```php
<?php <?php
/** /**

View file

@ -17,7 +17,7 @@ credentials and API keys safe.
At the bottom of settings.php, add the following code: At the bottom of settings.php, add the following code:
```language-php ```php
$local_settings = __DIR__ . '/settings.local.php'; $local_settings = __DIR__ . '/settings.local.php';
if (file_exists($local_settings)) { if (file_exists($local_settings)) {
include $local_settings; include $local_settings;
@ -42,14 +42,14 @@ won't show up as a file available to be committed. There are two ways to fix
this. The first is to use the `--force` option when adding the file which this. The first is to use the `--force` option when adding the file which
overrides the ignore file: overrides the ignore file:
```language-bash ```bash
git add --force sites/default/settings.php git add --force sites/default/settings.php
``` ```
The other option is to update the .gitignore file itself so that settings.php is The other option is to update the .gitignore file itself so that settings.php is
no longer ignored. An updated .gitignore file could look like: no longer ignored. An updated .gitignore file could look like:
```language-bash ```bash
# Ignore configuration files that may contain sensitive information. # Ignore configuration files that may contain sensitive information.
sites/*/settings.local*.php sites/*/settings.local*.php

View file

@ -25,7 +25,7 @@ changes._
The library can be downloaded directly from GitHub, and should be placed within The library can be downloaded directly from GitHub, and should be placed within
you _sites/all/libraries/nomensa_amp_ directory. you _sites/all/libraries/nomensa_amp_ directory.
```language-bash ```bash
drush dl libraries nomensa_amp drush dl libraries nomensa_amp
git clone https://github.com/nomensa/Accessible-Media-Player sites/all/libraries/nomensa_amp git clone https://github.com/nomensa/Accessible-Media-Player sites/all/libraries/nomensa_amp
cd sites/all/libraries/nomensa_amp cd sites/all/libraries/nomensa_amp
@ -44,13 +44,13 @@ Within your content add links to your videos. For example:
### YouTube ### YouTube
```language-html ```html
<a href="http://www.youtube.com/watch?v=Zi31YMGmQC4">Checking colour contrast</a> <a href="http://www.youtube.com/watch?v=Zi31YMGmQC4">Checking colour contrast</a>
``` ```
### Vimeo ### Vimeo
```language-html ```html
<a href="http://vimeo.com/33729937">Screen readers are strange, when you're a stranger by Leonie Watson</a> <a href="http://vimeo.com/33729937">Screen readers are strange, when you're a stranger by Leonie Watson</a>
``` ```
@ -66,7 +66,7 @@ captions file:
For example: For example:
```language-html ```html
<a href="http://www.youtube.com/watch?v=Zi31YMGmQC4">Checking colour contrast</a> <a class="captions" href="http://oliverdavies.co.uk/sites/default/files/checking-colour-contrast-captions.xml">Captions for Checking Colour Contrast</a> <a href="http://www.youtube.com/watch?v=Zi31YMGmQC4">Checking colour contrast</a> <a class="captions" href="http://oliverdavies.co.uk/sites/default/files/checking-colour-contrast-captions.xml">Captions for Checking Colour Contrast</a>
``` ```

View file

@ -312,7 +312,7 @@ foreach ($client->stream($responses) as $response => $chunk) {
#### FrameworkBundle/Autowiring #### FrameworkBundle/Autowiring
```yml ```yaml
framework: framework:
http_client: http_client:
max_host_connections: 4 max_host_connections: 4

View file

@ -41,7 +41,7 @@ file.
You can define a simple dependency for your module by adding a line this this to You can define a simple dependency for your module by adding a line this this to
your project's .info file: your project's .info file:
```language-bash ```bash
dependencies[] = views dependencies[] = views
``` ```
@ -55,13 +55,13 @@ In the previous example, our module would enable if _any_ version of Views was
enabled, but we need to specify a specific version. We can do this by including enabled, but we need to specify a specific version. We can do this by including
version numbers within the dependencies field in the following format: version numbers within the dependencies field in the following format:
```language-bash ```bash
dependencies[] = modulename (major.minor) dependencies[] = modulename (major.minor)
``` ```
This can be a for a specific module release or a branch name: This can be a for a specific module release or a branch name:
```language-bash ```bash
dependencies[] = modulename (1.0) dependencies[] = modulename (1.0)
dependencies[] = modulename (1.x) dependencies[] = modulename (1.x)
``` ```
@ -79,7 +79,7 @@ In the original scenario, we want to specify that the module can only be enabled
on Drupal core 7.36 or later. To do this, we can use the "greater than or equal on Drupal core 7.36 or later. To do this, we can use the "greater than or equal
to" option. to" option.
```language-ini ```ini
dependencies[] = system (>=7.36) dependencies[] = system (>=7.36)
``` ```

View file

@ -20,7 +20,7 @@ of a file etc.
These can be changed by going to Preferences > Settings - User. These can be changed by going to Preferences > Settings - User.
```language-json ```json
{ {
"color_scheme": "Packages/Theme - Aqua/Color Schemes/Tomorrow Night Aqua.tmTheme", "color_scheme": "Packages/Theme - Aqua/Color Schemes/Tomorrow Night Aqua.tmTheme",
"default_line_ending": "unix", "default_line_ending": "unix",
@ -87,7 +87,7 @@ These can be changed by going to Preferences > Settings - User.
These can be changed by going to Preferences > Key Bindings - User. These can be changed by going to Preferences > Key Bindings - User.
```language-json ```json
[ [
{ "keys": ["alt+s"], "command": "toggle_side_bar" }, { "keys": ["alt+s"], "command": "toggle_side_bar" },
{ "keys": ["alt+r"], "command": "reindent" } { "keys": ["alt+r"], "command": "reindent" }

View file

@ -10,7 +10,7 @@ This is an example of how my Nginx configuration looked to redirect from an old
domain to a new one, and also to redirect from the root `example.com` domain to domain to a new one, and also to redirect from the root `example.com` domain to
the canonical `www` subdomain. the canonical `www` subdomain.
```language-nginx ```nginx
server { server {
listen 80; listen 80;
@ -33,13 +33,13 @@ This was fixed by making a small change to my `return` statement.
Before: Before:
```language-nginx ```nginx
return 301 https://www.example.com$uri; return 301 https://www.example.com$uri;
``` ```
After: After:
```language-nginx ```nginx
return 301 https://www.example.com$uri$is_args$args; return 301 https://www.example.com$uri$is_args$args;
``` ```

View file

@ -98,7 +98,7 @@ for users in Drupal 8. In this case, a [NullUser][4] is an extension of Drupal
for a non-existent User. Though, through inheritance, the `id`, `getRoles` and for a non-existent User. Though, through inheritance, the `id`, `getRoles` and
`hasPermission` methods are overridden to return relevant values. `hasPermission` methods are overridden to return relevant values.
```language-php ```php
use Drupal\Core\Session\AnonymousUserSession; use Drupal\Core\Session\AnonymousUserSession;
class NullUser extends AnonymousUserSession { class NullUser extends AnonymousUserSession {
@ -111,7 +111,7 @@ user is found from the `getFirst()` method, a `NullUser` is returned. Whilst I
could alternatively have returned `NULL` or `FALSE`, we then would need to check could alternatively have returned `NULL` or `FALSE`, we then would need to check
if the returned value was an object or not before calling methods on it. if the returned value was an object or not before calling methods on it.
```language-php ```php
$system_user = $this->systemUserManager->getFirst(); // Returns NULL or FALSE. $system_user = $this->systemUserManager->getFirst(); // Returns NULL or FALSE.
// Need to check if a user was returned or not. // Need to check if a user was returned or not.
@ -129,7 +129,7 @@ has the same methods and properties as a regular user, there is no need to do
the additional check as you will always receive a relevant object, and the the additional check as you will always receive a relevant object, and the
expected methods will always be present. expected methods will always be present.
```language-php ```php
$system_user = $this->systemUserManager->getFirst(); // Returns a NullUser. $system_user = $this->systemUserManager->getFirst(); // Returns a NullUser.
if ($system_user->isActive()) { if ($system_user->isActive()) {

View file

@ -13,7 +13,7 @@ How to open Sublime Text from the command line.
Paste the following code into the Mac OS X Terminal, assuming that you've Paste the following code into the Mac OS X Terminal, assuming that you've
installed Sublime Text 2 into the /Applications folder. installed Sublime Text 2 into the /Applications folder.
```language-bash ```bash
$ ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/sublime $ ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" ~/bin/sublime
``` ```

View file

@ -17,7 +17,7 @@ running and could therefore have security implications.
Rather than delete these files or change the file permissions manually for each Rather than delete these files or change the file permissions manually for each
file, I can add the following lines into my VirtualHost configuration. file, I can add the following lines into my VirtualHost configuration.
```language-apacheconf ```
<Files ~ "\.txt$"> <Files ~ "\.txt$">
Order deny,allow Order deny,allow
Deny from all Deny from all

View file

@ -47,7 +47,7 @@ perform a merge.
To simplify this, Ive added a new [publish.sh script][3] into my repository to To simplify this, Ive added a new [publish.sh script][3] into my repository to
automate the sites. This is how it currently looks: automate the sites. This is how it currently looks:
```language-bash ```bash
#!/usr/bin/env bash #!/usr/bin/env bash
SITE_ENV="prod" SITE_ENV="prod"

View file

@ -14,7 +14,7 @@ After reading numerous blog posts about how to install
Just paste the following lines into your Terminal: Just paste the following lines into your Terminal:
```language-bash ```bash
$ sudo add-apt-repository ppa:webupd8team/sublime-text-2 $ sudo add-apt-repository ppa:webupd8team/sublime-text-2
$ sudo apt-get update $ sudo apt-get update
$ sudo apt-get install sublime-text $ sudo apt-get install sublime-text

View file

@ -12,13 +12,13 @@ file from the source, and then you run a separate command to apply it.
You can save time and typing by running the two commands on one line: You can save time and typing by running the two commands on one line:
```language-bash ```bash
$ curl http://drupal.org/files/[patch-name].patch | git apply -v $ curl http://drupal.org/files/[patch-name].patch | git apply -v
``` ```
Or, if you don't have curl installed, you can use wget: Or, if you don't have curl installed, you can use wget:
```language-bash ```bash
$ wget -q -O - http://drupal.org/files/[patch-name].patch | git apply -v $ wget -q -O - http://drupal.org/files/[patch-name].patch | git apply -v
``` ```

View file

@ -71,7 +71,7 @@ for links based on their location on the page -
[extracting some Tailwind components](https://tailwindcss.com/docs/extracting-components). [extracting some Tailwind components](https://tailwindcss.com/docs/extracting-components).
<div v-pre markdown="1"> <div v-pre markdown="1">
```vuejs ```html
<template> <template>
... ...
@ -101,7 +101,7 @@ Within the `style` section, Im able to use Tailwinds custom `@apply` direc
to inject its rules into more traditional CSS, rather than needing to add them to inject its rules into more traditional CSS, rather than needing to add them
onto every link. onto every link.
```vuejs ```vue-html
<style lang="sass"> <style lang="sass">
#header a #header a
@apply text-white no-underline @apply text-white no-underline
@ -135,7 +135,7 @@ can be done within Vue. As the page could potentially have multiple sidebar
blocks, I extracted a `SidebarBlock` component which would act as a wrapper blocks, I extracted a `SidebarBlock` component which would act as a wrapper
around the blocks contents. around the blocks contents.
```vuejs ```vue-html
// src/components/Sidebar.vue // src/components/Sidebar.vue
<template> <template>
@ -201,7 +201,7 @@ I added only the page-specific styling classes to the link (as well as the
`skip-link` class that the plugin requires) as well as my own focus state to the `skip-link` class that the plugin requires) as well as my own focus state to the
skip link that I did within the `style` section of `App.vue`. skip link that I did within the `style` section of `App.vue`.
```vuejs ```vue-html
<style lang="sass"> <style lang="sass">
@tailwind preflight @tailwind preflight
@tailwind components @tailwind components

View file

@ -89,7 +89,7 @@ export default {
`src/components/Welcome.vue`: `src/components/Welcome.vue`:
<div v-pre markdown="1"> <div v-pre markdown="1">
```vuejs ```vue-html
<template> <template>
<div> <div>
<div class="bg-blue-dark"> <div class="bg-blue-dark">
@ -233,7 +233,7 @@ markup which makes the component easier to read and maintain.
<div v-pre markdown="1"> <div v-pre markdown="1">
```vuejs ```vue-html
<template> <template>
<div> <div>
<button <button

View file

@ -138,7 +138,7 @@ A list of all the environment variables can be seen by running
`symfony var:export` (add `| tr " " "\n"` if you want to view each one on a new `symfony var:export` (add `| tr " " "\n"` if you want to view each one on a new
line, and `| sort` if you want to list them alphabetically): line, and `| sort` if you want to list them alphabetically):
```dotenv ```
DATABASE_DATABASE=main DATABASE_DATABASE=main
DATABASE_DRIVER=mysql DATABASE_DRIVER=mysql
DATABASE_HOST=127.0.0.1 DATABASE_HOST=127.0.0.1

View file

@ -26,7 +26,7 @@ To use it, download and enable it from Drupal.org as you would for any other
module, and then add it as a dependency within your module. The xautoload module, and then add it as a dependency within your module. The xautoload
project page suggests including a minimum version in this format: project page suggests including a minimum version in this format:
```language-ini ```ini
dependencies[] = xautoload (>= 7.x-5.0) dependencies[] = xautoload (>= 7.x-5.0)
``` ```
@ -38,7 +38,7 @@ This will ensure that the version of xautoload is 7.x-5.0 or newer.
Here is an example .info file for a migrate module. Here is an example .info file for a migrate module.
```language-ini ```ini
; foo_migrate.info ; foo_migrate.info
name = Foo Migration name = Foo Migration
@ -58,7 +58,7 @@ One thing that the xautoload module does to enable for the use of wildcards
within this syntax. By using wildcards, the module file can be simplified as within this syntax. By using wildcards, the module file can be simplified as
follows: follows:
```language-ini ```ini
files[] = includes/**/*.inc files[] = includes/**/*.inc
``` ```
@ -93,7 +93,7 @@ In order to do so, youll need to complete the following steps:
Now your class may look something like this: Now your class may look something like this:
```language-php ```php
<?php <?php
namespace Drupal\foo_migrate\Node; namespace Drupal\foo_migrate\Node;
@ -111,7 +111,7 @@ they are no longer needed and any classes will be loaded automatically.
Within `foo_migrate.migrate.inc`, I can now reference any class names using Within `foo_migrate.migrate.inc`, I can now reference any class names using
their full namespace: their full namespace:
```language-php ```php
$node_arguments['ArticleNode'] = array( $node_arguments['ArticleNode'] = array(
'class_name' => 'Drupal\foo_migrate\Node\FooArticleNodeMigration', 'class_name' => 'Drupal\foo_migrate\Node\FooArticleNodeMigration',
'source_type' => 'story', 'source_type' => 'story',

View file

@ -11,7 +11,7 @@ and Git Flow commands.
These should be placed within your `~/.bashrc` or `~/.bash_profile` file: These should be placed within your `~/.bashrc` or `~/.bash_profile` file:
```language-bash ```bash
alias gi="git init" alias gi="git init"
alias gcl="git clone" alias gcl="git clone"
alias gco="git checkout" alias gco="git checkout"

View file

@ -52,7 +52,7 @@ to it and push it.
For example: For example:
```language-bash ```bash
cd web/modules/custom/my_new_module cd web/modules/custom/my_new_module
# Create a new Git repository. # Create a new Git repository.

View file

@ -23,7 +23,7 @@ change is **node-blog.tpl.php**
I scrolled down until I found the piece of code that displayed the terms list: I scrolled down until I found the piece of code that displayed the terms list:
```language-php ```php
<?php if ($terms): ?> <?php if ($terms): ?>
<div class="terms terms-inline"> <div class="terms terms-inline">
<?php print t('Posted in') . $terms; ?> <?php print t('Posted in') . $terms; ?>
@ -37,7 +37,7 @@ outputing the terms.
I then added some CSS to re-size the spacing between the items, and then add the I then added some CSS to re-size the spacing between the items, and then add the
commas between them to seperate them: commas between them to seperate them:
```language-css ```css
.terms ul.links li { .terms ul.links li {
margin-right: 1px; margin-right: 1px;
padding: 0; padding: 0;
@ -56,7 +56,7 @@ I created a file named **script.js** in my theme folder with the following code
in it. After clearing Drupal's caches, this file is automatically recognised by in it. After clearing Drupal's caches, this file is automatically recognised by
Drupal 6. Drupal 6.
```language-js ```js
if (Drupal.jsEnabled) { if (Drupal.jsEnabled) {
$(document).ready(function() { $(document).ready(function() {
$('.terms ul.links li.last').prev().addClass('test'); $('.terms ul.links li.last').prev().addClass('test');
@ -68,7 +68,7 @@ This code finds the last item in the list, uses **.prev** to select the one
before it, and then uses **.addClass** to assign it the HTML class of "test". We before it, and then uses **.addClass** to assign it the HTML class of "test". We
can then use this class to target it with specific CSS. can then use this class to target it with specific CSS.
```language-css ```css
.terms ul.links li.test:after { .terms ul.links li.test:after {
content: " and"; content: " and";
} }

View file

@ -44,7 +44,7 @@ generates.
We also need to add `tailwindcss` and `postcss` so that we can use them within We also need to add `tailwindcss` and `postcss` so that we can use them within
the tests. the tests.
```plain ```
yarn add -D jest jest-matcher-css postcss tailwindcss@next yarn add -D jest jest-matcher-css postcss tailwindcss@next
``` ```
@ -242,7 +242,7 @@ time new commits are pushed.
This is done by adding a `.travis-ci.yml` file to the repository, like this one This is done by adding a `.travis-ci.yml` file to the repository, like this one
which is based on the [JavaScript and Node.js example][travis-nodejs-example]: which is based on the [JavaScript and Node.js example][travis-nodejs-example]:
```yml ```yaml
language: node_js language: node_js
node_js: node_js:

View file

@ -23,7 +23,7 @@ To do this, I needed to expose the module to the Features API.
All thats needed is to add this line to the `mymodule.info` file: All thats needed is to add this line to the `mymodule.info` file:
```language-ini ```ini
features[features_api][] = api:2 features[features_api][] = api:2
``` ```

View file

@ -42,7 +42,7 @@ feature name and the component names.
For example: For example:
```language-bash ```bash
$ drush features-export -y myfeature field_base:field_foo field_instance:user-field_foo $ drush features-export -y myfeature field_base:field_foo field_instance:user-field_foo
``` ```

View file

@ -44,7 +44,7 @@ I had a quick look for a _Update my fork_ button or something, but couldn't see
one to I added the main repository as an additional remote called `upstream` and one to I added the main repository as an additional remote called `upstream` and
fetched the changes. fetched the changes.
```language-bash ```bash
$ git remote add upstream https://github.com/sculpin/sculpin.io.git $ git remote add upstream https://github.com/sculpin/sculpin.io.git
$ git fetch upstream $ git fetch upstream
@ -60,7 +60,7 @@ Now my local site knows about the upstream repo, and I could rebase the changes
(`git pull upstream master` should have worked too) and push them back to (`git pull upstream master` should have worked too) and push them back to
origin. origin.
```language-bash ```bash
$ git rebase upstream/master $ git rebase upstream/master
First, rewinding head to replay your work on top of it... First, rewinding head to replay your work on top of it...
... ...

View file

@ -29,7 +29,7 @@ The first thing to do was to run the existing tests and check that they still
passed. I do this on the command line by typing passed. I do this on the command line by typing
`php scripts/run-tests.sh --class OverrideNodeOptionsTestCase`. `php scripts/run-tests.sh --class OverrideNodeOptionsTestCase`.
```language-markup ```
Drupal test run Drupal test run
--------------- ---------------
@ -52,7 +52,7 @@ what could be re-used.
This is one of the original tests: This is one of the original tests:
```language-php ```php
/** /**
* Test the 'Authoring information' fieldset. * Test the 'Authoring information' fieldset.
*/ */
@ -94,7 +94,7 @@ called `$generalUser` and run the first part of the tests in a loop.
With the tests passing, I was able to start refactoring. With the tests passing, I was able to start refactoring.
```language-php ```php
// Create a new user with content type specific permissions. // Create a new user with content type specific permissions.
$specificUser = $this->drupalCreateUser(array( $specificUser = $this->drupalCreateUser(array(
'create page content', 'create page content',
@ -123,7 +123,7 @@ After that change, I ran the tests again to check that everything still worked.
The next step is to start testing the new permissions. The next step is to start testing the new permissions.
```language-php ```php
... ...
$generalUser = $this->drupalCreateUser(array()); $generalUser = $this->drupalCreateUser(array());
@ -139,7 +139,7 @@ I added a new `$generalUser` to test the general permissions and added to the
loop, but in order to see the tests failing intially I assigned it no loop, but in order to see the tests failing intially I assigned it no
permissions. When running the tests again, 6 tests have failed. permissions. When running the tests again, 6 tests have failed.
```language-markup ```
Test summary Test summary
------------ ------------
@ -163,7 +163,7 @@ that the
This was fixed by adding the extra code into `override_node_options.module`. This was fixed by adding the extra code into `override_node_options.module`.
```language-diff ```diff
- $form['comment_settings']['#access'] |= user_access('override ' . $node->type . ' comment setting option'); - $form['comment_settings']['#access'] |= user_access('override ' . $node->type . ' comment setting option');
+ $form['comment_settings']['#access'] |= user_access('override ' . $node->type . ' comment setting option') || user_access('override all comment setting option'); + $form['comment_settings']['#access'] |= user_access('override ' . $node->type . ' comment setting option') || user_access('override all comment setting option');
``` ```
@ -177,7 +177,7 @@ Note: You can get more verbose output from `run-tests.sh` by adding the
> Node vid was updated to '3', expected 2. > Node vid was updated to '3', expected 2.
```language-diff ```diff
- $fields = array( - $fields = array(
- 'revision' => TRUE, - 'revision' => TRUE,
- ); - );
@ -223,7 +223,7 @@ version of the node was loaded during each loop.
With the refactoring complete, the number of passing tests increased from 142 With the refactoring complete, the number of passing tests increased from 142
to 213. to 213.
```language-markup ```
Override node options 213 passes, 0 fails, 0 exceptions, and 60 debug messages Override node options 213 passes, 0 fails, 0 exceptions, and 60 debug messages
Test run duration: 25 sec Test run duration: 25 sec

View file

@ -17,7 +17,7 @@ I'd generated a list of node ID values, and needed to add structure the SQL
update statment formatted in a certain way. However, I changed my inital query update statment formatted in a certain way. However, I changed my inital query
slightly to out put the same nid value twice. slightly to out put the same nid value twice.
```language-sql ```sql
SELECT nid, nid FROM node WHERE TYPE = 'blog' ORDER BY nid ASC; SELECT nid, nid FROM node WHERE TYPE = 'blog' ORDER BY nid ASC;
``` ```
@ -26,7 +26,7 @@ into Coda:
As before, I needed my SQL update statement to be in the following format: As before, I needed my SQL update statement to be in the following format:
```language-sql ```sql
INSERT INTO term_node VALUE (nid, vid, tid), (nid2, vid2, tid); INSERT INTO term_node VALUE (nid, vid, tid), (nid2, vid2, tid);
``` ```

View file

@ -33,7 +33,7 @@ The first thing to do is download the PHPSass library from
a requirement of the Sassy module and we can't enable it without the library. a requirement of the Sassy module and we can't enable it without the library.
So, in a Terminal window: So, in a Terminal window:
```language-bash ```bash
$ mkdir -p sites/all/libraries; $ mkdir -p sites/all/libraries;
$ cd sites/all/libraries; $ cd sites/all/libraries;
$ wget https://github.com/richthegeek/phpsass/archive/master.tar.gz; $ wget https://github.com/richthegeek/phpsass/archive/master.tar.gz;
@ -44,7 +44,7 @@ $ mv phpsass-master/ phpsass
Or, if you're using Drush Make files: Or, if you're using Drush Make files:
```language-ini ```ini
libraries[phpsass][download][type] = "get" libraries[phpsass][download][type] = "get"
libraries[phpsass][download][url] = "https://github.com/richthegeek/phpsass/archive/master.tar.gz" libraries[phpsass][download][url] = "https://github.com/richthegeek/phpsass/archive/master.tar.gz"
``` ```
@ -55,7 +55,7 @@ The PHPSass library should now be located at `sites/all/libraries/phpsass`.
This is easy if you use [Drush](http://drupal.org/project/drush): This is easy if you use [Drush](http://drupal.org/project/drush):
```language-bash ```bash
$ drush dl libraries prepro sassy $ drush dl libraries prepro sassy
$ drush en -y libraries prepro sassy sassy_compass $ drush en -y libraries prepro sassy sassy_compass
``` ```

View file

@ -27,7 +27,7 @@ console.log(Encore.getWebpackConfig().module.rules)
There I can see the the test for PostCSS supports the `.css` and `.postcss` file extensions, but not `.pcss`. There I can see the the test for PostCSS supports the `.css` and `.postcss` file extensions, but not `.pcss`.
```plain ```
test: /\.(css|postcss)$/, test: /\.(css|postcss)$/,
``` ```

View file

@ -17,7 +17,7 @@ better to configure this within your settings.php or settings.local.php file. We
do this using the `$conf` array which removes the need to configure the module do this using the `$conf` array which removes the need to configure the module
through the UI and store the values in the database. through the UI and store the values in the database.
```language-php ```php
// File proxy to the live site. // File proxy to the live site.
$conf['stage_file_proxy_origin'] = 'http://www.example.com'; $conf['stage_file_proxy_origin'] = 'http://www.example.com';
@ -32,6 +32,6 @@ If the origin site is not publicly accessible yet, maybe it's a pre-live or
staging site, and protected with a basic access authentication, you can include staging site, and protected with a basic access authentication, you can include
the username and password within the origin URL. the username and password within the origin URL.
```language-php ```php
$conf['stage_file_proxy_origin'] = 'http://user:password@prelive.example.com'; $conf['stage_file_proxy_origin'] = 'http://user:password@prelive.example.com';
``` ```

View file

@ -40,7 +40,7 @@ your custom theme's directory (e.g. `sites/all/themes/custom/mytheme` for Drupal
Create a `postcss.config.js` file and add `tailwindcss` as a plugin, passing the Create a `postcss.config.js` file and add `tailwindcss` as a plugin, passing the
path to the config file: path to the config file:
```language-js ```js
module.exports = { module.exports = {
plugins: [ plugins: [
require('tailwindcss')('./tailwind.js'), require('tailwindcss')('./tailwind.js'),
@ -54,7 +54,7 @@ There are some configuration settings within `tailwind.js` that youll need to
change to make things work nicely with Drupal. These are within the `options` change to make things work nicely with Drupal. These are within the `options`
section: section:
```language-js ```js
options: { options: {
prefix: 'tw-', prefix: 'tw-',
important: true, important: true,
@ -85,7 +85,7 @@ rules.
For example: if I had this core markup then the left margin added by `tw-ml-4` For example: if I had this core markup then the left margin added by `tw-ml-4`
would be overridden by cores `.item-list ul` styling. would be overridden by cores `.item-list ul` styling.
```language-html ```html
<div class="item-list"> <div class="item-list">
<ul class="tw-ml-4"> <ul class="tw-ml-4">
... ...

View file

@ -9,7 +9,7 @@ tags:
- theming - theming
--- ---
```language-ini ```ini
name = My Theme name = My Theme
description = A description of my theme description = A description of my theme
core = 7.x core = 7.x

View file

@ -43,7 +43,7 @@ For the module, we are going to satisfy this example acceptance criteria:
Lets start by writing the minimal code needed in order for the new module to be Lets start by writing the minimal code needed in order for the new module to be
enabled. In Drupal 8, this is the `.info.yml` file. enabled. In Drupal 8, this is the `.info.yml` file.
```language-yaml ```yaml
# tdd_dublin.info.yml # tdd_dublin.info.yml
name: 'TDD Dublin' name: 'TDD Dublin'
@ -58,7 +58,7 @@ is a functional test, it extends the `BrowserTestBase` class, and we need to
ensure that the tdd_dublin module is enabled by adding it to the `$modules` ensure that the tdd_dublin module is enabled by adding it to the `$modules`
array. array.
```language-php ```php
// tests/src/Functional/PageListTest.php // tests/src/Functional/PageListTest.php
namespace Drupal\Tests\tdd_dublin\Functional; namespace Drupal\Tests\tdd_dublin\Functional;
@ -85,7 +85,7 @@ be 200, otherwise it will be 404.
I usually like to write comments first within the test method, just to outline I usually like to write comments first within the test method, just to outline
the steps that I'm going to take and then replace it with code. the steps that I'm going to take and then replace it with code.
```language-php ```php
public function testListingPageExists() { public function testListingPageExists() {
// Go to /pages and check that it is accessible by checking the status // Go to /pages and check that it is accessible by checking the status
// code. // code.
@ -95,7 +95,7 @@ public function testListingPageExists() {
We can use the `drupalGet()` method to browse to the required path, i.e. We can use the `drupalGet()` method to browse to the required path, i.e.
`/pages`, and then write an assertion for the response code value. `/pages`, and then write an assertion for the response code value.
```language-php ```php
public function testListingPageExists() { public function testListingPageExists() {
$this->drupalGet('pages'); $this->drupalGet('pages');
@ -111,7 +111,7 @@ autoloaded so can be found, though the path to the `vendor` directory may be
different depending on your project structure. You can also specify a path different depending on your project structure. You can also specify a path
within which to run the tests - e.g. within the modules `test` directory. within which to run the tests - e.g. within the modules `test` directory.
```language-plain ```
$ vendor/bin/phpunit -c core modules/custom/tdd_dublin/tests $ vendor/bin/phpunit -c core modules/custom/tdd_dublin/tests
``` ```
@ -119,7 +119,7 @@ $ vendor/bin/phpunit -c core modules/custom/tdd_dublin/tests
Note: Im using Docksal, and Ive noticed that I need to run the tests from within the CLI container. You can do this by running the `fin bash` command. Note: Im using Docksal, and Ive noticed that I need to run the tests from within the CLI container. You can do this by running the `fin bash` command.
</div> </div>
```language-plain ```
1) Drupal\Tests\tdd_dublin\Functional\PageListTest::testListingPageExists 1) Drupal\Tests\tdd_dublin\Functional\PageListTest::testListingPageExists
Behat\Mink\Exception\ExpectationException: Current response status code is 404, but 200 expected. Behat\Mink\Exception\ExpectationException: Current response status code is 404, but 200 expected.
@ -158,7 +158,7 @@ of the file needs to be removed so the configuration can be installed.
Here is the exported view configuration: Here is the exported view configuration:
```language-yaml ```yaml
langcode: en langcode: en
status: true status: true
dependencies: dependencies:
@ -350,7 +350,7 @@ display:
When the test is run again, we see a different error that leads us to the next When the test is run again, we see a different error that leads us to the next
step. step.
```language-plain ```
1) Drupal\Tests\tdd_dublin\Functional\PageListTest::testListingPageExists 1) Drupal\Tests\tdd_dublin\Functional\PageListTest::testListingPageExists
Drupal\Core\Config\UnmetDependenciesException: Configuration objects provided by <em class="placeholder">tdd_dublin</em> have unmet dependencies: <em class="placeholder">node.type.page (node), views.view.pages (node, views)</em> Drupal\Core\Config\UnmetDependenciesException: Configuration objects provided by <em class="placeholder">tdd_dublin</em> have unmet dependencies: <em class="placeholder">node.type.page (node), views.view.pages (node, views)</em>
@ -363,7 +363,7 @@ In this case, the view that weve added depends on the node and views modules,
but these arent enabled. To fix this, we can add the extra modules as but these arent enabled. To fix this, we can add the extra modules as
dependencies of tdd_dublin so they will be enabled too. dependencies of tdd_dublin so they will be enabled too.
```language-yaml ```yaml
# tdd_dublin.info.yml # tdd_dublin.info.yml
dependencies: dependencies:
@ -371,7 +371,7 @@ dependencies:
- drupal:views - drupal:views
``` ```
```language-plain ```
1) Drupal\Tests\tdd_dublin\Functional\PageListTest::testListingPageExists 1) Drupal\Tests\tdd_dublin\Functional\PageListTest::testListingPageExists
Drupal\Core\Config\UnmetDependenciesException: Configuration objects provided by <em class="placeholder">tdd_dublin</em> have unmet dependencies: <em class="placeholder">views.view.pages (node.type.page)</em> Drupal\Core\Config\UnmetDependenciesException: Configuration objects provided by <em class="placeholder">tdd_dublin</em> have unmet dependencies: <em class="placeholder">views.view.pages (node.type.page)</em>
@ -386,7 +386,7 @@ configuration and copying it into the `config/install` directory.
With this in place, the test should now pass - and it does. With this in place, the test should now pass - and it does.
```language-plain ```
Time: 26.04 seconds, Memory: 6.00MB Time: 26.04 seconds, Memory: 6.00MB
OK (1 test, 1 assertion) OK (1 test, 1 assertion)
@ -407,7 +407,7 @@ The objectives of this test are:
- To ensure that only page nodes are returned. - To ensure that only page nodes are returned.
- To ensure that only published nodes are returned. - To ensure that only published nodes are returned.
```language-php ```php
public function testOnlyPublishedPagesAreShown() { public function testOnlyPublishedPagesAreShown() {
// Given that a have a mixture of published and unpublished pages, as well // Given that a have a mixture of published and unpublished pages, as well
// as other types of content. // as other types of content.
@ -422,7 +422,7 @@ In order to test the different scenarios, I will create an additional "article"
content type, create a node of this type as well as one published and one content type, create a node of this type as well as one published and one
unpublished page. From this combination, I only expect one node to be visible. unpublished page. From this combination, I only expect one node to be visible.
```language-php ```php
public function testOnlyPublishedPagesAreShown() { public function testOnlyPublishedPagesAreShown() {
$this->drupalCreateContentType(['type' => 'article']); $this->drupalCreateContentType(['type' => 'article']);
@ -447,7 +447,7 @@ result of the view. This returns an array of `Drupal\views\ResultRow` objects,
which contain the nodes. I can use `array_column` to extract the node IDs from which contain the nodes. I can use `array_column` to extract the node IDs from
the view result into an array. the view result into an array.
```language-php ```php
public function testOnlyPublishedPagesAreShown() { public function testOnlyPublishedPagesAreShown() {
$this->drupalCreateContentType(['type' => 'article']); $this->drupalCreateContentType(['type' => 'article']);
@ -466,7 +466,7 @@ From the generated nodes, I can use `assertEquals()` to compare the returned
node IDs from the view against an array of expected node IDs - in this case, I node IDs from the view against an array of expected node IDs - in this case, I
expect only node 1 to be returned. expect only node 1 to be returned.
```language-php ```php
public function testOnlyPublishedPagesAreShown() { public function testOnlyPublishedPagesAreShown() {
$this->drupalCreateContentType(['type' => 'article']); $this->drupalCreateContentType(['type' => 'article']);
@ -488,7 +488,7 @@ default "Content: Published" filter is already excluding one of the page nodes.
We can see from the output from the test that node 1 (a page) and node 2 (the We can see from the output from the test that node 1 (a page) and node 2 (the
article) are both being returned. article) are both being returned.
```language-plain ```
1) Drupal\Tests\tdd_dublin\Functional\PageListTest::testOnlyPublishedPagesAreShown 1) Drupal\Tests\tdd_dublin\Functional\PageListTest::testOnlyPublishedPagesAreShown
Failed asserting that two arrays are equal. Failed asserting that two arrays are equal.
--- Expected --- Expected
@ -514,7 +514,7 @@ based on the node type - i.e. only return page nodes.
Once the view is updated and the configuration is updated within the module, the Once the view is updated and the configuration is updated within the module, the
test should then pass - and it does. test should then pass - and it does.
```language-plain ```
Time: 24.76 seconds, Memory: 6.00MB Time: 24.76 seconds, Memory: 6.00MB
OK (1 test, 3 assertions) OK (1 test, 3 assertions)
@ -528,7 +528,7 @@ As we know that the correct content is being returned, we can now focus on
displaying it in the correct order. Well start again by adding a new test displaying it in the correct order. Well start again by adding a new test
method and filling out the comments. method and filling out the comments.
```language-php ```php
public function testResultsAreOrderedAlphabetically() { public function testResultsAreOrderedAlphabetically() {
// Given I have multiple nodes with different titles. // Given I have multiple nodes with different titles.
@ -543,7 +543,7 @@ title for each. These are intentionally in the incorrect order alphabetically so
that we can see the test fail initially and then see it pass after making a that we can see the test fail initially and then see it pass after making a
change so we know that the change worked. change so we know that the change worked.
```language-php ```php
public function testResultsAreOrderedAlphabetically() { public function testResultsAreOrderedAlphabetically() {
$this->drupalCreateNode(['title' => 'Page A']); $this->drupalCreateNode(['title' => 'Page A']);
$this->drupalCreateNode(['title' => 'Page D']); $this->drupalCreateNode(['title' => 'Page D']);
@ -561,7 +561,7 @@ We can use the same method as the previous test to get the returned IDs, using
node IDs match the expected node IDs in the specified order. Based on the node IDs match the expected node IDs in the specified order. Based on the
defined titles, the order should be 1, 4, 3, 2. defined titles, the order should be 1, 4, 3, 2.
```language-php ```php
public function testResultsAreOrderedAlphabetically() { public function testResultsAreOrderedAlphabetically() {
$this->drupalCreateNode(['title' => 'Page A']); $this->drupalCreateNode(['title' => 'Page A']);
$this->drupalCreateNode(['title' => 'Page D']); $this->drupalCreateNode(['title' => 'Page D']);
@ -586,7 +586,7 @@ This would be particularly more complicated to test if I was using `drupalGet()`
and having to parse the HTML, compared to getting the results as an array from and having to parse the HTML, compared to getting the results as an array from
the view programmatically. the view programmatically.
```language-plain ```
1) Drupal\Tests\tdd_dublin\Functional\PageListTest::testResultsAreOrderedAlphabetically 1) Drupal\Tests\tdd_dublin\Functional\PageListTest::testResultsAreOrderedAlphabetically
Failed asserting that two arrays are equal. Failed asserting that two arrays are equal.
--- Expected --- Expected
@ -617,7 +617,7 @@ based on "Content: Title".
Again, once the view has been updated and exported, the test should pass - and Again, once the view has been updated and exported, the test should pass - and
it does. it does.
```language-plain ```
Time: 27.55 seconds, Memory: 6.00MB Time: 27.55 seconds, Memory: 6.00MB
OK (1 test, 2 assertions) OK (1 test, 2 assertions)
@ -629,7 +629,7 @@ Now we know that all the tests pass individually, all of the module tests should
now be run to ensure that they all still pass and that there have been no now be run to ensure that they all still pass and that there have been no
regressions due to any of the changes. regressions due to any of the changes.
```language-plain ```
docker@cli:/var/www$ vendor/bin/phpunit -c core modules/custom/tdd_dublin/tests docker@cli:/var/www$ vendor/bin/phpunit -c core modules/custom/tdd_dublin/tests
Testing modules/custom/tdd_dublin/tests Testing modules/custom/tdd_dublin/tests

View file

@ -36,7 +36,7 @@ Once installed, run `:DBUIAddconnection` to add a database connection.
Here is an example connection string: Here is an example connection string:
```plain ```
mysql://drupal:drupal@localhost:3307/drupal?protocol=tcp mysql://drupal:drupal@localhost:3307/drupal?protocol=tcp
``` ```

View file

@ -13,7 +13,7 @@ Instead of doing this manually, I can achieve the same thing though using a tool
Here's an example where I'm automatically re-running my PHPUnit tests using a `just test` recipe each time a file within my custom modules directory changes: Here's an example where I'm automatically re-running my PHPUnit tests using a `just test` recipe each time a file within my custom modules directory changes:
```plain ```
nodemon \ nodemon \
--watch web/modules/custom \ --watch web/modules/custom \
--ext '*' \ --ext '*' \