/** * 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; }
/** * 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; }