/**
  * beforeSave callback
  *
  * @param object $Model
  */
 public function beforeSave(Model $Model)
 {
     $settings = $this->settings[$Model->alias];
     if (is_string($this->settings[$Model->alias]['trigger'])) {
         if ($Model->{$this->settings[$Model->alias]['trigger']} != true) {
             return true;
         }
     }
     if (empty($Model->data[$Model->alias])) {
         return true;
     } else {
         if (empty($Model->data[$Model->alias][$this->settings[$Model->alias]['label']])) {
             return true;
         } else {
             if (!$this->settings[$Model->alias]['update'] && !empty($Model->id) && !is_string($this->settings[$Model->alias]['trigger'])) {
                 return true;
             }
         }
     }
     $slug = $Model->data[$Model->alias][$settings['label']];
     if (method_Exists($Model, 'beforeSlugGeneration')) {
         $slug = $Model->beforeSlugGeneration($slug, $settings['separator']);
     }
     $settings = $this->settings[$Model->alias];
     $slug = $this->multibyteSlug($Model, $slug, $settings['separator']);
     if ($settings['unique'] === true || is_array($settings['unique'])) {
         $slug = $this->makeUniqueSlug($Model, $slug);
     }
     if (!empty($Model->whitelist) && !in_array($settings['slug'], $Model->whitelist)) {
         $Model->whitelist[] = $settings['slug'];
     }
     $Model->data[$Model->alias][$settings['slug']] = $slug;
     return true;
 }
Ejemplo n.º 2
0
 /**
  * Create an Option-Object by parsing a given file.
  *
  * @param string $file The config-file to be parsed
  *
  * @throws \Org\Heigl\Hyphenator\Exception\PathNotFoundException
  * @throws \Org\Heigl\Hyphenator\Exception\InvalidArgumentException
  * @return \Org\Heigl\Hyphenator\Options
  */
 public static function factory($file)
 {
     if (!file_Exists($file)) {
         $file = $file . '.dist';
         if (!file_exists($file)) {
             throw new \Org\Heigl\Hyphenator\Exception\PathNotFoundException($file);
         }
     }
     $params = parse_ini_file($file);
     if (!is_array($params) || 1 > count($params)) {
         throw new \Org\Heigl\Hyphenator\Exception\InvalidArgumentException($file . ' is not a parseable file');
     }
     $option = new Options();
     foreach ($params as $key => $val) {
         if (!method_Exists($option, 'set' . $key)) {
             continue;
         }
         call_user_Func(array($option, 'set' . $key), $val);
     }
     return $option;
 }