Exemplo n.º 1
0
 /**
  * Prepared fields
  *
  * Filter the fields from extending class.
  *
  * @since 0.9
  * @return array Modified fields
  */
 function ctc_prepared_fields()
 {
     // prefix in case WP core adds method with same name
     // Get fields from extending class
     $fields = array();
     if (method_exists($this->ctc_class, 'ctc_fields')) {
         $fields = $this->ctc_fields();
     }
     // Fill array of visible fields with all by default
     $visible_fields = array();
     foreach ($fields as $id => $field) {
         $visible_fields[] = $id;
     }
     // Let themes/plugins set explicit visibility for fields for specific widget
     $visible_fields = apply_filters('ctc_widget_visible_fields-' . $this->id_base, $visible_fields, $this->id_base);
     // Let themes/plugins override specific data for field of specific post type
     $field_overrides = apply_filters('ctc_widget_field_overrides-' . $this->id_base, array(), $this->id_base);
     // by default no overrides
     // Loop fields to modify them with filtered data
     foreach ($fields as $id => $field) {
         // Selectively override field data based on filtered array
         if (!empty($field_overrides[$id]) && is_array($field_overrides[$id])) {
             $fields[$id] = array_merge($field, $field_overrides[$id]);
             // merge filtered in data over top existing data
         }
         // Set visibility of field based on filtered or unfiltered array
         $fields[$id]['hidden'] = !in_array($id, (array) $visible_fields) ? true : false;
         // set hidden true if not in array
         // Set visibility of field based on required taxonomy support (in case unsupported by theme or via plugin settings, etc.)
         if (!empty($fields[$id]['taxonomies'])) {
             // Loop taxonomies
             foreach ((array) $fields[$id]['taxonomies'] as $taxonomy_name) {
                 // Taxonomy not supported by theme (or possibly disabled via Church Theme Content)
                 if (!ctc_taxonomy_supported('sermons', $taxonomy_name)) {
                     // check show_ui
                     $fields[$id]['hidden'] = true;
                     break;
                     // one strike and you're out
                 }
             }
         }
     }
     return $fields;
 }
/**
 * Add/remove list columns
 *
 * @since 0.9
 * @param array $columns Columns to manipulate
 * @return array Modified columns
 */
function ctc_person_columns($columns)
{
    // insert thumbnail after checkbox (before title)
    $insert_array = array();
    $insert_array['ctc_person_thumbnail'] = __('Thumbnail', 'church-theme-content');
    $columns = ctc_array_merge_after_key($columns, $insert_array, 'cb');
    // insert columns after title
    $insert_array = array();
    if (ctc_field_supported('people', '_ctc_person_position')) {
        $insert_array['ctc_person_position'] = __('Position', 'church-theme-content');
    }
    if (ctc_taxonomy_supported('people', 'ctc_person_group')) {
        $insert_array['ctc_person_group'] = _x('Groups', 'people column', 'church-theme-content');
    }
    $insert_array['ctc_person_order'] = _x('Order', 'sorting', 'church-theme-content');
    $columns = ctc_array_merge_after_key($columns, $insert_array, 'title');
    //change "title" to "name"
    $columns['title'] = _x('Name', 'person', 'church-theme-content');
    return $columns;
}
Exemplo n.º 3
0
/**
 * Person group
 *
 * @since 0.9
 */
function ctc_register_taxonomy_person_group()
{
    // Arguments
    $args = array('labels' => array('name' => _x('Groups', 'taxonomy general name', 'church-theme-content'), 'singular_name' => _x('Group', 'taxonomy singular name', 'church-theme-content'), 'search_items' => _x('Search Groups', 'people', 'church-theme-content'), 'popular_items' => _x('Popular Groups', 'people', 'church-theme-content'), 'all_items' => _x('All Groups', 'people', 'church-theme-content'), 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => _x('Edit Group', 'people', 'church-theme-content'), 'update_item' => _x('Update Group', 'people', 'church-theme-content'), 'add_new_item' => _x('Add Group', 'people', 'church-theme-content'), 'new_item_name' => _x('New Group', 'people', 'church-theme-content'), 'separate_items_with_commas' => _x('Separate groups with commas', 'people', 'church-theme-content'), 'add_or_remove_items' => _x('Add or remove groups', 'people', 'church-theme-content'), 'choose_from_most_used' => _x('Choose from the most used groups', 'people', 'church-theme-content'), 'menu_name' => _x('Groups', 'people menu name', 'church-theme-content')), 'hierarchical' => true, 'public' => ctc_taxonomy_supported('people', 'ctc_person_group'), 'rewrite' => array('slug' => 'group', 'with_front' => false, 'hierarchical' => true));
    $args = apply_filters('ctc_taxonomy_person_group_args', $args);
    // allow filtering
    // Registration
    register_taxonomy('ctc_person_group', 'ctc_person', $args);
}
/**
 * Add/remove sermon list columns
 *
 * Add speaker, media, topics, etc.
 *
 * @since 0.9
 * @param array $columns Columns to manipulate
 * @return array Modified columns
 */
function ctc_sermon_columns($columns)
{
    // insert thumbnail after checkbox (before title)
    $insert_array = array();
    $insert_array['ctc_sermon_thumbnail'] = __('Thumbnail', 'church-theme-content');
    $columns = ctc_array_merge_after_key($columns, $insert_array, 'cb');
    // insert media types, speakers, topics after title
    $insert_array = array();
    $insert_array['ctc_sermon_types'] = _x('Formats', 'sermons', 'church-theme-content');
    if (ctc_taxonomy_supported('sermons', 'ctc_sermon_topic')) {
        $insert_array['ctc_sermon_topics'] = __('Topics', 'church-theme-content');
    }
    //if ( ctc_taxonomy_supported( 'sermons', 'ctc_sermon_book' ) ) $insert_array['ctc_sermon_books'] = _x( 'Books', 'sermons', 'church-theme-content' );
    //if ( ctc_taxonomy_supported( 'sermons', 'ctc_sermon_series' ) ) $insert_array['ctc_sermon_series'] = _x( 'Series', 'sermons', 'church-theme-content' );
    // little room: if ( ctc_taxonomy_supported( 'sermons', 'ctc_sermon_speaker' ) ) $insert_array['ctc_sermon_speakers'] = _x( 'Speakers', 'sermons', 'church-theme-content' );
    $columns = ctc_array_merge_after_key($columns, $insert_array, 'title');
    // remove author
    unset($columns['author']);
    return $columns;
}
Exemplo n.º 5
0
/**
 * Taxonomy term options
 *
 * Returns ID/name pairs useful for creating select options and sanitizing on front-end.
 *
 * @since 0.9
 * @param string $taxonomy_name Taxonomy slug
 * @param array $prepend Array to start with such as "All" or similar
 * @return array ID/name pairs
 */
function ctc_term_options($taxonomy_name, $prepend = array())
{
    $options = array();
    if (!preg_match('/^ctc_/', $taxonomy_name) || ctc_taxonomy_supported('sermons', $taxonomy_name)) {
        // make sure CTC taxonomy support
        $terms = $categories = get_terms($taxonomy_name);
        if (!empty($prepend)) {
            $options = $prepend;
        }
        foreach ($terms as $term) {
            $options[$term->term_id] = $term->name;
        }
    }
    return apply_filters('ctc_term_options', $options, $taxonomy_name, $prepend);
}
/**
 * Add/remove event list columns
 *
 * @since 0.9
 * @param array $columns Columns to manipulate
 * @return array Modified columns
 */
function ctc_event_columns($columns)
{
    // insert thumbnail after checkbox (before title)
    $insert_array = array();
    $insert_array['ctc_event_thumbnail'] = __('Thumbnail', 'church-theme-content');
    $columns = ctc_array_merge_after_key($columns, $insert_array, 'cb');
    // insert start date, venue after title
    $insert_array = array();
    if (ctc_field_supported('events', '_ctc_event_start_date')) {
        $insert_array['ctc_event_dates'] = _x('When', 'events admin column', 'church-theme-content');
    }
    if (ctc_field_supported('events', '_ctc_event_venue') || ctc_taxonomy_supported('events', 'ctc_event_category')) {
        $insert_array['ctc_event_details'] = _x('Details', 'events admin column', 'church-theme-content');
    }
    $columns = ctc_array_merge_after_key($columns, $insert_array, 'title');
    // remove author
    unset($columns['author']);
    return $columns;
}