Ejemplo n.º 1
0
    {
        return static::_all('1 order by created_on desc limit ' . (int) $amount);
    }
    public static function _newestPublished($amount)
    {
        return static::_all('is_published = 1 order by created_on desc limit ' . (int) $amount);
    }
    public static function _query()
    {
        return array('tables' => array('posts', 'categories c'), 'fields' => array('c.*', 'posts.*'), 'conditions' => array('c.category_id = posts.category_id'));
    }
}
/**/
Post::event(array('_insert'), function ($self, $args, $chain) {
    if (isset($args->values['title']) && !isset($args->values['original_slug'])) {
        $slug = Output::slugify($args->values['title']);
        //var_dump($slug);
        $slugs = Post::all("original_slug LIKE ?", $slug . '%');
        if ($slugs) {
            $nums = array();
            $slugs = array_map(function ($post) use($slug, &$nums) {
                $nums[] = (int) substr($post->original_slug, strlen($slug) + 1);
                return $post->original_slug;
            }, $slugs);
            rsort($nums, SORT_NUMERIC);
            //print_r($slugs);
            //print_r($nums);
            $slug .= '-' . ($nums[0] + 1);
            //var_dump($slug);
        }
        //exit;