$foo = Options::get('foo'); // returns null if the option 'foo' does not exist
list($foo, $bar, $baz) = Options::get( array('foo1', 'bar2', 'baz3') ); // useful with array_keys()
$bar = Options::get('foo', 'bar'); // returns 'bar' if the option 'foo' does not exist. useful for avoiding if/then blocks to detect unset options
public static get ( string | array $name, mixed $default_value = null ) : mixed | ||
$name | string | array | The name or an array of names of the option to fetch. |
$default_value | mixed | The value to return for an option if it does not exist. |
리턴 | mixed | The option requested or an array of requested options, $default_value for each if the option does not exist |
/** * Output a post collection based on the provided parameters. * * @param array $params An array of parameters as passed to Posts::get() to retrieve posts. */ public function get_collection($params = array()) { // Store handler vars since we'll be using them a lot. $handler_vars = Controller::get_handler_vars(); // Retrieve the current matched rule and store its name and argument values. $rr = URL::get_matched_rule(); $rr_name = $rr->name; $rr_args = $rr->named_arg_values; // Assign alternate links based on the matched rule. $alternate_rules = array('atom_feed_tag' => 'display_entries_by_tag', 'atom_feed' => 'display_home', 'atom_entry' => 'display_entry', 'atom_feed_entry_comments' => 'display_entry', 'atom_feed_page_comments' => 'display_entry', 'atom_feed_comments' => 'display_home'); $alternate_rules = Plugins::filter('atom_get_collection_alternate_rules', $alternate_rules); $alternate = URL::get($alternate_rules[$rr_name], $handler_vars, false); // Assign self link based on the matched rule. $self = URL::get($rr_name, $rr_args, false); // Get posts to put in the feed $page = isset($rr_args['page']) ? $rr_args['page'] : 1; if ($page > 1) { $params['page'] = $page; } if (!isset($params['content_type'])) { $params['content_type'] = Post::type('entry'); } $params['content_type'] = Plugins::filter('atom_get_collection_content_type', $params['content_type']); $params['status'] = $this->is_auth() ? 'any' : Post::status('published'); $params['orderby'] = 'updated DESC'; $params['limit'] = Options::get('atom_entries'); $params = array_merge($params, $rr_args); if (array_key_exists('tag', $params)) { $id = urlencode($params['tag']); $tags = explode(' ', $params['tag']); foreach ($tags as $tag) { if ($tag[0] == '-') { $tag = substr($tag, 1); $params['vocabulary'][Tags::vocabulary()->name . ':not:term'][] = Utils::slugify($tag); } else { $params['vocabulary'][Tags::vocabulary()->name . ':all:term'][] = Utils::slugify($tag); } } unset($params['tag']); } else { $id = 'atom'; } $posts = Posts::get($params); if (count($posts)) { $updated = $posts[0]->updated; } else { $updated = null; header('HTTP/1.1 404 Not Found', true, 404); die('Posts could not be found'); } $xml = $this->create_atom_wrapper($alternate, $self, $id, $updated); $xml = $this->add_pagination_links($xml, $posts->count_all()); $xml = $this->add_posts($xml, $posts); Plugins::act('atom_get_collection', $xml, $params, $handler_vars); $xml = $xml->asXML(); ob_clean(); header('Content-Type: application/atom+xml'); print $this->tidy_xml($xml); }
public function action_post_insert_after(Post $post) { if (Options::get(self::OPTION_ANNOUNCE_POSTS) == 'yes' && $post->statusname == 'published') { $params = array('article-author' => $post->author->username, 'article-author-email' => $post->author->email, 'article-title' => $post->title, 'article-content' => $post->content, 'permalink' => $post->permalink); try { $result = $this->defensio->announce_article($params); } catch (Exception $e) { EventLog::log($e->getMessage(), 'notice', 'content', 'Defensio'); } } }