Build site
This commit is contained in:
parent
6f8d067847
commit
0c7de8559a
743 changed files with 92961 additions and 0 deletions
|
@ -0,0 +1,266 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Style Drupal 6's Taxonomy Lists with PHP, CSS and jQuery | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/04/05/style-drupal-6s-taxonomy-lists-php-css-and-jquery">
|
||||
<meta property="og:title" content="Style Drupal 6's Taxonomy Lists with PHP, CSS and jQuery"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Style Drupal 6's Taxonomy Lists with PHP, CSS and jQuery</h1>
|
||||
|
||||
<p class="posted">5th April 2010</p>
|
||||
|
||||
<p>Whilst developing this, and other Drupal websites for clients, I decided that I wanted to categorise content using the taxonomy system. However, I wasn't happy with the way that Drupal displayed the terms lists by default, and I started comparing this to other websites that I look at.</p>
|
||||
|
||||
<p>To start with, I wanted to have something that described what the list was displaying - like in the second example above. I wanted to have the words 'Posted in' displayed before the list of terms. To do this, I had to edit the node template file that exists within my theme folder (sites/all/themes). As I only wanted this change to affect my Blog posts, the file that I needed to change is <strong>node-blog.tpl.php</strong></p>
|
||||
|
||||
<p>I scrolled down until I found the piece of code that displayed the terms list:</p>
|
||||
|
||||
<pre><code class="language-php"><?php if ($terms): ?>
|
||||
<div class="terms terms-inline">
|
||||
<?php print t('Posted in') . $terms; ?>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</code></pre>
|
||||
|
||||
<p>Adding <code>print t(' Posted in ')</code> will print the words 'Posted in' before outputing the terms.</p>
|
||||
|
||||
<p>I then added some CSS to re-size the spacing between the items, and then add the commas between them to seperate them:</p>
|
||||
|
||||
<pre><code class="language-css">.terms ul.links li {
|
||||
margin-right: 1px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.terms ul.links li:after {
|
||||
content: ",";
|
||||
}
|
||||
|
||||
.terms ul.links li.last:after {
|
||||
content: ".";
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
<p>I created a file named <strong>script.js</strong> in my theme folder with the following code in it. After clearing Drupal's caches, this file is automatically recognised by Drupal 6.</p>
|
||||
|
||||
<pre><code class="language-js">if (Drupal.jsEnabled) {
|
||||
$(document).ready(function() {
|
||||
$('.terms ul.links li.last').prev().addClass('test');
|
||||
})
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
<p>This code finds the last item in the list, uses <strong>.prev</strong> to select the one before it, and then uses <strong>.addClass</strong> to assign it the HTML class of "test". We can then use this class to target it with specific CSS.</p>
|
||||
|
||||
<pre><code class="language-css">.terms ul.links li.test:after {
|
||||
content: " and";
|
||||
}
|
||||
</code></pre>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-theming">drupal-theming</a>, <a href="https://www.oliverdavies.uk/blog/tags/taxonomy">taxonomy</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/04/28/using-imagecache-and-imagecrop-my-portfolio">
|
||||
Using ImageCache and ImageCrop for my Portfolio »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,245 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Using ImageCache and ImageCrop for my Portfolio | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/04/28/using-imagecache-and-imagecrop-my-portfolio">
|
||||
<meta property="og:title" content="Using ImageCache and ImageCrop for my Portfolio"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Using ImageCache and ImageCrop for my Portfolio</h1>
|
||||
|
||||
<p class="posted">28th April 2010</p>
|
||||
|
||||
<p>Whilst working on my own portfolio/testimonial website, I decided to have a portfolio page displaying the name of each site and a thumbnail image. For this Blog post, I'll be using a site called <a href="http://popcornstrips.com">Popcorn Strips</a> which I built for a friend earlier this year as an example.</p>
|
||||
|
||||
<p>I created a content type called 'Project' with a CCK ImageField called 'Screenshot'. I created a project called <a href="http://popcornstrips.com">Popcorn Strips</a>, used the <a href="https://addons.mozilla.org/addon/1146">ScreenGrab</a> add-on for Mozilla Firefox to take a screenshot of the website, and uploaded it to the project node.</p>
|
||||
|
||||
<p>I created a View to display the published projects, and an ImageCache
|
||||
preset to create the thumbnail image by scaling and cropping the image
|
||||
to a size of 200x100 pixels.</p>
|
||||
|
||||
<p>Although, this automatically focused the crop on the centre of the image, whereas I wanted to crop from the top and left of the image - showing the site's logo and header.</p>
|
||||
|
||||
<p>I installed the <a href="http://drupal.org/project/imagecrop">ImageCrop</a> module, which add a jQuery crop function to the standard ImageCache presents. I removed the original Scale and Crop action and replaced it with a Scale action with a width of 200px.</p>
|
||||
|
||||
<p>I then added a new 'Javascript crop' action with the following settings:</p>
|
||||
|
||||
<ul>
|
||||
<li>Width: 200px</li>
|
||||
<li>Height: 100px</li>
|
||||
<li>xoffset: Left</li>
|
||||
<li>yoffset: Top</li>
|
||||
</ul>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal">drupal</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/cck">cck</a>, <a href="https://www.oliverdavies.uk/blog/tags/imagecache">imagecache</a>, <a href="https://www.oliverdavies.uk/blog/tags/imagecrop">imagecrop</a>, <a href="https://www.oliverdavies.uk/blog/tags/imagefield">imagefield</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/04/05/style-drupal-6s-taxonomy-lists-php-css-and-jquery">
|
||||
« Style Drupal 6's Taxonomy Lists with PHP, CSS and jQuery
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/05/06/conditional-email-addresses-webform">
|
||||
Conditional Email Addresses in a Webform »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,233 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Conditional Email Addresses in a Webform | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/05/06/conditional-email-addresses-webform">
|
||||
<meta property="og:title" content="Conditional Email Addresses in a Webform"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Conditional Email Addresses in a Webform</h1>
|
||||
|
||||
<p class="posted">6th May 2010</p>
|
||||
|
||||
<p>I created a new Webform to serve as a simple Contact form, but left the main configuration until after I created the form components. I added 'Name', '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:</p>
|
||||
|
||||
<pre><code class="language-ini">Email address|Visible name
|
||||
</code></pre>
|
||||
|
||||
<p>I went back to the form configuration page and expanded 'Conditional Email Recipients', and selected my Category. Note that the standard 'Email To' field above it needs to be empty. Originally, I made the mistake of leaving addresses in that field which resulted in people being sent emails regardles of which category was selected. I then configured the rest of the form.</p>
|
||||
|
||||
<p>Then, when I went to the finished form, the category selection was available.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/conditional-email">conditional-email</a>, <a href="https://www.oliverdavies.uk/blog/tags/webform">webform</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/04/28/using-imagecache-and-imagecrop-my-portfolio">
|
||||
« Using ImageCache and ImageCrop for my Portfolio
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/05/10/quickly-create-zen-subthemes-using-zenophile">
|
||||
Quickly Create Zen Subthemes Using Zenophile »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,230 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Quickly Create Zen Subthemes Using Zenophile | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/05/10/quickly-create-zen-subthemes-using-zenophile">
|
||||
<meta property="og:title" content="Quickly Create Zen Subthemes Using Zenophile"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Quickly Create Zen Subthemes Using Zenophile</h1>
|
||||
|
||||
<p class="posted">10th May 2010</p>
|
||||
|
||||
<p>If you use the <a href="http://drupal.org/project/zen">Zen</a> theme, then you should also be using the <a href="http://drupal.org/project/zenophile">Zenophile</a> module!</p>
|
||||
|
||||
<p>The Zenophile module allows you to very quickly create Zen subthemes from within your web browser, as well as editing options such as the site directory where it should be placed, the layout type (fixed or fluid), page wrapper and sidebar widths, and the placement of the sidebars.</p>
|
||||
|
||||
<p>For more information about the Zenophile module, check out <a href="http://blip.tv/file/2427703">this video</a> by <a href="http://elliottrothman.com">Elliott Rothman</a>.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-modules">drupal-modules</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-theming">drupal-theming</a>, <a href="https://www.oliverdavies.uk/blog/tags/zen">zen</a>, <a href="https://www.oliverdavies.uk/blog/tags/zenophile">zenophile</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/05/06/conditional-email-addresses-webform">
|
||||
« Conditional Email Addresses in a Webform
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/05/25/create-slideshow-multiple-images-using-fancy-slide">
|
||||
Create a Slideshow of Multiple Images Using Fancy Slide »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,239 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Create a Slideshow of Multiple Images Using Fancy Slide | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/05/25/create-slideshow-multiple-images-using-fancy-slide">
|
||||
<meta property="og:title" content="Create a Slideshow of Multiple Images Using Fancy Slide"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Create a Slideshow of Multiple Images Using Fancy Slide</h1>
|
||||
|
||||
<p class="posted">25th May 2010</p>
|
||||
|
||||
<p>Whilst updating my About page, I thought about creating a slideshow of several images instead of just the one static image. When I looking on Drupal.org, the only slideshow modules were to create slideshows of images that were attached to different nodes - not multiple images attached to one node. Then, I found the <a href="http://drupal.org/project/fancy_slide">Fancy Slide</a> module. It's a jQuery Slideshow module with features that include integration with the <a href="http://drupal.org/project/cck">CCK</a>, <a href="http://drupal.org/project/imagecache">ImageCache</a> and <a href="http://drupal.org/project/nodequeue">Nodequeue</a> modules.</p>
|
||||
|
||||
<p>I added an CCK Image field to my Page content type, and set the number of values to 3, then uploaded my images to the Page.</p>
|
||||
|
||||
<p>Once the Images were added, I went to the Fancy Slide settings page and created the slideshow.</p>
|
||||
|
||||
<p>I added the dimensions of my images, the type of animation, specified the node that contained the images, the slideshow field, delay between slides and transition speed. With the slideshow created, it now needed embedding into the page.</p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<pre><code class="language-php"><?php print theme('fancy_slide', 1); ?>
|
||||
</code></pre>
|
||||
|
||||
<p>In my opinion, this adds a nice effect to the About page. I like it because it's easy to set up, and easy to add additional images later on if required.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal">drupal</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/fancy-slide">fancy-slide</a>, <a href="https://www.oliverdavies.uk/blog/tags/slideshow">slideshow</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/05/10/quickly-create-zen-subthemes-using-zenophile">
|
||||
« Quickly Create Zen Subthemes Using Zenophile
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/05/29/quickly-import-multiples-images-using-imagefieldimport-module">
|
||||
Quickly Import Multiples Images Using the Imagefield_Import Module »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,238 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Quickly Import Multiples Images Using the Imagefield_Import Module | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/05/29/quickly-import-multiples-images-using-imagefieldimport-module">
|
||||
<meta property="og:title" content="Quickly Import Multiples Images Using the Imagefield_Import Module"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Quickly Import Multiples Images Using the Imagefield_Import Module</h1>
|
||||
|
||||
<p class="posted">29th May 2010</p>
|
||||
|
||||
<p><strong>Thanks to Bob at <a href="http://mustardseedmedia.com">Mustardseed Media</a> for <a href="http://twitter.com/mustardseedinc/status/14713096905">tweeting</a> about this module. It's undoubtedly saved me hours of work today alone!</strong></p>
|
||||
|
||||
<p>I've recently started a personal project converting a website to Drupal. It's currently a static HTML/CSS site which also uses the <a href="http://coppermine-gallery.net">Coppermine Photo Gallery</a>. As part of building the new website, I wanted to move all the photos from the existing site onto the new one. However, with 1260 photos in 17 albums, this could have been a lengthy process!</p>
|
||||
|
||||
<p>I created a new Drupal-powered Gallery as described in <a href="http://lullabot.com/articles/photo-galleries-views-attach">this screencast</a> by <a href="http://twitter.com/eaton">Jeff Eaton</a> - using the CCK and Imagefield modules, and re-created each of my existing Gallery nodes. Using the <a href="http://drupal.org/project/imagefield_import">Imagefield_Import</a> module, I was then able to quickly import the photos into the new Galleries.</p>
|
||||
|
||||
<p>I downloaded all the photos from the previous Gallery via FTP, and installed and configured the Imagefield_Import module.</p>
|
||||
|
||||
<p>I created an 'Import' folder, selected the target field and mode. In this case, I want each image to be imported into its own Photo node. I moved the photos for the first album into the Import folder, and loaded the 'Import Images' screen <em>(admin/content/imagefield_import)</em>.</p>
|
||||
|
||||
<p>After clicking 'Import', a node is created for each photo, the image is uploaded, and added to the selected Gallery.</p>
|
||||
|
||||
<p>Just another 1248 photos to go...</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/imagefield-import">imagefield-import</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal">drupal</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/photo-gallery">photo-gallery</a>, <a href="https://www.oliverdavies.uk/blog/tags/cck">cck</a>, <a href="https://www.oliverdavies.uk/blog/tags/imagefield">imagefield</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/05/25/create-slideshow-multiple-images-using-fancy-slide">
|
||||
« Create a Slideshow of Multiple Images Using Fancy Slide
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/06/02/improve-jpg-quality-imagecache-and-imageapi">
|
||||
Improve JPG Quality in Imagecache and ImageAPI »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,235 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Improve JPG Quality in Imagecache and ImageAPI | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/06/02/improve-jpg-quality-imagecache-and-imageapi">
|
||||
<meta property="og:title" content="Improve JPG Quality in Imagecache and ImageAPI"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Improve JPG Quality in Imagecache and ImageAPI</h1>
|
||||
|
||||
<p class="posted">2nd June 2010</p>
|
||||
|
||||
<p>Whilst uploading images for my Projects and Testimonials sections, I noticed that the Imagecache-scaled images weren't as high a quality the originals on my Mac. I did some searching online and found out that, by default, Drupal resamples uploaded jpgs to 75% of their original quality.</p>
|
||||
|
||||
<p>To increase the quality of your images, change the setting in the two following places:</p>
|
||||
|
||||
<ul>
|
||||
<li>admin/settings/imageapi/config</li>
|
||||
<li>admin/settings/image-toolkit</li>
|
||||
</ul>
|
||||
|
||||
<p>The first one is for ImageAPI. Primarily, this means Imagecache presets. The second one is for core's image.inc. This is used for resizing profile pictures in core, and some contrib modules. Once changed, I did have to flush each of the Imagecache presets (admin/build/imagecache) for the changes to take effect.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/imagecache">imagecache</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/05/29/quickly-import-multiples-images-using-imagefieldimport-module">
|
||||
« Quickly Import Multiples Images Using the Imagefield_Import Module
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/06/23/create-block-social-media-icons-using-cck-views-and-nodequeue">
|
||||
Create a Block of Social Media Icons using CCK, Views and Nodequeue »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,236 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Create a Block of Social Media Icons using CCK, Views and Nodequeue | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/06/23/create-block-social-media-icons-using-cck-views-and-nodequeue">
|
||||
<meta property="og:title" content="Create a Block of Social Media Icons using CCK, Views and Nodequeue"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Create a Block of Social Media Icons using CCK, Views and Nodequeue</h1>
|
||||
|
||||
<p class="posted">23rd June 2010</p>
|
||||
|
||||
<p>I recently decided that I wanted to have a block displayed in a sidebar on my site containing icons and links to my social media profiles - <a href="http://twitter.com/opdavies">Twitter</a>, <a href="http://facebook.com/opdavies">Facebook</a> etc. I tried the <a href="http://drupal.org/project/follow">Follow</a> module, but it lacked the option to add extra networks such my <a href="http://drupal.org/user/381388">Drupal.org</a> account, and my <a href="http://oliverdavies.co.uk/rss.xml">RSS feed</a>. I started to create my own version, and then found <a href="http://www.hankpalan.com/blog/drupal-themes/add-your-social-connections-drupal-icons">this Blog post</a> by Hank Palan.</p>
|
||||
|
||||
<p>I created a 'Social icon' content type with the body field removed, and with fields for a link and image - then downloaded the favicons from the appropriate websites to use.</p>
|
||||
|
||||
<p>However, instead of using a custom template (node-custom.tpl.php) file, I used the Views module.</p>
|
||||
|
||||
<p>I added fields for the node titles, and the link from the node's content. Both of these are excluded from being displayed on the site. I then re-wrote the output of the Icon field to create the link using the URL, and using the node's title as the image's alternative text and the link's title.</p>
|
||||
|
||||
<p>I also used the <a href="http://drupal.org/project/nodequeue">Nodequeue</a> module to create a nodequeue and arrange the icons in the order that I wanted them to be displayed. Once this was added as a relationship within my View, I was able to use node's position in the nodequeue as the sort criteria.</p>
|
||||
|
||||
<p>To complete the process, I used the <a href="http://drupal.org/project/css_injector">CSS Injector</a> module to add some additional CSS styling to position and space out the icons.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal">drupal</a>, <a href="https://www.oliverdavies.uk/blog/tags/views">views</a>, <a href="https://www.oliverdavies.uk/blog/tags/nodequeue">nodequeue</a>, <a href="https://www.oliverdavies.uk/blog/tags/oliverdavies.co.uk">oliverdavies.co.uk</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/06/02/improve-jpg-quality-imagecache-and-imageapi">
|
||||
« Improve JPG Quality in Imagecache and ImageAPI
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/06/25/10-useful-drupal-6-modules">
|
||||
10 Useful Drupal 6 Modules »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
241
docs/blog/2010/06/25/10-useful-drupal-6-modules/index.html
Normal file
241
docs/blog/2010/06/25/10-useful-drupal-6-modules/index.html
Normal file
|
@ -0,0 +1,241 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>10 Useful Drupal 6 Modules | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/06/25/10-useful-drupal-6-modules">
|
||||
<meta property="og:title" content="10 Useful Drupal 6 Modules"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>10 Useful Drupal 6 Modules</h1>
|
||||
|
||||
<p class="posted">25th June 2010</p>
|
||||
|
||||
<p>Aside from the obvious candidates such as Views, CCK etc, here are a list of 10 contributed modules that I currently use on each Drupal project.</p>
|
||||
|
||||
<p>So, in no particular order:</p>
|
||||
|
||||
<ul>
|
||||
<li><strong><a href="http://drupal.org/project/admin">Admin</a>:</strong> <br>The admin module provides UI improvements to the standard Drupal admin interface. I've just upgraded to the new <a href="http://drupal.org/node/835870">6.x-2.0-beta4</a> version, and installed the newly-required <a href="http://code.developmentseed.org/rubik">Rubik</a>/<a href="http://code.developmentseed.org/tao">Tao</a> themes. So far, so good!</li>
|
||||
<li><strong><a href="http://drupal.org/project/better_perms">Better Permissions</a>/<a href="http://drupal.org/project/filter_perms">Filter Permissions</a>: <br></strong>Basic permissions is a basic module which enhances the Drupal Permissions page to support collapsing and expanding permission rows. Filter permissions provides filters at the top of the Permissions page for easier management when your site has a large amount of roles and/or permissions. </li>
|
||||
<li><strong><a href="http://drupal.org/project/better_formats">Better Formats</a>: <br></strong>Better formats is a module to add more flexibility to Drupal's core input format system.</li>
|
||||
<li><strong><a href="http://drupal.org/project/node_clone">Clone module</a>:</strong><br>Allows users to make a copy of an existing item of site content (a node) and then edit that copy.</li>
|
||||
<li><strong><a href="http://drupal.org/project/vertical_tabs">Vertical Tabs</a>:<br></strong>Integrated into Drupal 7 core, this module adds vertical tabs to the node add and edit forms.</li>
|
||||
<li><strong><a href="http://drupal.org/project/context">Context</a>:<br></strong>Context allows you to manage contextual conditions and reactions for different portions of your site. You can think of each context as representing a "section" of your site. For each context, you can choose the conditions that trigger this context to be active and choose different aspects of Drupal that should react to this active context.</li>
|
||||
<li><strong><a href="http://drupal.org/project/nodepicker">Node Picker</a>:</strong><br>A rewrite of the module <a href="http://drupal.org/project/tinymce_node_picker">TinyMCE Node Picker</a>. Allows you to easily create links to internal nodes.</li>
|
||||
<li><strong><a href="http://drupal.org/project/module_filter">Module Filter</a>:</strong><br>What this module aims to accomplish is the ability to quickly find the module you are looking for without having to rely on the browsers search feature which more times than not shows you the module name in the 'Required by' or 'Depends on' sections of the various modules or even some other location on the page like a menu item.</li>
|
||||
<li><strong><a href="http://drupal.org/project/zenophile">Zenophile</a>:</strong><br>Quickly create Zen subthemes.</li>
|
||||
<li><strong><a href="http://drupal.org/project/addanother">Add Another</a>:</strong><br>Add another displays a message after a user creates a node, and/or displays an "Add another" tab on nodes allowing them to make another node of the same type. You can control what roles and node types see this feature.</li>
|
||||
</ul>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal">drupal</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-modules">drupal-modules</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/06/23/create-block-social-media-icons-using-cck-views-and-nodequeue">
|
||||
« Create a Block of Social Media Icons using CCK, Views and Nodequeue
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/06/28/create-flickr-photo-gallery-using-feeds-cck-and-views">
|
||||
Create a Flickr Photo Gallery Using Feeds, CCK and Views »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,259 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Create a Flickr Photo Gallery Using Feeds, CCK and Views | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/06/28/create-flickr-photo-gallery-using-feeds-cck-and-views">
|
||||
<meta property="og:title" content="Create a Flickr Photo Gallery Using Feeds, CCK and Views"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Create a Flickr Photo Gallery Using Feeds, CCK and Views</h1>
|
||||
|
||||
<p class="posted">28th June 2010</p>
|
||||
|
||||
<p>In this tutorial, I'll show you how to create a photo gallery which uses photos imported from <a href="http://www.flickr.com">Flickr</a>.</p>
|
||||
|
||||
<p>The modules that I'll use to create the Gallery are:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://drupal.org/project/cck">CCK</a></li>
|
||||
<li><a href="http://drupal.org/project/feeds">Feeds</a></li>
|
||||
<li><a href="http://drupal.org/project/feeds_imagegrabber">Feeds Image Grabber</a></li>
|
||||
<li><a href="http://drupal.org/project/filefield">FileField</a></li>
|
||||
<li><a href="http://drupal.org/project/imageapi">ImageAPI</a></li>
|
||||
<li><a href="http://drupal.org/project/imagecache">ImageCache</a></li>
|
||||
<li><a href="http://drupal.org/project/imagefield">ImageField</a></li>
|
||||
<li><a href="http://drupal.org/project/views">Views</a></li>
|
||||
</ul>
|
||||
|
||||
<p>The first thing that I did was to create a content type to store my imported images. I named it 'Photo', removed the Body field, and added an Image field.</p>
|
||||
|
||||
<p>Next, I installed and configured the Feeds and Image Grabber module. I used an overridden default Feed to import my photos from Flickr using the following settings:</p>
|
||||
|
||||
<ul>
|
||||
<li><strong>Basic settings:</strong> I changed the Refresh time to 15 minutes.</li>
|
||||
<li><strong>Processor settings:</strong> I changed the content type to 'Photo', and the author's name from 'anonymous'.</li>
|
||||
<li><strong>Processor mapping:</strong> I added a new mapping from 'Item URL (link)' to 'Photo (FIG)'. The Photo FIG target is added by the Image Grabber module.</li>
|
||||
</ul>
|
||||
|
||||
<p>Next, I needed to create the actual Feed, which I did by clicking 'Import' within the Navigation menu, and clicking 'Feed'. I gave it a title, entered the URL to my RSS feed from Flickr, and enabled the Image Grabber for this feed.</p>
|
||||
|
||||
<p>Once the Feed is created, the latest 20 images from the RSS feed are imported and 20 new Photos nodes are created. In the example below, the image with the 'Photo' label is the Image field mapped by the Image Grabber module. It is this image that I'll be displaying within my Gallery.</p>
|
||||
|
||||
<p>With the new Photo nodes created, I then created the View to display them.</p>
|
||||
|
||||
<p>The View selects the image within the Photo content type, and displays in it a grid using an ImageCache preset. The View is limited to 20 nodes per page, and uses a full pager if this is exceeded. The nodes are sorted by the descending post date, and filtered by whether or not they are published, and only to include Photo nodes.</p>
|
||||
|
||||
<p>As an additional effect, I also included the 'Feeds Item - Item Link' field, which is basically the original link from the RSS feed. By checking the box the exclude the item from the display, it is not shown, but makes the link available to be used elsewhere. By checking the box 'Re-write the output for this field' on the 'Content: Photo' field, I was able to add the replacement token (in this case, [url]) as the path for a link around each image. This meant that when someone clicked a thumbnail of a photo, they were directed to the Flickr website instead of the node within my Drupal site.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/photo-gallery">photo-gallery</a>, <a href="https://www.oliverdavies.uk/blog/tags/views">views</a>, <a href="https://www.oliverdavies.uk/blog/tags/cck">cck</a>, <a href="https://www.oliverdavies.uk/blog/tags/imagecache">imagecache</a>, <a href="https://www.oliverdavies.uk/blog/tags/feeds">feeds</a>, <a href="https://www.oliverdavies.uk/blog/tags/filefield">filefield</a>, <a href="https://www.oliverdavies.uk/blog/tags/flickr">flickr</a>, <a href="https://www.oliverdavies.uk/blog/tags/imagefield">imagefield</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/06/25/10-useful-drupal-6-modules">
|
||||
« 10 Useful Drupal 6 Modules
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/07/01/change-content-type-multiple-nodes-using-sql">
|
||||
Change the Content Type of Multiple Nodes Using SQL »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,238 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Change the Content Type of Multiple Nodes Using SQL | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/07/01/change-content-type-multiple-nodes-using-sql">
|
||||
<meta property="og:title" content="Change the Content Type of Multiple Nodes Using SQL"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Change the Content Type of Multiple Nodes Using SQL</h1>
|
||||
|
||||
<p class="posted">1st July 2010</p>
|
||||
|
||||
<p>In this post, I will be changing values within my Drupal 6 site's database to quickly change the content type of multiple nodes. I will be using a test development site with the core Blog module installed, and converting Blog posts to a custom content type called 'News article'.</p>
|
||||
|
||||
<p><strong>Before changing any values within the database, ensure that you have an up-to-date backup which you can restore if you encounter a problem!</strong></p>
|
||||
|
||||
<p>To begin with, I created the 'News article' content type, and then used the Devel Generate module to generate some Blog nodes.</p>
|
||||
|
||||
<p>Using <a href="http://www.sequelpro.com">Sequel Pro</a>, I can query the database to view the Blog posts (you can also do this via the <a href="http://guides.macrumors.com/Terminal">Terminal</a> in a Mac OS X/Linux, <a href="http://www.oracle.com/technology/software/products/sql/index.html">Oracle SQL Developer</a> on Windows, or directly within <a href="http://www.phpmyadmin.net/home_page/index.php">phpMyAdmin</a>):</p>
|
||||
|
||||
<p>Using an SQL 'Update' command, I can change the type value from 'blog' to 'article'. This will change every occurance of the value 'blog'. If I wanted to only change certain nodes, I could add a 'Where' clause to only affect nodes with a certain nid or title.</p>
|
||||
|
||||
<p>Now, when I query the database, the type is shown as 'article'.</p>
|
||||
|
||||
<p>Now, when I go back into the administration section of my site and view the content, the content type now shows at 'News article'.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal">drupal</a>, <a href="https://www.oliverdavies.uk/blog/tags/sql">sql</a>, <a href="https://www.oliverdavies.uk/blog/tags/sequel-pro">sequel-pro</a>, <a href="https://www.oliverdavies.uk/blog/tags/database">database</a>, <a href="https://www.oliverdavies.uk/blog/tags/content-types">content-types</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/06/28/create-flickr-photo-gallery-using-feeds-cck-and-views">
|
||||
« Create a Flickr Photo Gallery Using Feeds, CCK and Views
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/07/02/create-virtual-hosts-mac-os-x-using-virtualhostx">
|
||||
Create Virtual Hosts on Mac OS X Using VirtualHostX »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,238 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Create Virtual Hosts on Mac OS X Using VirtualHostX | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/07/02/create-virtual-hosts-mac-os-x-using-virtualhostx">
|
||||
<meta property="og:title" content="Create Virtual Hosts on Mac OS X Using VirtualHostX"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Create Virtual Hosts on Mac OS X Using VirtualHostX</h1>
|
||||
|
||||
<p class="posted">2nd July 2010</p>
|
||||
|
||||
<p>This isn't a Drupal related topic per se, but it is a walk-through of one of the applications that I use whilst doing Drupal development work. I assume, like most Mac OS X users, I use <a href="http://www.mamp.info/en/index.html">MAMP</a> to run Apache, MySQL and PHP locally whilst developing. I also use virtual hosts in Apache to create local .dev domains which are as close as possible to the actual live domains. For example, if I was developing a site called mysite.com, my local development version would be mysite.dev.</p>
|
||||
|
||||
<p>Normally, I would have to edit the hosts file and Apache's httpd.conf file to create a virtual host. The first to set the domain and it's associated IP address, and the other to configure the domain's directory, default index file etc. However, using <a href="http://clickontyler.com/virtualhostx">VirtualHostX</a>, I can quickly create a virtual host without having to edt any files. Enter the virtual domain name, the local path and the port, and apply the settings. VirtualHostX automatically restarts Apache, so the domain is ready to work straight away. You can also enter custom directives from within the GUI.</p>
|
||||
|
||||
<p>There's also an option to share the host over the local network. Next, I intend on configuring a virtual Windows PC within VMware Fusion to view these domains so that I can do cross-browser testing before putting a site live.</p>
|
||||
|
||||
<p>I ensured that my Apache configuration within MAMP was set to port 80, and that VirtualHostX was using Apache from MAMP instead of Apple's built-in Apache.</p>
|
||||
|
||||
<p><strong>Note:</strong> One problem that I had after setting this up, was that I was receving an error when attempting to open a Drupal website which said <em>'No such file or directory'.</em></p>
|
||||
|
||||
<p>After some troubleshooting, I found out that Web Sharing on my Mac had become enabled (I don't know why, I've never enabled it), and that this was causing a conflict with Apache. Once I opened my System Preferences and disabled it, everything worked fine!</p>
|
||||
|
||||
<p>This, along with <a href="http://www.mamp.info/en/index.html">MAMP</a>, <a href="http://www.panic.com/coda">Coda</a>, <a href="http://www.sequelpro.com">Sequel Pro</a>, and <a href="http://www.panic.com/transmit">Transmit</a>, has become an essential tool within my development environment.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/mamp">mamp</a>, <a href="https://www.oliverdavies.uk/blog/tags/virtual-hosts">virtual-hosts</a>, <a href="https://www.oliverdavies.uk/blog/tags/virtualhostx">virtualhostx</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/07/01/change-content-type-multiple-nodes-using-sql">
|
||||
« Change the Content Type of Multiple Nodes Using SQL
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/07/07/add-taxonomy-term-multiple-nodes-using-sql">
|
||||
Add a Taxonomy Term to Multiple Nodes Using SQL »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,260 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Add a Taxonomy Term to Multiple Nodes Using SQL | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/07/07/add-taxonomy-term-multiple-nodes-using-sql">
|
||||
<meta property="og:title" content="Add a Taxonomy Term to Multiple Nodes Using SQL"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Add a Taxonomy Term to Multiple Nodes Using SQL</h1>
|
||||
|
||||
<p class="posted">7th July 2010</p>
|
||||
|
||||
<p><strong>Update:</strong> This can also be done using the <a href="http://drupal.org/project/views_bulk_operations">Views Bulk Operations</a> module.</p>
|
||||
|
||||
<p>In preparation for my Blog posts being added to <a href="http://drupal.org/planet">Drupal Planet</a>, I needed to create a new Taxonomy term (or, in this case, tag) called 'Drupal Planet', and assign it to new content to imported into their aggregator. After taking a quick look though my previous posts, I decided that 14 of my previous posts were relevant, and thought that it would be useful to also assign these the 'Drupal Planet' tag.</p>
|
||||
|
||||
<p>I didn't want to manually open each post and add the new tag, so I decided to make the changes myself directly into the database using SQL, and as a follow-up to a previous post - <a href="/blog/change-content-type-multiple-nodes-using-sql/">Quickly Change the Content Type of Multiple Nodes using SQL</a>.</p>
|
||||
|
||||
<p><strong>Again, before changing any values within the database, ensure that you have an up-to-date backup which you can restore if you encounter a problem!</strong></p>
|
||||
|
||||
<p>The first thing I did was create the 'Drupal Planet' term in my Tags vocabulary. I decided to do this via the administration area of my site, and not via the database. Then, using <a href="http://www.sequelpro.com">Sequel Pro</a>, I ran the following SQL query to give me a list of Blog posts on my site - showing just their titles and nid values.</p>
|
||||
|
||||
<pre><code class="language-sql">SELECT title, nid FROM node WHERE TYPE = 'blog' ORDER BY title ASC;
|
||||
</code></pre>
|
||||
|
||||
<p>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 Taxonomy terms - showing the term's name, and it's unique tid value.</p>
|
||||
|
||||
<pre><code class="language-sql">SELECT NAME, tid FROM term_data ORDER BY NAME ASC;
|
||||
</code></pre>
|
||||
|
||||
<p>The term that I was interested in, Drupal Planet, had the tid of 84. To confirm that no nodes were already assigned a taxonomy term with this tid, I ran another 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 a look at <a href="http://w3schools.com/sql/sql_alias.asp">http://w3schools.com/sql/sql_alias.asp</a>.</p>
|
||||
|
||||
<pre><code class="language-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;
|
||||
</code></pre>
|
||||
|
||||
<p>As expected, it returned no rows.</p>
|
||||
|
||||
<p>The table that links node and term_data is called term_node, and is made up of the nid and vid columns from the node table, as well as the tid column from the term_data table. Is it is here that the additional rows would need to be entered.</p>
|
||||
|
||||
<p>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 value of 44.</p>
|
||||
|
||||
<pre><code class="language-sql">SELECT nid, tid FROM term_node WHERE nid = 216;
|
||||
</code></pre>
|
||||
|
||||
<p>Once the query had confirmed the correct tid value, I began to write the SQL Insert statement that would be needed to add the new term to the required nodes. The nid and vid values were the same on each node, and the value of my taxonomy term would need to be 84.</p>
|
||||
|
||||
<p>Once this had completed with no errors, I returned to the administration area of my Drupal site to confirm whether or not the nodes had been assigned the new term.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/taxonomy">taxonomy</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/sql">sql</a>, <a href="https://www.oliverdavies.uk/blog/tags/sequal-pro">sequal-pro</a>, <a href="https://www.oliverdavies.uk/blog/tags/database">database</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/07/02/create-virtual-hosts-mac-os-x-using-virtualhostx">
|
||||
« Create Virtual Hosts on Mac OS X Using VirtualHostX
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/07/12/review-teleport-module">
|
||||
Review of the Teleport Module »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
238
docs/blog/2010/07/12/review-teleport-module/index.html
Normal file
238
docs/blog/2010/07/12/review-teleport-module/index.html
Normal file
|
@ -0,0 +1,238 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Review of the Teleport Module | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/07/12/review-teleport-module">
|
||||
<meta property="og:title" content="Review of the Teleport Module"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Review of the Teleport Module</h1>
|
||||
|
||||
<p class="posted">12th July 2010</p>
|
||||
|
||||
<p>As a heavily-reliant <a href="http://en.wikipedia.org/wiki/Quicksilver_%28software%29">Quicksilver</a> user on my MacBook Pro, I was glad when I found the <a href="http://drupal.org/project/teleport">Teleport</a> module for <a href="http://drupal.org">Drupal</a> <em>(due to Elliott Rothman's <a href="http://twitter.com/elliotttt/status/18044234238">tweet</a>)</em>.</p>
|
||||
|
||||
<p>When you press a configurable hot-key, a jQuery dialog box appears where you can search for nodes by title or path, or directly enter the path that you want to navigate to. This will greatly reduce the number of clicks that I need to perform to get to my desired page - even compared to the <a href="http://drupal.org/project/admin">Admin</a> and <a href="http://drupal.org/project/admin_menu">Administration Menu</a> modules.</p>
|
||||
|
||||
<p>Although it's not a new module (the first commits were 2 years ago), I hope that they are still planning on achieving the list of future directions listed on their Drupal.org project page:</p>
|
||||
|
||||
<ul>
|
||||
<li>Make interface act more like Quicksilver (i.e. you should only have to press Enter once to launch)</li>
|
||||
<li>'Actions' like Quicksilver: if you select a node, a second input should appear with options to go to the View page, Edit page, (un)publish, etc. Same with users.</li>
|
||||
<li>Hook into more non-node content, like taxonomy terms and functions in the API module.</li>
|
||||
</ul>
|
||||
|
||||
<p>Personally, this will make navigation around both the front-end and administration area of my Drupal sites so much easier.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-modules">drupal-modules</a>, <a href="https://www.oliverdavies.uk/blog/tags/teleport">teleport</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/07/07/add-taxonomy-term-multiple-nodes-using-sql">
|
||||
« Add a Taxonomy Term to Multiple Nodes Using SQL
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/08/10/review-adminhover-module">
|
||||
Review of the Admin:hover Module »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
259
docs/blog/2010/08/10/review-adminhover-module/index.html
Normal file
259
docs/blog/2010/08/10/review-adminhover-module/index.html
Normal file
|
@ -0,0 +1,259 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Review of the Admin:hover Module | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/08/10/review-adminhover-module">
|
||||
<meta property="og:title" content="Review of the Admin:hover Module"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Review of the Admin:hover Module</h1>
|
||||
|
||||
<p class="posted">10th August 2010</p>
|
||||
|
||||
<p>Sorry for the lack of Blog posts lately, but <a href="http://horseandcountry.tv">my new job</a> that I started a few weeks ago has certainly been keeping me busy! I've got a few more posts that I'm preparing content for, and I'll hopefully be back into my weekly-post routine before too long!</p>
|
||||
|
||||
<p>Today, I'd like to just give a quick overview of the <a href="http://drupal.org/project/admin_hover">Admin:hover</a> module. It basically adds an administrative menu that pops up when you hover over a node or block within your Drupal website - the kind of functionality that was present within previous versions of the <a href="http://drupal.org/project/admin">Admin module</a>. It also integrates well with the <a href="http://drupal.org/project/devel">Devel</a> and <a href="http://drupal.org/project/node_clone">Clone</a> modules.</p>
|
||||
|
||||
<p>I've found this to be extremely useful whilst working on photo galleries etc. where multiple nodes are displayed in a grid format and I quickly need to publish or unpublish something for testing purposes. No longer do I need to open each node, or go into the administration area to perform the required actions.</p>
|
||||
|
||||
<p>It is also possible to customise which links are available from within the adminstration area. The possible selections that I currently have on this site are as follows:</p>
|
||||
|
||||
<p><strong>Node links:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>Edit</li>
|
||||
<li>Publish</li>
|
||||
<li>Unpublish</li>
|
||||
<li>Promote</li>
|
||||
<li>Unpromote</li>
|
||||
<li>Make sticky</li>
|
||||
<li>Make unsticky</li>
|
||||
<li>Delete</li>
|
||||
<li>Clone</li>
|
||||
<li>Dev load</li>
|
||||
<li>View author</li>
|
||||
<li>Edit author</li>
|
||||
<li>Add</li>
|
||||
</ul>
|
||||
|
||||
<p><strong>Block links:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li>Configure block</li>
|
||||
<li>Add block</li>
|
||||
</ul>
|
||||
|
||||
<p>Although, as I have additional contributed modules installed, some of these may not neccassaily be available out of the box.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-modules">drupal-modules</a>, <a href="https://www.oliverdavies.uk/blog/tags/admin%3Ahover">admin:hover</a>, <a href="https://www.oliverdavies.uk/blog/tags/administration">administration</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/07/12/review-teleport-module">
|
||||
« Review of the Teleport Module
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/08/11/create-better-photo-gallery-drupal-part-1">
|
||||
Create a Better Photo Gallery in Drupal - Part 1 »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,325 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Create a Better Photo Gallery in Drupal - Part 1 | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/08/11/create-better-photo-gallery-drupal-part-1">
|
||||
<meta property="og:title" content="Create a Better Photo Gallery in Drupal - Part 1"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Create a Better Photo Gallery in Drupal - Part 1</h1>
|
||||
|
||||
<p class="posted">11th August 2010</p>
|
||||
|
||||
<p>Recently, I converted a client's static HTML website, along with their Coppermine Photo Gallery, into a Drupal-powered website.</p>
|
||||
|
||||
<p>Over the next few posts, I'll be replicating the process that I used during the conversion, and how I added some additional features to my Drupal gallery.</p>
|
||||
|
||||
<p>To begin with, I created my photo gallery as described by <a href="http://www.lullabot.com/about/team/jeff-eaton">Jeff Eaton</a> in <a href="http://www.lullabot.com/articles/photo-galleries-views-attach">this screencast</a>, downloaded all my client's previous photos via FTP, and quickly added them into the new gallery using the <a href="http://drupal.org/project/imagefield_import">Imagefield Import</a> module (which I mentioned <a href="/blog/quickly-import-multiples-images-using-imagefieldimport-module/">previously</a>).</p>
|
||||
|
||||
<p>When I compare this to the previous gallery, I can see several differences which I'd like to include. The first of which is the number of photos in each gallery, and the date that the most recent photo was added.</p>
|
||||
|
||||
<p>To do this, I'd need to query my website's database. To begin with, I wanted to 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 the following code:</p>
|
||||
|
||||
<pre><code class="language-sql">SELECT title
|
||||
AS title, nid
|
||||
AS gallery_idFROM node
|
||||
WHERE type = 'gallery'
|
||||
AND status = 1;
|
||||
</code></pre>
|
||||
|
||||
<p>As the nid value of each gallery corresponds with the 'field_gallery_nid' field within the content_type_photo field, I can now query the database and retrieve information about each specific gallery.</p>
|
||||
|
||||
<p>For example, using <a href="http://www.w3schools.com/sql/sql_alias.asp">aliasing</a> within my SQL statement, I can retrieve a list of all the published photos within the 'British Squad 2008' gallery by using the following code:</p>
|
||||
|
||||
<pre><code class="language-sql">SELECT n.title, n.nid, p.field_gallery_nid
|
||||
FROM node n, content_type_photo p
|
||||
WHERE p.field_gallery_nid = 105
|
||||
AND n.status = 1
|
||||
AND n.nid = p.nid;
|
||||
</code></pre>
|
||||
|
||||
<p>I can easily change this to count the number of published nodes by changing the first line of the query to read SELECT COUNT(*).</p>
|
||||
|
||||
<pre><code class="language-sql">SELECT COUNT(*)
|
||||
FROM node n, content_type_photo p
|
||||
WHERE p.field_gallery_nid = 105
|
||||
AND n.status = 1
|
||||
AND n.nid = p.nid;
|
||||
</code></pre>
|
||||
|
||||
<p>As I've used the <a href="http://drupal.org/project/views_attach">Views Attach</a> module, and I'm embedding the photos directly into the Gallery nodes, I easily add this 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 gallery:</p>
|
||||
|
||||
<pre><code class="language-php"><?php
|
||||
$selected_gallery = db_result(db_query("
|
||||
SELECT nid
|
||||
FROM {node}
|
||||
WHERE type = 'gallery'
|
||||
AND title = '$title'
|
||||
"));
|
||||
?>
|
||||
</code></pre>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<pre><code class="language-php"><?php
|
||||
$gallery_total = db_result(db_query("
|
||||
SELECT COUNT(*)
|
||||
FROM {content_type_photo}
|
||||
WHERE field_gallery_nid = $selected_gallery
|
||||
"));
|
||||
?>
|
||||
</code></pre>
|
||||
|
||||
<p>Next, I wanted to display the date that the last photo was displayed within each 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 created date for the newest photo.</p>
|
||||
|
||||
<pre><code class="language-php"><?php
|
||||
$latest_photo = db_result(db_query("
|
||||
SELECT n.created
|
||||
FROM {node} n, {content_type_photo} p
|
||||
WHERE p.field_gallery_nid = $selected_gallery
|
||||
AND n.nid = p.nid
|
||||
ORDER BY n.created DESC LIMIT 1
|
||||
"));
|
||||
?>
|
||||
</code></pre>
|
||||
|
||||
<p>This was all then added into a 'print' statement which displayed it into the page.</p>
|
||||
|
||||
<pre><code class="language-php"><?php
|
||||
if ($selected_gallery_total != 0) {
|
||||
$output = '<i>There are currently ' . $selected_gallery_total . ' photos in this gallery.';
|
||||
$output .= 'Last one added on ' . $latest_photo . '</i>';
|
||||
print $output;
|
||||
}
|
||||
?>
|
||||
</code></pre>
|
||||
|
||||
<p>OK, so let's take a look at the Gallery so far:</p>
|
||||
|
||||
<p>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 changed by altering the 'print' statement to include a PHP 'date' function:</p>
|
||||
|
||||
<pre><code class="language-php"><?php
|
||||
if ($selected_gallery_total != 0) {
|
||||
$output = '<i>There are currently ' . $selected_gallery_total . ' photos in this gallery.';
|
||||
$output .= 'Last one added on ' . date("l, jS F, Y", $latest_photo) . '.</i>';
|
||||
print $output;
|
||||
}
|
||||
?>
|
||||
</code></pre>
|
||||
|
||||
<p>The values that I've entered are from <a href="http://php.net/manual/en/function.date.php">this page</a> on PHP.net, and can be changed according on how you want the date to be displayed.</p>
|
||||
|
||||
<p>As I've added all of these photos today, then the correct dates are being displayed. However, on the client's original website, the majority of these photos were pubished several months or years ago, and I'd like the new website to still reflect the original created dates. As opposed to modifying each individual photograph, I'll be doing this in bulk in my next post.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/photo-gallery">photo-gallery</a>, <a href="https://www.oliverdavies.uk/blog/tags/sql">sql</a>, <a href="https://www.oliverdavies.uk/blog/tags/views">views</a>, <a href="https://www.oliverdavies.uk/blog/tags/sequel-pro">sequel-pro</a>, <a href="https://www.oliverdavies.uk/blog/tags/cck">cck</a>, <a href="https://www.oliverdavies.uk/blog/tags/views-attach">views-attach</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal">drupal</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/08/10/review-adminhover-module">
|
||||
« Review of the Admin:hover Module
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/08/17/create-better-photo-gallery-drupal-part-2">
|
||||
Create a Better Photo Gallery in Drupal - Part 2 »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,253 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Create a Better Photo Gallery in Drupal - Part 2 | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/08/17/create-better-photo-gallery-drupal-part-2">
|
||||
<meta property="og:title" content="Create a Better Photo Gallery in Drupal - Part 2"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Create a Better Photo Gallery in Drupal - Part 2</h1>
|
||||
|
||||
<p class="posted">17th August 2010</p>
|
||||
|
||||
<p>At the end of my last post, I'd finished creating the first part of the new photo gallery, but I wanted to change the dates of the published photos to reflect the ones on the client's original website.</p>
|
||||
|
||||
<p>Firstly, I'll refer to the previous list of published galleries that I created before, and create something different that also displays the created and modified dates. Picking the node ID of the required gallery, I used the following SQL query to display a list of photos.</p>
|
||||
|
||||
<pre><code class="language-sql">SELECT n.title, n.nid, n.created, n.changed, p.field_gallery_nid
|
||||
FROM node n, content_type_photo pWHERE n.type = 'photo'
|
||||
AND p.field_gallery_nid = 103AND n.nid = p.nid
|
||||
ORDER BY n.nid ASC;
|
||||
</code></pre>
|
||||
|
||||
<p>When I look back at the old photo gallery, I can see that the previous 'last added' date was June 27, 2008. So, how do I update my new photos to reflect that date? Using <a href="http://www.onlineconversion.com/unix_time.htm">http://www.onlineconversion.com/unix_time.htm</a>, I can enter the required date in its readable format, and it will give me the equivilent UNIX timestamp. To keep things relatively simple, I'll set all photos within this gallery to the same time.</p>
|
||||
|
||||
<p>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.</p>
|
||||
|
||||
<pre><code class="language-sql">UPDATE node
|
||||
INNER JOIN content_type_photo
|
||||
ON node.nid = content_type_photo.nid
|
||||
SET
|
||||
node.created = 1217149200,
|
||||
node.changed = 1217149200
|
||||
WHERE content_type_photo.field_gallery_nid = 103
|
||||
</code></pre>
|
||||
|
||||
<p>Now when I query the database, both the created and modified databases have been updated, and when I return to the new photo gallery, the updated value is being displayed.</p>
|
||||
|
||||
<p>Once the changes have been applied, it's a case of repeating the above process for each of the required galleries.</p>
|
||||
|
||||
<p>In the next post, I'll explain how to add a count of published galleries and photos on the main photo gallery page, as well as how to install and configure the <a href="http://drupal.org/project/shadowbox">Shadowbox</a> module.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/photo-gallery">photo-gallery</a>, <a href="https://www.oliverdavies.uk/blog/tags/sql">sql</a>, <a href="https://www.oliverdavies.uk/blog/tags/sequel-pro">sequel-pro</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/08/11/create-better-photo-gallery-drupal-part-1">
|
||||
« Create a Better Photo Gallery in Drupal - Part 1
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/08/20/review-image-caption-module">
|
||||
Review of the Image Caption Module »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
238
docs/blog/2010/08/20/review-image-caption-module/index.html
Normal file
238
docs/blog/2010/08/20/review-image-caption-module/index.html
Normal file
|
@ -0,0 +1,238 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Review of the Image Caption Module | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/08/20/review-image-caption-module">
|
||||
<meta property="og:title" content="Review of the Image Caption Module"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Review of the Image Caption Module</h1>
|
||||
|
||||
<p class="posted">20th August 2010</p>
|
||||
|
||||
<p>Up until as recent as last week, whenever I added an image into one of my Blog posts, I was manually adding the caption below each image and styling it accordingly. That was until I installed the <a href="http://drupal.org/project/image_caption">Image Caption</a> module.</p>
|
||||
|
||||
<p>The Image Caption module uses jQuery to dynamically add captions to images. Here is a walkthrough of the process that I followed to install and configure the module. As always, I used Drush to download and enable the module, then visited the Image Caption Settings page (admin/settings/image_caption). Here, I select which node types should be included in image captioning. In my case, I only wanted this to apply to Blog posts.</p>
|
||||
|
||||
<p>As I use the <a href="http://drupal.org/project/filefield">FileField</a>, <a href="http://drupal.org/project/imagefield">ImageField</a> and <a href="http://drupal.org/project/insert">Insert</a> modules to add images to my posts, as opposed to via a WYSIWYG editor, I'm able to add the CSS class of 'caption' to my images.</p>
|
||||
|
||||
<p>Now, all images inserted this way will have the CSS class of 'caption'.</p>
|
||||
|
||||
<p>As the Image Caption module uses the image's title tag to create the displayed caption, I enabled the custom title text for my Image field so that when I upload an image, I'm prompted to enter text for the caption.</p>
|
||||
|
||||
<p>This results in a span called <code>image-caption-container</code> around the inserted image, and a caption below it called <code>image-caption</code> containing the text.</p>
|
||||
|
||||
<p>All that's left is to style these classes within your CSS stylesheet.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal">drupal</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/imagefield">imagefield</a>, <a href="https://www.oliverdavies.uk/blog/tags/image-caption">image-caption</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/08/17/create-better-photo-gallery-drupal-part-2">
|
||||
« Create a Better Photo Gallery in Drupal - Part 2
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/09/26/south-wales-drupal-user-group">
|
||||
The Inaugural Meetup for the South Wales Drupal User Group »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
235
docs/blog/2010/09/26/south-wales-drupal-user-group/index.html
Normal file
235
docs/blog/2010/09/26/south-wales-drupal-user-group/index.html
Normal file
|
@ -0,0 +1,235 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>The Inaugural Meetup for the South Wales Drupal User Group | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/09/26/south-wales-drupal-user-group">
|
||||
<meta property="og:title" content="The Inaugural Meetup for the South Wales Drupal User Group"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>The Inaugural Meetup for the South Wales Drupal User Group</h1>
|
||||
|
||||
<p class="posted">26th September 2010</p>
|
||||
|
||||
<p>If you do Drupal, and you're in the area, come and join us for the first South Wales Drupal User Group Meetup!</p>
|
||||
|
||||
<p>We'll be meeting in the communal area just outside of the <a href="http://www.subhub.com">SubHub</a> HQ, at:</p>
|
||||
|
||||
<p>4, The Studios<br>
|
||||
3 Burt Street<br>
|
||||
Cardiff<br>
|
||||
CF10 5FZ</p>
|
||||
|
||||
<p>For more information and to signup, visit <a href="http://groups.drupal.org/node/95104">http://groups.drupal.org/node/95104</a>.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal">drupal</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/swdug">swdug</a>, <a href="https://www.oliverdavies.uk/blog/tags/meetups">meetups</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/08/20/review-image-caption-module">
|
||||
« Review of the Image Caption Module
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/10/10/create-and-apply-patches">
|
||||
How to Create and Apply Patches »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
245
docs/blog/2010/10/10/create-and-apply-patches/index.html
Normal file
245
docs/blog/2010/10/10/create-and-apply-patches/index.html
Normal file
|
@ -0,0 +1,245 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>How to Create and Apply Patches | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/10/10/create-and-apply-patches">
|
||||
<meta property="og:title" content="How to Create and Apply Patches"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>How to Create and Apply Patches</h1>
|
||||
|
||||
<p class="posted">10th October 2010</p>
|
||||
|
||||
<p>To begin with, a download a fresh copy of Drupal 6.19 and created a copy of the 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 my Terminal, I can navigate to Drupal's root directory and create the patch.</p>
|
||||
|
||||
<pre><code class="language-bash">diff -rup modules/user/user.pages.inc modules/user/user.pages2.inc > /Users/oliver/Desktop/different_messages_for_blocked_users.patch
|
||||
</code></pre>
|
||||
|
||||
<p>This command compares the differences between the two files, and creates the specified patch file.</p>
|
||||
|
||||
<p>To apply the patch to my Drupal installation, I go back to Terminal and run the following code:</p>
|
||||
|
||||
<pre><code class="language-bash">patch -p0 < /Users/oliver/Desktop/different_messages_for_blocked_users.patch
|
||||
</code></pre>
|
||||
|
||||
<p>If, for some reason, I need to reverse the patch, I can run this code:</p>
|
||||
|
||||
<pre><code class="language-bash">patch -p0 -R < /Users/oliver/Desktop/different_messages_for_blocked_users.patch
|
||||
</code></pre>
|
||||
|
||||
<p>And that's it!</p>
|
||||
|
||||
<p>There is also a Git patch creation workflow, which is described at <a href="http://groups.drupal.org/node/91424">http://groups.drupal.org/node/91424</a>. Thanks to <a href="http://randyfay.com">Randy Fay</a> for making me aware of this, and suggesting a slight change to my original patch creation command.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-6">drupal-6</a>, <a href="https://www.oliverdavies.uk/blog/tags/modules">modules</a>, <a href="https://www.oliverdavies.uk/blog/tags/patches">patches</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/09/26/south-wales-drupal-user-group">
|
||||
« The Inaugural Meetup for the South Wales Drupal User Group
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/10/13/create-better-photo-gallery-drupal-part-3">
|
||||
Create a Better Photo Gallery in Drupal - Part 3 »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,249 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Create a Better Photo Gallery in Drupal - Part 3 | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/10/13/create-better-photo-gallery-drupal-part-3">
|
||||
<meta property="og:title" content="Create a Better Photo Gallery in Drupal - Part 3"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Create a Better Photo Gallery in Drupal - Part 3</h1>
|
||||
|
||||
<p class="posted">13th October 2010</p>
|
||||
|
||||
<p>The next part of the new gallery that I want to implement is to group the galleries by their respective categories. The first step is to edit my original photo_gallery view and add an additional display.</p>
|
||||
|
||||
<p>I've called it 'Taxonomy', and it's similar to the original 'All Galleries' view. The differences are that I've added the taxonomy term as an argument, removed the header, and updated the path to be <code>gallery/%</code>. The other thing that I need to do is overwrite the output of the original 'All Galleries' View by creating a file called <code>views-view--photo-gallery--page-1.tpl.php</code> and placing it within my theme directory.</p>
|
||||
|
||||
<p>Within that file, I can remove the standard content output. This still outputs 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 views_embed_view function is as follows:</p>
|
||||
|
||||
<pre><code class="language-php"><?php views_embed_view('my_view', 'block_1', $arg1, $arg2); ?>
|
||||
</code></pre>
|
||||
|
||||
<p>So, to display the galleries that are assigned the taxonomy of 'tournaments', I can use the following:</p>
|
||||
|
||||
<pre><code class="language-php"><?php print views_embed_view('photo_gallery', 'page_2', 'tournaments'); ?>
|
||||
</code></pre>
|
||||
|
||||
<p>To reduce the amount of code needed, I can use the following 'while' loop to 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 for the view.</p>
|
||||
|
||||
<pre><code class="language-php"><?php
|
||||
$terms = db_query("SELECT * FROM {term_data} WHERE vid = 1");
|
||||
while ($term = db_fetch_array($terms)) {
|
||||
print '<h3>' . $term['name'] . '</h3>';
|
||||
print views_embed_view('gallery', 'page_2', $term['name']);
|
||||
}
|
||||
?>
|
||||
</code></pre>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal">drupal</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/10/10/create-and-apply-patches">
|
||||
« How to Create and Apply Patches
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/10/22/create-better-photo-gallery-drupal-part-21">
|
||||
Create a Better Photo Gallery in Drupal - Part 2.1 »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,273 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Create a Better Photo Gallery in Drupal - Part 2.1 | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/10/22/create-better-photo-gallery-drupal-part-21">
|
||||
<meta property="og:title" content="Create a Better Photo Gallery in Drupal - Part 2.1"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Create a Better Photo Gallery in Drupal - Part 2.1</h1>
|
||||
|
||||
<p class="posted">22nd October 2010</p>
|
||||
|
||||
<p>Today, I realised that I hadn't published the code that I used to create the total figures of galleries and photos at the top of the gallery (I said at the end of <a href="/blog/create-better-photo-gallery-drupal-part-2/" title="Create a Better Photo Gallery in Drupal - Part 2">Part 2</a> that I'd include it in <a href="/blog/create-better-photo-gallery-drupal-part-3/" title="Create a Better Photo Gallery in Drupal - Part 3">Part 3</a>, but I forgot). So, here it is:</p>
|
||||
|
||||
<pre><code class="language-php"><?php
|
||||
|
||||
// Queries the database and returns a list of nids of published galleries.
|
||||
$galleries = db_query("SELECT nid FROM {node} WHERE type = 'gallery' AND status = 1");
|
||||
// Resets the number of photos.
|
||||
$output = 0;
|
||||
// Prints a list of nids of published galleries.
|
||||
while($gallery = db_fetch_array($galleries)) {
|
||||
$gallery_id = $gallery['nid'];
|
||||
$photos = $photos + db_result(db_query("SELECT COUNT(*) FROM node n, content_type_photo ctp WHERE n.status = 1 AND n.type = 'photo' AND ctp.field_gallery_nid = $gallery_id AND n.nid = ctp.nid"));
|
||||
}
|
||||
|
||||
// Prints the output.
|
||||
print 'There ';
|
||||
if($photos == 1) {
|
||||
print 'is';
|
||||
}
|
||||
else {
|
||||
print 'are';
|
||||
}
|
||||
print ' currently ';
|
||||
print $photos . ' ';
|
||||
if($photos == 1) {
|
||||
print 'photo';
|
||||
}
|
||||
else {
|
||||
print 'photos';
|
||||
}
|
||||
print ' in ';
|
||||
|
||||
// Counts the number of published galleries on the site.
|
||||
$galleries = db_result(db_query("SELECT COUNT(*) FROM {node} WHERE TYPE = 'gallery' AND STATUS = 1"));
|
||||
|
||||
// Prints the number of published galleries.
|
||||
print $galleries;
|
||||
if ($galleries == 1) {
|
||||
print ' gallery';
|
||||
}
|
||||
else {
|
||||
print ' galleries';
|
||||
}
|
||||
print '.';
|
||||
?>
|
||||
</code></pre>
|
||||
|
||||
<p>It was applied to the view as a header which had the input format set to PHP code.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal">drupal</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/10/13/create-better-photo-gallery-drupal-part-3">
|
||||
« Create a Better Photo Gallery in Drupal - Part 3
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2010/11/04/use-regular-expressions-search-and-replace-coda-or-textmate">
|
||||
Use Regular Expressions to Search and Replace in Coda or TextMate »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,249 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Use Regular Expressions to Search and Replace in Coda or TextMate | Oliver Davies</title>
|
||||
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
|
||||
<meta property="og:url" content="https://www.oliverdavies.uk/blog/2010/11/04/use-regular-expressions-search-and-replace-coda-or-textmate">
|
||||
<meta property="og:title" content="Use Regular Expressions to Search and Replace in Coda or TextMate"/>
|
||||
|
||||
|
||||
|
||||
<meta property="og:image" content="https://www.oliverdavies.uk/assets/images/me-precedent.jpg"/>
|
||||
<meta property="og:image:height" content="327"/>
|
||||
<meta property="og:image:type" content="image/jpg">
|
||||
<meta property="og:image:width" content="327"/>
|
||||
|
||||
|
||||
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/main.css">
|
||||
<link rel="stylesheet" href="https://www.oliverdavies.uk/assets/css/blog-post.css">
|
||||
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=57" sizes="57x57">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=114" sizes="114x114">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=72" sizes="72x72">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=144" sizes="144x144">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=60" sizes="60x60">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=120" sizes="120x120">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=76" sizes="76x76">
|
||||
<link rel="apple-touch-icon" href="/assets/images/me-precedent.jpg?s=152" sizes="152x152">
|
||||
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=160" sizes="160x160">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=96" sizes="96x96">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=32" sizes="32x32">
|
||||
<link rel="icon" href="/assets/images/me-precedent.jpg?s=16" sizes="16x16">
|
||||
</head>
|
||||
<body class="">
|
||||
<nav class="navbar navbar-inverse navbar-fixed-top">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="https://www.oliverdavies.uk/">Oliver Davies</a>
|
||||
</div>
|
||||
|
||||
<div id="navbar" class="collapse navbar-collapse" role="navigation">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="">
|
||||
<a href="/">About</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/experience">Experience</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/testimonials">Testimonials</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/talks">Talks</a>
|
||||
</li>
|
||||
|
||||
<li class="active">
|
||||
<a href="/blog">Blog</a>
|
||||
</li>
|
||||
|
||||
<li class="">
|
||||
<a href="/contact">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> </div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<main class="col-md-9">
|
||||
<h1>Use Regular Expressions to Search and Replace in Coda or TextMate</h1>
|
||||
|
||||
<p class="posted">4th November 2010</p>
|
||||
|
||||
<p>As in <a href="/blog/add-taxonomy-term-multiple-nodes-using-sql/" title="Quickly adding a taxonomy term to multiple nodes using SQL">the original post</a>, 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 slightly to out put the same nid value twice.</p>
|
||||
|
||||
<pre><code class="language-sql">SELECT nid, nid FROM node WHERE TYPE = 'blog' ORDER BY nid ASC;
|
||||
</code></pre>
|
||||
|
||||
<p>Then, I could select all of the returned rows, copy the values, and paste them into Coda:</p>
|
||||
|
||||
<p>As before, I needed my SQL update statement to be in the following format:</p>
|
||||
|
||||
<pre><code class="language-sql">INSERT INTO term_node VALUE (nid, vid, tid), (nid2, vid2, tid);
|
||||
</code></pre>
|
||||
|
||||
<p>As I mentioned previously, the nid and vid values are the same for each node, and the tid will remain constant. In this case, the tid value that I needed to use was '63'.</p>
|
||||
|
||||
<p>So, using the 'Find and Replace' function within Coda, combined with <a href="http://en.wikipedia.org/wiki/Regular_expression">regular expressions</a> (regex), I can easily format the values as needed. To begin with, I need to ensure that the RegEx search option is enabled, and that I'm using the correct escape character.</p>
|
||||
|
||||
<p>The first thing that I wanted to do was add the seperating comma between the two values. To do this, I
|
||||
perform a search for <code>\s*\t</code>. This searches for everything that is whitespace AND is a tab value. I can then add the comma as the replacement for each result.</p>
|
||||
|
||||
<p>All 31 lines have been changed.</p>
|
||||
|
||||
<p>Next, I can use <code>\n</code> to target the lines between the rows. I'll replace it with the next comma, the number 63 (the tid value), the closing bracket, another comma, re-add the line and add the opening bracket.</p>
|
||||
|
||||
<p>The only two lines that aren't changed are the first and last, as they don't have any line breaks following them. I can complete these lines manually. Now all I need to do is add the beginning of the SQL update statement, then copy and paste it into Sequel Pro.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/taxonomy">taxonomy</a>, <a href="https://www.oliverdavies.uk/blog/tags/sequel-pro">sequel-pro</a>, <a href="https://www.oliverdavies.uk/blog/tags/database">database</a>, <a href="https://www.oliverdavies.uk/blog/tags/coda">coda</a>, <a href="https://www.oliverdavies.uk/blog/tags/regular-expression">regular-expression</a>, <a href="https://www.oliverdavies.uk/blog/tags/textmate">textmate</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2010/10/22/create-better-photo-gallery-drupal-part-21">
|
||||
« Create a Better Photo Gallery in Drupal - Part 2.1
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2011/02/14/easily-embed-typekit-fonts-your-drupal-website">
|
||||
Easily Embed TypeKit Fonts into your Drupal Website »
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="about-author">
|
||||
<h2>About the Author</h2>
|
||||
|
||||
<img src="//images.oliverdavies.uk/assets/images/me-precedent.jpg" alt="Picture of Oliver" class="img-circle">
|
||||
|
||||
<p>Oliver Davies is a Web Developer, System Administrator and Drupal specialist based in the UK. He is a Senior Developer at <a href="https://microserve.io">Microserve</a> and also provides freelance consultancy services for Drupal websites, PHP applications and Linux servers.</p>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="panel badges text-center">
|
||||
<a class="badge--da-member" href="https://assoc.drupal.org/membership" title="I’m a Drupal Association member.">
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/da-individual-member.png"
|
||||
alt="Drupal Association Individual Member"
|
||||
width="152"
|
||||
>
|
||||
</a>
|
||||
|
||||
<a href="http://drupalcores.com/#opdavies">
|
||||
<img
|
||||
alt="I built Drupal 8 with hand holding a wrench on blue background"
|
||||
src="//images.oliverdavies.uk/assets/images/drupal-8.jpg"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<img
|
||||
src="//images.oliverdavies.uk/assets/images/badges/acquia-certified-developer-drupal-8.png"
|
||||
alt="Acquia Certified Developer - Drupal 8 Exam Badge"
|
||||
height="147" width="147"
|
||||
/>
|
||||
|
||||
<a href="http://conference.phpnw.org.uk/phpnw17">
|
||||
<img src="//images.oliverdavies.uk/assets/images/badges/phpnw17.png" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="availability panel panel-default">
|
||||
<div class="panel-heading">Availability</div>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-up text-warning"></i>
|
||||
|
||||
|
||||
Currently have limited part-time capacity
|
||||
</p>
|
||||
<p>
|
||||
<i class="fa fa-thumbs-o-down text-danger"></i>
|
||||
|
||||
Currently no spare full-time capacity.
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="latest-posts panel panel-default">
|
||||
<div class="latest-posts__heading panel-heading">Latest blog posts</div>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/06/09/introducing-the-drupal-meetups-twitterbot">
|
||||
Introducing the Drupal Meetups Twitterbot
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">9th June, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/20/turning-drupal-module-into-feature">
|
||||
Turning Your Custom Drupal Module into a Feature
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">20th May, 2017</span>
|
||||
</li>
|
||||
<li class="post list-group-item">
|
||||
<span class="post__title">
|
||||
<a href="/blog/2017/05/15/drupalcamp-bristol-early-bird-tickets-sessions-sponsors">
|
||||
DrupalCamp Bristol 2017 - Early Bird Tickets, Call for Sessions, Sponsors
|
||||
</a>
|
||||
</span> -
|
||||
<span class="post__date">15th May, 2017</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div> </div>
|
||||
<footer class="container">
|
||||
<p class="copyright">
|
||||
© 2010-2017 Oliver Davies. Built with <a href="https://sculpin.io">Sculpin</a>.
|
||||
</p>
|
||||
|
||||
<div class="meetups">
|
||||
<h2>Things that I organise</h2>
|
||||
<ul>
|
||||
<li class="meetups--drupal-bristol">
|
||||
<a href="http://www.drupalbristol.org.uk" title="Drupal Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupal-bristol.jpeg" alt="Drupal Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--drupalcamp-bristol">
|
||||
<a href="http://www.drupalcampbristol.co.uk" title="DrupalCamp Bristol">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/drupalcamp-bristol.png" alt="DrupalCamp Bristol">
|
||||
</a>
|
||||
</li>
|
||||
<li class="meetups--phpsw">
|
||||
<a href="http://phpsw.uk" title="PHPSW">
|
||||
<img src="//images.oliverdavies.uk/assets/images/meetups/phpsw.jpeg" alt="PHPSW">
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://www.oliverdavies.uk/assets/js/site.js"></script>
|
||||
|
||||
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-11967257-1', 'auto'); ga('send', 'pageview');</script>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue