echo 'sitem_selected_from_invis'; } else { echo 'sitem_selected_from_invis'; } unset($otw_widget_settings[$sidebar][$_POST['item_type']]['_otw_wc'][$widget]); } elseif ($otw_widget_settings[$sidebar][$_POST['item_type']]['_otw_wc'][$widget] == 'vis') { if (is_array($otw_sidebars) && array_key_exists($sidebar, $otw_sidebars)) { if (isset($wp_registered_sidebars[$sidebar]['validfor'][$_POST['item_type']])) { foreach ($wp_registered_sidebars[$sidebar]['validfor'][$_POST['item_type']] as $wp_sb_item_id => $wp_sb_item_data) { if (isset($otw_widget_settings[$sidebar][$_POST['item_type']][$wp_sb_item_id]['exclude_widgets'][$widget])) { unset($otw_widget_settings[$sidebar][$_POST['item_type']][$wp_sb_item_id]['exclude_widgets'][$widget]); } } } } else { $wp_all_items = otw_get_wp_items($_POST['item_type']); if (is_array($wp_all_items) && count($wp_all_items)) { foreach ($wp_all_items as $wp_all_item) { $wp_sb_item_id = otw_wp_item_attribute($_POST['item_type'], 'ID', $wp_all_item); if (isset($otw_widget_settings[$sidebar][$_POST['item_type']][$wp_sb_item_id]['exclude_widgets'][$widget])) { unset($otw_widget_settings[$sidebar][$_POST['item_type']][$wp_sb_item_id]['exclude_widgets'][$widget]); } } } } if (!isset($otw_widget_settings[$sidebar][$_POST['item_type']][$_POST['item_id']]['exclude_widgets'][$widget])) { $otw_widget_settings[$sidebar][$_POST['item_type']][$_POST['item_id']]['exclude_widgets'][$widget] = $widget; echo 'sitem_selected_from_vis'; } else { echo 'sitem_selected_from_vis'; }
function otw_sbm_get_filtered_items($type, $filter, $sidebar_id, $displayed_items = 20, $id_in_list = array(), $id_not_in_list = array(), $show = 'all', $order = 'a_z', $current_page = 0) { global $string_filter, $id_list_filter; $string_filter = $filter; $id_list_filter = $id_in_list; $pager_data = array(); switch ($type) { case 'page': $args = array(); $args['post_type'] = $type; $args['posts_per_page'] = -1; if (count($id_list_filter)) { $args['post__in'] = $id_list_filter; } if ($string_filter) { add_filter('posts_where', 'otw_sbm_post_by_title'); } if (otw_installed_plugin('buddypress')) { global $bp; if (isset($bp->pages->activity) && $bp->pages->activity->id) { $id_not_in_list[] = $bp->pages->activity->id; } if (isset($bp->pages->members) && $bp->pages->members->id) { $id_not_in_list[] = $bp->pages->members->id; } } if (count($id_not_in_list)) { $args['post__not_in'] = $id_not_in_list; } $the_query = new WP_Query($args); $all_items = count($the_query->posts); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); $args['offset'] = $pager_data['first']; $args['posts_per_page'] = $displayed_items ? $displayed_items : -1; switch ($order) { case 'a_z': $args['orderby'] = 'title'; $args['order'] = 'ASC'; break; case 'z_a': $args['orderby'] = 'title'; $args['order'] = 'DESC'; break; case 'date_latest': $args['orderby'] = 'date'; $args['order'] = 'DESC'; break; case 'date_oldest': $args['orderby'] = 'date'; $args['order'] = 'ASC'; break; case 'modified_latest': $args['orderby'] = 'modified'; $args['order'] = 'DESC'; break; case 'modified_oldest': $args['orderby'] = 'modified'; $args['order'] = 'ASC'; break; default: $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; } $the_query = new WP_Query($args); if ($string_filter) { remove_filter('posts_where', 'otw_sbm_post_by_title'); } return array($all_items, $the_query->posts, $pager_data); break; case 'post': $args = array(); $args['post_type'] = $type; $args['posts_per_page'] = -1; if (count($id_list_filter)) { $args['post__in'] = $id_list_filter; } if ($string_filter) { add_filter('posts_where', 'otw_sbm_post_by_title'); } if (count($id_not_in_list)) { $args['post__not_in'] = $id_not_in_list; } $the_query = new WP_Query($args); $all_items = count($the_query->posts); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); $args['posts_per_page'] = $displayed_items ? $displayed_items : -1; switch ($order) { case 'a_z': $args['orderby'] = 'title'; $args['order'] = 'ASC'; break; case 'z_a': $args['orderby'] = 'title'; $args['order'] = 'DESC'; break; case 'date_latest': $args['orderby'] = 'date'; $args['order'] = 'DESC'; break; case 'date_oldest': $args['orderby'] = 'date'; $args['order'] = 'ASC'; break; case 'modified_latest': $args['orderby'] = 'modified'; $args['order'] = 'DESC'; break; case 'modified_oldest': $args['orderby'] = 'modified'; $args['order'] = 'ASC'; break; default: $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; } $the_query = new WP_Query($args); if ($string_filter) { remove_filter('posts_where', 'otw_sbm_post_by_title'); } return array($all_items, $the_query->posts, $pager_data); break; case 'category': case 'postsincategory': //first get all $args = array(); $args['type'] = 'post'; $args['hide_empty'] = 0; $args['number'] = 0; if (count($id_list_filter)) { sort($id_list_filter); $args['include'] = $id_list_filter; } if ($string_filter) { $args['search'] = $string_filter; } if (count($id_not_in_list)) { sort($id_not_in_list); $args['exclude'] = $id_not_in_list; } $all_items = count(get_categories($args)); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); $args['offset'] = $pager_data['first']; $args['number'] = $displayed_items ? $displayed_items : 0; switch ($order) { case 'a_z': $args['orderby'] = 'name'; $args['order'] = 'ASC'; break; case 'z_a': $args['orderby'] = 'name'; $args['order'] = 'DESC'; break; case 'date_latest': $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; case 'date_oldest': $args['orderby'] = 'ID'; $args['order'] = 'ASC'; break; default: $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; } return array($all_items, get_categories($args), $pager_data); break; case 'posttag': case 'postsintag': $args = array(); $args['hide_empty'] = 0; $args['number'] = 0; if (count($id_list_filter)) { sort($id_list_filter); $args['include'] = $id_list_filter; } if ($string_filter) { $args['search'] = $string_filter; } if (count($id_not_in_list)) { sort($id_not_in_list); $args['exclude'] = $id_not_in_list; } $all_items = count(get_terms('post_tag', $args)); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); $args['offset'] = $pager_data['first']; $args['number'] = $displayed_items ? $displayed_items : 0; switch ($order) { case 'a_z': $args['orderby'] = 'name'; $args['order'] = 'ASC'; break; case 'z_a': $args['orderby'] = 'name'; $args['order'] = 'DESC'; break; case 'date_latest': $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; case 'date_oldest': $args['orderby'] = 'ID'; $args['order'] = 'ASC'; break; default: $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; } return array($all_items, get_terms('post_tag', $args), $pager_data); break; case 'author_archive': $args = array(); $args['number'] = 0; if (count($id_list_filter)) { sort($id_list_filter); $args['include'] = $id_list_filter; } if ($string_filter) { $args['search'] = '*' . $string_filter . '*'; } if (count($id_not_in_list)) { sort($id_not_in_list); $args['exclude'] = $id_not_in_list; } $all_items = count(get_users($args)); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); $args['offset'] = $pager_data['first']; $args['number'] = $displayed_items ? $displayed_items : 0; switch ($order) { case 'a_z': $args['orderby'] = 'login'; $args['order'] = 'ASC'; break; case 'z_a': $args['orderby'] = 'login'; $args['order'] = 'DESC'; break; case 'date_latest': $args['orderby'] = 'registered'; $args['order'] = 'DESC'; break; case 'date_oldest': $args['orderby'] = 'registered'; $args['order'] = 'ASC'; break; default: $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; } return array($all_items, get_users($args), $pager_data); break; case 'customposttype': case 'templatehierarchy': case 'archive': $all_items = otw_get_wp_items($type); $items = array(); foreach ($all_items as $item_key => $item_object) { if ($string_filter) { if (stripos($item_object->name, $string_filter) === false) { continue; } } if (count($id_list_filter) && !in_array($item_object->ID, $id_list_filter) && !in_array('all', $id_list_filter)) { continue; } if (count($id_not_in_list) && (in_array($item_object->ID, $id_not_in_list) || in_array('all', $id_not_in_list))) { continue; } $items[] = $item_object; } $all_items = count($items); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); $sort_args = array(); switch ($order) { case 'a_z': $sort_args['name'] = 'ASC'; break; case 'z_a': $sort_args['name'] = 'DESC'; break; default: $sort_args['name'] = 'ASC'; break; } if (count($items)) { $items = otw_asort($items, $sort_args); if ($displayed_items) { $items = array_slice($items, $pager_data['first'], $displayed_items); } } return array($all_items, $items, $pager_data); break; case 'pagetemplate': $all_items = otw_get_wp_items($type); $items = array(); foreach ($all_items as $item_key => $item_object) { if ($string_filter) { if (stripos($item_object->name, $string_filter) === false) { continue; } } if (count($id_list_filter) && !in_array($item_object->script, $id_list_filter) && !in_array('all', $id_list_filter)) { continue; } if (count($id_not_in_list) && (in_array($item_object->script, $id_not_in_list) || in_array('all', $id_not_in_list))) { continue; } $items[] = $item_object; } $all_items = count($items); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); $sort_args = array(); switch ($order) { case 'a_z': $sort_args['name'] = 'ASC'; break; case 'z_a': $sort_args['name'] = 'DESC'; break; default: $sort_args['name'] = 'ASC'; break; } if (count($items)) { $items = otw_asort($items, $sort_args); if ($displayed_items) { $items = array_slice($items, $pager_data['first'], $displayed_items); } } return array($all_items, $items, $pager_data); break; case 'userroles': $items = array(); $wp_roles = new WP_Roles(); $all_items = $wp_roles->get_names(); $all_items['notlogged'] = __('Not Logged in'); foreach ($all_items as $u_role_code => $u_role_name) { if ($string_filter) { if (stripos($u_role_name, $string_filter) === false) { continue; } } $item = new stdClass(); $item->ID = $u_role_code; if ($u_role_code != 'notlogged') { $item->name = __('Logged in as ', 'otw_sbm') . $u_role_name; } else { $item->name = $u_role_name; } if (count($id_list_filter) && !in_array($item->ID, $id_list_filter) && !in_array('all', $id_list_filter)) { continue; } if (count($id_not_in_list) && (in_array($item->ID, $id_not_in_list) || in_array('all', $id_not_in_list))) { continue; } $items[] = $item; } $all_items = count($items); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); switch ($order) { case 'a_z': $sort_args['name'] = 'ASC'; break; case 'z_a': $sort_args['name'] = 'DESC'; break; default: $sort_args['name'] = 'ASC'; break; } if (count($items)) { $items = otw_asort($items, $sort_args); if ($displayed_items) { $items = array_slice($items, $pager_data['first'], $displayed_items); } } return array(count($all_items), $items, $pager_data); break; case 'wpmllanguages': if (otw_installed_plugin('wpml')) { $wpml_languages = icl_get_languages('skip_missing=0'); $all_items = count($wpml_languages); $items = array(); foreach ($wpml_languages as $wpml_lang) { if ($string_filter) { if (stripos($wpml_lang['translated_name'], $string_filter) === false && stripos($wpml_lang['translated_name'], $string_filter) === false) { continue; } } $item = new stdClass(); $item->ID = $wpml_lang['language_code']; $item->name = '<img src="' . $wpml_lang['country_flag_url'] . '" alt="' . $wpml_lang['language_code'] . '" border="0"/> ' . $wpml_lang['native_name']; if (count($id_list_filter) && !in_array($item->ID, $id_list_filter) && !in_array('all', $id_list_filter)) { continue; } if (count($id_not_in_list) && (in_array($item->ID, $id_not_in_list) || in_array('all', $id_not_in_list))) { continue; } $items[] = $item; } $all_items = count($items); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); switch ($order) { case 'a_z': $sort_args['name'] = 'ASC'; break; case 'z_a': $sort_args['name'] = 'DESC'; break; default: $sort_args['name'] = 'ASC'; break; } if (count($items)) { $items = otw_asort($items, $sort_args); if ($displayed_items) { $items = array_slice($items, $pager_data['first'], $displayed_items); } } return array($all_items, $items, $pager_data); } break; case 'bbp_page': if (otw_installed_plugin('bbpress')) { $bbp_pages = array(); $bbp_pages[] = array('id' => 'forums', 'name' => __('Forums', 'otw_sbm')); $bbp_pages[] = array('id' => 'noreplies', 'name' => __('Topics no reply', 'otw_sbm')); $bbp_pages[] = array('id' => 'mostpopular', 'name' => __('Topics popular', 'otw_sbm')); $bbp_pages[] = array('id' => 'search', 'name' => __('Search', 'otw_sbm')); $bbp_pages[] = array('id' => 'singleuser', 'name' => __('User pages', 'otw_sbm')); $all_items = count($bbp_pages); $items = array(); foreach ($bbp_pages as $bbp_page) { if ($string_filter) { if (stripos($bbp_page['name'], $string_filter) === false) { continue; } } $item = new stdClass(); $item->ID = $bbp_page['id']; $item->name = $bbp_page['name']; if (count($id_list_filter) && !in_array($item->ID, $id_list_filter) && !in_array('all', $id_list_filter)) { continue; } if (count($id_not_in_list) && (in_array($item->ID, $id_not_in_list) || in_array('all', $id_not_in_list))) { continue; } $items[] = $item; } $all_items = count($items); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); switch ($order) { case 'a_z': $sort_args['name'] = 'ASC'; break; case 'z_a': $sort_args['name'] = 'DESC'; break; default: $sort_args['name'] = 'ASC'; break; } if (count($items)) { $items = otw_asort($items, $sort_args); if ($displayed_items) { $items = array_slice($items, $pager_data['first'], $displayed_items); } } return array($all_items, $items, $pager_data); } break; case 'buddypress_page': if (otw_installed_plugin('buddypress')) { global $bp; $buddypress_pages = array(); if (isset($bp->pages->activity) && $bp->pages->activity->id) { $buddypress_pages[] = array('id' => $bp->pages->activity->id, 'name' => $bp->pages->activity->title . ' ' . __('page', 'otw_sbm')); } if (isset($bp->pages->members) && $bp->pages->members->id) { $buddypress_pages[] = array('id' => $bp->pages->members->id, 'name' => $bp->pages->members->title . ' ' . __('pages', 'otw_sbm')); } $all_items = count($buddypress_pages); $items = array(); foreach ($buddypress_pages as $buddypress_page) { if ($string_filter) { if (stripos($buddypress_page['name'], $string_filter) === false) { continue; } } $item = new stdClass(); $item->ID = $buddypress_page['id']; $item->name = $buddypress_page['name']; if (count($id_list_filter) && !in_array($item->ID, $id_list_filter) && !in_array('all', $id_list_filter)) { continue; } if (count($id_not_in_list) && (in_array($item->ID, $id_not_in_list) || in_array('all', $id_not_in_list))) { continue; } $items[] = $item; } $all_items = count($items); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); switch ($order) { case 'a_z': $sort_args['name'] = 'ASC'; break; case 'z_a': $sort_args['name'] = 'DESC'; break; default: $sort_args['name'] = 'ASC'; break; } if (count($items)) { $items = otw_asort($items, $sort_args); if ($displayed_items) { $items = array_slice($items, $pager_data['first'], $displayed_items); } } return array($all_items, $items, $pager_data); } break; default: if (preg_match("/^cpt_(.*)\$/", $type, $matches)) { $args = array(); $args['post_type'] = $matches[1]; $args['posts_per_page'] = -1; if (count($id_list_filter)) { $args['post__in'] = $id_list_filter; } if ($string_filter) { add_filter('posts_where', 'otw_sbm_post_by_title'); } if (count($id_not_in_list)) { $args['post__not_in'] = $id_not_in_list; } $the_query = new WP_Query($args); $all_items = count($the_query->posts); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); $args['posts_per_page'] = $displayed_items ? $displayed_items : -1; switch ($order) { case 'a_z': $args['orderby'] = 'title'; $args['order'] = 'ASC'; break; case 'z_a': $args['orderby'] = 'title'; $args['order'] = 'DESC'; break; case 'date_latest': $args['orderby'] = 'date'; $args['order'] = 'DESC'; break; case 'date_oldest': $args['orderby'] = 'date'; $args['order'] = 'ASC'; break; case 'modified_latest': $args['orderby'] = 'modified'; $args['order'] = 'DESC'; break; case 'modified_oldest': $args['orderby'] = 'modified'; $args['order'] = 'ASC'; break; default: $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; } $the_query = new WP_Query($args); if ($string_filter) { remove_filter('posts_where', 'otw_sbm_post_by_title'); } return array($all_items, $the_query->posts, $pager_data); } elseif (preg_match("/^ctx_(.*)\$/", $type, $matches)) { $args = array(); $args['hide_empty'] = 0; $args['number'] = 0; if (count($id_list_filter)) { sort($id_list_filter); $args['include'] = $id_list_filter; } if ($string_filter) { $args['search'] = $string_filter; } if (count($id_not_in_list)) { sort($id_not_in_list); $args['exclude'] = $id_not_in_list; } $all_items = count(get_terms($matches[1], $args)); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); $args['offset'] = $pager_data['first']; $args['number'] = $displayed_items ? $displayed_items : 0; switch ($order) { case 'a_z': $args['orderby'] = 'name'; $args['order'] = 'ASC'; break; case 'z_a': $args['orderby'] = 'name'; $args['order'] = 'DESC'; break; case 'date_latest': $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; case 'date_oldest': $args['orderby'] = 'ID'; $args['order'] = 'ASC'; break; default: $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; } return array($all_items, get_terms($matches[1], $args), $pager_data); } elseif (preg_match("/(.*)_in_ctx_(.*)\$/", $type, $matches)) { $args = array(); $args['hide_empty'] = 0; $args['number'] = 0; if (count($id_list_filter)) { sort($id_list_filter); $args['include'] = $id_list_filter; } if ($string_filter) { $args['search'] = $string_filter; } if (count($id_not_in_list)) { sort($id_not_in_list); $args['exclude'] = $id_not_in_list; } $all_items = count(get_terms($matches[2], $args)); $pager_data = otw_get_pager_data($all_items, $displayed_items, $current_page); $args['offset'] = $pager_data['first']; $args['number'] = $displayed_items ? $displayed_items : 0; switch ($order) { case 'a_z': $args['orderby'] = 'name'; $args['order'] = 'ASC'; break; case 'z_a': $args['orderby'] = 'name'; $args['order'] = 'DESC'; break; case 'date_latest': $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; case 'date_oldest': $args['orderby'] = 'ID'; $args['order'] = 'ASC'; break; default: $args['orderby'] = 'ID'; $args['order'] = 'DESC'; break; } return array($all_items, get_terms($matches[2], $args), $pager_data); } break; } return array(); }
$otw_sidebar_values['sbm_widget_alignment'] = $otw_sidebars[$otw_sidebar_id]['widget_alignment']; } $otw_sidebar_values['sbm_validfor'] = $otw_sidebars[$otw_sidebar_id]['validfor']; $page_title = __('Edit Sidebar'); } } //apply post values if (isset($_POST['otw_action'])) { foreach ($otw_sidebar_values as $otw_field_key => $otw_field_default_value) { if (isset($_POST[$otw_field_key])) { $otw_sidebar_values[$otw_field_key] = $_POST[$otw_field_key]; } } } foreach ($wp_wpl_int_items as $wp_item_type => $wp_item_data) { $wp_wpl_int_items[$wp_item_type][0] = otw_get_wp_items($wp_item_type); } /** set class name of each item block * @param array * @return void */ function otw_sidebar_block_class($item_type, $sidebar_data) { if (isset($_POST['otw_action'])) { if (!isset($_POST['otw_sbi_' . $item_type]) || !count($_POST['otw_sbi_' . $item_type])) { echo ' open'; } } else { if (!isset($sidebar_data['sbm_validfor'][$item_type]) || !count($sidebar_data['sbm_validfor'][$item_type])) { echo ' open'; }