Build site
This commit is contained in:
parent
6f8d067847
commit
0c7de8559a
743 changed files with 92961 additions and 0 deletions
|
@ -0,0 +1,236 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Easily Embed TypeKit Fonts into your Drupal Website | 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/2011/02/14/easily-embed-typekit-fonts-your-drupal-website">
|
||||
<meta property="og:title" content="Easily Embed TypeKit Fonts into your Drupal Website"/>
|
||||
|
||||
|
||||
|
||||
<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>Easily Embed TypeKit Fonts into your Drupal Website</h1>
|
||||
|
||||
<p class="posted">14th February 2011</p>
|
||||
|
||||
<p>To begin with, you will need to <a href="https://typekit.com/plans">register for a TypeKit account</a> - there is a free version if you just want to try it out.</p>
|
||||
|
||||
<p>Next, you'll need to create a kit that contains the fonts that you want to use on your website. I've used <a href="http://typekit.com/fonts/ff-tisa-web-pro">FF Tisa Web Pro</a>.</p>
|
||||
|
||||
<p>Under 'Kit Settings', ensure that your website domain (e.g. mysite.com) is listed under 'Domains'.</p>
|
||||
|
||||
<p>Download and install the <a href="http://drupal.org/project/fontyourface">@font-your-face</a> module onto your Drupal site, and to go admin/settings/fontyourface to configure it. Enter <a href="https://typekit.com/account/tokens">your TypeKit API key</a>, and click 'Import Typekit' to import your kits and fonts.</p>
|
||||
|
||||
<p>Go to admin/build/themes/fontyourface, and click 'Browse fonts to enable'. Click on the name of the font that you want to enable, check 'Enabled', and click 'Edit font' to save your changes.</p>
|
||||
|
||||
<p>With the font enabled, you can now use it in your CSS.</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/typekit">typekit</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<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 class="is-half text-right">
|
||||
<a href="/blog/2011/03/15/display-number-facebook-fans-php">
|
||||
Display the Number of Facebook fans in PHP »
|
||||
</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/2011/03/15/display-number-facebook-fans-php/index.html
Normal file
238
docs/blog/2011/03/15/display-number-facebook-fans-php/index.html
Normal file
|
@ -0,0 +1,238 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Display the Number of Facebook fans in PHP | 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/2011/03/15/display-number-facebook-fans-php">
|
||||
<meta property="og:title" content="Display the Number of Facebook fans in PHP"/>
|
||||
|
||||
|
||||
|
||||
<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>Display the Number of Facebook fans in PHP</h1>
|
||||
|
||||
<p class="posted">15th March 2011</p>
|
||||
|
||||
<p>Replace the $page_id value with your Page ID number (unless you want to show the number of fans for this site).You can find your Page ID by logging into your Facebook account, going to 'Adverts and Pages', clicking 'Edit page', and looking at the URL.</p>
|
||||
|
||||
<p>For example, mine is <a href="https://www.facebook.com/pages/edit/?id=143394365692197&sk=basic">https://www.facebook.com/pages/edit/?id=143394365692197&sk=basic</a>.</p>
|
||||
|
||||
<p>I've also wrapped the output in a number_format() function so that it properly formatted with commas etc - like where I've used it within the <a href="http://www.horseandcountry.tv/events/paid">Gold Event listing</a> on the Horse & Country TV website.</p>
|
||||
|
||||
<pre><code class="language-php">$page_id = "143394365692197";
|
||||
$xml = @simplexml_load_file("http://api.facebook.com/restserver.php?method=facebook.fql.query&amp;query=SELECT%20fan_count%20FROM%20page%20WHERE%20page_id=".$page_id."") or die ("a lot");
|
||||
$fans = $xml->page->fan_count;
|
||||
print number_format($fans);
|
||||
</code></pre>
|
||||
|
||||
<p>This code was originally found at <a href="http://wp-snippets.com/display-number-facebook-fans">http://wp-snippets.com/display-number-facebook-fans</a>.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/php">php</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2011/02/14/easily-embed-typekit-fonts-your-drupal-website">
|
||||
« Easily Embed TypeKit Fonts into your Drupal Website
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2011/03/31/proctor-stevenson">
|
||||
Proctor & Stevenson »
|
||||
</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>
|
228
docs/blog/2011/03/31/proctor-stevenson/index.html
Normal file
228
docs/blog/2011/03/31/proctor-stevenson/index.html
Normal file
|
@ -0,0 +1,228 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Proctor & Stevenson | 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/2011/03/31/proctor-stevenson">
|
||||
<meta property="og:title" content="Proctor & Stevenson"/>
|
||||
|
||||
|
||||
|
||||
<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>Proctor & Stevenson</h1>
|
||||
|
||||
<p class="posted">31st March 2011</p>
|
||||
|
||||
<p>2 weeks ago, I handed in my notice of resignation to <a href="http://horseandcountry.tv">Horse & Country TV</a>because I've been offered a new role at <a href="http://proctors.co.uk">Proctor & Stevenson</a> - a Marketing Design and Communications agency in Bristol.</p>
|
||||
|
||||
<p>Proctors have an <a href="http://www.proctors.co.uk/clients">extensive client list</a> - including <a href="http://www.proctors.co.uk/clients/bmw-financial-services">BMW</a>, <a href="http://www.proctors.co.uk/clients/panasonic">Panasonic</a>, the <a href="http://www.proctors.co.uk/clients/open-university">Open University</a> and <a href="http://www.proctors.co.uk/clients/vosa">VOSA</a>, and it's going to be a fantastic opportunity for me to continue expanding my skillset whilst gaining vital experience.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/personal">personal</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2011/03/15/display-number-facebook-fans-php">
|
||||
« Display the Number of Facebook fans in PHP
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2011/05/20/proctors-hosting-next-drupal-meetup">
|
||||
Proctors Hosting the next Drupal Meetup »
|
||||
</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,228 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Proctors Hosting the next Drupal Meetup | 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/2011/05/20/proctors-hosting-next-drupal-meetup">
|
||||
<meta property="og:title" content="Proctors Hosting the next Drupal Meetup"/>
|
||||
|
||||
|
||||
|
||||
<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>Proctors Hosting the next Drupal Meetup</h1>
|
||||
|
||||
<p class="posted">20th May 2011</p>
|
||||
|
||||
<p>My employer, <a href="http://www.proctors.co.uk">Proctor & Stevenson</a>, are going to be hosting the next Bristol & South West Drupal meetup on the 25th May at our offices.</p>
|
||||
|
||||
<p>You can <a href="http://groups.drupal.org/node/147324">view more details</a>, or register <a href="http://www.proctors.co.uk/Drupal-SWUG-Meetup">on our website</a>.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/meetups">meetups</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-bristol">drupal-bristol</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2011/03/31/proctor-stevenson">
|
||||
« Proctor & Stevenson
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2011/05/23/imagefield-import-archive">
|
||||
Imagefield Import Archive »
|
||||
</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>
|
232
docs/blog/2011/05/23/imagefield-import-archive/index.html
Normal file
232
docs/blog/2011/05/23/imagefield-import-archive/index.html
Normal file
|
@ -0,0 +1,232 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Imagefield Import Archive | 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/2011/05/23/imagefield-import-archive">
|
||||
<meta property="og:title" content="Imagefield Import Archive"/>
|
||||
|
||||
|
||||
|
||||
<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>Imagefield Import Archive</h1>
|
||||
|
||||
<p class="posted">23rd May 2011</p>
|
||||
|
||||
<p>I've finally uploaded my first module onto Drupal.org!</p>
|
||||
|
||||
<p>I've written many custom modules, although the vast majority of them are either small tweaks for my own sites, or company/site-specific modules that wouldn't be good to anyone else, so there would be nothing achieved by contributing them back to the community. Previously, I've blogged about the <a href="http://drupal.org/project/imagefield_import">Imagefield Import</a> module - a module that I use on a number of sites, both personal and for clients - and what I've looked for lately is for a way to speed up the process again. Gathering my images together and manually copying them into the import directory takes time - especially if I'm working somewhere with a slow Internet connection and I'm FTP-ing the images into the directory. Also, it's not always the easiest solution for site users - especially non-technical ones.</p>
|
||||
|
||||
<p>So, I wrote the Imagefield Import Archive module. Including comments, the module contains 123 lines, and builds upon the existing functionality of the Imagefield Import module by adding the ability for the user to upload a .zip archive of images. The archive is then moved into the specified import directory and unzipped before being deleted, and the user is directed straight to the standard Imagefield Import page where their images are waiting to be imported, just as usual.</p>
|
||||
|
||||
<p>The module is currently a <a href="http://drupal.org/sandbox/opdavies/1165110">sandbox project</a> on Drupal.org, although I have applied for full project access so that I can be added as a fully-fledged downloadable 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/imagefield-import">imagefield-import</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2011/05/20/proctors-hosting-next-drupal-meetup">
|
||||
« Proctors Hosting the next Drupal Meetup
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2011/08/28/create-multigroups-drupal-7-using-field-collections">
|
||||
Create Multigroups in Drupal 7 using Field Collections »
|
||||
</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,242 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>Create Multigroups in Drupal 7 using Field Collections | 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/2011/08/28/create-multigroups-drupal-7-using-field-collections">
|
||||
<meta property="og:title" content="Create Multigroups in Drupal 7 using Field Collections"/>
|
||||
|
||||
|
||||
|
||||
<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 Multigroups in Drupal 7 using Field Collections</h1>
|
||||
|
||||
<p class="posted">28th August 2011</p>
|
||||
|
||||
<p>One of my favourite things lately in Drupal 6 has been CCK 3, and more specifically, the Content Multigroups sub-module. Basically this allows you to create a fieldset of various CCK fields, and then repeat that multiple times. For example, I use it on this site whist creating invoices for clients. I have a fieldset called 'Line Item', containing 'Description', 'Quantity' and 'Price' fields. With a standard fieldset, I could only have one instance of each field - however, using a multigroup, I can create multiple groups of line items which I then use within the invoice.</p>
|
||||
|
||||
<p>But at the time of writing this, there is no CCK 3 version for Drupal 7. So, I created the same thing using <a href="http://drupal.org/project/field_collection">Field Collection</a> and <a href="http://drupal.org/project/entity">Entity</a> modules.</p>
|
||||
|
||||
<p>With the modules uploaded and enabled, go to admin/structure/field-collections and create a field collection.</p>
|
||||
|
||||
<p>With the module enabled, you can go to your content type and add a Field Collection field. By default, the only available Widget type is 'Hidden'.</p>
|
||||
|
||||
<p>Next, go to admin/structure/field-collections and add some fields to the field collection - the same way that you would for a content type. For this collection is going to contain two node reference fields - Image and Link.</p>
|
||||
|
||||
<p>With the Field Collection created, I can now add it as a field within my content type.</p>
|
||||
|
||||
<p>Whilst this works perfectly, the field collection is not editable from the node edit form. You need to load the node, and the collection is displayed here with add, edit, and delete buttons. This wasn't an ideal solution, and I wanted to be able to edit the fields within the collection from the node edit form - the same way as I can using multigroups in Drupal 6.</p>
|
||||
|
||||
<p>After some searching I found <a href="http://drupal.org/node/977890#comment-4184524">a link to a patch</a> which when applied adds a 'subform' widget type to the field collection field and allows for it to be embedded into, and editable from within the node form. Going back to the content type fields page, and clicking on 'Hidden' (the name of the current widget), I can change it to subform and save my changes.</p>
|
||||
|
||||
<p>With this change applied, when I go back to add or edit a node within this content type, my field collection will be easily editable directly within the form.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/drupal-7">drupal-7</a>, <a href="https://www.oliverdavies.uk/blog/tags/drupal-planet">drupal-planet</a>, <a href="https://www.oliverdavies.uk/blog/tags/cck">cck</a>, <a href="https://www.oliverdavies.uk/blog/tags/fields">fields</a>, <a href="https://www.oliverdavies.uk/blog/tags/field-collection">field-collection</a>, <a href="https://www.oliverdavies.uk/blog/tags/entity-api">entity-api</a>, <a href="https://www.oliverdavies.uk/blog/tags/multigroup">multigroup</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2011/05/23/imagefield-import-archive">
|
||||
« Imagefield Import Archive
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2011/10/19/install-and-configure-subversion-svn-server-ubuntu">
|
||||
How to Install and Configure Subversion (SVN) Server on Ubuntu »
|
||||
</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,349 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="no-js" lang="en-GB">
|
||||
<head>
|
||||
<title>How to Install and Configure Subversion (SVN) Server on Ubuntu | 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/2011/10/19/install-and-configure-subversion-svn-server-ubuntu">
|
||||
<meta property="og:title" content="How to Install and Configure Subversion (SVN) Server on Ubuntu"/>
|
||||
|
||||
|
||||
|
||||
<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 Install and Configure Subversion (SVN) Server on Ubuntu</h1>
|
||||
|
||||
<p class="posted">19th October 2011</p>
|
||||
|
||||
<p>Recently, I needed to set up a Subversion (SVN) server on a Ubuntu Linux server. This post is going to outline the steps taken, and the commands used, to install and configure the service.</p>
|
||||
|
||||
<p>Note: As I was using Ubuntu, I was using the 'apt-get' command to download and install the software packages. If you're using a different distribution of Linux, then this command may be different. I'm also assuming that Apache is already installed.</p>
|
||||
|
||||
<p>Firstly, I'm going to ensure that all of my installed packages are up to date, and install any available updates.</p>
|
||||
|
||||
<pre><code class="language-bash">$ sudo apt-get update
|
||||
</code></pre>
|
||||
|
||||
<p>Now, I need to download the subversion, subversion-tools and libapache2 packages.</p>
|
||||
|
||||
<pre><code class="language-bash">$ sudo apt-get install subversion subversion-tools libapache2-svn
|
||||
</code></pre>
|
||||
|
||||
<p>These are all of the packages that are needed to run a Subversion server.</p>
|
||||
|
||||
<h2 id="create-subversion-directory">Create subversion directory</h2>
|
||||
|
||||
<p>Now, I need to create the directory where my repositories are going to sit. I've chosen this directory as I know that it's one that is accessible to my managed backup service.</p>
|
||||
|
||||
<pre><code class="language-bash">$ sudo mkdir /home/svn
|
||||
</code></pre>
|
||||
|
||||
<h2 id="create-a-test-repository">Create a test repository</h2>
|
||||
|
||||
<p>First, I'll create a new folder in which I'll create my test project, and then I'll create a repository for it.</p>
|
||||
|
||||
<pre><code class="language-bash">$ sudo mkdir ~/test
|
||||
$ sudo svnadmin create /home/svn/test -m 'initial project structure'
|
||||
</code></pre>
|
||||
|
||||
<p>This will create a new repository containing the base file structure.</p>
|
||||
|
||||
<h2 id="adding-files-into-the-test-project">Adding files into the test project</h2>
|
||||
|
||||
<pre><code class="language-bash">$ cd ~/test
|
||||
$ mkdir trunk tags branches
|
||||
</code></pre>
|
||||
|
||||
<p>I can now import these new directories into the test repository.</p>
|
||||
|
||||
<pre><code class="language-bash">$ sudo svn import ~/test file:///home/svn/test -m 'Initial project directories'
|
||||
</code></pre>
|
||||
|
||||
<p>This both adds and commits these new directories into the repository.</p>
|
||||
|
||||
<p>In order for Apache to access the SVN repositories, the <code>/home/svn</code> directory needs to be owned by the same user and group that Apache runs as. In Ubuntu, this is usually www-data. To change the owner of a directory, use the chown command.</p>
|
||||
|
||||
<pre><code class="language-bash">$ sudo chown -R www-data:www-data /home/svn
|
||||
</code></pre>
|
||||
|
||||
<h2 id="configuring-apache">Configuring Apache</h2>
|
||||
|
||||
<p>The first thing that I need to do is enable the dav_svn Apache module, using the a2enmod command.</p>
|
||||
|
||||
<pre><code class="language-bash">$ sudo a2enmod dav_svn
|
||||
</code></pre>
|
||||
|
||||
<p>With this enabled, now I need to modify the Apache configuration file.</p>
|
||||
|
||||
<pre><code class="language-bash">$ cd /etc/apache2
|
||||
$ sudo nano apache2.conf
|
||||
</code></pre>
|
||||
|
||||
<p>At the bottom of the file, add the following lines, and then save the file by pressing Ctrl+X.</p>
|
||||
|
||||
<pre><code class="language-apacheconf"><Location "/svn">
|
||||
DAV svn
|
||||
SVNParentPath /home/svn
|
||||
</Location>
|
||||
</code></pre>
|
||||
|
||||
<p>With this saved, restart the Apache service for the changes to be applied.</p>
|
||||
|
||||
<pre><code class="language-bash">sudo service apache2 restart
|
||||
</code></pre>
|
||||
|
||||
<p>I can now browse through my test repository by opening Firefox, and navigating to <code>http://127.0.0.1/svn/test</code>. Here, I can now see my three directories, although they are currently all empty.</p>
|
||||
|
||||
<p><img class="imagecache-blog imagecache image-caption caption" title="Viewing the test repository in Firefox" src="http://oliverdavies.co.uk/sites/default/files/imagecache/blog/images/blog/how-install-and-configure-subversion-svn-server-ubuntu/viewing-test-repository-firefox.png" alt="Image: Screenshot of the test SVN repository in Firefox"></p>
|
||||
|
||||
<h2 id="securing-my-svn-repositories">Securing my SVN repositories</h2>
|
||||
|
||||
<p>Before I start committing any files to the test repository, I want to ensure that only authorised users can view it - currently anyone can view the repository and it's contents, as well as being able to checkout and commit files. To do this, I'm going to require the user to enter a username and a password before viewing or performing any actions with the repository.</p>
|
||||
|
||||
<p>Re-open apache2.conf, and replace the SVN Location information with this:</p>
|
||||
|
||||
<pre><code class="language-apacheconf"><Location "/svn">
|
||||
DAV svn
|
||||
SVNParentPath /home/svn
|
||||
AuthType Basic
|
||||
AuthName "My SVN Repositories"
|
||||
AuthUserFile /etc/svn-auth
|
||||
Require valid-user
|
||||
</Location>
|
||||
</code></pre>
|
||||
|
||||
<p>Now I need to create the password file.</p>
|
||||
|
||||
<pre><code class="language-bash">$ htpasswd -cm /etc/svn-auth oliver
|
||||
</code></pre>
|
||||
|
||||
<p>I'm prompted to enter and confirm my password, and then my details are saved. The Apache service will need to be restarted again, and then the user will need to authenticate themselves before viewing the repositories.</p>
|
||||
|
||||
<p><img class="imagecache-blog imagecache image-caption caption" title="Being prompted for authorisation" src="http://oliverdavies.co.uk/sites/default/files/imagecache/blog/images/blog/how-install-and-configure-subversion-svn-server-ubuntu/being-prompted-authorisation_0.png" alt="Image: Screenshot of the authorisation prompt when opening the repository"></p>
|
||||
|
||||
<h2 id="checking-out-the-repository-and-commiting-files">Checking out the repository and commiting files</h2>
|
||||
|
||||
<p>For example, now want to checkout the files within my repository into a new directory called 'test2' within my home directory. Firstly, I need to create the new directory, and then I can issue the checkout command.</p>
|
||||
|
||||
<pre><code class="language-bash">$ cd ~
|
||||
$ mkdir test2
|
||||
$ svn checkout http://127.0.0.1/svn/test/trunk test2
|
||||
</code></pre>
|
||||
|
||||
<p>I'm passing the command two arguments - the first is the URL of the repository's trunk directory, and the second is the directory where the files are to be placed. As no files have been commited yet into the trunk, it appears to be empty - but if you perform an ls -la command, you'll see that there is a hidden .svn directory.</p>
|
||||
|
||||
<p>Now you can start adding files into the directory. Once you've created your files, perform a svn add command, passing in individual filenames as further arguments.</p>
|
||||
|
||||
<pre><code class="language-bash">$ svn add index.php
|
||||
$ svn add *
|
||||
</code></pre>
|
||||
|
||||
<p>With all the required files added, they can be committed using <code>svn commit -m 'commit message'</code> command, and the server can be updated using the svn up command.</p>
|
||||
|
||||
<p class="tags">
|
||||
Tags:
|
||||
<a href="https://www.oliverdavies.uk/blog/tags/svn">svn</a>, <a href="https://www.oliverdavies.uk/blog/tags/ubuntu">ubuntu</a>, <a href="https://www.oliverdavies.uk/blog/tags/version-control">version-control</a> </p>
|
||||
<div class="post-pager is-flex">
|
||||
<div class="is-half">
|
||||
<a href="/blog/2011/08/28/create-multigroups-drupal-7-using-field-collections">
|
||||
« Create Multigroups in Drupal 7 using Field Collections
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="is-half text-right">
|
||||
<a href="/blog/2012/01/04/site-upgraded-drupal-7">
|
||||
Site Upgraded to Drupal 7 »
|
||||
</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