diff --git a/app/SculpinKernel.php b/app/SculpinKernel.php index 77f5abe9..36416ff0 100644 --- a/app/SculpinKernel.php +++ b/app/SculpinKernel.php @@ -1,5 +1,7 @@ =5.6.4" + }, + "require-dev": { + "mockery/mockery": "^0.9.7", + "phpunit/phpunit": "^5.7" + }, + "type": "library", + "autoload": { + "files": [ + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylorotwell@gmail.com" + } + ], + "description": "Collect - Illuminate Collections as a separate package.", + "keywords": [ + "collection", + "laravel" + ], + "time": "2017-08-14T20:47:19+00:00" + }, { "name": "tsphethean/sculpin-related-posts-bundle", "version": "0.1.0", @@ -2769,6 +2816,55 @@ "string" ], "time": "2017-05-11T10:04:12+00:00" + }, + { + "name": "wikimedia/composer-merge-plugin", + "version": "v1.4.1", + "source": { + "type": "git", + "url": "https://github.com/wikimedia/composer-merge-plugin.git", + "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wikimedia/composer-merge-plugin/zipball/81c6ac72a24a67383419c7eb9aa2b3437f2ab100", + "reference": "81c6ac72a24a67383419c7eb9aa2b3437f2ab100", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0", + "php": ">=5.3.2" + }, + "require-dev": { + "composer/composer": "~1.0.0", + "jakub-onderka/php-parallel-lint": "~0.8", + "phpunit/phpunit": "~4.8|~5.0", + "squizlabs/php_codesniffer": "~2.1.0" + }, + "type": "composer-plugin", + "extra": { + "branch-alias": { + "dev-master": "1.3.x-dev" + }, + "class": "Wikimedia\\Composer\\MergePlugin" + }, + "autoload": { + "psr-4": { + "Wikimedia\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bryan Davis", + "email": "bd808@wikimedia.org" + } + ], + "description": "Composer plugin to merge multiple composer.json files", + "time": "2017-04-25T02:31:25+00:00" } ], "packages-dev": [ diff --git a/source/_includes/talk/events.html.twig b/source/_includes/talk/events.html.twig index a56554ac..8de2ca34 100644 --- a/source/_includes/talk/events.html.twig +++ b/source/_includes/talk/events.html.twig @@ -1,16 +1,13 @@

Events

- {% set events = [] %} - {% for date in site.events.dates if date.talk_id == page.talk_id %} - {% set events = events|merge([{ - date: date, - event: site.events.events[date.event], + {% set talks = [] %} + {% for event in page.events %} + {% set talks = talks|merge([{ + event: event|merge(site.events[event.event]), + talk: page, }]) %} {% endfor %} - {% include 'talks-table' with { - events: events, - talk_page: true - } %} + {% include "talks-table" with { talk_page: true } %}
diff --git a/source/_includes/talks-table-row.html.twig b/source/_includes/talks-table-row.html.twig new file mode 100644 index 00000000..9eac5be3 --- /dev/null +++ b/source/_includes/talks-table-row.html.twig @@ -0,0 +1,56 @@ + + + {{ row.event.date|date(row.event.fuzzy_date ? 'F Y' : 'j F Y') }} + + {% if row.event.time is defined %} + + {{ row.event.time }} + + {% endif %} + + + {% if not talk_page %} + + {% if row.talk.url is not empty %} + + {{ row.talk.title }} + + {% else %} + {{ row.talk.title }} + {% endif %} + + + {{ row.event.type|default('Talk') }} + + + {% endif %} + + + {% if row.event.website is not empty %} + + {{ row.event.name }} + + {% else %} + {{ row.event.name }} + {% endif %} + + {% if row.event.location is defined %} + + {{ row.event.location }} + + {% endif %} + + + {% if not upcoming %} + + {% if row.event.feedback and row.event.date <= today %} + + joind.in + + {% endif %} + + {% endif %} + diff --git a/source/_includes/talks-table.html.twig b/source/_includes/talks-table.html.twig index 8fd88ed1..0a571d11 100644 --- a/source/_includes/talks-table.html.twig +++ b/source/_includes/talks-table.html.twig @@ -17,65 +17,8 @@ {% set today = 'today'|date('Y-m-d') %} - {% for row in events %} - - - {{ row.date.date|date(row.date.fuzzy_date ? 'F Y' : 'j F Y') }} - - {% if row.date.time is defined %} - - {{ row.date.time }} - - {% endif %} - - - {% if not talk_page %} - - {% if row.date.talk_title is not defined %} - {% for talk in data.talks if talk.talk_id == row.date.talk_id %} - - {{ talk.title }} - - {% endfor %} - {% else %} - {{ row.date.talk_title }} - {% endif %} - - - {{ row.date.type|default('Talk') }} - - - {% endif %} - - - {% if row.event.website is not empty %} - - {{ row.event.name }} - - {% else %} - {{ row.event.name }} - {% endif %} - - {% if row.event.location is defined %} - - {{ row.event.location }} - - {% endif %} - - - {% if not upcoming %} - - {% if row.date.feedback and row.date.date <= today %} - - joind.in - - {% endif %} - - {% endif %} - + {% for row in talks %} + {% include "talks-table-row" %} {% endfor %} diff --git a/source/_talks/building-static-websites-sculpin.md b/source/_talks/building-static-websites-sculpin.md index 6d4c40c1..99104eaa 100644 --- a/source/_talks/building-static-websites-sculpin.md +++ b/source/_talks/building-static-websites-sculpin.md @@ -1,5 +1,4 @@ --- -talk_id: 8 title: Building Static Websites with Sculpin type: Lightning talk slides: @@ -11,6 +10,10 @@ tweets: yes video: embed: url: https://www.youtube.com/watch?v=aN53arCKZAU +events: + - event: phpsw + date: '2015-10-14' + feedback: 'https://joind.in/talk/view/15486' --- [Sculpin][0] is a static site generator written in PHP. It converts Markdown files, Twig templates and standard HTML into a static HTML site that can be easily deployed. diff --git a/source/_talks/dancing-for-drupal.md b/source/_talks/dancing-for-drupal.md index 5b75e131..fd43dc52 100644 --- a/source/_talks/dancing-for-drupal.md +++ b/source/_talks/dancing-for-drupal.md @@ -1,11 +1,13 @@ --- -talk_id: 7 title: Dancing for Drupal slides: url: https://speakerdeck.com/opdavies/umbristol-dancing-for-drupal embed: tags: [meetup, umbristol, drupal] tweets: yes +events: + - event: umbristol + date: '2015-08-25' --- As part of their [CMS Dance-Off][1], I was selected to speak about Drupal alongside other speakers representing Umbraco, Sitecore and Episerver. diff --git a/source/_talks/deploying-drupal-fabric.md b/source/_talks/deploying-drupal-fabric.md index c12222bb..ca001e8c 100644 --- a/source/_talks/deploying-drupal-fabric.md +++ b/source/_talks/deploying-drupal-fabric.md @@ -1,5 +1,4 @@ --- -talk_id: 19 title: 'Deploying Drupal with Fabric' type: Talk slides: @@ -14,6 +13,12 @@ meta: title: Deploying Drupal with Fabric description: "You've built your Drupal site, now learn how to deploy it with Fabric." type: website +events: + - event: drupalcamp-dublin-17 + date: '2017-10-20' + time: '15:00 - 15:40' + - event: drupal-somerset + date: '2017-10-26' --- You’ve built your website, and now you just need to deploy it. There are various ways that this could be done - from (S)FTP, to SCP and rsync, to running commands like “git pull” and “composer install” directly on the server (not recommended). diff --git a/source/_talks/deploying-php-fabric.md b/source/_talks/deploying-php-fabric.md index 76fcb7e0..44ecb569 100644 --- a/source/_talks/deploying-php-fabric.md +++ b/source/_talks/deploying-php-fabric.md @@ -1,5 +1,4 @@ --- -talk_id: 18 title: Deploying PHP Applications with Fabric slides: url: https://speakerdeck.com/opdavies/deploying-php-applications-with-fabric @@ -18,6 +17,18 @@ meta: width: 2560 height: 1440 type: image/png +events: + - event: nomad-php + date: '2017-04-20' + time: '19:00 (CET)' + type: 'Lightning talk' + - event: phpsw + date: '2017-09-13' + feedback: https://joind.in/talk/a5ff3 + - event: phpnw17 + date: '2017-10-01' + time: '09:00 - 09:45' + feedback: 'https://joind.in/talk/4e35d' --- You’ve built your application, and now you just need to deploy it. There are various ways that this could be done – from (S)FTP, to SCP and rsync, to running commands like “git pull” and “composer install” directly on the server (not recommended). diff --git a/source/_talks/drupal-8-module-development.md b/source/_talks/drupal-8-module-development.md index 444ffe8e..e060c639 100644 --- a/source/_talks/drupal-8-module-development.md +++ b/source/_talks/drupal-8-module-development.md @@ -1,5 +1,4 @@ --- -talk_id: 9 title: Getting Started with Drupal 8 Module Development tags: [conference, php, drupal, drupalcamp, drupal-8] tweets: yes @@ -18,6 +17,9 @@ meta: type: 'image/png' height: 540 width: 960 +events: + - event: drupalcamp-london-16 + date: '2016-03-05' --- New to object-orientated PHP, Symfony or YAML, and want to get started building modules in Drupal 8? This is the session for you! diff --git a/source/_talks/drupal-8-rejoining-the-herd.md b/source/_talks/drupal-8-rejoining-the-herd.md index f1e05644..fa2438a5 100644 --- a/source/_talks/drupal-8-rejoining-the-herd.md +++ b/source/_talks/drupal-8-rejoining-the-herd.md @@ -1,10 +1,13 @@ --- -talk_id: 11 title: Drupal 8: Rejoining the Herd tags: [conference, php, drupal, drupal-8] slides: url: https://speakerdeck.com/opdavies/drupal-rejoining-the-herd embed: +events: + - event: phpsc16 + date: '2016-06-11' + feedback: 'https://joind.in/talk/41d0f' --- [Drupal 8][0] was (finally) released on November 19th 2015, after almost 4 years of work and code commits by over 3,200 different contributors. Whilst it’s pretty much the same as the Drupal that we know and, hopefully, love, a lot has changed behind the scenes and under the hood! diff --git a/source/_talks/drupal-8.md b/source/_talks/drupal-8.md index 55d6bfba..dea13b3e 100644 --- a/source/_talks/drupal-8.md +++ b/source/_talks/drupal-8.md @@ -1,7 +1,5 @@ --- -talk_id: 5 title: Drupal 8 -type: Lightning talk slides: url: https://speakerdeck.com/opdavies/drupal-8 embed: @@ -10,6 +8,9 @@ video: embed: tags: [meetup, phpsw, drupal, drupal-8] tweets: yes +events: + - event: phpsw + date: '2015-04-08' --- This was a ten minute lightning talk, designed to highlight the major changes coming in Drupal 8. diff --git a/source/_talks/drupal-vm-generator.md b/source/_talks/drupal-vm-generator.md index eebf6782..bb8e7971 100644 --- a/source/_talks/drupal-vm-generator.md +++ b/source/_talks/drupal-vm-generator.md @@ -1,5 +1,4 @@ --- -talk_id: 10 title: Drupal VM Generator type: Lightning talk code: https://github.com/opdavies/drupal-vm-generator @@ -10,6 +9,11 @@ slides: video: url: https://youtu.be/U1pbKAAO2Wo?t=3696 embed: +events: + - event: nwdug + date: '2016-03-08' + - event: drupal-bristol + date: '2016-04-02' --- An short talk about the [Drupal VM Generator][1] project. diff --git a/source/_talks/drupal-vm-meet-symfony-console.md b/source/_talks/drupal-vm-meet-symfony-console.md index c1131a27..99cb716c 100644 --- a/source/_talks/drupal-vm-meet-symfony-console.md +++ b/source/_talks/drupal-vm-meet-symfony-console.md @@ -1,11 +1,13 @@ --- -talk_id: 12 title: Drupal VM, Meet Symfony Console tags: [conference, php, drupal-vm, symfony] slides: url: https://speakerdeck.com/opdavies/drupal-vm-meet-symfony-console embed: image: drupal-vm-meet-symfony-console.png +events: + - event: drupalcamp-bristol-16 + date: '2016-07-23' --- _TL;DR - Come and learn about Symfony Console, with examples from a real-world project._ diff --git a/source/_talks/drupalorg-2015.md b/source/_talks/drupalorg-2015.md index ecc27e46..d8ec7817 100644 --- a/source/_talks/drupalorg-2015.md +++ b/source/_talks/drupalorg-2015.md @@ -1,8 +1,12 @@ --- -talk_id: 4 title: Drupal.org in 2015: What's Coming Next tags: [conference, drupalcamp, drupalcamp-london, drupal-association] slides: url: https://speakerdeck.com/opdavies/drupal-dot-org-in-15 embed: +events: + - event: drupalcamp-brighton-15 + date: '2015-01-18' + - event: drupalcamp-london-15 + date: '2015-02-28' --- diff --git a/source/_talks/drush-make-drupalbristol.md b/source/_talks/drush-make-drupalbristol.md index f6916062..fe506f05 100644 --- a/source/_talks/drush-make-drupalbristol.md +++ b/source/_talks/drush-make-drupalbristol.md @@ -1,8 +1,10 @@ --- -talk_id: 3 title: drush make drupalbristol slides: url: https://speakerdeck.com/opdavies/drush-make-drupalbristol embed: tags: [meetup, drupal, drupal-bristol, drush, drush-make] +events: + - event: drupal-bristol + date: '2014-08-19' --- diff --git a/source/_talks/getting-your-data-into-drupal-8.md b/source/_talks/getting-your-data-into-drupal-8.md index 24342c15..89caf3e5 100644 --- a/source/_talks/getting-your-data-into-drupal-8.md +++ b/source/_talks/getting-your-data-into-drupal-8.md @@ -1,5 +1,4 @@ --- -talk_id: 15 title: Getting (Your Data) Into Drupal 8 slides: url: https://speakerdeck.com/opdavies/getting-your-data-into-drupal-8-drupal-bristol @@ -19,6 +18,12 @@ meta: height: 1440 type: image/png use: [talks] +events: + - event: drupal-bristol + date: '2017-01-18' + - event: drupalcamp-london-17 + date: '2017-03-04' + time: '12:05 - 12:50' --- If you’ve moved a site from Drupal 6 to 7, the chances are that you’ve 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. diff --git a/source/_talks/git-flow.md b/source/_talks/git-flow.md index 59a2e1f3..37a85900 100644 --- a/source/_talks/git-flow.md +++ b/source/_talks/git-flow.md @@ -1,5 +1,4 @@ --- -talk_id: 2 title: Never Commit to Master - An Introduction to Git Flow slides: url: https://speakerdeck.com/opdavies/never-commit-to-master-an-introduction-to-git-flow @@ -9,4 +8,7 @@ video: embed: tags: [conference, drupalcamp, drupalcamp-london, git, git-flow] tweets: yes +events: + - event: drupalcamp-london-14 + date: '2014-03-01' --- diff --git a/source/_talks/goodbye-drush-make-hello-composer.md b/source/_talks/goodbye-drush-make-hello-composer.md index 8225883f..678bdf58 100644 --- a/source/_talks/goodbye-drush-make-hello-composer.md +++ b/source/_talks/goodbye-drush-make-hello-composer.md @@ -1,10 +1,12 @@ --- -talk_id: 14 title: Goodbye Drush Make. Hello Composer! tags: ['meetup', 'drupal', 'composer'] slides: url: http://bit.ly/slides-goodbye-drush-make-hello-composer2 embed: '' +events: + - event: drupal-bristol + date: '2016-11-17' --- One of the main outcomes of Drupal 8 was “getting off the island” with third-party code included in core and adopting modern best practices from the wider PHP ecosystem - including [Composer][1], PHP’s dependency manager. diff --git a/source/_talks/it-all-started-with-a-patch.md b/source/_talks/it-all-started-with-a-patch.md index 211c3b6b..25243244 100644 --- a/source/_talks/it-all-started-with-a-patch.md +++ b/source/_talks/it-all-started-with-a-patch.md @@ -1,5 +1,4 @@ --- -talk_id: 16 title: It All Started With A Patch type: Lightning talk tags: [meetup, phpsw, open-source] @@ -9,5 +8,9 @@ slides: video: url: https://www.youtube.com/watch?v=5FYMRR61sdo embed: '' +events: + - event: phpsw + date: '2017-02-08' + feedback: 'https://joind.in/event/phpsw-new-skills-february-17/it-started-with-a-patch' --- A crash course of why and how to get involved with open source. diff --git a/source/_talks/modern-drupal-development-with-composer.md b/source/_talks/modern-drupal-development-with-composer.md index 67811014..c33bfc34 100644 --- a/source/_talks/modern-drupal-development-with-composer.md +++ b/source/_talks/modern-drupal-development-with-composer.md @@ -1,5 +1,4 @@ --- -talk_id: 13 title: Modern Drupal Development with Composer type: Lightning talk tags: ['meetups', 'phpsw', 'drupal', 'composer'] @@ -9,6 +8,9 @@ slides: video: url: https://www.youtube.com/watch?v=Yi_FPI3xHwc embed: '' +events: + - event: phpsw + date: '2016-11-09' --- Building a Drupal application? You no longer need to download archives to add new modules or update core, or deal with Drupal specific tools to manage your codebase. diff --git a/source/_talks/so-what-is-this-drupal-thing.md b/source/_talks/so-what-is-this-drupal-thing.md index 7b2a2c7a..1dd14fb3 100644 --- a/source/_talks/so-what-is-this-drupal-thing.md +++ b/source/_talks/so-what-is-this-drupal-thing.md @@ -1,8 +1,10 @@ --- -talk_id: 1 title: So, what is this Drupal thing? video: url: https://vimeo.com/49827006 embed: tags: [meetup, drupal, unified-diff] +events: + - event: unifieddiff + date: '2012-09-05' --- diff --git a/source/_talks/tdd-test-driven-drupal.md b/source/_talks/tdd-test-driven-drupal.md index 08203cc7..bdd046e1 100644 --- a/source/_talks/tdd-test-driven-drupal.md +++ b/source/_talks/tdd-test-driven-drupal.md @@ -1,5 +1,4 @@ --- -talk_id: 17 title: TDD - Test Driven Drupal slides: url: 'https://speakerdeck.com/opdavies/tdd-test-driven-drupal' @@ -19,6 +18,13 @@ meta: height: 1440 type: image/png use: [talks] +events: + - event: drupalcamp-london-17 + date: '2017-03-04' + time: '16:15 - 17:00' + - event: drupalcamp-dublin-17 + date: '2017-10-21' + time: '12:00 - 12:40' --- 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. diff --git a/source/_talks/test-drive-twig-with-sculpin.md b/source/_talks/test-drive-twig-with-sculpin.md index 800d957b..eac3950c 100644 --- a/source/_talks/test-drive-twig-with-sculpin.md +++ b/source/_talks/test-drive-twig-with-sculpin.md @@ -1,5 +1,4 @@ --- -talk_id: 6 title: Test Drive Twig with Sculpin slides: url: https://speakerdeck.com/opdavies/test-drive-twig-with-sculpin @@ -7,6 +6,9 @@ slides: code: https://github.com/opdavies/sculpin-demo tags: [conference, drupalcamp, drupalcamp-north, sculpin, twig] tweets: yes +events: + - event: drupalcamp-north-15 + date: '2015-07-25' --- [Sculpin][1] is a static site generator written in PHP, and based on [Symfony components][2]. It uses [YAML][3] and [Twig][4], which makes it very appealing to Drupal people wanting to learn these in preparation for Drupal 8. diff --git a/source/talks.html.twig b/source/talks.html.twig new file mode 100644 index 00000000..ee3dd122 --- /dev/null +++ b/source/talks.html.twig @@ -0,0 +1,28 @@ +--- +layout: page +title: Talks +meta: + description: 'Information about previous and upcoming talks that Oliver has presented at conferences and user groups' +use: [talks] +--- +{% block content %} +

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 get in touch.

+ +

Last 5 Talks

+ + {% set talks = [] %} + {% for talk in data.talks %} + {% for event in talk.events %} + {% set talks = talks|merge([{ + event: event|merge(site.events[event.event]), + talk: talk, + }]) %} + {% endfor %} + {% endfor %} + + {% include "talks-table" with { + talks: talks|format_talks|slice(0,5) + } %} + +

Upcoming talks can be found in the talks archive.

+{% endblock %} diff --git a/source/talks.md b/source/talks.md deleted file mode 100644 index feb1600e..00000000 --- a/source/talks.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -layout: default -title: Talks -meta: - description: 'Information about previous and upcoming talks that Oliver has presented at conferences and user groups' -use: [talks, posts] ---- -{% block content %} -# Talks - -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 [get in touch][0]. - -There is also information about events that I’ve attended and spoken at on my [Lanyrd][1] and [Joind.in][2] profiles. - -{% set upcoming_events = [] %} -{% set past_events = [] %} - -{% for date in site.events.dates %} - {% if date.date >= 'today'|date('Y-m-d') %} - {% set upcoming_events = upcoming_events|merge([{ - date: date, - event: site.events.events[date.event] - }]) %} - {% else %} - {% set past_events = past_events|merge([{ - date: date, - event: site.events.events[date.event] - }]) %} - {% endif %} -{% endfor %} - -{% if upcoming_events is not empty %} -## Upcoming Talks - -{% include 'talks-table' with { events: upcoming_events, upcoming: true } %} -{% endif %} - -## Last 5 Talks - -{% include 'talks-table' with { events: past_events|reverse|slice(0,5) } %} - -You can view more talks in the [talks archive][3]. -{% endblock %} - -[0]: {{site.url}}/contact -[1]: {{site.lanyrd.url}} -[2]: {{site.joindin.url}} -[3]: {{site.url}}/talks/archive diff --git a/source/talks/archive.html.twig b/source/talks/archive.html.twig new file mode 100644 index 00000000..777deb1d --- /dev/null +++ b/source/talks/archive.html.twig @@ -0,0 +1,29 @@ +--- +layout: page +title: Talk Archive +use: [talks] +talks: + - title: 'Drupal and the LDAP module' + events: + - date: '2013-07-10' + event: swdug + - title: 'About the Drupal Association' + events: + - date: '2014-08-19' + event: swdug +--- +

Here are a list of my previous conference and user group talks:

+ +{% set talks = [] %} +{% for talk in data.talks|merge(page.talks) %} + {% for event in talk.events %} + {% set talks = talks|merge([{ + event: event|merge(site.events[event.event]), + talk: talk, + }]) %} + {% endfor %} +{% endfor %} + +{% include 'talks-table' with { talks: talks|format_talks } %} + +

Upcoming talks can be found on the talks page].

diff --git a/source/talks/archive.md b/source/talks/archive.md deleted file mode 100644 index 2e7be820..00000000 --- a/source/talks/archive.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: page -title: Talk Archive -use: [talks] ---- -Here are a list of my previous conference and user group talks: - -{% set events = [] %} - -{% for date in site.events.dates|reverse %} - {% if date.date >= 'today'|date('Y-m-d') %} - {% else %} - {% set events = events|merge([{ - date: date, - event: site.events.events[date.event], - }]) %} - {% endif %} -{% endfor %} - -{% include 'talks-table' %} - -Upcoming talks can be found on the [talks page][0]. - -[0]: {{site.url}}/talks diff --git a/src/format-talks-bundle/Resources/config/services.yml b/src/format-talks-bundle/Resources/config/services.yml new file mode 100644 index 00000000..b332a7a3 --- /dev/null +++ b/src/format-talks-bundle/Resources/config/services.yml @@ -0,0 +1,5 @@ +services: + app.twig.format_talks: + class: 'App\FormatTalks\Twig\FormatTalksExtension' + tags: + - { name: twig.extension } diff --git a/src/format-talks-bundle/composer.json b/src/format-talks-bundle/composer.json new file mode 100644 index 00000000..6ce35c37 --- /dev/null +++ b/src/format-talks-bundle/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "tightenco/collect": "^5.4" + } +} diff --git a/src/format-talks-bundle/src/DependencyInjection/SculpinFormatTalksExtension.php b/src/format-talks-bundle/src/DependencyInjection/SculpinFormatTalksExtension.php new file mode 100644 index 00000000..68e24467 --- /dev/null +++ b/src/format-talks-bundle/src/DependencyInjection/SculpinFormatTalksExtension.php @@ -0,0 +1,20 @@ +load('services.yml'); + } +} diff --git a/src/format-talks-bundle/src/SculpinFormatTalksBundle.php b/src/format-talks-bundle/src/SculpinFormatTalksBundle.php new file mode 100644 index 00000000..73f29cb7 --- /dev/null +++ b/src/format-talks-bundle/src/SculpinFormatTalksBundle.php @@ -0,0 +1,7 @@ +sortBy('event.date') + ->all(); + } + + /** + * {@inheritdoc} + */ + public function getName() + { + return 'format_talks'; + } +}