Example #1
0
function awpcp_get_menu_items()
{
    $items = array();
    $user_is_allowed_to_place_ads = !get_awpcp_option('onlyadmincanplaceads') || awpcp_current_user_is_admin();
    $show_place_ad_item = $user_is_allowed_to_place_ads && get_awpcp_option('show-menu-item-place-ad');
    $show_edit_ad_item = $user_is_allowed_to_place_ads && get_awpcp_option('show-menu-item-edit-ad');
    $show_browse_ads_item = get_awpcp_option('show-menu-item-browse-ads');
    $show_search_ads_item = get_awpcp_option('show-menu-item-search-ads');
    if ($show_place_ad_item) {
        $place_ad_url = awpcp_get_page_url('place-ad-page-name');
        $place_ad_page_name = get_awpcp_option('place-ad-page-name');
        $items['post-listing'] = array('url' => $place_ad_url, 'title' => esc_html($place_ad_page_name));
    }
    if ($show_edit_ad_item) {
        $items['edit-listing'] = awpcp_get_edit_listing_menu_item();
    }
    if ($show_browse_ads_item) {
        if (is_awpcp_browse_listings_page() || is_awpcp_browse_categories_page()) {
            if (get_awpcp_option('main_page_display')) {
                $browse_cats_url = awpcp_get_view_categories_url();
            } else {
                $browse_cats_url = awpcp_get_main_page_url();
            }
            $view_categories_page_name = get_awpcp_option('view-categories-page-name');
            $items['browse-listings'] = array('url' => $browse_cats_url, 'title' => esc_html($view_categories_page_name));
        } else {
            $browse_ads_page_name = get_awpcp_option('browse-ads-page-name');
            $browse_ads_url = awpcp_get_page_url('browse-ads-page-name');
            $items['browse-listings'] = array('url' => $browse_ads_url, 'title' => esc_html($browse_ads_page_name));
        }
    }
    if ($show_search_ads_item) {
        $search_ads_page_name = get_awpcp_option('search-ads-page-name');
        $search_ads_url = awpcp_get_page_url('search-ads-page-name');
        $items['search-listings'] = array('url' => $search_ads_url, 'title' => esc_html($search_ads_page_name));
    }
    $items = apply_filters('awpcp_menu_items', $items);
    return $items;
}
Example #2
0
 /**
  * Shows a notice if any of the AWPCP pages shares its name with the
  * dynamic page View Categories.
  *
  * If a page share its name with the View Categories page, that page
  * will become unreachable.
  *
  * @since 3.0.2
  */
 public function check_duplicate_page_names()
 {
     global $wpdb;
     $view_categories_option = 'view-categories-page-name';
     $view_categories = sanitize_title(awpcp_get_page_name($view_categories_option));
     $view_categories_url = awpcp_get_view_categories_url();
     $duplicates = array();
     $awpcp_pages = array();
     $wp_pages = array();
     $posts = get_posts(array('post_type' => 'page', 'name' => $view_categories));
     foreach ($posts as $post) {
         if ($view_categories_url == get_permalink($post->ID)) {
             $duplicates[] = $post;
         }
     }
     $pages = empty($duplicates) ? array() : awpcp_get_plugin_pages_refs();
     foreach ($duplicates as $page) {
         if (isset($pages[$page->ID])) {
             $awpcp_pages[] = ucwords(awpcp()->settings->get_option_label($pages[$page->ID]->page));
         } else {
             $wp_pages[] = $page->post_title;
         }
     }
     if (!empty($awpcp_pages) || !empty($wp_pages)) {
         $view_categories_label = awpcp()->settings->get_option_label($view_categories_option);
         $view_categories_label = sprintf('<strong>%s</strong>', ucwords($view_categories_label));
     }
     if (!empty($awpcp_pages)) {
         $duplicated_pages = '<strong>' . join('</strong>, <strong>', $awpcp_pages) . '</strong>';
         $message = _n(count($awpcp_pages), '%1$s has the same name as the %2$s. That will cause %1$s to become unreachable. Please make sure you don\'t have duplicate page names.', '%1$s have the same name as the %2$s. That will cause %1$s to become unreachable. Please make sure you don\'t have duplicate page names.', 'AWPCP');
         $message = sprintf($message, $duplicated_pages, $view_categories_label);
         echo awpcp_print_error($message);
     }
     if (!empty($wp_pages)) {
         $duplicated_pages = '<strong>' . join('</strong>, <strong>', $wp_pages) . '</strong>';
         $message = _n(count($wp_pages), 'Page %1$s has the same name as the AWPCP %2$s. That will cause WordPress page %1$s to become unreachable. The %2$s is dynamic; you don\'t need to create a real WordPress page to show the list of cateogries, the plugin will generate it for you. If the WordPress page was created to show the default list of AWPCP categories, you can delete it and this error message will go away. Otherwise, please make sure you don\'t have duplicate page names.', 'Pages %1$s have the same name as the AWPCP %2$s. That will cause WordPress pages %1$s to become unreachable. The %2$s is dynamic; you don\'t need to create a real WordPress page to show the list of cateogries, the plugin will generate it for you. If the WordPress pages were created to show the default list of AWPCP categories, you can delete them and this error message will go away. Otherwise, please make sure you don\'t have duplicate page names.', 'AWPCP');
         $message = sprintf($message, $duplicated_pages, $view_categories_label);
         echo awpcp_print_error($message);
     }
 }