Commit bbc66e0f by Simon Champion

Moved folder to match autoloader and refactored actions into individual classes.

parent caeb200c
......@@ -11,3 +11,4 @@ qa-cache/*/
ehthumbs.db
Thumbs.db
.idea/
/nbproject/private/
\ No newline at end of file
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
abstract class Q2A_Recalc_AbstractStep
{
protected $state;
public function __construct(Q2A_Recalc_State $state)
{
$this->state = $state;
}
abstract public function doStep();
static public function factory(Q2A_Recalc_State $state)
{
$class = $state->getOperationClass();
if (class_exists($class)) {
return new $class($state);
}
return null;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_BlobsToDB extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$this->state->transition('doblobstodb_move');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_BlobsToDBMove extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$blob = qa_db_get_next_blob_on_disk($this->state->next);
if (!isset($blob)) {
$this->state->transition('doblobstodb_complete');
return false;
}
require_once QA_INCLUDE_DIR . 'app/blobs.php';
require_once QA_INCLUDE_DIR . 'db/blobs.php';
$content = qa_read_blob_file($blob['blobid'], $blob['format']);
qa_db_blob_set_content($blob['blobid'], $content);
qa_delete_blob_file($blob['blobid'], $blob['format']);
$this->state->next = 1 + $blob['blobid'];
$this->state->done++;
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_BlobsToDisk extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$this->state->transition('doblobstodisk_move');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_BlobsToDiskMove extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$blob = qa_db_get_next_blob_in_db($this->state->next);
if (!isset($blob)) {
$this->state->transition('doblobstodisk_complete');
return false;
}
require_once QA_INCLUDE_DIR . 'app/blobs.php';
require_once QA_INCLUDE_DIR . 'db/blobs.php';
if (qa_write_blob_file($blob['blobid'], $blob['content'], $blob['format'])) {
qa_db_blob_set_content($blob['blobid'], null);
}
$this->state->next = 1 + $blob['blobid'];
$this->state->done++;
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_CacheClear extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$this->state->transition('docacheclear_process');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_CacheClearProcess extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$cacheDriver = Q2A_Storage_CacheFactory::getCacheDriver();
$cacheStats = $cacheDriver->getStats();
$limit = min($cacheStats['files'], 20);
if (!($cacheStats['files'] > 0 && $this->state->next <= $this->state->length)) {
$this->state->transition('docacheclear_complete');
return false;
}
$deleted = $cacheDriver->clear($limit, $this->state->next, ($this->state->operation === 'docachetrim_process'));
$this->state->done += $deleted;
$this->state->next += $limit - $deleted; // skip files that weren't deleted on next iteration
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_CacheTrim extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$this->state->transition('docachetrim_process');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_CacheTrimProcess extends Q2A_Recalc_CacheClear_Process
{
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_DeleteHidden extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$this->state->transition('dodeletehidden_comments');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_DeleteHiddenAnswers extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$posts = qa_db_posts_get_for_deleting('A', $this->state->next, 1);
if (!count($posts)) {
$this->state->transition('dodeletehidden_questions');
return false;
}
require_once QA_INCLUDE_DIR . 'app/posts.php';
$postid = $posts[0];
qa_post_delete($postid);
$this->state->next = 1 + $postid;
$this->state->done++;
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_DeleteHiddenComments extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$posts = qa_db_posts_get_for_deleting('C', $this->state->next, 1);
if (!count($posts)) {
$this->state->transition('dodeletehidden_answers');
return false;
}
require_once QA_INCLUDE_DIR . 'app/posts.php';
$postid = $posts[0];
qa_post_delete($postid);
$this->state->next = 1 + $postid;
$this->state->done++;
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_DeleteHiddenQuestions extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$posts = qa_db_posts_get_for_deleting('Q', $this->state->next, 1);
if (!count($posts)) {
$this->state->transition('dodeletehidden_complete');
return false;
}
require_once QA_INCLUDE_DIR . 'app/posts.php';
$postid = $posts[0];
qa_post_delete($postid);
$this->state->next = 1 + $postid;
$this->state->done++;
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecalcCategories extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$this->state->transition('dorecalccategories_postcount');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecalcCategoriesBackPaths extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$categoryids = qa_db_categories_get_for_recalcs($this->state->next, 10);
if (!count($categoryids)) {
$this->state->transition('dorecalccategories_complete');
return false;
}
$lastcategoryid = max($categoryids);
qa_db_categories_recalc_backpaths($this->state->next, $lastcategoryid);
$this->state->next = 1 + $lastcategoryid;
$this->state->done += count($categoryids);
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecalcCategoriesPostCount extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
qa_db_acount_update();
qa_db_ccount_update();
$this->state->transition('dorecalccategories_postupdate');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecalcCategoriesPostUpdate extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$postids = qa_db_posts_get_for_recategorizing($this->state->next, 100);
if (!count($postids)) {
$this->state->transition('dorecalccategories_recount');
return false;
}
$lastpostid = max($postids);
qa_db_posts_recalc_categoryid($this->state->next, $lastpostid);
qa_db_posts_calc_category_path($this->state->next, $lastpostid);
$this->state->next = 1 + $lastpostid;
$this->state->done += count($postids);
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecalcCategoriesRecount extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$categoryids = qa_db_categories_get_for_recalcs($this->state->next, 10);
if (!count($categoryids)) {
$this->state->transition('dorecalccategories_backpaths');
return false;
}
$lastcategoryid = max($categoryids);
foreach ($categoryids as $categoryid) {
qa_db_ifcategory_qcount_update($categoryid);
}
$this->state->next = 1 + $lastcategoryid;
$this->state->done += count($categoryids);
return true;
}
}
......@@ -71,9 +71,7 @@ require_once QA_INCLUDE_DIR . 'app/options.php';
require_once QA_INCLUDE_DIR . 'app/post-create.php';
require_once QA_INCLUDE_DIR . 'app/post-update.php';
require_once QA_INCLUDE_DIR . 'app/recalc/RecalcState.php';
class Q2A_App_Recalc_Main
class Q2A_Recalc_RecalcMain
{
protected $state;
......@@ -82,7 +80,7 @@ class Q2A_App_Recalc_Main
*/
public function __construct($state)
{
$this->state = new Q2A_App_Recalc_State($state);
$this->state = new Q2A_Recalc_State($state);
}
public function getState()
......@@ -92,12 +90,14 @@ class Q2A_App_Recalc_Main
public function performStep()
{
if (!$this->state->getOperationClass()) {
$step = Q2A_Recalc_AbstractStep::factory($this->state);
if (!$step) {
$this->state->setState();
return false;
}
$continue = $this->{$this->state->getOperationClass()}();
$continue = $step->doStep();
if ($continue) {
$this->state->updateState();
}
......
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecalcPoints extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$this->state->transition('dorecalcpoints_usercount');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecalcPointsRecalc extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$default_recalccount = 10;
$userids = qa_db_users_get_for_recalc_points($this->state->next, $default_recalccount + 1); // get one extra so we know where to start from next
$gotcount = count($userids);
$recalccount = min($default_recalccount, $gotcount); // can't recalc more than we got
if ($recalccount > 0) {
$lastuserid = $userids[$recalccount - 1];
qa_db_users_recalc_points($this->state->next, $lastuserid);
$this->state->done += $recalccount;
} else {
$lastuserid = $this->state->next; // for truncation
}
if ($gotcount > $recalccount) { // more left to do
$this->state->next = $userids[$recalccount]; // start next round at first one not recalculated
return true;
} else {
qa_db_truncate_userpoints($lastuserid);
qa_db_userpointscount_update(); // quick so just do it here
$this->state->transition('dorecalcpoints_complete');
return false;
}
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecalcPointsUserCount extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
qa_db_userpointscount_update(); // for progress update - not necessarily accurate
qa_db_uapprovecount_update(); // needs to be somewhere and this is the most appropriate place
$this->state->transition('dorecalcpoints_recalc');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecountPosts extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$this->state->transition('dorecountposts_postcount');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecountPostsACount extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$postids = qa_db_posts_get_for_recounting($this->state->next, 1000);
if (count($postids)) {
qa_db_unupaqcount_update();
$this->state->transition('dorecountposts_complete');
return false;
}
$lastpostid = max($postids);
qa_db_posts_answers_recount($this->state->next, $lastpostid);
$this->state->next = 1 + $lastpostid;
$this->state->done += count($postids);
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecountPostsPostCount extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
qa_db_qcount_update();
qa_db_acount_update();
qa_db_ccount_update();
qa_db_unaqcount_update();
qa_db_unselqcount_update();
$this->state->transition('dorecountposts_votecount');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RecountPostsVoteCount extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$postids = qa_db_posts_get_for_recounting($this->state->next, 1000);
if (!count($postids)) {
$this->state->transition('dorecountposts_acount');
return false;
}
$lastpostid = max($postids);
qa_db_posts_votes_recount($this->state->next, $lastpostid);
$this->state->next = 1 + $lastpostid;
$this->state->done += count($postids);
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RefillEvents extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$this->state->transition('dorefillevents_qcount');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RefillEventsQCount extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
qa_db_qcount_update();
$this->state->transition('dorefillevents_refill');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_RefillEventsRefill extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$questionids = qa_db_qs_get_for_event_refilling($this->state->next, 1);
if (!count($questionids)) {
$this->state->transition('dorefillevents_complete');
return false;
}
require_once QA_INCLUDE_DIR . 'app/events.php';
require_once QA_INCLUDE_DIR . 'app/updates.php';
require_once QA_INCLUDE_DIR . 'util/sort.php';
$lastquestionid = max($questionids);
foreach ($questionids as $questionid) {
// Retrieve all posts relating to this question
list($question, $childposts, $achildposts) = qa_db_select_with_pending(
qa_db_full_post_selectspec(null, $questionid),
qa_db_full_child_posts_selectspec(null, $questionid),
qa_db_full_a_child_posts_selectspec(null, $questionid)
);
// Merge all posts while preserving keys as postids
$posts = array($questionid => $question);
foreach ($childposts as $postid => $post) {
$posts[$postid] = $post;
}
foreach ($achildposts as $postid => $post) {
$posts[$postid] = $post;
}
// Creation and editing of each post
foreach ($posts as $postid => $post) {
$followonq = ($post['basetype'] == 'Q') && ($postid != $questionid);
if ($followonq) {
$updatetype = QA_UPDATE_FOLLOWS;
} elseif ($post['basetype'] == 'C' && @$posts[$post['parentid']]['basetype'] == 'Q') {
$updatetype = QA_UPDATE_C_FOR_Q;
} elseif ($post['basetype'] == 'C' && @$posts[$post['parentid']]['basetype'] == 'A') {
$updatetype = QA_UPDATE_C_FOR_A;
} else {
$updatetype = null;
}
qa_create_event_for_q_user($questionid, $postid, $updatetype, $post['userid'], @$posts[$post['parentid']]['userid'], $post['created']);
if (isset($post['updated']) && !$followonq) {
qa_create_event_for_q_user($questionid, $postid, $post['updatetype'], $post['lastuserid'], $post['userid'], $post['updated']);
}
}
// Tags and categories of question
qa_create_event_for_tags($question['tags'], $questionid, null, $question['userid'], $question['created']);
qa_create_event_for_category($question['categoryid'], $questionid, null, $question['userid'], $question['created']);
// Collect comment threads
$parentidcomments = array();
foreach ($posts as $postid => $post) {
if ($post['basetype'] == 'C') {
$parentidcomments[$post['parentid']][$postid] = $post;
}
}
// For each comment thread, notify all previous comment authors of each comment in the thread (could get slow)
foreach ($parentidcomments as $parentid => $comments) {
$keyuserids = array();
qa_sort_by($comments, 'created');
foreach ($comments as $comment) {
foreach ($keyuserids as $keyuserid => $dummy) {
if ($keyuserid != $comment['userid'] && $keyuserid != @$posts[$parentid]['userid']) {
qa_db_event_create_not_entity($keyuserid, $questionid, $comment['postid'], QA_UPDATE_FOLLOWS, $comment['userid'], $comment['created']);
}
}
if (isset($comment['userid'])) {
$keyuserids[$comment['userid']] = true;
}
}
}
}
$this->state->next = 1 + $lastquestionid;
$this->state->done += count($questionids);
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_ReindexContent extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$this->state->transition('doreindexcontent_pagereindex');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_ReindexContentPageReindex extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$pages = qa_db_pages_get_for_reindexing($this->state->next, 10);
if (!count($pages)) {
$this->state->transition('doreindexcontent_postcount');
return false;
}
require_once QA_INCLUDE_DIR . 'app/format.php';
$lastpageid = max(array_keys($pages));
foreach ($pages as $pageid => $page) {
if (!($page['flags'] & QA_PAGE_FLAGS_EXTERNAL)) {
$searchmodules_u = qa_load_modules_with('search', 'unindex_page');
foreach ($searchmodules_u as $searchmodule) {
$searchmodule->unindex_page($pageid);
}
$searchmodules_i = qa_load_modules_with('search', 'index_page');
if (count($searchmodules_i)) {
$indextext = qa_viewer_text($page['content'], 'html');
foreach ($searchmodules_i as $searchmodule) {
$searchmodule->index_page($pageid, $page['tags'], $page['heading'], $page['content'], 'html', $indextext);
}
}
}
}
$this->state->next = 1 + $lastpageid;
$this->state->done += count($pages);
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_ReindexContentPostCount extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
qa_db_qcount_update();
qa_db_acount_update();
qa_db_ccount_update();
$this->state->transition('doreindexcontent_postreindex');
return false;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_ReindexContentPostReindex extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$posts = qa_db_posts_get_for_reindexing($this->state->next, 10);
if (!count($posts)) {
qa_db_truncate_indexes($this->state->next);
$this->state->transition('doreindexposts_wordcount');
return false;
}
require_once QA_INCLUDE_DIR . 'app/format.php';
$lastpostid = max(array_keys($posts));
qa_db_prepare_for_reindexing($this->state->next, $lastpostid);
qa_suspend_update_counts();
foreach ($posts as $postid => $post) {
qa_post_unindex($postid);
qa_post_index($postid, $post['type'], $post['questionid'], $post['parentid'], $post['title'], $post['content'],
$post['format'], qa_viewer_text($post['content'], $post['format']), $post['tags'], $post['categoryid']);
}
$this->state->next = 1 + $lastpostid;
$this->state->done += count($posts);
return true;
}
}
<?php
/*
Question2Answer by Gideon Greenspan and contributors
http://www.question2answer.org/
File: qa-include/Q2A/Util/Usage.php
Description: Debugging stuff, currently used for tracking resource usage
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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;
}
class Q2A_Recalc_ReindexPostsWordCount extends Q2A_Recalc_AbstractStep
{
public function doStep()
{
$wordids = qa_db_words_prepare_for_recounting($this->state->next, 1000);
if (!count($wordids)) {
qa_db_tagcount_update(); // this is quick so just do it here
$this->state->transition('doreindexposts_complete');
return false;
}
$lastwordid = max($wordids);
qa_db_words_recount($this->state->next, $lastwordid);
$this->state->next = 1 + $lastwordid;
$this->state->done += count($wordids);
return true;
}
}
......@@ -25,7 +25,7 @@ if (!defined('QA_VERSION')) { // don't allow this page to be requested directly
exit;
}
class Q2A_App_Recalc_State
class Q2A_Recalc_State
{
public $state;
public $operation;
......@@ -34,38 +34,38 @@ class Q2A_App_Recalc_State
public $done;
private $classes = array(
'doreindexcontent' => 'DoReindexContent',
'doreindexcontent_pagereindex' => 'DoReindexContent_PageReindex',
'doreindexcontent_postcount' => 'DoReindexContent_PostCount',
'doreindexcontent_postreindex' => 'DoReindexContent_PostReindex',
'doreindexposts_wordcount' => 'DoReindexPosts_WordCount',
'dorecountposts' => 'DoRecountPosts',
'dorecountposts_postcount' => 'DoRecountPosts_PostCount',
'dorecountposts_votecount' => 'DoRecountPosts_VoteCount',
'dorecountposts_acount' => 'DoRecountPosts_Acount',
'dorecalcpoints' => 'DoRecalcPoints',
'dorecalcpoints_usercount' => 'DoRecalcPoints_UserCount',
'dorecalcpoints_recalc' => 'DoRecalcPoints_Recalc',
'dorefillevents' => 'DoRefillEvents',
'dorefillevents_qcount' => 'DoRefillEvents_Qcount',
'dorefillevents_refill' => 'DoRefillEvents_Refill',
'dorecalccategories' => 'DoRecalcCategories',
'dorecalccategories_postcount' => 'DoRecalcCategories_PostCount',
'dorecalccategories_postupdate' => 'DoRecalcCategories_PostUpdate',
'dorecalccategories_recount' => 'DoRecalcCategories_Recount',
'dorecalccategories_backpaths' => 'DoRecalcCategories_BackPaths',
'dodeletehidden' => 'DoDeleteHidden',
'dodeletehidden_comments' => 'DoDeleteHidden_Comments',
'dodeletehidden_answers' => 'DoDeleteHidden_Answers',
'dodeletehidden_questions' => 'Dodeletehidden_questions',
'doblobstodisk' => 'DoBlobsToDisk',
'doblobstodisk_move' => 'DoBlobsToDisk_Move',
'doblobstodb' => 'DoBlobsToDB',
'doblobstodb_move' => 'DoBlobsToDB_Move',
'docachetrim' => 'DoCacheTrim',
'docacheclear' => 'DoCacheClear',
'docachetrim_process' => 'DoCacheClear_Process',
'docacheclear_process' => 'DoCacheClear_Process'
'doreindexcontent' => 'ReindexContent',
'doreindexcontent_pagereindex' => 'ReindexContentPageReindex',
'doreindexcontent_postcount' => 'ReindexContentPostCount',
'doreindexcontent_postreindex' => 'ReindexContentPostReindex',
'doreindexposts_wordcount' => 'ReindexPostsWordCount',
'dorecountposts' => 'RecountPosts',
'dorecountposts_postcount' => 'RecountPostsPostCount',
'dorecountposts_votecount' => 'RecountPostsVoteCount',
'dorecountposts_acount' => 'RecountPostsAcount',
'dorecalcpoints' => 'RecalcPoints',
'dorecalcpoints_usercount' => 'RecalcPointsUserCount',
'dorecalcpoints_recalc' => 'RecalcPointsRecalc',
'dorefillevents' => 'RefillEvents',
'dorefillevents_qcount' => 'RefillEventsQcount',
'dorefillevents_refill' => 'RefillEventsRefill',
'dorecalccategories' => 'RecalcCategories',
'dorecalccategories_postcount' => 'RecalcCategoriesPostCount',
'dorecalccategories_postupdate' => 'RecalcCategoriesPostUpdate',
'dorecalccategories_recount' => 'RecalcCategoriesRecount',
'dorecalccategories_backpaths' => 'RecalcCategoriesBackPaths',
'dodeletehidden' => 'DeleteHidden',
'dodeletehidden_comments' => 'DeleteHiddenComments',
'dodeletehidden_answers' => 'DeleteHiddenAnswers',
'dodeletehidden_questions' => 'DeletehiddenQuestions',
'doblobstodisk' => 'BlobsToDisk',
'doblobstodisk_move' => 'BlobsToDiskMove',
'doblobstodb' => 'BlobsToDB',
'doblobstodb_move' => 'BlobsToDBMove',
'docachetrim' => 'CacheTrim',
'docacheclear' => 'CacheClear',
'docachetrim_process' => 'CacheClearProcess',
'docacheclear_process' => 'CacheClearProcess'
);
/**
......@@ -94,7 +94,7 @@ class Q2A_App_Recalc_State
public function getOperationClass()
{
return isset($this->classes[$this->operation]) ? $this->classes[$this->operation] : null;
return isset($this->classes[$this->operation]) ? 'Q2A_Recalc_' . $this->classes[$this->operation] : null;
}
public function allDone()
......
......@@ -20,7 +20,6 @@
*/
require_once QA_INCLUDE_DIR . 'app/users.php';
require_once QA_INCLUDE_DIR . 'app/recalc/RecalcMain.php';
if (qa_get_logged_in_level() >= QA_USER_LEVEL_ADMIN) {
......@@ -29,7 +28,7 @@ if (qa_get_logged_in_level() >= QA_USER_LEVEL_ADMIN) {
$message = qa_lang('misc/form_security_reload');
} else {
$recalc = new Q2A_App_Recalc_Main(qa_post_text('state'));
$recalc = new Q2A_Recalc_RecalcMain(qa_post_text('state'));
$stoptime = time() + 3;
while ($recalc->performStep() && time() < $stoptime) {
......
......@@ -78,7 +78,7 @@ function qa_db_table_definitions()
* In MySQL versions prior to 5.0.3, VARCHAR(x) columns will be silently converted to TEXT where x>255
* See box at top of /qa-include/app/recalc/RecalcMain.php for a list of redundant (non-normal) information in the database
* See box at top of /qa-include/Q2A/Recalc/RecalcMain.php for a list of redundant (non-normal) information in the database
* Starting in version 1.2, we explicitly name keys and foreign key constraints, instead of allowing MySQL
to name these by default. Our chosen names match the default names that MySQL would have assigned, and
......@@ -769,8 +769,6 @@ function qa_db_default_userfields_sql()
*/
function qa_db_upgrade_tables()
{
require_once QA_INCLUDE_DIR . 'app/recalc/RecalcMain.php';
$definitions = qa_db_table_definitions();
$keyrecalc = array();
......@@ -1612,7 +1610,7 @@ function qa_db_upgrade_tables()
// Perform any necessary recalculations, as determined by upgrade steps
foreach (array_keys($keyrecalc) as $state) {
$recalc = new Q2A_App_Recalc_Main($state);
$recalc = new Q2A_Recalc_RecalcMain($state);
while ($recalc->getState()) {
set_time_limit(60);
......
......@@ -25,8 +25,6 @@ if (!defined('QA_VERSION')) { // don't allow this page to be requested directly
}
require_once QA_INCLUDE_DIR . 'app/admin.php';
require_once QA_INCLUDE_DIR . 'app/recalc/RecalcMain.php';
// Check we have administrative privileges
......@@ -71,7 +69,7 @@ if ($recalcnow) {
<?php
$recalc = new Q2A_App_Recalc_Main($state);
$recalc = new Q2A_Recalc_RecalcMain($state);
while ($recalc->getState()) {
set_time_limit(60);
......
......@@ -12,4 +12,4 @@ if (defined('QA_DEBUG_PERFORMANCE') && QA_DEBUG_PERFORMANCE) {
trigger_error('Included file ' . basename(__FILE__) . ' is deprecated');
}
require_once QA_INCLUDE_DIR.'app/recalc/RecalcMain.php';
require_once QA_INCLUDE_DIR.'app/recalc.php'; //...although that's also deprecated now.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment