Author: Jonathan.Wage
Date: 2010-02-11 17:15:16 +0100 (Thu, 11 Feb 2010)
New Revision: 27901

Added:
   
plugins/sfSympalPlugin/trunk/modules/sympal_default/templates/unpublished_contentSuccess.php
Modified:
   plugins/sfSympalPlugin/trunk/config/app.yml
   
plugins/sfSympalPlugin/trunk/lib/model/doctrine/PluginsfSympalContent.class.php
   
plugins/sfSympalPlugin/trunk/lib/model/doctrine/PluginsfSympalContentTable.class.php
   
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalMenuPlugin/lib/model/doctrine/PluginsfSympalMenuItem.class.php
   
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalRenderingPlugin/lib/sfSympalContentActionLoader.class.php
   plugins/sfSympalPlugin/trunk/lib/sfSympalConfiguration.class.php
   
plugins/sfSympalPlugin/trunk/modules/sympal_default/lib/Basesympal_defaultActions.class.php
Log:
[1.4][sfSympalPlugin][1.0] Adding more control over what happens when you 
access some unpublished content


Modified: plugins/sfSympalPlugin/trunk/config/app.yml
===================================================================
--- plugins/sfSympalPlugin/trunk/config/app.yml 2010-02-11 15:50:53 UTC (rev 
27900)
+++ plugins/sfSympalPlugin/trunk/config/app.yml 2010-02-11 16:15:16 UTC (rev 
27901)
@@ -5,6 +5,11 @@
 
 all:
   sympal_config:
+    # Configure what to do when you access some content that is not published 
yet
+    unpublished_content:
+      forward_to: [sympal_default, unpublished_content]
+      forward_404: false
+
     # Configure what forms and date fields should be replaced by jQuery rich 
date
     rich_date_forms:
       sfSympalContentForm: [date_published]

Modified: 
plugins/sfSympalPlugin/trunk/lib/model/doctrine/PluginsfSympalContent.class.php
===================================================================
--- 
plugins/sfSympalPlugin/trunk/lib/model/doctrine/PluginsfSympalContent.class.php 
    2010-02-11 15:50:53 UTC (rev 27900)
+++ 
plugins/sfSympalPlugin/trunk/lib/model/doctrine/PluginsfSympalContent.class.php 
    2010-02-11 16:15:16 UTC (rev 27901)
@@ -55,6 +55,11 @@
     $this->populateSlotsByName();
   }
 
+  public function isPublished()
+  {
+    return $this->date_published && strtotime($this->date_published) <= time() 
? true : false;
+  }
+
   public function populateSlotsByName()
   {
     $this->_slotsByName = array();

Modified: 
plugins/sfSympalPlugin/trunk/lib/model/doctrine/PluginsfSympalContentTable.class.php
===================================================================
--- 
plugins/sfSympalPlugin/trunk/lib/model/doctrine/PluginsfSympalContentTable.class.php
        2010-02-11 15:50:53 UTC (rev 27900)
+++ 
plugins/sfSympalPlugin/trunk/lib/model/doctrine/PluginsfSympalContentTable.class.php
        2010-02-11 16:15:16 UTC (rev 27901)
@@ -167,11 +167,6 @@
 
     $user = sfContext::getInstance()->getUser();
 
-    if (!$user->isEditMode())
-    {
-      $q = $this->addPublishedQuery($alias, $q);
-    }
-
     if (sfSympalConfig::isI18nEnabled('sfSympalContentSlot'))
     {
       $q->leftJoin('s.Translation slt');

Modified: 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalMenuPlugin/lib/model/doctrine/PluginsfSympalMenuItem.class.php
===================================================================
--- 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalMenuPlugin/lib/model/doctrine/PluginsfSympalMenuItem.class.php
     2010-02-11 15:50:53 UTC (rev 27900)
+++ 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalMenuPlugin/lib/model/doctrine/PluginsfSympalMenuItem.class.php
     2010-02-11 16:15:16 UTC (rev 27901)
@@ -9,6 +9,11 @@
     $_label = null,
     $_allPermissions;
 
+  public function isPublished()
+  {
+    return $this->date_published && strtotime($this->date_published) <= time() 
? true : false;
+  }
+
   public function getAllPermissions()
   {
     if (!$this->_allPermissions)

Modified: 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalRenderingPlugin/lib/sfSympalContentActionLoader.class.php
===================================================================
--- 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalRenderingPlugin/lib/sfSympalContentActionLoader.class.php
  2010-02-11 15:50:53 UTC (rev 27900)
+++ 
plugins/sfSympalPlugin/trunk/lib/plugins/sfSympalRenderingPlugin/lib/sfSympalContentActionLoader.class.php
  2010-02-11 16:15:16 UTC (rev 27901)
@@ -45,6 +45,7 @@
   public function loadContent()
   {
     $content = $this->getContent();
+    $this->_handleIsPublished($content);
     $this->_handleForward404($content);
     $this->_user->checkContentSecurity($content);
 
@@ -172,6 +173,21 @@
     $task->run(array($this->_sympalContext->getSiteSlug()), 
array('no-confirmation' => true));
   }
 
+  private function _handleIsPublished($record)
+  {
+    if (!$record->isPublished() && !$this->_user->isEditMode())
+    {
+      if (sfSympalConfig::get('unpublished_content', 'forward_404'))
+      {
+        $this->_actions->forward404('Content has not been published yet!');
+      }
+      else if ($forwardTo = sfSympalConfig::get('unpublished_content', 
'forward_to'))
+      {
+        $this->_actions->forward($forwardTo[0], $forwardTo[1]);
+      }
+    }
+  }
+
   private function _handleForward404($record)
   {
     if (!$record)

Modified: plugins/sfSympalPlugin/trunk/lib/sfSympalConfiguration.class.php
===================================================================
--- plugins/sfSympalPlugin/trunk/lib/sfSympalConfiguration.class.php    
2010-02-11 15:50:53 UTC (rev 27900)
+++ plugins/sfSympalPlugin/trunk/lib/sfSympalConfiguration.class.php    
2010-02-11 16:15:16 UTC (rev 27901)
@@ -72,7 +72,6 @@
     $this->_dispatcher->connect('form.post_configure', array('sfSympalForm', 
'listenToFormPostConfigure'));
     $this->_dispatcher->connect('form.filter_values', array('sfSympalForm', 
'listenToFormFilterValues'));
     $this->_dispatcher->connect('task.cache.clear', array($this, 
'listenToTaskCacheClear'));
-    $this->_dispatcher->connect('sympal.load_content', array($this, 
'listenToSympalLoadContent'));
   }
 
   /**
@@ -125,17 +124,6 @@
   }
 
   /**
-   * Listen to sympal.load_content event and force a reload of isEditMode()
-   *
-   * @param sfEvent $event
-   * @return void
-   */
-  public function listenToSympalLoadContent(sfEvent $event)
-  {
-    sfContext::getInstance()->getUser()->isEditMode(true);
-  }
-
-  /**
    * Listen to clear cache task event so we can clear the web cache folder
    *
    * @param sfEvent $event 

Modified: 
plugins/sfSympalPlugin/trunk/modules/sympal_default/lib/Basesympal_defaultActions.class.php
===================================================================
--- 
plugins/sfSympalPlugin/trunk/modules/sympal_default/lib/Basesympal_defaultActions.class.php
 2010-02-11 15:50:53 UTC (rev 27900)
+++ 
plugins/sfSympalPlugin/trunk/modules/sympal_default/lib/Basesympal_defaultActions.class.php
 2010-02-11 16:15:16 UTC (rev 27901)
@@ -2,6 +2,11 @@
 
 class Basesympal_defaultActions extends sfActions
 {
+  public function executeUnpublished_content(sfWebRequest $request)
+  {
+    
+  }
+
   public function executeSitemap(sfWebRequest $request)
   {
     $this->setLayout(false);

Added: 
plugins/sfSympalPlugin/trunk/modules/sympal_default/templates/unpublished_contentSuccess.php
===================================================================
--- 
plugins/sfSympalPlugin/trunk/modules/sympal_default/templates/unpublished_contentSuccess.php
                                (rev 0)
+++ 
plugins/sfSympalPlugin/trunk/modules/sympal_default/templates/unpublished_contentSuccess.php
        2010-02-11 16:15:16 UTC (rev 27901)
@@ -0,0 +1,3 @@
+<h1><?php echo __('Unpublished') ?></h1>
+
+<p><?php echo __('Sorry, you have accessed some content that has not been 
published yet!') ?></p>
\ 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