Exemple #1
0
 /**
  * Return error message
  *
  * @param   mixed 	$fields Form array or boolean
  * @param   string 	$title Dialog title
  * @param   boolean     $session If true save message in a session var
  * @return  void
  */
 public function notice($fields, $title = '_form_not_valid', $session = false)
 {
     $dict = new X4Dict_model(X4Route_core::$folder, X4Route_core::$lang);
     $error = $dict->get_word($title, 'form');
     $fields = X4Utils_helper::normalize_form($fields);
     foreach ($fields as $i) {
         if (isset($i['error'])) {
             foreach ($i['error'] as $ii) {
                 // set the available label
                 $label = is_null($i['label']) && isset($i['alabel']) || isset($i['alabel']) ? $i['alabel'] : $i['label'];
                 // for related fields
                 if (isset($i['related'][$i['name']])) {
                     $src = array('XXXRELATEDXXX');
                     $rpl = array();
                     $related = $i['related'][$i['name']];
                     if (isset($fields[$related])) {
                         // if is a related field
                         $rpl[] = is_null($fields[$related]['label']) && isset($fields[$related]['alabel']) || isset($fields[$related]['alabel']) ? $fields[$related]['alabel'] : $fields[$related]['label'];
                     } else {
                         // if is a related value
                         $rpl[] = $related;
                     }
                     if (isset($i['relatedvalue'][$i['name']])) {
                         $src[] = 'XXXVALUEXXX';
                         $rpl[] = $i['relatedvalue'][$i['name']];
                     }
                     $error .= '<br /><u>' . $label . '</u> ' . str_replace($src, $rpl, $dict->get_word($ii, 'form'));
                 } else {
                     $error .= '<br /><u>' . $label . '</u> ' . $dict->get_word($ii, 'form');
                 }
             }
         }
     }
     if ($session) {
         $_SESSION['msg'] = $error;
     } else {
         // set message
         $msg = AdmUtils_helper::set_msg(false, $error, $error);
         $this->response($msg);
     }
 }
Exemple #2
0
 /**
  * Check if a file or a directory is writable
  *
  * @static
  * @param   string	$path File or Directory path
  * @return  null or object
  */
 public static function chk_writable($path)
 {
     // if level lower than required redirect
     if (!is_writable($path)) {
         $dict = new X4Dict_model(X4Route_core::$folder, X4Route_core::$lang);
         $msg = $dict->get_word('_NOT_WRITEABLE', 'msg');
         return self::set_msg(false, '', $msg . ' <b>' . $path . '</b>');
     } else {
         return null;
     }
 }
Exemple #3
0
 /**
  * Get field's error array to use with JS validation
  *
  * @static
  * @param array		$fields form array
  * @return array
  */
 public static function get_error($fields)
 {
     $dict = new X4Dict_model(X4Route_core::$folder, X4Route_core::$lang);
     $fields = self::normalize_form($fields);
     $error = array();
     foreach ($fields as $i) {
         if (isset($i['error'])) {
             foreach ($i['error'] as $ii) {
                 // for related fields
                 if (isset($i['related'][$i['name']])) {
                     $related = $i['related'][$i['name']];
                     if (isset($fields[$related])) {
                         // if is a related field
                         $rpl = is_null($fields[$related]['label']) && isset($fields[$related]['alabel']) || isset($fields[$related]['alabel']) ? $fields[$related]['alabel'] : $fields[$related]['label'];
                     } else {
                         // if is a related value
                         $rpl = $related;
                     }
                     $msg = str_replace('XXXRELATEDXXX', $rpl, $dict->get_word($ii, 'form'));
                 } else {
                     $msg = $dict->get_word($ii, 'form');
                 }
                 $error[$i['name']] = addslashes(html_entity_decode($msg));
             }
         }
     }
     return $error;
 }
Exemple #4
0
 /**
  * Get time between two datetime
  *
  * @static
  * @param string	$start datetime
  * @param string	$end datetime 
  * @param string	$out switcher to select output
  * @param boolean   $absolute get an absolute value
  * @return string	time
  */
 public static function datetime_diff($start, $end = 0, $out = 'time', $absolute = true)
 {
     $sdate = new DateTime($start);
     $edate = $end != 0 ? new DateTime($end) : new DateTime();
     $time = $sdate->diff($edate, $absolute);
     switch ($out) {
         case 'time':
             // hours - minutes - seconds
             $h = $time->format('%H');
             $m = $time->format('%i');
             $s = $time->format('%s');
             return $h . ':' . $m . ':' . $s;
             break;
         case 'seconds':
             // only seconds
             $h = $time->h;
             $m = $time->i;
             $s = $time->s;
             return $h * 3600 + $m * 60 + $s;
             break;
         case 'days':
             // number of days
             if ($absolute) {
                 return $time->days;
             } else {
                 return $time->format('%R%a');
             }
             break;
         case 'elapsed':
             // incremental
             $dict = new X4Dict_model(X4Route_core::$folder, X4Route_core::$lang);
             $d = $time->days;
             if ($d) {
                 if ($d < 30) {
                     // n days ago
                     $msg = $dict->get_word('_TIME_DAYS_AGO', 'time');
                     return $d . ' ' . $msg;
                 } else {
                     // a formatted date
                     return self::format($start, DATE_FORMAT);
                 }
             } else {
                 $th = $time->h;
                 $h = $th % 24;
                 if ($h) {
                     // n hours ago
                     $msg = $dict->get_word('_TIME_HOURS_AGO', 'time');
                     return $h . ' ' . $msg;
                 } else {
                     $tm = $time->i;
                     $m = intval($tm % 60);
                     if ($m) {
                         // n minutes ago
                         $msg = $dict->get_word('_TIME_MINUTES_AGO', 'time');
                         return $m . ' ' . $msg;
                     } else {
                         // n seconds ago
                         $s = $time->s;
                         $msg = $dict->get_word('_TIME_SECONDS_AGO', 'time');
                         return $s . ' ' . $msg;
                     }
                 }
             }
             break;
     }
 }