Author: ilsilent
Date: 2010-05-11 18:50:01 +0200 (Tue, 11 May 2010)
New Revision: 29412

Modified:
   plugins/sfOrmBreadcrumbsPlugin/README
   plugins/sfOrmBreadcrumbsPlugin/config/breadcrumbs.yml.sample
   plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbs.class.php
   plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbsDoctrine.class.php
   plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbsPropel.class.php
Log:
case and global _default_case options added for breadcrumb name manipulation.

Modified: plugins/sfOrmBreadcrumbsPlugin/README
===================================================================
--- plugins/sfOrmBreadcrumbsPlugin/README       2010-05-11 08:39:00 UTC (rev 
29411)
+++ plugins/sfOrmBreadcrumbsPlugin/README       2010-05-11 16:50:01 UTC (rev 
29412)
@@ -11,7 +11,7 @@
 
   * Install the plugin
     
-        symfony plugin:install sfOrmBreadcrumbsPlugin-1.0.4.tgz
+        symfony plugin:install sfOrmBreadcrumbsPlugin-1.0.5.tgz
 
   * Activate the plugin in the `config/ProjectConfiguration.class.php`
   
@@ -183,3 +183,10 @@
 
         sf_orm_breadcrumbs:
           _lost: 'somewhere...'
+          
+  * Default case manipulation for breadcrumb name. You can set a php function 
name to manipulate the breadcrumbs name with.
+  You can choose among `ucfirst`, `lcfirst`, `strotolower`, `strtoupper`, 
`ucwords`.
+  You can even override this default setting by providing `case` option for a 
breadcrumb item, in the configuration file.
+
+        sf_orm_breadcrumbs:
+          _default_case: ucfirst

Modified: plugins/sfOrmBreadcrumbsPlugin/config/breadcrumbs.yml.sample
===================================================================
--- plugins/sfOrmBreadcrumbsPlugin/config/breadcrumbs.yml.sample        
2010-05-11 08:39:00 UTC (rev 29411)
+++ plugins/sfOrmBreadcrumbsPlugin/config/breadcrumbs.yml.sample        
2010-05-11 16:50:01 UTC (rev 29412)
@@ -4,6 +4,7 @@
 #  _root: { name: Homepage }     
 #  _separator: '>'
 #  _lost: 'somewhere...'
+#  _default_case: 'ucfirst'
 #
 #  main:
 #    index: [{ name: Home, route: homepage }]
@@ -13,5 +14,5 @@
 #      - { name: Blog, route: blog }
 #      - { name: %title%, route: post_show, model: true }
 #    permalink:
-#      - { name: 'Archive' }
+#      - { name: 'Archive', case: ucwords }
 #      - { name: %Post%, route: post_show, model: true, subobject: Post }
\ No newline at end of file

Modified: plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbs.class.php
===================================================================
--- plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbs.class.php       
2010-05-11 08:39:00 UTC (rev 29411)
+++ plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbs.class.php       
2010-05-11 16:50:01 UTC (rev 29412)
@@ -80,5 +80,46 @@
     }
   }
   
+  protected function getCaseForItem($item)
+  {
+    $case = isset($item['case']) ? $item['case'] : null;
+       
+       if($case == null)
+       {  
+      $config = $this->getConfig();
+      $case = isset($config['_default_case']) ? $config['_default_case'] : 
null;
+       }
+       
+       return $case;
+  }
+  
+  protected function switchCase($name, $case)
+  {
+    switch($case)
+    {
+      case 'ucfirst':
+        $name = ucfirst(mb_strtolower($name,'UTF-8'));
+        break;
+       
+         case 'lcfirst':
+        $name = lcfirst(mb_strtolower($name,'UTF-8'));
+        break;
+      
+         case 'strtolower':
+        $name = mb_strtolower($name,'UTF-8');
+        break;
+               
+         case 'strtoupper':
+        $name = mb_strtoupper($name,'UTF-8');
+        break;
+               
+      case 'ucwords':
+        $name = ucwords(mb_strtolower($name,'UTF-8'));
+        break;
+    }
+       
+       return $name;
+  }
+  
 }
 ?>
\ No newline at end of file

Modified: plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbsDoctrine.class.php
===================================================================
--- plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbsDoctrine.class.php       
2010-05-11 08:39:00 UTC (rev 29411)
+++ plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbsDoctrine.class.php       
2010-05-11 16:50:01 UTC (rev 29412)
@@ -35,6 +35,9 @@
       $url = isset($item['route']) ? $routing->generate($item['route']) : null;
       $breadcrumb = array('name' => $item['name'], 'url' => $url);
     }
+       
+       $case = $this->getCaseForItem($item);
+       $breadcrumb['name'] = $this->switchCase($breadcrumb['name'], $case);
     
     return $breadcrumb;
   }

Modified: plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbsPropel.class.php
===================================================================
--- plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbsPropel.class.php 
2010-05-11 08:39:00 UTC (rev 29411)
+++ plugins/sfOrmBreadcrumbsPlugin/lib/sfOrmBreadcrumbsPropel.class.php 
2010-05-11 16:50:01 UTC (rev 29412)
@@ -35,8 +35,11 @@
       $url = isset($item['route']) ? $routing->generate($item['route']) : null;
       $breadcrumb = array('name' => $item['name'], 'url' => $url);
     }
+       
+       $case = $this->getCaseForItem($item);
+       $breadcrumb['name'] = $this->switchCase($breadcrumb['name'], $case);
     
     return $breadcrumb;
   }
 }
-?>
\ No newline at end of file
+?>

-- 
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.

Reply via email to