public function find_missing_pages()
 {
     $plugin_pages = awpcp_get_plugin_pages_info();
     $registered_pages = array_keys(awpcp_pages());
     $referenced_pages = array_keys($plugin_pages);
     // pages that are registered in the code but no referenced in the DB
     $pages_not_referenced = array_diff($registered_pages, $referenced_pages);
     $registered_pages_ids = awpcp_get_page_ids_by_ref($registered_pages);
     $query = 'SELECT posts.ID post, posts.post_status status ';
     $query .= 'FROM ' . $this->db->posts . ' AS posts ';
     $query .= "WHERE posts.ID IN (" . join(",", $registered_pages_ids) . ") ";
     $existing_pages = $this->db->get_results($query, OBJECT_K);
     $missing_pages = array('not-found' => array(), 'not-published' => array(), 'not-referenced' => array());
     foreach ($plugin_pages as $page_ref => $page_info) {
         $page = isset($existing_pages[$page_info['page_id']]) ? $existing_pages[$page_info['page_id']] : null;
         if (is_object($page) && isset($page->status) && $page->status != 'publish') {
             $page->page = $page_ref;
             $page->id = $page_info['page_id'];
             $missing_pages['not-published'][] = $page;
         } else {
             if (is_null($page)) {
                 $page = new stdClass();
                 $page->page = $page_ref;
                 $page->id = $page_info['page_id'];
                 $page->post = null;
                 $page->status = null;
                 $missing_pages['not-found'][] = $page;
             }
         }
     }
     // if a page is registered in the code but there is no reference of it
     // in the database, include a dummy object to represent it.
     foreach ($pages_not_referenced as $page) {
         $item = new stdClass();
         $item->page = $page;
         $item->id = null;
         $item->post = null;
         $item->status = null;
         $missing_pages['not-referenced'][] = $item;
     }
     return $missing_pages;
 }
Example #2
0
 /**
  * Renders an HTML page with AWPCP informaiton useful for debugging tasks.
  *
  * @since 2.0.7
  */
 private function render($download = false)
 {
     global $awpcp, $wpdb, $wp_rewrite;
     $debug_info = $this;
     $options = $awpcp->settings->options;
     $options['awpcp_installationcomplete'] = get_option('awpcp_installationcomplete');
     $options['awpcp_pagename_warning'] = get_option('awpcp_pagename_warning');
     $options['widget_awpcplatestads'] = get_option('widget_awpcplatestads');
     $options['awpcp_db_version'] = get_option('awpcp_db_version');
     $plugin_pages_info = awpcp_get_plugin_pages_info();
     $page_objects = get_pages(array('include' => awpcp_get_properties($plugin_pages_info, 'page_id', 0)));
     $plugin_pages = array();
     foreach ($page_objects as $page) {
         $plugin_pages[$page->ID] = $page;
     }
     $rules = (array) $wp_rewrite->wp_rewrite_rules();
     ob_start();
     include AWPCP_DIR . '/admin/templates/admin-panel-debug.tpl.php';
     $content = ob_get_contents();
     ob_end_clean();
     return $content;
 }
Example #3
0
 private function upgrade_to_3_5_3($oldversion)
 {
     global $wpdb;
     $plugin_pages = awpcp_get_plugin_pages_info();
     if (empty($plugin_pages)) {
         // move plugin pages info from PAGES table to awpcp-plugin-pages option
         $pages = $wpdb->get_results('SELECT page, id FROM ' . AWPCP_TABLE_PAGES, OBJECT_K);
         foreach ($pages as $page_ref => $page_info) {
             awpcp_update_plugin_page_id($page_ref, $page_info->id);
         }
     }
     // make sure there are entries for 'view-categories-page-name' in the plugin pages info
     $plugin_pages = awpcp_get_plugin_pages_info();
     if (isset($plugin_pages['view-categories-page-name'])) {
         unset($plugin_pages['view-categories-page-name']);
         awpcp_update_plugin_pages_info($plugin_pages);
     }
     // drop no longer used PAGENAME table
     $wpdb->query('DROP TABLE IF EXISTS ' . AWPCP_TABLE_PAGENAME);
 }
Example #4
0
/**
 * @since 3.5.3
 */
function awpcp_update_plugin_page_id($page_ref, $page_id)
{
    $plugin_pages_info = awpcp_get_plugin_pages_info();
    $plugin_pages_info[$page_ref] = array('page_id' => $page_id);
    return awpcp_update_plugin_pages_info($plugin_pages_info);
}