Author: ornicar2
Date: 2010-01-25 00:20:58 +0100 (Mon, 25 Jan 2010)
New Revision: 27148

Added:
   
plugins/diemPlugin/trunk/dmCorePlugin/lib/validator/dmValidatorCssIdAndClasses.php
   
plugins/diemPlugin/trunk/dmCorePlugin/test/unit/dmValidatorCssIdAndClassesTest.php
Modified:
   
plugins/diemPlugin/trunk/dmCorePlugin/lib/doctrine/loremizer/dmRecordLoremizer.php
   plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/link/dmBaseLinkTag.php
   plugins/diemPlugin/trunk/dmCorePlugin/test/unit/dmValidatorCssClassesTest.php
   plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/dmWidgetBaseForm.php
   
plugins/diemPlugin/trunk/dmFrontPlugin/lib/view/html/link/tag/dmFrontLinkTagPage.php
   
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/_dmWidgetSearchResults.php
Log:
[Diem]
- added dmValidatorCssIdAndClasses class and unit tests
- added unit tests for dmValidatorCssClass
- fixed generated strings in dmRecordLoremizer
- made link_tag service allows current page link if an anchor is set
- cleaned default widget search results template

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/lib/doctrine/loremizer/dmRecordLoremizer.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/lib/doctrine/loremizer/dmRecordLoremizer.php
  2010-01-24 22:52:40 UTC (rev 27147)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/lib/doctrine/loremizer/dmRecordLoremizer.php
  2010-01-24 23:20:58 UTC (rev 27148)
@@ -77,7 +77,7 @@
     }
     
     // if the field can be null, set it to null sometimes
-    if (!dmArray::get($column, 'notnull') && !dmArray::get($column, 'unique') 
&& !rand(0, 2))
+    if (!dmArray::get($column, 'notnull') && !dmArray::get($column, 'unique') 
&& !rand(0, 3))
     {
       $val = null;
     }
@@ -176,9 +176,10 @@
     {
       return $this->getRandomLink();
     }
-    
-    $val = trim(dmLorem::getLittleLorem(rand(min(4, $column['length']), 
min(40, $column['length']))));
 
+    $nbCarac = rand(min(4, $column['length']), max(40, $column['length']));
+    $val = trim(dmLorem::getLittleLorem($nbCarac));
+
     if (dmArray::get($column, 'unique'))
     {
       $rlen = rand(4, 10);

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/lib/validator/dmValidatorCssIdAndClasses.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/lib/validator/dmValidatorCssIdAndClasses.php
                          (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/lib/validator/dmValidatorCssIdAndClasses.php
  2010-01-24 23:20:58 UTC (rev 27148)
@@ -0,0 +1,36 @@
+<?php
+
+class dmValidatorCssIdAndClasses extends sfValidatorRegex
+{
+  
+  protected function configure($options = array(), $messages = array())
+  {
+    parent::configure($options, $messages);
+
+    $this->setMessage('invalid', 'This CSS class is not valid.');
+
+    $this->setOption('pattern', '/^(\w|\d|\-|\s|\.|\#|$])*$/i');
+  }
+  
+  /**
+   * @see sfValidatorString
+   */
+  protected function doClean($value)
+  {
+    $value = parent::doClean($value);
+
+    // replace spaces with dots
+    $value = str_replace(' ', '.', trim($value));
+
+    // replace .. and .# with .
+    $value = preg_replace('|\.([\.\#]+)|', '', $value);
+
+    // must start with a . or a #
+    if(!empty($value) && $value{0} !== '.' && $value{0} !== '#')
+    {
+      $value = '.'.$value;
+    }
+    
+    return $value;
+  }
+}
\ No newline at end of file

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/link/dmBaseLinkTag.php
===================================================================
--- plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/link/dmBaseLinkTag.php  
2010-01-24 22:52:40 UTC (rev 27147)
+++ plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/link/dmBaseLinkTag.php  
2010-01-24 23:20:58 UTC (rev 27148)
@@ -10,7 +10,7 @@
   {
     parent::initialize($options);
     
-    $this->addAttributeToRemove(array('text', 'current_class', 'parent_class', 
'current_span', 'use_beaf'));
+    $this->addAttributeToRemove(array('text', 'anchor', 'current_class', 
'parent_class', 'current_span', 'use_beaf'));
     
     $this->addEmptyAttributeToRemove(array('target', 'title'));
     
@@ -194,8 +194,6 @@
     if (isset($attributes['anchor']))
     {
       $attributes['href'] .= '#'.$attributes['anchor'];
-      
-      unset($attributes['anchor']);
     }
 
     // makes unit testing easier

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/test/unit/dmValidatorCssClassesTest.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/test/unit/dmValidatorCssClassesTest.php   
    2010-01-24 22:52:40 UTC (rev 27147)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/test/unit/dmValidatorCssClassesTest.php   
    2010-01-24 23:20:58 UTC (rev 27148)
@@ -4,7 +4,7 @@
 $helper = new dmUnitTestHelper();
 $helper->boot();
 
-$t = new lime_test(24);
+$t = new lime_test(38);
 
 $v = new dmValidatorCssClasses();
 
@@ -16,7 +16,7 @@
   
'qieurgfbqoiuzbfvoqiuzZFZGPSOZDNZKFjflzkh986875OoihzyfvbxoquyfvxqozufyxqzUEFV',
   '9',
   '_',
-  'bla rebla',
+  ' bla rebla  ',
   '- _ 8',
   '.class',
   '.a b.c.d'
@@ -24,7 +24,7 @@
 {
   try
   {
-    $t->comment($classes.' -> '.$v->clean($classes));
+    $t->comment('"'.$classes.'" -> "'.$v->clean($classes).'"');
     $t->pass('->clean() checks that the value is a valid css class name');
   }
   catch (sfValidatorError $e)
@@ -40,7 +40,14 @@
   'a^',
   'a#',
   'é',
-  '-{'
+  '-{',
+  '#myid.a b.c.d',
+  '.a b#myid.c.d',
+  '.a b#myid.c.d#myid',
+  '.a b#myid.c.d  #myid',
+  '#my_id',
+  '#my-id',
+  ' #my-id  '
 ) as $nonClass)
 {
   try

Added: 
plugins/diemPlugin/trunk/dmCorePlugin/test/unit/dmValidatorCssIdAndClassesTest.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/test/unit/dmValidatorCssIdAndClassesTest.php
                          (rev 0)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/test/unit/dmValidatorCssIdAndClassesTest.php
  2010-01-24 23:20:58 UTC (rev 27148)
@@ -0,0 +1,67 @@
+<?php
+
+require_once(dirname(__FILE__).'/helper/dmUnitTestHelper.php');
+$helper = new dmUnitTestHelper();
+$helper->boot();
+
+$t = new lime_test(33);
+
+$v = new dmValidatorCssIdAndClasses();
+
+$t->diag('->clean()');
+foreach (array(
+  'a',
+  'a_b',
+  'a-c',
+  
'qieurgfbqoiuzbfvoqiuzZFZGPSOZDNZKFjflzkh986875OoihzyfvbxoquyfvxqozufyxqzUEFV',
+  '9',
+  '_',
+  ' bla rebla  ',
+  '- _ 8',
+  '.class',
+  '.a b.c.d',
+  '#myid.a b.c.d',
+  '#myid class1 class2',
+  'class1 class2 #myid',
+  '.a b#myid.c.d',
+  '.a b#myid.c.d#myid',
+  '.a b#myid.c.d  #myid',
+  '#my_id',
+  '#my-id',
+  ' #my-id  '
+) as $classes)
+{
+  try
+  {
+    $t->comment($classes.' -> '.$v->clean($classes));
+    $t->pass('->clean() checks that the value is a valid css class + id');
+  }
+  catch (sfValidatorError $e)
+  {
+    $t->fail('->clean() checks that the value is a valid css class + id');
+  }
+}
+
+foreach (array(
+  '.zegze$g.zegf',
+  '/',
+  'a/f',
+  'a^',
+  'a # @',
+  'é',
+  '-{'
+) as $nonClass)
+{
+  $t->comment($nonClass);
+  try
+  {
+    $v->clean($nonClass);
+    $t->fail('->clean() throws an sfValidatorError if the value is not a valid 
css class + id');
+    $t->skip('', 1);
+  }
+  catch (sfValidatorError $e)
+  {
+    $t->pass('->clean() throws an sfValidatorError if the value is not a valid 
css class + id');
+    $t->is($e->getCode(), 'invalid', '->clean() throws a sfValidatorError');
+  }
+}
\ No newline at end of file

Modified: 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/dmWidgetBaseForm.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/dmWidgetBaseForm.php   
    2010-01-24 22:52:40 UTC (rev 27147)
+++ 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/dmWidget/base/dmWidgetBaseForm.php   
    2010-01-24 23:20:58 UTC (rev 27148)
@@ -38,11 +38,11 @@
   {
     parent::configure();
 
-    $this->widgetSchema['cssClass']     = new sfWidgetFormInputText;
+    $this->widgetSchema['cssClass']     = new sfWidgetFormInputText();
     $this->validatorSchema['cssClass']  = new 
dmValidatorCssClasses(array('required' => false));
+
+    $this->widgetSchema['cssClass']->setLabel('CSS class');
     
-    $this->widgetSchema['cssClass']->setLabel('CSS class');
-
     $this->setDefault('cssClass', $this->dmWidget->get('css_class'));
   }
 

Modified: 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/view/html/link/tag/dmFrontLinkTagPage.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/view/html/link/tag/dmFrontLinkTagPage.php
        2010-01-24 22:52:40 UTC (rev 27147)
+++ 
plugins/diemPlugin/trunk/dmFrontPlugin/lib/view/html/link/tag/dmFrontLinkTagPage.php
        2010-01-24 23:20:58 UTC (rev 27148)
@@ -114,7 +114,7 @@
       }
 
       // current page
-      if($this->isCurrent())
+      if($this->isCurrent() && empty($attributes['anchor']))
       {
         $attributes['class'][] = $attributes['current_class'];
           

Modified: 
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/_dmWidgetSearchResults.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/_dmWidgetSearchResults.php
        2010-01-24 22:52:40 UTC (rev 27147)
+++ 
plugins/diemPlugin/trunk/dmFrontPlugin/modules/dmWidget/templates/_dmWidgetSearchResults.php
        2010-01-24 23:20:58 UTC (rev 27148)
@@ -18,19 +18,19 @@
   '%3%' => $pager->getNbResults()
 )));
 
-echo £o('ol.search_results.clearfix start='.$pager->getFirstIndice());
+echo £o('ol.search_results start='.$pager->getFirstIndice());
 
 foreach($pager as $result)
 {
   $page = $result->getPage();
   
-  echo £('li.search_result.ml20.mb5',
+  echo £('li.search_result',
   
-    £('span.score.mr10', ceil(100*$result->getScore()).'%').
+    £('span.score', ceil(100*$result->getScore()).'%').
     
     £link($page)->text(
-      £('strong', $page->name).
-      ($page->description ? £('span.ml10', $page->description) : '')
+      £('span.page_name', $page->name).
+      ($page->description ? £('span.page_description', $page->description) : 
'')
     )
   );
 }

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