building a full-flavored event site in 5 minutes
DESCRIPTION
With Drupal 7 and the CultureFeed Kickstart Drupal install profile, the CultureFeed Event Module Suite and the Culturefeed Bootstrap theme.TRANSCRIPT
1
BUILDING A FULL-FLAVORED EVENT SITE IN 5 MINUTES
CULTUREFEED-KICKSTARTCULTUREFEEDCULTUREFEED_BOOTSTRAP
&
CultuurNet (CultureNet):“relationship agency” that mediates between events and participants
Mission: “(more) people (more) enthusiasm (more) culture”
Who are we?
2
through broad cultural communication and marketing
How we do this?
3
First of all we aggregate all cultural and other events
How we do this?
4
Products?
5
Previous situation
So how we do this?
6
API
API
The events (SAPI 1)
The participants (UiTiD)
CnAPI (CultuurNet API)Module Suite
CultureFeedModule Suite
Drupal
New situation
So how we do this?
7
API
Events (SAPI2) + participants
CultureFeed
Module Suite
Drupal
And who is doing this?
8
10 developers, pm’s, solution architects, etc
M-Studio (2DotsTwice)
API•custom search solution, exposed over HTTP•did not allow for more complex, composite queries•example: give me all eventswith minimum age 3 in a range of 30 kilometers from Herent- OR -with the theme ‘music’ in a range of 60 kilometers from Herent
• limited faceting support, needs a second HTTP request•LINK example search•LINK example report
CLIENT•PHP client library: non-existing• logic stuck in a Drupal module (cnapi), hardly reusable outside of Drupal
Back in time: Search API v1
9
Based on Apache SOLR•REST-like HTTP API, based on Apache Lucene•faceting•spellcheck•LINK complex query for Vlieg•DOC http://tools.uitdatabank.be/docs/search-api-zoeken
On top of that• OAuth• custom business logic• PHP client library: modern approach use existing tools and libraries
• Composer• Guzzle• Symfony Event Dispatcher
Search API v2
10
PHP libraries
11
CultuurNet\Cdb Fluent PHP library for manipulating, serializing and deserializing data present in CultuurNet's CdbXML 3.2 formathttps://github.com/cultuurnet/cdb
CultuurNet\SearchPhp library for creating SOLR queries (basic SOLR queries and custom business logic)https://github.com/cultuurnet/Search
CultuurNet\Auth•the consumer-side of the authentication flow of CultuurNet's UiTiD, which is based on OAuth 1.0a Core•solid base for consumers of various OAuth-protected resources provided by CultuurNethttps://github.com/cultuurnet/Auth
USE IT IN YOUR WORDPRESS, EE, JOOMLA OR CUSTOM PHP PROJECTS!
So what is this kickstart thing?
12
CULTUREFEED-KICKSTART = DRUPAL INSTALL PROFILE“Installation profiles provide specific site features and functions for a specific purpose or type of site.” https://drupal.org/developing/distributions
Build.sh Install.php•drupal core (7.26)•drupal contribs (bootstrap 3.0)•culturefeed•culturefeed_bootstrap•composer install
• guzzle/…• symfony/event-dispatcher• vendor/cultuurnet/cdb• vendor/cultuurnet/auth• vendor/cultuurnet/search• lessphp
So what is this kickstart thing?
13
culturefeed-kickstart
14
Modules that will be enabled:• culturefeed_ui• culturefeed_search• culturefeed_search_ui• culturefeed_agenda• culturefeed_social• culturefeed_search_views
Blocks: check block page after installation
Culturefeed-kickstart
15
Prerequisites•full LAMP stack•git installed•drush installed•composer installed (http://getcomposer.org/doc/00-intro.md#downloading-the-composer-executable)
•You download the kickstart in one folder but build the install in another!
•Please check script output!
culturefeed_searchculturefeed_agendaculturefeed_search_uiculturefeed_search_viewsculturefeed_develculturefeed_entry_uiculturefeed_pages
The modules… cuturefeed
16
culturefeed_uiculturefeed_socialculturefeed_mailingculturefeed_messagesculturefeed_rolesculturefeed_userpoints_uiculturefeed_uitpas
LOTS OF DEPENDENCIES, PLEASE CHECK .INFO FILE FIRST!
culturefeed
culturefeed core
17
Core of the module suite and is required by the other modules. It provides the settings form where you can enter the API Information.
The api settings consist of the following elements:•The API Location•The application key•The shared secret•The Entry api path•the HTTP client timeout
Caching!
This information will be configured to show only the events that are relevant for your project.
DOC https://github.com/cultuurnet/culturefeed/wiki/Culturefeed
culturefeed_search
18
Base framework to enable searches on your site.
Out of the box this module doesn't provide any interface elements! (Use Culturefeed Search UI and Culturefeed Agenda)
•Caching•Drush commands
DOC https://github.com/cultuurnet/culturefeed/wiki/Culturefeed-Search
culturefeed_agenda
19
Provides a Culturefeed search page available on agenda/search and detail pages!
•The blocks provided by Culturefeed Search UI are intended to extend the agenda/search •The blocks provided by this module can be used to extend the detail pages of events, actors and productions.•Includes also a simple search form
DOC https://github.com/cultuurnet/culturefeed/wiki/Culturefeed-Agenda
culturefeed_search_ui
20
Basic elements needed to build up an event search (such as provided by Culturefeed Agenda).
•basic search form with type selector in the front (can be extended)
•sort block•active filters•facets
DOC https://github.com/cultuurnet/culturefeed/wiki/Culturefeed-Search-UI
culturefeed_search_views
21
Views integration to list events, actors or productions. To create culturefeed views, create a new view and configure it to show Cdb items.
Once the view is created, following handlers can be set:•Fields•Filters•Sort
DOC https://github.com/cultuurnet/culturefeed/wiki/Culturefeed-Search-UI
culturefeed_devel
22
Performance site = performance API (+/-)
Writes to screen or to watchdog:•requests to SOLR•requests to UiTiD
Threshold > watchdog
DOC to write …
culturefeed_entry_ui
23
Functions to do a CRUD on events are already in library, but we are building a form to create, update and delete events in our UiTdatabank as well.
In development, first case www.artsflanders.be, release next weeks
DOC to write …
culturefeed_pages
24
User can create a page (locations, performers, families, schools, …) or become member and follower
Will be relevant when actors become pages (expected september 2014)
DOC to write …
culturefeed_ui
25
Provides a collection of pages and blocks to enhance the user pages with culturefeed information. To do this it will override and/or enhance the default Drupal user pages.
•edit profile page•edit account page•search users page•caching•teaser (formerly connect)•most active user•login (formerly profile box)•profile menu•e-mail confirmation reminder•search users•profile summary (formerly My UiTiD)
DOC https://github.com/cultuurnet/culturefeed/wiki/Culturefeed-UI
culturefeed_social
26
All ‘social’ features: likes, comments, attends, etc.
DOC to write (april)
culturefeed_mailing
27
To create mailings with search results from event (based on lifestyleprofile, Vlieg weekendflash, …). Not yet available for partners.
culturefeed_messagesSend messages to other users (most likely page owners), interesting when actors become pages.
culturefeed_userpoints_uiCollect on line userpoints (for specific actions like writing reviews) and claim promotions (Vlieg).
culturefeed_rolesPre-assign roles to UiTID users that have not logged in yet. Drush integration.
DOC to write …
culturefeed_uitpas
28
Integration with the UiTPAS card system. It contains multiple pages and blocks that can be used to build an interface that allows:
•easy access to the advantages and promotions a passholder has access to,•possibility to register your UiTPAS,•highlights of promotions and actions.
DOC https://github.com/cultuurnet/culturefeed/wiki/Culturefeed-UiTPAS
Tutorials!
29
So if you don’t use culturefeed-kickstart or you need more documentation, read one of our tutorials which guide you in setting up specific things step by step!
•Set up a search page•Set up an UiTiD integration (todo - april)•Integrate UiTPAS
DOC https://github.com/cultuurnet/culturefeed/wiki/Tutorials
Culturefeed_bootstrap theme
30
Culturefeed Bootstrap is a responsive, mobile first subtheme of the Bootstrap Framework.
With some basic theme settings:•branding colors•font-family•border-radius•…
•Subtheme of Bootstrap 3•Uses LESS (SASS is coming!)•(almost) fully responsive!•Font Awesome 4.0.3•Example see http://mons.culturefeed.be/
THE USE OF THIS THEME WILL SPEED UP YOUR DEVELOPMENT… A LOT!
SEO optimalisations
31
• NOINDEX-strategy“Googlebot found an extremely high number of URLs on ...”
• URL-rewriting (slugs)• XML Sitemap• Breadcrumbs• Page title• Document outline (on going)• Rich snippets (on going)
Next steps: multilingual
32
For all modules (culturefeed_entry_ui in development)
See http://acc.culturefeed.be
(first case www.artsflanders.be, release next weeks)
Demo + examples
33
Two demo sites• acc.culturefeed.be > acc (test.uitdatabank.be)
+ pages+ entry+ devel+ multilingual
• www.culturefeed.be > www (www.uitdatabank.be)
Examples• www.uitmetvlieg.be• www.cultuurkuur.be • www.uitpas.be• www.muntpunt.be• www.starttoswim.be• ???
Resources
34
•kickstart: http://www.github.com/cultuurnet/culturefeed-kickstart
•module suite: www.github.com/cultuurnet/culturefeedWIKI!
•bootstrap theme: www.github.com/cultuurnet/culturefeed_bootstrap
Other questions
35
•Please use GIT ISSUE LIST as much as possible•[email protected]•Where into contribution! Please do use GIT PULL REQUESTS
? come and talk… :-)
? soon available on github!