public function __construct($data = array()) { parent::__construct($data); if (!isset($data['name'])) { $this->name = 'eventlist'; } if (!isset($data['posts'])) { $event_args = array(); // Get the active plugins. $active_plugins = get_option('active_plugins'); // We do some guessing here for Tzolkin if (in_array('tzolkin/tzolkin.php', $active_plugins)) { $event_args = ['post_type' => 'tz_events']; } // Some more guessing for The Events Calendar if (in_array('the-events-calendar/the-events-calendar.php', $active_plugins)) { $event_args = ['post_type' => \Tribe__Events__Main::POSTTYPE, 'orderby' => 'event_date', 'order' => 'ASC', 'posts_per_page' => tribe_get_option('postsPerPage', 10), 'tribe_render_context' => 'default']; } $eventlist_event_args_filter = $this->name . '_event_args'; $event_args = apply_filters($eventlist_event_args_filter, $event_args); Atom::add_debug_entry('Filter', $eventlist_event_args_filter); $this->posts = new \WP_Query($event_args); } if (!isset($data['posts-structure'])) { $posts_structure = ['PostClass' => ['children' => ['image', 'text']], 'image' => ['parts' => ['PostThumbnail']], 'text' => ['parts' => ['EventBadge', 'PostTitleLink', 'EventDate', 'ForceExcerpt', 'PostLink' => 'Read More']]]; $postlist_posts_structure_filter = $this->name . '_posts_structure'; $this->posts_structure = apply_filters($postlist_posts_structure_filter, $posts_structure); Atom::add_debug_entry('Filter', $postlist_posts_structure_filter); } }
public function __construct($data) { if (!isset($data['name']) && '' === $this->name) { $this->name = 'postlist'; } if (!isset($data['posts-structure']) || empty($data['posts-structure'])) { $data['posts-structure'] = ['PostClass' => ['children' => ['image', 'text']], 'image' => ['parts' => ['PostThumbnail']], 'text' => ['parts' => ['PostTitleLink', 'PostDate' => 'm/d/Y', 'CategoryList', 'ExcerptForce', 'PostLink' => 'Read More']]]; } parent::__construct($data); }
public function __construct($data = array()) { parent::__construct($data); if (!isset($data['name'])) { $this->name = 'postheader'; } if (!isset($data['structure'])) { $structure = ['title' => ['atom' => 'PostTitleLink', 'sibling' => 'date'], 'date' => ['atom' => 'PostDate', 'sibling' => 'author'], 'author' => ['atom' => 'PostAuthor', 'sibling' => 'categories'], 'categories' => ['atom' => 'CategoryList', 'sibling' => 'excerpt'], 'excerpt' => ['atom' => 'ExcerptForce']]; if (is_search()) { $structure['excerpt']['atom'] = 'ExcerptSearch'; } $postheader_structure_filter = $this->name . '_archive_structure'; $this->structure = apply_filters($postheader_structure_filter, $structure); Atom::add_debug_entry('Filter', $postheader_structure_filter); } }
public function __construct($data = array()) { parent::__construct($data); if (!isset($data['name'])) { $this->name = 'section'; } if (!isset($data['tag'])) { $this->name = 'header'; } if (!isset($data['structure'])) { $ancestor = get_highest_ancestor(); $section_title_filter = $this->name . '_title'; $title = apply_filters($section_title_filter, $ancestor['title']); Atom::add_debug_entry('Filter,', $section_title_filter); $this->structure = ['row' => ['children' => ['column']], 'column' => ['parts' => ['title' => ['tag' => 'h2', 'content' => $title]]]]; } }
public function __construct($data = array()) { parent::__construct($data); if (!isset($data['name'])) { $this->name = 'subnav'; } // Add the Organism name as a class $this->attributes['class'][] = $this->name; // May need to refactor the way the SubnavType is determined in order for settings like this to function properly $default_behaviors = ['front-page' => ['behavior' => 'none'], 'home' => ['behavior' => 'archive-post_type', 'taxonomy' => 'category', 'title' => 'All Post Categories'], '404' => ['behavior' => 'none'], 'search' => ['behavior' => 'none'], 'post' => ['single' => ['behavior' => 'single-nonhierarchical', 'taxonomy' => 'category', 'title' => 'Post Categories']], 'category' => ['behavior' => 'none'], 'tag' => ['behavior' => 'none'], 'page' => ['single' => ['title' => 'Pages in this Section']], 'tribe_events' => ['single' => ['behavior' => 'archive-post_type', 'taxonomy' => 'tribe_events_cat', 'title' => 'Event Categories'], 'archive' => ['taxonomy' => 'tribe_events_cat', 'title' => 'Event Categories']], 'tribe_events_cat' => ['behavior' => 'none']]; // Parse custom content settings. if (isset($data['settings_by_content_type'])) { $this->settings_by_content_type = array_replace_recursive($default_behaviors, $data['settings_by_content_type']); } else { $this->settings_by_content_type = $default_behaviors; } // Figure out which page we're dealing with here. self::determine_subnav_settings(); // Parse global list args if (isset($data['list_args'])) { $this->list_args = $data['list_args']; } // Merge any post-type view-specific list args into the defaults. if (isset($this->settings['list_args'])) { $this->list_args = array_merge($this->list_args, $this->settings['list_args']); } $this->list_args['subnav'] = true; if (isset($this->settings['behavior'])) { $this->behavior = $this->settings['behavior']; } else { self::determine_fallback_subnav_type(); } /* @EXIT: "none" tells us that there isn't supposed to be a subnanv here. */ if ('none' === $this->behavior) { return false; } if (isset($this->settings['title'])) { $this->title = $this->settings['title']; } $this->manual_additions = array(); if (isset($data['manual_additions'])) { $this->manual_additions = $data['manual_additions']; } // Get the subnav items, based on the type of subnav self::get_subnav_items(); // Return false if there is no list AND no manual additions. if ('' === $this->list && empty($this->manual_additions)) { return false; } // Structure setup is left till here so that we don't return an empty list by accident. if (!isset($data['structure'])) { // 'List' is initialized here so that manual items can be added after it. $this->structure = ['title' => ['tag' => 'h4', 'content' => $this->title, 'sibling' => 'items'], 'items' => ['parts' => ['list']]]; // Add a separator and the manual items after the main list. if (!empty($this->manual_additions)) { $this->structure['items']['parts']['separator'] = ''; $this->structure['items']['parts']['manual'] = $this->manual_additions; } } else { $this->structure = $data['structure']; } // Add the list in separately, so that different structure can be passed in independent from the list. // It is up to the dev to take care that "items" is listed as a child or sibling. $this->structure['items']['parts']['list'] = $this->list; return true; }