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.