[ Index ]
 

Code source de LifeType 1.2.4

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/class/action/admin/ -> admindeletereferreraction.class.php (source)

   1  <?php
   2  
   3      lt_include( PLOG_CLASS_PATH."class/action/admin/adminaction.class.php" );
   4      lt_include( PLOG_CLASS_PATH."class/dao/referers.class.php" );
   5      lt_include( PLOG_CLASS_PATH."class/data/validator/integervalidator.class.php" );
   6      lt_include( PLOG_CLASS_PATH."class/data/validator/arrayvalidator.class.php" );    
   7      lt_include( PLOG_CLASS_PATH."class/dao/articles.class.php" );
   8      lt_include( PLOG_CLASS_PATH."class/view/admin/adminreferrersview.class.php" );
   9  
  10      /**
  11       * \ingroup Action
  12       * @private
  13       *
  14       * Allows to remove referrers
  15       */
  16      class AdminDeleteReferrerAction extends AdminAction 
  17      {
  18  
  19          var $_articleId;
  20          var $_referrerIds;
  21          var $_mode;
  22          var $_referrerId;
  23  
  24          /**
  25           * Constructor. If nothing else, it also has to call the constructor of the parent
  26           * class, BlogAction with the same parameters
  27           */
  28          function AdminDeleteReferrerAction( $actionInfo, $request )
  29          {
  30              $this->AdminAction( $actionInfo, $request );
  31              
  32              // data validation
  33              $this->_mode = $actionInfo->getActionParamValue();
  34              if( $this->_mode == "deleteReferrer" )
  35                  $this->registerFieldValidator( "referrerId", new IntegerValidator());
  36              else
  37                  $this->registerFieldValidator( "referrerIds", new ArrayValidator());
  38              $view = new AdminReferrersView( $this->_blogInfo );
  39              $view->setErrorMessage( $this->_locale->tr("error_no_items_selected" ));
  40              $this->setValidationErrorView( $view );
  41              
  42              $this->requirePermission( "update_blog_stats" );
  43          }
  44          
  45  		function perform()
  46          {
  47              // collect the data and call the right method...
  48              if( $this->_mode == "deleteReferrer" ) {
  49                  $this->_referrerId = $this->_request->getValue( "referrerId" );
  50                  $this->_referrerIds = Array();
  51                  $this->_referrerIds[] = $this->_referrerId;
  52              }
  53              else
  54                  $this->_referrerIds = $this->_request->getValue( "referrerIds" );
  55              
  56              $this->_deleteReferrers();
  57              
  58              return true;
  59          }
  60  
  61          /**
  62           * Carries out the specified action
  63           */
  64          function _deleteReferrers()
  65          {
  66              $referrers = new Referers();
  67              $errorMessage = "";
  68              $successMessage = "";
  69              $totalOk = 0;
  70              
  71              foreach( $this->_referrerIds as $referrerId ) {
  72                  // fetch the referrer
  73                  $referrer = $referrers->getBlogReferer( $referrerId, $this->_blogInfo->getId());
  74                  
  75                  // fire the pre-event
  76                  $this->notifyEvent( EVENT_PRE_REFERRER_DELETE, Array( "referrer" => &$referrer ));
  77                  
  78                  if( !$referrer ) {
  79                      $errorMessage .= $this->_locale->pr("error_deleting_referrer2", $referrerId )."<br/>";
  80                  }
  81                  else {
  82                      if( !$referrers->deleteBlogReferer( $referrerId, $this->_blogInfo->getId()))
  83                          $errorMessage .= $this->_locale->pr("error_deleting_referrer", $referrer->getUrl())."<br/>";
  84                      else {
  85                          $totalOk++;
  86                          if( $totalOk < 2 )
  87                              $successMessage = $this->_locale->pr("referrer_deleted_ok", $referrer->getUrl());
  88                          else
  89                              $successMessage = $this->_locale->pr("referrers_deleted_ok", $totalOk );
  90                          // fire the post-event
  91                          $this->notifyEvent( EVENT_POST_REFERRER_DELETE, Array( "referrer" => &$referrer ));
  92                          
  93                          $clearCache = true;
  94                      }
  95                  }            
  96              }
  97              
  98              if( $clearCache ) {
  99                  // clear the cache if needed
 100                  CacheControl::resetBlogCache( $this->_blogInfo->getId(), false );            
 101              }
 102  
 103              $this->_view = new AdminReferrersView( $this->_blogInfo );
 104              if( $errorMessage != "" ) $this->_view->setErrorMessage( $errorMessage );
 105              if( $successMessage != "" ) $this->_view->setSuccessMessage( $successMessage );
 106              $this->setCommonData();
 107  
 108              // better to return true if everything fine
 109              return true;
 110          }
 111      }
 112  ?>


Généré le : Mon Nov 26 21:04:15 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics