コード例 #1
0
ファイル: qa-page.php プロジェクト: ramo01/1kapp
function qa_page_queue_pending()
{
    if (qa_to_override(__FUNCTION__)) {
        $args = func_get_args();
        return qa_call_override(__FUNCTION__, $args);
    }
    qa_preload_options();
    $loginuserid = qa_get_logged_in_userid();
    if (isset($loginuserid)) {
        if (!QA_FINAL_EXTERNAL_USERS) {
            qa_db_queue_pending_select('loggedinuser', qa_db_user_account_selectspec($loginuserid, true));
        }
        qa_db_queue_pending_select('notices', qa_db_user_notices_selectspec($loginuserid));
    }
    qa_db_queue_pending_select('navpages', qa_db_pages_selectspec(array('B', 'M', 'O', 'F')));
    qa_db_queue_pending_select('widgets', qa_db_widgets_selectspec());
}
コード例 #2
0
function qa_db_select_with_pending()
{
    require_once QA_INCLUDE_DIR . 'qa-app-options.php';
    global $qa_nav_pages_pending, $qa_nav_pages_cached, $qa_widgets_pending, $qa_widgets_cached, $qa_logged_in_pending;
    $selectspecs = func_get_args();
    $singleresult = count($selectspecs) == 1;
    foreach ($selectspecs as $key => $selectspec) {
        // can pass null parameters
        if (empty($selectspec)) {
            unset($selectspecs[$key]);
        }
    }
    $optionselectspecs = qa_options_pending_selectspecs();
    foreach ($optionselectspecs as $key => $selectspec) {
        $selectspecs[$key] = $selectspec;
    }
    if (@$qa_logged_in_pending && !QA_FINAL_EXTERNAL_USERS) {
        $loggedinselectspec = qa_logged_in_user_selectspec();
        if (is_array($loggedinselectspec)) {
            $selectspecs['_loggedin'] = $loggedinselectspec;
        }
    } else {
        $loggedinselectspec = null;
    }
    if (@$qa_nav_pages_pending && !isset($qa_nav_pages_cached)) {
        $selectspecs['_navpages'] = qa_db_pages_selectspec(array('B', 'M', 'O', 'F'));
    }
    if (@$qa_widgets_pending && !isset($qa_widgets_cached)) {
        $selectspecs['_widgets'] = qa_db_widgets_selectspec();
    }
    $outresults = qa_db_multi_select($selectspecs);
    qa_options_load_options($optionselectspecs, $outresults);
    if (is_array($loggedinselectspec)) {
        qa_logged_in_user_load($loggedinselectspec, $outresults['_loggedin']);
    }
    if (@$qa_nav_pages_pending && !isset($qa_nav_pages_cached)) {
        $qa_nav_pages_cached = $outresults['_navpages'];
    }
    if (@$qa_widgets_pending && !isset($qa_widgets_cached)) {
        $qa_widgets_cached = $outresults['_widgets'];
    }
    return $singleresult ? $outresults[0] : $outresults;
}
コード例 #3
0
	More about this license: http://www.question2answer.org/license.php
*/
if (!defined('QA_VERSION')) {
    // don't allow this page to be requested directly from browser
    header('Location: ../');
    exit;
}
require_once QA_INCLUDE_DIR . 'qa-app-admin.php';
require_once QA_INCLUDE_DIR . 'qa-db-selects.php';
//	Get current list of widgets and determine the state of this admin page
$widgetid = qa_post_text('edit');
if (!strlen($widgetid)) {
    $widgetid = qa_get('edit');
}
list($widgets, $pages) = qa_db_select_with_pending(qa_db_widgets_selectspec(), qa_db_pages_selectspec());
if (isset($widgetid)) {
    $editwidget = null;
    foreach ($widgets as $widget) {
        if ($widget['widgetid'] == $widgetid) {
            $editwidget = $widget;
        }
    }
} else {
    $editwidget = array('title' => qa_post_text('title'));
    if (!isset($editwidget['title'])) {
        $editwidget['title'] = qa_get('title');
    }
}
$module = qa_load_module('widget', @$editwidget['title']);
$widgetfound = isset($module);
コード例 #4
0
                        foreach ($searchmodules as $searchmodule) {
                            $searchmodule->index_page($pageid, $inslug, $inheading, $incontent, 'html', $indextext);
                        }
                    }
                    qa_db_page_move($pageid, substr($inposition, 0, 1), substr($inposition, 1));
                    $editpage = null;
                    $reloadpages = true;
                }
            }
            if (qa_clicked('dosaveview') && empty($errors) && !$isexternal) {
                qa_redirect($inslug);
            }
        }
        if ($reloadpages) {
            qa_db_flush_pending_result('navpages');
            $pages = qa_db_select_with_pending(qa_db_pages_selectspec());
        }
    }
}
//	Prepare content for theme
$qa_content = qa_content_prepare();
$qa_content['title'] = qa_lang_html('admin/admin_title') . ' - ' . qa_lang_html('admin/pages_title');
$qa_content['error'] = $securityexpired ? qa_lang_html('admin/form_security_expired') : qa_admin_page_error();
if (isset($editpage)) {
    $positionoptions = array();
    if (!$isexternal) {
        $positionoptions['_' . max(1, @$editpage['position'])] = qa_lang_html('admin/no_link');
    }
    $navlangkey = array('B' => 'admin/before_main_menu', 'M' => 'admin/after_main_menu', 'O' => 'admin/opposite_main_menu', 'F' => 'admin/after_footer');
    foreach ($navlangkey as $nav => $langkey) {
        $previous = null;
コード例 #5
0
function qa_get_search_results($query, $start, $count, $userid, $absoluteurls, $fullcontent)
{
    //	Identify which search module should be used
    $searchmodules = qa_load_modules_with('search', 'process_search');
    if (!count($searchmodules)) {
        qa_fatal_error('No search engine is available');
    }
    $module = reset($searchmodules);
    // use first one by default
    if (count($searchmodules) > 1) {
        $tryname = qa_opt('search_module');
        // use chosen one if it's available
        if (isset($searchmodules[$tryname])) {
            $module = $searchmodules[$tryname];
        }
    }
    //	Get the results
    $results = $module->process_search($query, $start, $count, $userid, $absoluteurls, $fullcontent);
    //	Work out what additional information (if any) we need to retrieve for the results
    $keypostidgetfull = array();
    $keypostidgettype = array();
    $keypostidgetquestion = array();
    $keypageidgetpage = array();
    foreach ($results as $result) {
        if (isset($result['question_postid']) && !isset($result['question'])) {
            $keypostidgetfull[$result['question_postid']] = true;
        }
        if (isset($result['match_postid'])) {
            if (!(isset($result['question_postid']) || isset($result['question']))) {
                $keypostidgetquestion[$result['match_postid']] = true;
            } elseif (!isset($result['match_type'])) {
                $keypostidgettype[$result['match_postid']] = true;
            }
        }
        if (isset($result['page_pageid']) && !isset($result['page'])) {
            $keypageidgetpage[$result['page_pageid']] = true;
        }
    }
    //	Perform the appropriate database queries
    list($postidfull, $postidtype, $postidquestion, $pageidpage) = qa_db_select_with_pending(count($keypostidgetfull) ? qa_db_posts_selectspec($userid, array_keys($keypostidgetfull), $fullcontent) : null, count($keypostidgettype) ? qa_db_posts_basetype_selectspec(array_keys($keypostidgettype)) : null, count($keypostidgetquestion) ? qa_db_posts_to_qs_selectspec($userid, array_keys($keypostidgetquestion), $fullcontent) : null, count($keypageidgetpage) ? qa_db_pages_selectspec(null, array_keys($keypageidgetpage)) : null);
    //	Supplement the results as appropriate
    foreach ($results as $key => $result) {
        if (isset($result['question_postid']) && !isset($result['question'])) {
            if (@$postidfull[$result['question_postid']]['basetype'] == 'Q') {
                $result['question'] = @$postidfull[$result['question_postid']];
            }
        }
        if (isset($result['match_postid'])) {
            if (!(isset($result['question_postid']) || isset($result['question']))) {
                $result['question'] = @$postidquestion[$result['match_postid']];
                if (!isset($result['match_type'])) {
                    $result['match_type'] = @$result['question']['obasetype'];
                }
            } elseif (!isset($result['match_type'])) {
                $result['match_type'] = @$postidtype[$result['match_postid']];
            }
        }
        if (isset($result['question']) && !isset($result['question_postid'])) {
            $result['question_postid'] = $result['question']['postid'];
        }
        if (isset($result['page_pageid']) && !isset($result['page'])) {
            $result['page'] = @$pageidpage[$result['page_pageid']];
        }
        if (!isset($result['title'])) {
            if (isset($result['question'])) {
                $result['title'] = $result['question']['title'];
            } elseif (isset($result['page'])) {
                $result['title'] = $result['page']['heading'];
            }
        }
        if (!isset($result['url'])) {
            if (isset($result['question'])) {
                $result['url'] = qa_q_path($result['question']['postid'], $result['question']['title'], $absoluteurls, @$result['match_type'], @$result['match_postid']);
            } elseif (isset($result['page'])) {
                $result['url'] = qa_path($result['page']['tags'], null, qa_opt('site_url'));
            }
        }
        $results[$key] = $result;
    }
    //	Return the results
    return $results;
}