Author: tkoomzaaskz
Date: 2010-09-06 14:44:11 +0200 (Mon, 06 Sep 2010)
New Revision: 30837
Added:
plugins/tdCorePlugin/trunk/lib/breadcrumb/
plugins/tdCorePlugin/trunk/lib/breadcrumb/tdBreadcrumb.class.php
plugins/tdCorePlugin/trunk/lib/breadcrumb/tdBreadcrumbItem.class.php
plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/
plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/actions/
plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/actions/components.class.php
plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/config/
plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/config/cache.yml
plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/templates/
plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/templates/_display.php
Modified:
plugins/tdCorePlugin/trunk/README
plugins/tdCorePlugin/trunk/config/tdCorePluginConfiguration.class.php
plugins/tdCorePlugin/trunk/package.xml
Log:
[td][core] added breadcrumb support
Modified: plugins/tdCorePlugin/trunk/README
===================================================================
--- plugins/tdCorePlugin/trunk/README 2010-09-06 09:20:38 UTC (rev 30836)
+++ plugins/tdCorePlugin/trunk/README 2010-09-06 12:44:11 UTC (rev 30837)
@@ -74,6 +74,13 @@
enabled_modules: [ ..., graphics ]
+Breadcrumbs
+===========
+
+Enable the tdBreadcrumb module:
+
+ enabled_modules: [ ..., tdBreadcrumb ]
+
Random Data Generator
=====================
Modified: plugins/tdCorePlugin/trunk/config/tdCorePluginConfiguration.class.php
===================================================================
--- plugins/tdCorePlugin/trunk/config/tdCorePluginConfiguration.class.php
2010-09-06 09:20:38 UTC (rev 30836)
+++ plugins/tdCorePlugin/trunk/config/tdCorePluginConfiguration.class.php
2010-09-06 12:44:11 UTC (rev 30837)
@@ -9,7 +9,6 @@
* @package tdCorePlugin
* @author Tomasz Ducin <[email protected]>
*/
-
class tdCorePluginConfiguration extends sfPluginConfiguration
{
/**
@@ -19,5 +18,7 @@
{
// short description sign count
sfConfig::set('td_short_text_sign_count', 200);
+
+ $this->dispatcher->connect('template.filter_parameters',
array('tdBreadcrumb', 'filterTemplateParameters'));
}
-}
\ No newline at end of file
+}
Added: plugins/tdCorePlugin/trunk/lib/breadcrumb/tdBreadcrumb.class.php
===================================================================
--- plugins/tdCorePlugin/trunk/lib/breadcrumb/tdBreadcrumb.class.php
(rev 0)
+++ plugins/tdCorePlugin/trunk/lib/breadcrumb/tdBreadcrumb.class.php
2010-09-06 12:44:11 UTC (rev 30837)
@@ -0,0 +1,94 @@
+<?php
+
+/**
+ * tdBreadcrumb class.
+ *
+ * Class managing breadcrumbs.
+ *
+ * @package plugin
+ * @subpackage tdCorePlugin
+ * @class tdBreadcrumb
+ * @author Tomasz Ducin <[email protected]>
+ */
+class tdBreadcrumb
+{
+ static $instance = null;
+ protected $items = array();
+
+ /**
+ * Constructor.
+ */
+ protected function __construct()
+ {
+ $this->setRoot('Home', '@homepage');
+ }
+
+ /**
+ * Listens to the template.filter_parameters event.
+ *
+ * @param sfEvent $event - An sfEvent instance
+ * @param array $parameters - An array of template parameters to filter
+ * @return array - The filtered parameters array
+ */
+ public static function filterTemplateParameters(sfEvent $event, $parameters)
+ {
+ $parameters['breadcrumbs'] = tdBreadcrumb::getInstance();
+ return $parameters;
+ }
+
+ /**
+ * Add an item.
+ *
+ * @param string $text
+ * @param string $uri
+ * @param array $options
+ */
+ public function addItem($text, $uri = null, $options = array())
+ {
+ array_push($this->items, new tdBreadcrumbItem($text, $uri, $options));
+ }
+
+ /**
+ * Delete all existings items.
+ */
+ public function clearItems()
+ {
+ $this->items = array();
+ }
+
+ /**
+ * Get the unique tdBreadcrumb instance (singleton).
+ *
+ * @return tdBreadcrumb
+ */
+ public static function getInstance()
+ {
+ if (is_null(self::$instance))
+ self::$instance = new tdBreadcrumb();
+
+ return self::$instance;
+ }
+
+ /**
+ * Retrieve an array of BreadcrumbItem.
+ *
+ * @param int $offset
+ * @return array
+ */
+ public function getItems($offset = 0)
+ {
+ return array_slice($this->items, $offset);
+ }
+
+ /**
+ * Redefine the root item.
+ *
+ * @param string $text
+ * @param string $uri
+ * @param array $options
+ */
+ public function setRoot($text, $uri, $options = array())
+ {
+ $this->items[0] = new tdBreadcrumbItem($text, $uri, $options);
+ }
+}
Added: plugins/tdCorePlugin/trunk/lib/breadcrumb/tdBreadcrumbItem.class.php
===================================================================
--- plugins/tdCorePlugin/trunk/lib/breadcrumb/tdBreadcrumbItem.class.php
(rev 0)
+++ plugins/tdCorePlugin/trunk/lib/breadcrumb/tdBreadcrumbItem.class.php
2010-09-06 12:44:11 UTC (rev 30837)
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * tdBreadcrumbItem class.
+ *
+ * Class representing a single item in the breadcrumbs.
+ *
+ * @package plugin
+ * @subpackage tdCorePlugin
+ * @class tdBreadcrumbItem
+ * @author Tomasz Ducin <[email protected]>
+ */
+class tdBreadcrumbItem
+{
+ protected $text, $uri, $options;
+
+ /**
+ * Constructor.
+ */
+ public function __construct($text, $uri = null, $options = array())
+ {
+ $this->text = $text;
+ $this->uri = $uri;
+ $this->options = $options;
+ }
+
+ /**
+ * Retrieve the text of the item.
+ */
+ public function getText()
+ {
+ return $this->text;
+ }
+
+ /**
+ * Retrieve the uri of the item.
+ */
+ public function getUri()
+ {
+ return $this->uri;
+ }
+
+ /**
+ * Retrieve the options of the item.
+ */
+ public function getOptions()
+ {
+ return $this->options;
+ }
+}
Added:
plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/actions/components.class.php
===================================================================
---
plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/actions/components.class.php
(rev 0)
+++
plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/actions/components.class.php
2010-09-06 12:44:11 UTC (rev 30837)
@@ -0,0 +1,17 @@
+<?php
+
+class tdBreadcrumbComponents extends sfComponents
+{
+ public function executeDisplay()
+ {
+ $tdBreadcrumb = tdBreadcrumb::getInstance();
+
+ if (isset($this->root))
+ $tdBreadcrumb->setRoot($this->root['text'], $this->root['uri'],
isset($this->root['options']) ? $this->root['options'] : array());
+
+ if (!isset($this->offset))
+ $this->offset = 0;
+
+ $this->items = $tdBreadcrumb->getItems($this->offset);
+ }
+}
Added: plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/config/cache.yml
===================================================================
--- plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/config/cache.yml
(rev 0)
+++ plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/config/cache.yml
2010-09-06 12:44:11 UTC (rev 30837)
@@ -0,0 +1,3 @@
+_display:
+ enabled: on
+ contextual: true
\ No newline at end of file
Added: plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/templates/_display.php
===================================================================
--- plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/templates/_display.php
(rev 0)
+++ plugins/tdCorePlugin/trunk/modules/tdBreadcrumb/templates/_display.php
2010-09-06 12:44:11 UTC (rev 30837)
@@ -0,0 +1,16 @@
+<?php $last_key = count($items) - 1 ?>
+
+<?php !isset($separator) and $separator = '»' ?>
+
+<?php foreach ($items as $key => $item): ?>
+ <?php if ($key < $last_key): ?>
+ <?php echo link_to(
+ $item->getText(),
+ $item->getUri(ESC_RAW),
+ $item->getOptions() instanceOf sfOutputEscaperArrayDecorator ?
$item->getOptions()->getRawValue() : $item->getOptions()
+ ) ?>
+ <?php echo $separator ?>
+ <?php else: ?>
+ <strong><?php echo $item->getText() ?></strong>
+ <?php endif ?>
+<?php endforeach ?>
\ No newline at end of file
Modified: plugins/tdCorePlugin/trunk/package.xml
===================================================================
--- plugins/tdCorePlugin/trunk/package.xml 2010-09-06 09:20:38 UTC (rev
30836)
+++ plugins/tdCorePlugin/trunk/package.xml 2010-09-06 12:44:11 UTC (rev
30837)
@@ -3,18 +3,18 @@
<name>tdCorePlugin</name>
<channel>plugins.symfony-project.org</channel>
<summary>Provides basic functionalities enabling TD CMF.</summary>
- <description>Provides basic functionalities enabling TD CMF, such as common
configuration or random data generation.</description>
+ <description>Provides basic functionalities enabling TD CMF, such as common
configuration random data generation or breadcrumbs.</description>
<lead>
<name>Tomasz Ducin</name>
<user>tkoomzaaskz</user>
<email>[email protected]</email>
<active>yes</active>
</lead>
- <date>2010-09-04</date>
+ <date>2010-09-06</date>
<time>11:00:00</time>
<version>
- <release>0.1.10</release>
- <api>0.1.0</api>
+ <release>0.2.0</release>
+ <api>0.2.0</api>
</version>
<stability>
<release>beta</release>
@@ -33,6 +33,10 @@
<dir name="lib">
<file name="tdRandomDataGenerator.class.php" role="data" />
<file name="tdTools.class.php" role="data" />
+ <dir name="breadcrumb">
+ <file name="tdBreadcrumb.class.php" role="data" />
+ <file name="tdBreadcrumbItem.class.php" role="data" />
+ </dir>
</dir>
<dir name="modules">
@@ -45,6 +49,17 @@
<file name="tickSuccess.php" role="data" />
</dir>
</dir>
+ <dir name="tdBreadcrumb">
+ <dir name="actions">
+ <file name="components.class.php" role="data" />
+ </dir>
+ <dir name="config">
+ <file name="cache.yml" role="data" />
+ </dir>
+ <dir name="templates">
+ <file name="_display.php" role="data" />
+ </dir>
+ </dir>
</dir>
<dir name="web">
@@ -155,6 +170,23 @@
<release>
<version>
+ <release>0.2.0</release>
+ <api>0.2.0</api>
+ </version>
+ <stability>
+ <release>beta</release>
+ <api>beta</api>
+ </stability>
+ <license uri="http://www.symfony-project.org/license">MIT
license</license>
+ <date>2010-09-06</date>
+ <license>MIT</license>
+ <notes>
+ * added breadcrumb managing module
+ </notes>
+ </release>
+
+ <release>
+ <version>
<release>0.1.10</release>
<api>0.1.0</api>
</version>
--
You received this message because you are subscribed to the Google Groups
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/symfony-svn?hl=en.