Author: ornicar2
Date: 2010-01-15 13:12:51 +0100 (Fri, 15 Jan 2010)
New Revision: 26673
Added:
plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/unit/dmProjectPageIsActiveTest.php
Modified:
plugins/diemPlugin/trunk/dmCorePlugin/lib/doctrine/record/dmDoctrineRecord.php
plugins/diemPlugin/trunk/dmCorePlugin/lib/task/dmDataTask.class.php
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmMenuPlugin/lib/dmSitemapMenu.php
plugins/diemPlugin/trunk/dmCorePlugin/test/project/data/db.sqlite
plugins/diemPlugin/trunk/dmCorePlugin/test/project/data/fresh_db.sqlite
plugins/diemPlugin/trunk/dmCorePlugin/test/project/lib/myTestProjectBuilder.php
plugins/diemPlugin/trunk/dmFrontPlugin/config/dm/services.yml
plugins/diemPlugin/trunk/dmFrontPlugin/lib/view/html/link/tag/dmFrontLinkTagPage.php
Log:
[Diem]
- links to inactive pages are changed to span if user doesn't have the
"site_view" permission
- added tests for links to inactive pages
- added user dependency to the link_tag_page & link_tag_record services
Modified:
plugins/diemPlugin/trunk/dmCorePlugin/lib/doctrine/record/dmDoctrineRecord.php
===================================================================
---
plugins/diemPlugin/trunk/dmCorePlugin/lib/doctrine/record/dmDoctrineRecord.php
2010-01-15 11:13:51 UTC (rev 26672)
+++
plugins/diemPlugin/trunk/dmCorePlugin/lib/doctrine/record/dmDoctrineRecord.php
2010-01-15 12:12:51 UTC (rev 26673)
@@ -666,7 +666,7 @@
{
$i18n = $translation->get($culture);
}
- // record is new so we use ( or create ) the fallback culture
+ // record is new so we use (or create) the fallback culture
elseif($this->isNew())
{
$i18n = $translation->get(sfConfig::get('sf_default_culture'));
Modified: plugins/diemPlugin/trunk/dmCorePlugin/lib/task/dmDataTask.class.php
===================================================================
--- plugins/diemPlugin/trunk/dmCorePlugin/lib/task/dmDataTask.class.php
2010-01-15 11:13:51 UTC (rev 26672)
+++ plugins/diemPlugin/trunk/dmCorePlugin/lib/task/dmDataTask.class.php
2010-01-15 12:12:51 UTC (rev 26673)
@@ -420,7 +420,7 @@
"page_bar_front" => "See page bar in front",
"media_bar_front" => "See media bar in front",
"tool_bar_front" => "See toolbar in front",
- "site_view" => "See website even if is not public",
+ "site_view" => "See non-public website and inactive pages",
"loremize" => "Create automatic random content",
"export_table" => "Export table contents",
"sitemap" => "Regenerate sitemap",
Modified:
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmMenuPlugin/lib/dmSitemapMenu.php
===================================================================
---
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmMenuPlugin/lib/dmSitemapMenu.php
2010-01-15 11:13:51 UTC (rev 26672)
+++
plugins/diemPlugin/trunk/dmCorePlugin/plugins/dmMenuPlugin/lib/dmSitemapMenu.php
2010-01-15 12:12:51 UTC (rev 26673)
@@ -30,7 +30,7 @@
->withI18n()
->where('pTranslation.is_active = ?', true)
->andWhere('p.module != ? OR ( p.action != ? AND p.action != ? AND
p.action != ?)', array('main', 'error404', 'search', 'login'))
- ->select('p.*, pTranslation.slug, pTranslation.name, pTranslation.title,
pTranslation.is_secure')
+ ->select('p.*, pTranslation.slug, pTranslation.name, pTranslation.title,
pTranslation.is_secure, pTranslation.is_active')
->orderBy('p.lft ASC')
;
}
Modified: plugins/diemPlugin/trunk/dmCorePlugin/test/project/data/db.sqlite
===================================================================
(Binary files differ)
Modified:
plugins/diemPlugin/trunk/dmCorePlugin/test/project/data/fresh_db.sqlite
===================================================================
(Binary files differ)
Modified:
plugins/diemPlugin/trunk/dmCorePlugin/test/project/lib/myTestProjectBuilder.php
===================================================================
---
plugins/diemPlugin/trunk/dmCorePlugin/test/project/lib/myTestProjectBuilder.php
2010-01-15 11:13:51 UTC (rev 26672)
+++
plugins/diemPlugin/trunk/dmCorePlugin/test/project/lib/myTestProjectBuilder.php
2010-01-15 12:12:51 UTC (rev 26673)
@@ -32,8 +32,68 @@
$this->addSitemap();
$this->addH1();
+
+ $this->addManualPages();
}
+ /*
+ * root
+ * page1
+ * page11
+ * page111
+ * page12
+ * page2
+ * page21
+ */
+ protected function addManualPages()
+ {
+ $table = dmDb::table('DmPage');
+
+ $page1 = $table->create(array(
+ 'module' => 'main',
+ 'action' => 'page1',
+ 'name' => 'Page 1',
+ 'slug' => 'page1'
+ ));
+ $page11 = $table->create(array(
+ 'module' => 'main',
+ 'action' => 'page11',
+ 'name' => 'Page 11',
+ 'slug' => 'page11'
+ ));
+ $page111 = $table->create(array(
+ 'module' => 'main',
+ 'action' => 'page111',
+ 'name' => 'Page 111',
+ 'slug' => 'page111'
+ ));
+ $page12 = $table->create(array(
+ 'module' => 'main',
+ 'action' => 'page12',
+ 'name' => 'Page 12',
+ 'slug' => 'page12'
+ ));
+ $page2 = $table->create(array(
+ 'module' => 'main',
+ 'action' => 'page2',
+ 'name' => 'Page 2',
+ 'slug' => 'page2'
+ ));
+ $page21 = $table->create(array(
+ 'module' => 'main',
+ 'action' => 'page21',
+ 'name' => 'Page 21',
+ 'slug' => 'page21'
+ ));
+
+ $page1->Node->insertAsFirstChildOf($table->getTree()->fetchRoot());
+ $page11->Node->insertAsFirstChildOf($page1);
+ $page111->Node->insertAsFirstChildOf($page11);
+ $page12->Node->insertAsFirstChildOf($page1);
+ $page2->Node->insertAsFirstChildOf($table->getTree()->fetchRoot());
+ $page21->Node->insertAsFirstChildOf($page2);
+ }
+
protected function addRecords()
{
dmDb::table('DmTestDomain')->create(array(
Added:
plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/unit/dmProjectPageIsActiveTest.php
===================================================================
---
plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/unit/dmProjectPageIsActiveTest.php
(rev 0)
+++
plugins/diemPlugin/trunk/dmCorePlugin/test/project/test/unit/dmProjectPageIsActiveTest.php
2010-01-15 12:12:51 UTC (rev 26673)
@@ -0,0 +1,22 @@
+<?php
+
+require_once(realpath(dirname(__FILE__).'/../../..').'/unit/helper/dmUnitTestHelper.php');
+$helper = new dmUnitTestHelper();
+$helper->boot('front');
+
+$t = new lime_test();
+
+$page1 = dmDb::table('DmPage')->findOneByModuleAndAction('main', 'page1');
+$page11 = dmDb::table('DmPage')->findOneByModuleAndAction('main', 'page11');
+
+$page11->isActive = true;
+$page11->save();
+
+dm::loadHelpers(array('Dm'));
+
+$t->like($link = £link($page11)->render(), '|<a class="link" href=".+">Page
11</a>|', 'Link to active page: '.$link);
+
+$page11->isActive = false;
+$page11->save();
+
+$t->is($link = £link($page11)->render(), '<span class="link">Page 11</span>',
'Link to inactive page: '.$link);
\ No newline at end of file
Modified: plugins/diemPlugin/trunk/dmFrontPlugin/config/dm/services.yml
===================================================================
--- plugins/diemPlugin/trunk/dmFrontPlugin/config/dm/services.yml
2010-01-15 11:13:51 UTC (rev 26672)
+++ plugins/diemPlugin/trunk/dmFrontPlugin/config/dm/services.yml
2010-01-15 12:12:51 UTC (rev 26673)
@@ -97,12 +97,12 @@
link_tag_record:
class: %link_tag_record.class%
shared: false
- arguments: [ %link_tag.resource%, %context.page%,
%request.context%, %link_tag_record.options% ]
+ arguments: [ %link_tag.resource%, %request.context%,
%context.page%, @user, %link_tag_page.options% ]
link_tag_page:
class: %link_tag_page.class%
shared: false
- arguments: [ %link_tag.resource%, %context.page%,
%request.context%, %link_tag_page.options% ]
+ arguments: [ %link_tag.resource%, %request.context%,
%context.page%, @user, %link_tag_page.options% ]
link_tag_media:
class: %link_tag_media.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-15 11:13:51 UTC (rev 26672)
+++
plugins/diemPlugin/trunk/dmFrontPlugin/lib/view/html/link/tag/dmFrontLinkTagPage.php
2010-01-15 12:12:51 UTC (rev 26673)
@@ -3,12 +3,14 @@
class dmFrontLinkTagPage extends dmFrontLinkTag
{
protected
+ $user,
$page, // the page we link to
$currentPage; // the page where the link is displayed
- public function __construct(dmFrontLinkResource $resource, DmPage
$currentPage = null, array $requestContext, array $options = array())
+ public function __construct(dmFrontLinkResource $resource, array
$requestContext, DmPage $currentPage = null, dmCoreUser $user = null, array
$options = array())
{
$this->currentPage = $currentPage;
+ $this->user = $user;
parent::__construct($resource, $requestContext, $options);
}
@@ -91,8 +93,14 @@
if (!sfConfig::get('dm_search_populating'))
{
- if($this->currentPage)
+ // inactive page
+ if($this->user && !$this->page->_getI18n('is_active') &&
!$this->user->can('site_view'))
{
+ $attributes['tag'] = 'span';
+ }
+ // current page
+ elseif($this->currentPage)
+ {
if ($this->currentPage->get('id') === $this->page->get('id'))
{
$attributes['class'][] = 'dm_current';
--
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.