function qa_db_select_with_pending() { require_once QA_INCLUDE_DIR . 'qa-app-options.php'; global $qa_db_pending_selectspecs, $qa_db_pending_results; $selectspecs = func_get_args(); $singleresult = count($selectspecs) == 1; $outresults = array(); foreach ($selectspecs as $key => $selectspec) { // can pass null parameters if (empty($selectspec)) { unset($selectspecs[$key]); $outresults[$key] = null; } } if (is_array($qa_db_pending_selectspecs)) { foreach ($qa_db_pending_selectspecs as $pendingid => $selectspec) { if (!isset($qa_db_pending_results[$pendingid])) { $selectspecs['pending_' . $pendingid] = $selectspec; } } } $outresults = $outresults + qa_db_multi_select($selectspecs); if (is_array($qa_db_pending_selectspecs)) { foreach ($qa_db_pending_selectspecs as $pendingid => $selectspec) { if (!isset($qa_db_pending_results[$pendingid])) { $qa_db_pending_results[$pendingid] = $outresults['pending_' . $pendingid]; unset($outresults['pending_' . $pendingid]); } } } return $singleresult ? $outresults[0] : $outresults; }
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; }
function qa_preload_options() { global $qa_options_loaded; if (!@$qa_options_loaded) { $selectspecs = array('options' => array('columns' => array('title', 'content'), 'source' => '^options', 'arraykey' => 'title', 'arrayvalue' => 'content'), 'time' => array('columns' => array('title' => "'db_time'", 'content' => 'UNIX_TIMESTAMP(NOW())'), 'arraykey' => 'title', 'arrayvalue' => 'content')); if (QA_OPTIMIZE_DISTANT_DB) { require_once QA_INCLUDE_DIR . 'qa-db-selects.php'; foreach ($selectspecs as $pendingid => $selectspec) { qa_db_queue_pending_select($pendingid, $selectspec); } } else { qa_load_options_results(qa_db_multi_select($selectspecs)); } } }
function qa_post_get_question_commentsfollows($questionid) { $commentsfollows = array(); list($childposts, $achildposts) = qa_db_multi_select(array(qa_db_full_child_posts_selectspec(null, $questionid), qa_db_full_a_child_posts_selectspec(null, $questionid))); foreach ($childposts as $postid => $post) { if ($post['basetype'] == 'C') { $commentsfollows[$postid] = $post; } } foreach ($achildposts as $postid => $post) { if ($post['basetype'] == 'Q' || $post['basetype'] == 'C') { $commentsfollows[$postid] = $post; } } return $commentsfollows; }