Start adding event data, rebuild talks page

This commit is contained in:
Oliver Davies 2017-03-05 22:46:31 +00:00
parent 3f4fac395b
commit 255dc31bae
7 changed files with 170 additions and 98 deletions

View file

@ -2,6 +2,7 @@
use Opdavies\Sculpin\Bundle\ContentGeneratorBundle\SculpinContentGeneratorBundle;
use Opdavies\Sculpin\Bundle\GistEmbedBundle\SculpinGistEmbedBundle;
use Opdavies\Sculpin\Bundle\TwigSortByFieldBundle\SculpinTwigSortByFieldBundle;
use Sculpin\Bundle\SculpinBundle\HttpKernel\AbstractKernel;
use Tsphethean\Sculpin\Bundle\RelatedPostsBundle\SculpinRelatedPostsBundle;
@ -19,6 +20,7 @@ class SculpinKernel extends AbstractKernel
SculpinContentGeneratorBundle::class,
SculpinGistEmbedBundle::class,
SculpinRelatedPostsBundle::class,
SculpinTwigSortByFieldBundle::class,
];
}
}

View file

@ -6,12 +6,13 @@
"test": "behat"
},
"require": {
"php": "^5.5",
"behat/mink-extension": "@stable",
"behat/mink-goutte-driver": "@stable",
"dflydev/embedded-composer": "^1.0@dev",
"opdavies/sculpin-content-generator-bundle": "@stable",
"opdavies/sculpin-gist-embed-bundle": "dev-master",
"php": "^5.5",
"opdavies/sculpin-twig-sort-by-field-bundle": "dev-master",
"sculpin/sculpin": "^2.1@dev",
"tsphethean/sculpin-related-posts-bundle": "~0.1.0"
},

211
composer.lock generated
View file

@ -4,8 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"hash": "f5b418bcffa381556538abe1c659036a",
"content-hash": "3c2abfae369d41fb0f11d86bbecdd0dd",
"content-hash": "23b35e60c5c1518a04da384491bdb09f",
"packages": [
{
"name": "behat/behat",
@ -86,7 +85,7 @@
"symfony",
"testing"
],
"time": "2016-09-25 09:40:39"
"time": "2016-09-25T09:40:39+00:00"
},
{
"name": "behat/gherkin",
@ -145,7 +144,7 @@
"gherkin",
"parser"
],
"time": "2016-09-18 12:16:14"
"time": "2016-09-18T12:16:14+00:00"
},
{
"name": "behat/mink",
@ -203,7 +202,7 @@
"testing",
"web"
],
"time": "2016-03-05 08:26:18"
"time": "2016-03-05T08:26:18+00:00"
},
{
"name": "behat/mink-browserkit-driver",
@ -259,7 +258,7 @@
"browser",
"testing"
],
"time": "2016-03-05 08:59:47"
"time": "2016-03-05T08:59:47+00:00"
},
{
"name": "behat/mink-extension",
@ -318,7 +317,7 @@
"test",
"web"
],
"time": "2016-02-15 07:55:18"
"time": "2016-02-15T07:55:18+00:00"
},
{
"name": "behat/mink-goutte-driver",
@ -373,7 +372,7 @@
"headless",
"testing"
],
"time": "2016-03-05 09:04:22"
"time": "2016-03-05T09:04:22+00:00"
},
{
"name": "behat/transliterator",
@ -413,7 +412,7 @@
"slug",
"transliterator"
],
"time": "2015-09-28 16:26:35"
"time": "2015-09-28T16:26:35+00:00"
},
{
"name": "composer/ca-bundle",
@ -471,7 +470,7 @@
"ssl",
"tls"
],
"time": "2016-09-04 19:00:06"
"time": "2016-09-04T19:00:06+00:00"
},
{
"name": "composer/composer",
@ -548,7 +547,7 @@
"dependency",
"package"
],
"time": "2016-09-12 09:27:20"
"time": "2016-09-12T09:27:20+00:00"
},
{
"name": "composer/semver",
@ -610,7 +609,7 @@
"validation",
"versioning"
],
"time": "2016-08-30 16:08:34"
"time": "2016-08-30T16:08:34+00:00"
},
{
"name": "composer/spdx-licenses",
@ -671,7 +670,7 @@
"spdx",
"validator"
],
"time": "2016-09-28 07:17:45"
"time": "2016-09-28T07:17:45+00:00"
},
{
"name": "dflydev/ant-path-matcher",
@ -720,7 +719,7 @@
"path",
"pattern"
],
"time": "2012-12-03 05:03:00"
"time": "2012-12-03T05:03:00+00:00"
},
{
"name": "dflydev/apache-mime-types",
@ -775,7 +774,7 @@
"mime",
"mimetypes"
],
"time": "2013-05-14 02:02:01"
"time": "2013-05-14T02:02:01+00:00"
},
{
"name": "dflydev/canal",
@ -830,7 +829,7 @@
"mime",
"type"
],
"time": "2013-05-14 05:22:25"
"time": "2013-05-14T05:22:25+00:00"
},
{
"name": "dflydev/dot-access-configuration",
@ -890,7 +889,7 @@
"config",
"configuration"
],
"time": "2014-11-14 03:26:12"
"time": "2014-11-14T03:26:12+00:00"
},
{
"name": "dflydev/dot-access-data",
@ -944,7 +943,7 @@
"dot",
"notation"
],
"time": "2015-08-13 03:51:18"
"time": "2015-08-13T03:51:18+00:00"
},
{
"name": "dflydev/embedded-composer",
@ -1063,7 +1062,7 @@
"placeholder",
"resolver"
],
"time": "2012-10-28 21:08:28"
"time": "2012-10-28T21:08:28+00:00"
},
{
"name": "dflydev/symfony-finder-factory",
@ -1116,7 +1115,7 @@
"finder",
"syfony"
],
"time": "2012-11-09 16:45:28"
"time": "2012-11-09T16:45:28+00:00"
},
{
"name": "doctrine/inflector",
@ -1183,7 +1182,7 @@
"singularize",
"string"
],
"time": "2014-12-20 21:24:13"
"time": "2014-12-20T21:24:13+00:00"
},
{
"name": "evenement/evenement",
@ -1223,7 +1222,7 @@
"keywords": [
"event-dispatcher"
],
"time": "2012-05-30 15:01:08"
"time": "2012-05-30T15:01:08+00:00"
},
{
"name": "fabpot/goutte",
@ -1272,7 +1271,7 @@
"keywords": [
"scraper"
],
"time": "2015-11-05 12:58:44"
"time": "2015-11-05T12:58:44+00:00"
},
{
"name": "guzzle/guzzle",
@ -1365,7 +1364,7 @@
"web service"
],
"abandoned": "guzzlehttp/guzzle",
"time": "2012-12-19 23:06:35"
"time": "2012-12-19T23:06:35+00:00"
},
{
"name": "guzzlehttp/guzzle",
@ -1427,7 +1426,7 @@
"rest",
"web service"
],
"time": "2016-10-08 15:01:37"
"time": "2016-10-08T15:01:37+00:00"
},
{
"name": "guzzlehttp/promises",
@ -1478,7 +1477,7 @@
"keywords": [
"promise"
],
"time": "2016-05-18 16:56:05"
"time": "2016-05-18T16:56:05+00:00"
},
{
"name": "guzzlehttp/psr7",
@ -1536,7 +1535,7 @@
"stream",
"uri"
],
"time": "2016-06-24 23:00:38"
"time": "2016-06-24T23:00:38+00:00"
},
{
"name": "justinrainbow/json-schema",
@ -1602,7 +1601,7 @@
"json",
"schema"
],
"time": "2016-06-02 10:59:52"
"time": "2016-06-02T10:59:52+00:00"
},
{
"name": "michelf/php-markdown",
@ -1653,7 +1652,7 @@
"keywords": [
"markdown"
],
"time": "2015-12-22 18:18:12"
"time": "2015-12-22T18:18:12+00:00"
},
{
"name": "netcarver/textile",
@ -1706,7 +1705,7 @@
"plaintext",
"textile"
],
"time": "2014-01-02 09:39:06"
"time": "2014-01-02T09:39:06+00:00"
},
{
"name": "opdavies/sculpin-content-generator-bundle",
@ -1754,7 +1753,7 @@
"keywords": [
"sculpin"
],
"time": "2016-09-11 11:57:47"
"time": "2016-09-11T11:57:47+00:00"
},
{
"name": "opdavies/sculpin-gist-embed-bundle",
@ -1799,6 +1798,48 @@
],
"time": "2016-04-05 19:57:22"
},
{
"name": "opdavies/sculpin-twig-sort-by-field-bundle",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/opdavies/sculpin-twig-sort-by-field-bundle.git",
"reference": "41b193d878238d505799635fdee95876c5be1894"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/opdavies/sculpin-twig-sort-by-field-bundle/zipball/41b193d878238d505799635fdee95876c5be1894",
"reference": "41b193d878238d505799635fdee95876c5be1894",
"shasum": ""
},
"require": {
"snilius/twig-sort-by-field": "^0.1"
},
"suggest": {
"sculpin/sculpin": "@stable"
},
"type": "library",
"autoload": {
"psr-4": {
"Opdavies\\Sculpin\\Bundle\\TwigSortByFieldBundle\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Oliver Davies",
"email": "oliver@oliverdavies.uk",
"homepage": "https://www.oliverdavies.uk"
}
],
"keywords": [
"sculpin"
],
"time": "2017-03-05 22:11:49"
},
{
"name": "psr/http-message",
"version": "1.0.1",
@ -1847,7 +1888,7 @@
"request",
"response"
],
"time": "2016-08-06 14:39:51"
"time": "2016-08-06T14:39:51+00:00"
},
{
"name": "psr/log",
@ -1894,7 +1935,7 @@
"psr",
"psr-3"
],
"time": "2016-10-10 12:19:37"
"time": "2016-10-10T12:19:37+00:00"
},
{
"name": "react/event-loop",
@ -1937,7 +1978,7 @@
"keywords": [
"event-loop"
],
"time": "2013-01-05 11:41:26"
"time": "2013-01-05T11:41:26+00:00"
},
{
"name": "react/http",
@ -1979,7 +2020,7 @@
"keywords": [
"http"
],
"time": "2012-12-26 16:33:04"
"time": "2012-12-26T16:33:04+00:00"
},
{
"name": "react/socket",
@ -2021,7 +2062,7 @@
"keywords": [
"Socket"
],
"time": "2012-12-14 00:58:14"
"time": "2012-12-14T00:58:14+00:00"
},
{
"name": "react/stream",
@ -2066,7 +2107,7 @@
"pipe",
"stream"
],
"time": "2012-12-14 00:58:14"
"time": "2012-12-14T00:58:14+00:00"
},
{
"name": "sculpin/sculpin",
@ -2200,7 +2241,7 @@
"license": [
"MIT"
],
"time": "2016-05-24 19:51:53"
"time": "2016-05-24T19:51:53+00:00"
},
{
"name": "seld/cli-prompt",
@ -2248,7 +2289,7 @@
"input",
"prompt"
],
"time": "2016-04-18 09:31:41"
"time": "2016-04-18T09:31:41+00:00"
},
{
"name": "seld/jsonlint",
@ -2294,7 +2335,7 @@
"parser",
"validator"
],
"time": "2016-09-14 15:17:56"
"time": "2016-09-14T15:17:56+00:00"
},
{
"name": "seld/phar-utils",
@ -2338,7 +2379,46 @@
"keywords": [
"phra"
],
"time": "2015-10-13 18:44:15"
"time": "2015-10-13T18:44:15+00:00"
},
{
"name": "snilius/twig-sort-by-field",
"version": "v0.1.5",
"source": {
"type": "git",
"url": "https://github.com/victorhaggqvist/Twig-sort-by-field.git",
"reference": "6d02c6d49f93d78526e24ecf8999d322f291aa44"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/victorhaggqvist/Twig-sort-by-field/zipball/6d02c6d49f93d78526e24ecf8999d322f291aa44",
"reference": "6d02c6d49f93d78526e24ecf8999d322f291aa44",
"shasum": ""
},
"require-dev": {
"doctrine/collections": "^1.3",
"php": ">=5.5.9",
"phpunit/phpunit": "~4.5",
"twig/extensions": "~1.2"
},
"type": "library",
"autoload": {
"psr-4": {
"Snilius\\Twig\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "Victor Häggqvist",
"email": "victor@snilius.com"
}
],
"description": "A Twig Extension filter to sort an array of entries (objects or arrays) by the specified field",
"time": "2016-01-27T00:29:51+00:00"
},
{
"name": "symfony/browser-kit",
@ -2395,7 +2475,7 @@
],
"description": "Symfony BrowserKit Component",
"homepage": "https://symfony.com",
"time": "2016-09-06 11:02:40"
"time": "2016-09-06T11:02:40+00:00"
},
{
"name": "symfony/class-loader",
@ -2448,7 +2528,7 @@
],
"description": "Symfony ClassLoader Component",
"homepage": "https://symfony.com",
"time": "2016-09-06 23:19:39"
"time": "2016-09-06T23:19:39+00:00"
},
{
"name": "symfony/config",
@ -2501,7 +2581,7 @@
],
"description": "Symfony Config Component",
"homepage": "https://symfony.com",
"time": "2016-09-14 20:31:12"
"time": "2016-09-14T20:31:12+00:00"
},
{
"name": "symfony/console",
@ -2562,7 +2642,7 @@
],
"description": "Symfony Console Component",
"homepage": "https://symfony.com",
"time": "2016-09-28 00:10:16"
"time": "2016-09-28T00:10:16+00:00"
},
{
"name": "symfony/css-selector",
@ -2615,7 +2695,7 @@
],
"description": "Symfony CssSelector Component",
"homepage": "https://symfony.com",
"time": "2016-09-06 11:02:40"
"time": "2016-09-06T11:02:40+00:00"
},
{
"name": "symfony/debug",
@ -2672,7 +2752,7 @@
],
"description": "Symfony Debug Component",
"homepage": "https://symfony.com",
"time": "2016-09-06 10:55:00"
"time": "2016-09-06T10:55:00+00:00"
},
{
"name": "symfony/dependency-injection",
@ -2735,7 +2815,7 @@
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
"time": "2016-09-24 09:47:20"
"time": "2016-09-24T09:47:20+00:00"
},
{
"name": "symfony/dom-crawler",
@ -2791,7 +2871,7 @@
],
"description": "Symfony DomCrawler Component",
"homepage": "https://symfony.com",
"time": "2016-08-05 08:37:39"
"time": "2016-08-05T08:37:39+00:00"
},
{
"name": "symfony/event-dispatcher",
@ -2851,7 +2931,7 @@
],
"description": "Symfony EventDispatcher Component",
"homepage": "https://symfony.com",
"time": "2016-07-28 16:56:28"
"time": "2016-07-28T16:56:28+00:00"
},
{
"name": "symfony/filesystem",
@ -2900,7 +2980,7 @@
],
"description": "Symfony Filesystem Component",
"homepage": "https://symfony.com",
"time": "2016-09-06 10:55:00"
"time": "2016-09-06T10:55:00+00:00"
},
{
"name": "symfony/finder",
@ -2949,7 +3029,7 @@
],
"description": "Symfony Finder Component",
"homepage": "https://symfony.com",
"time": "2016-09-28 00:10:16"
"time": "2016-09-28T00:10:16+00:00"
},
{
"name": "symfony/http-foundation",
@ -3002,7 +3082,7 @@
],
"description": "Symfony HttpFoundation Component",
"homepage": "https://symfony.com",
"time": "2016-07-17 13:54:30"
"time": "2016-07-17T13:54:30+00:00"
},
{
"name": "symfony/http-kernel",
@ -3084,7 +3164,7 @@
],
"description": "Symfony HttpKernel Component",
"homepage": "https://symfony.com",
"time": "2016-10-03 18:44:05"
"time": "2016-10-03T18:44:05+00:00"
},
{
"name": "symfony/polyfill-apcu",
@ -3137,7 +3217,7 @@
"portable",
"shim"
],
"time": "2016-05-18 14:26:46"
"time": "2016-05-18T14:26:46+00:00"
},
{
"name": "symfony/polyfill-mbstring",
@ -3196,7 +3276,7 @@
"portable",
"shim"
],
"time": "2016-05-18 14:26:46"
"time": "2016-05-18T14:26:46+00:00"
},
{
"name": "symfony/process",
@ -3245,7 +3325,7 @@
],
"description": "Symfony Process Component",
"homepage": "https://symfony.com",
"time": "2016-09-29 14:03:54"
"time": "2016-09-29T14:03:54+00:00"
},
{
"name": "symfony/translation",
@ -3309,7 +3389,7 @@
],
"description": "Symfony Translation Component",
"homepage": "https://symfony.com",
"time": "2016-09-06 11:02:40"
"time": "2016-09-06T11:02:40+00:00"
},
{
"name": "symfony/yaml",
@ -3358,7 +3438,7 @@
],
"description": "Symfony Yaml Component",
"homepage": "https://symfony.com",
"time": "2016-09-02 01:57:56"
"time": "2016-09-02T01:57:56+00:00"
},
{
"name": "tsphethean/sculpin-related-posts-bundle",
@ -3403,7 +3483,7 @@
"site",
"static"
],
"time": "2014-03-21 14:38:52"
"time": "2014-03-21T14:38:52+00:00"
},
{
"name": "twig/extensions",
@ -3455,7 +3535,7 @@
"i18n",
"text"
],
"time": "2016-09-22 16:50:57"
"time": "2016-09-22T16:50:57+00:00"
},
{
"name": "twig/twig",
@ -3516,7 +3596,7 @@
"keywords": [
"templating"
],
"time": "2016-10-05 18:57:41"
"time": "2016-10-05T18:57:41+00:00"
},
{
"name": "webignition/internet-media-type",
@ -3566,7 +3646,7 @@
"media type",
"media-type"
],
"time": "2015-02-20 16:52:30"
"time": "2015-02-20T16:52:30+00:00"
},
{
"name": "webignition/quoted-string",
@ -3607,7 +3687,7 @@
"parser",
"quoted-string"
],
"time": "2012-08-15 16:52:06"
"time": "2012-08-15T16:52:06+00:00"
},
{
"name": "webignition/string-parser",
@ -3648,7 +3728,7 @@
"parser",
"string"
],
"time": "2014-04-23 09:31:03"
"time": "2014-04-23T09:31:03+00:00"
}
],
"packages-dev": [],
@ -3660,6 +3740,7 @@
"dflydev/embedded-composer": 20,
"opdavies/sculpin-content-generator-bundle": 0,
"opdavies/sculpin-gist-embed-bundle": 20,
"opdavies/sculpin-twig-sort-by-field-bundle": 20,
"sculpin/sculpin": 20
},
"prefer-stable": false,

View file

@ -6,5 +6,7 @@ slides: https://speakerdeck.com/opdavies/it-all-started-with-a-patch-phpsw
slides_embed: <script async class="speakerdeck-embed" data-id="5862bdecb7a24cfaa5fc844696fafa0c" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>
logo: assets/images/talks/logos/phpsw.png
logo_link: http://phpsw.uk/talks/it-started-with-a-patch
events:
- { title: PHPSW, date: 2017-02-08 }
---
A crash course of why and how to get involved with open source.

View file

@ -6,6 +6,9 @@ logo_link: http://drupalcamp.london/session/getting-your-data-drupal-8
slides: https://speakerdeck.com/opdavies/getting-your-data-into-drupal-8-drupal-bristol
slides_embed: <script async class="speakerdeck-embed" data-id="63e5dfce996e46699e304d50e896477b" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>
tags: [drupalcamp, migration, drupal-8]
events:
- { title: DrupalCamp London 2017, date: 2017-03-05 }
- { title: Drupal Bristol, date: 2017-01-18 }
---
If youve moved a site from Drupal 6 to 7, the chances are that youve either used the upgrade path to update your old site in-place, or you built a new site from scratch and used the Migrate module from contrib to migrate your data from the old database.

View file

@ -6,6 +6,8 @@ logo_link: http://drupalcamp.london/session/test-driven-drupal-development-simpl
slides: https://speakerdeck.com/opdavies/test-driven-drupal-development-with-simpletest-and-phpunit-drupalcamp-london-2017
slides_embed: <script async class="speakerdeck-embed" data-id="4f12722ed400468b93ebb32a23b3c757" data-ratio="1.37081659973226" src="//speakerdeck.com/assets/embed.js"></script>
tags: [drupalcamp, simpletest, phpunit, testing]
events:
- { title: DrupalCamp London 2017, date: 2017-03-05 }
---
Testing is important. Why? It allows developers to add new features and edit and refactor existing code without the worry of adding regressions, reduces the reliance on manual testing to discover bugs, and by taking a test driven approach, your implementation code is leaner as you only write what is needed for your tests to pass.

View file

@ -7,37 +7,18 @@ use: [talks, posts]
---
<h1>Talks</h1>
<p>I regularly speak at conferences and user groups about a range of subjects including Drupal, Sculpin and Git. If you would like to me to speak at your group or conference, please <a href="/contact/">get in touch</a>.</p>
{% set events = [] %}
<p>There is also information about events that Ive attended and spoken at on my <a href="{{ site.lanyrd.url }}">Lanyrd</a> and <a href="{{ site.joindin.url }}">Joind.in</a> profiles.</p>
{% set now = 'now'|date('U') %}
{% include "talks-table" with { talks: data.talks } %}
<!-- <table class="table table-striped">
<thead>
<tr>
<th>Date</th>
<th>Talk</th>
<th>Event</th>
</tr>
</thead>
<tbody>
{% for talk in data.talks if talk.date < now %}
<tr>
<td>
{{ talk.date|date(site.default_date_format) }}
</td>
<td>
<a href="{{ talk.url }}">
{{ talk.title }}
</a>
</td>
<td>{{ talk.event.name }}</td>
</tr>
{% for talk in data.talks %}
{% for event in talk.events %}
{% set event = event|merge({ talk: talk }) %}
{% set events = events|merge([event]) %}
{% endfor %}
</tbody>
</table> -->
{% endfor %}
{% for event in events|sortbyfield('date')|reverse %}
{{ event.title }}<br>
{{ event.date }}<br>
{{ event.talk.title }}<br>
{{ event.talk.url }}<br><br>
{% endfor %}