예제 #1
0
 /**
  * Compares two dates using the given operator.
  * Static function.
  *
  * @param CMS_date $date1 The leftmost date of the comparison
  * @param CMS_date $date2 The rightmost date of the comparison
  * @param string $operator the comparison operator. Can be one of ==,>=,>,<=,<
  * @return boolean true if the comparison is true, false otherwise
  * @access public
  */
 static function compare($date1, $date2, $operator)
 {
     $allowed_operators = array("==", ">=", ">", "<", "<=");
     if (SensitiveIO::isInSet($operator, $allowed_operators)) {
         $func_body = sprintf('if (%s %s %s) { return true ; } else { return false ; }', $date1->getTimestamp(), $operator, $date2->getTimestamp());
         $func = create_function('', $func_body);
         if (!$func) {
             return false;
         }
         return $func();
     } else {
         return false;
     }
 }
예제 #2
0
 /**
  * get HTML admin (used to enter object values in admin)
  *
  * @param integer $fieldID, the current field id (only for poly object compatibility)
  * @param CMS_language $language, the current admin language
  * @param string prefixname : the prefix to use for post names
  * @return string : the html admin
  * @access public
  */
 function getHTMLAdmin($fieldID, $language, $prefixName)
 {
     $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
     $params = $this->getParamsValues();
     //instanciate sending date object
     $sendingDate = new CMS_date();
     $sendingDate->setFromDBValue($this->_subfieldValues[1]->getValue());
     if ($sendingDate->isNull()) {
         $lastSendingDate = $language->getMessage(self::MESSAGE_OBJECT_EMAIL_NEVER, false, MOD_POLYMOD_CODENAME);
     } else {
         $lastSendingDate = $sendingDate->getLocalizedDate($language->getDateFormat()) . ' ' . date('H:i:s', $sendingDate->getTimestamp());
     }
     $label = $return['title'];
     $return = array('layout' => 'column', 'xtype' => 'panel', 'border' => false, 'items' => array($params['chooseSendEmail'] ? array('width' => '100%', 'layout' => 'form', 'border' => false, 'items' => array(array('id' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_0]', 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_0]', 'xtype' => 'checkbox', 'fieldLabel' => '&nbsp;', 'labelSeparator' => '', 'inputValue' => 1, 'anchor' => false, 'checked' => $params['defaultValue'] ? 1 : !!$this->_subfieldValues[0]->getValue(), 'boxLabel' => $label . '&nbsp;<small>(' . $language->getMessage(self::MESSAGE_OBJECT_EMAIL_LAST_SENDING, false, MOD_POLYMOD_CODENAME) . ' : ' . $lastSendingDate . ')</small>'))) : array('width' => '100%', 'layout' => 'fit', 'border' => true, 'padding' => '5', 'bodyStyle' => 'margin:10px 0 15px 0', 'html' => $label . ' : ' . $language->getMessage(self::MESSAGE_OBJECT_EMAIL_LAST_SENDING, false, MOD_POLYMOD_CODENAME) . ' : ' . $lastSendingDate), array('columnWidth' => 1, 'layout' => 'form', 'border' => false, 'hideLabels' => true, 'items' => array(array('xtype' => 'hidden', 'value' => $this->_subfieldValues[1]->getValue(), 'id' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_1]', 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_1]'), array('xtype' => 'hidden', 'value' => $this->_subfieldValues[2]->getValue(), 'id' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_2]', 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_2]')))));
     if (!$params['chooseSendEmail']) {
         $return['items'][1]['items'][] = array('xtype' => 'hidden', 'value' => 1, 'id' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_0]', 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_0]');
     }
     return $return;
 }
예제 #3
0
 /**
  * get an object value
  *
  * @param string $name : the name of the value to get
  * @param string $parameters (optional) : parameters for the value to get
  * @return multidimentionnal array : the object values structure
  * @access public
  */
 function getValue($name, $parameters = '')
 {
     // @TODOV4 : Manage language into database !
     $languages = array();
     $languages['fr'] = array('January' => 'Janvier', 'February' => 'F&eacute;vrier', 'March' => 'Mars', 'April' => 'Avril', 'May' => 'Mai', 'June' => 'Juin', 'July' => 'Juillet', 'August' => 'Ao&ucirc;t', 'September' => 'Septembre', 'October' => 'Octobre', 'November' => 'Novembre', 'December' => 'D&eacute;cembre', 'Monday' => 'Lundi', 'Tuesday' => 'Mardi', 'Wednesday' => 'Mercredi', 'Thursday' => 'Jeudi', 'Friday' => 'Vendredi', 'Saturday' => 'Samedi', 'Sunday' => 'Dimanche', 'Jan' => 'Jan', 'Feb' => 'F&eacute;v', 'Mar' => 'Mar', 'Apr' => 'Avr', 'May' => 'Mai', 'Jun' => 'Jui', 'Jul' => 'Jui', 'Aug' => 'Ao&ucirc;', 'Sep' => 'Sep', 'Oct' => 'Oct', 'Nov' => 'Nov', 'Dec' => 'D&eacute;c', 'Mon' => 'Lun', 'Tue' => 'Mar', 'Wed' => 'Mer', 'Thu' => 'Jeu', 'Fri' => 'Ven', 'Sat' => 'Sam', 'Sun' => 'Dim');
     switch ($name) {
         case 'formatedValue':
             global $cms_language;
             $date = new CMS_date();
             $date->setFromDBValue($this->_subfieldValues[0]->getValue());
             if (io::strtolower($parameters) == 'rss') {
                 $date = date('r', $date->getTimeStamp());
             } else {
                 $date = date($parameters, $date->getTimeStamp());
                 if (is_object($cms_language) && isset($languages[$cms_language->getCode()])) {
                     $date = str_replace(array_keys($languages[$cms_language->getCode()]), $languages[$cms_language->getCode()], $date);
                 }
             }
             return io::htmlspecialchars($date);
             break;
         case 'notNull':
             $date = new CMS_date();
             $date->setFromDBValue($this->_subfieldValues[0]->getValue());
             return !$date->isNull();
             break;
         case 'timestamp':
             $date = new CMS_date();
             $date->setFromDBValue($this->_subfieldValues[0]->getValue());
             return $date->getTimestamp();
             break;
         default:
             return parent::getValue($name, $parameters);
             break;
     }
 }