TimelineJS Symfony2 bundle. Provides easy integration of TimelineJS.
There are lots of timeline tools on the web but they are almost all either hard on the eyes or hard to use. Create timelines that are at the same time beautiful and intuitive for users.
First of all, download bundle using one of common ways:
Add the following lines to your deps
file and run php bin/vendors install
[TimelineJSBundle]
git=https://github.com/ChubV/TimelineJSBundle.git
target=bundles/ChubProduction/TimelineJSBundle
Add the following namespace entry to the registerNamespaces
call
in your autoloader:
<?php
// app/autoload.php
$loader->registerNamespaces(array(
// ...
'ChubProduction\TimelineJSBundle' => __DIR__.'/../vendor/bundles',
// ...
));
This is unnecessary step if you use Composer's automaticaly generated autoload file
To start using the bundle, register it in your Kernel:
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new ChubProduction\TimelineJSBundle\TimelineJSBundle(),
);
// ...
}
<?php
// TimelineEntity.php
// ...
class TimelineEntity implements TimelineEntityInterface
{
// ...
}
Array will represent the points on your Timeline. Create timeline and pass it to your view.
<?php
// TimelineController.php
// ...
/**
* @Route("/timeline", name="_timeline")
* @Template()
*/
public function timelineAction()
{
$ts = $this->get('timelinejs');
$timeline = $ts->createTimeline('myTimeline', $this->fetchTimelineEntities());
return compact('timeline');
}
Render timeline in your template
{# timeline.html.twig #}
{% import "TimelineJSBundle::macro.html.twig" as t %}
{{ t.head() }}
<div id="timeline"></div>
{{ t.show(timeline, {'embed_id': 'timeline', 'debug': true}) }}