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.


Reply via email to