PHPFusion\Forums\Admin::recalculate_post PHP Метод

recalculate_post() публичный статический Метод

Recalculate a forum post count
public static recalculate_post ( $forum_id ) : string
$forum_id
Результат string
    public static function recalculate_post($forum_id)
    {
        global $locale;
        // update last post
        $result = dbquery("SELECT thread_lastpost, thread_lastuser FROM " . DB_FORUM_THREADS . " WHERE forum_id='" . $forum_id . "' ORDER BY thread_lastpost DESC LIMIT 0,1");
        // get last thread_lastpost.
        if (dbrows($result)) {
            $data = dbarray($result);
            dbquery("UPDATE " . DB_FORUMS . " SET forum_lastpost='" . $data['thread_lastpost'] . "', forum_lastuser='" . $data['thread_lastuser'] . "' WHERE forum_id='" . $forum_id . "'");
        } else {
            dbquery("UPDATE " . DB_FORUMS . " SET forum_lastpost='0', forum_lastuser='0' WHERE forum_id='" . $forum_id . "'");
        }
        // update postcount on each threads -  this is the remaining.
        $result = dbquery("SELECT COUNT(post_id) AS postcount, thread_id FROM " . DB_FORUM_POSTS . " WHERE forum_id='" . $forum_id . "' GROUP BY thread_id");
        if (dbrows($result)) {
            while ($data = dbarray($result)) {
                dbquery("UPDATE " . DB_FORUM_THREADS . " SET thread_postcount='" . $data['postcount'] . "' WHERE thread_id='" . $data['thread_id'] . "'");
            }
        }
        // calculate and update total combined postcount on all threads to forum
        $result = dbquery("SELECT SUM(thread_postcount) AS postcount, forum_id FROM " . DB_FORUM_THREADS . "\n\t\tWHERE forum_id='" . $forum_id . "' GROUP BY forum_id");
        if (dbrows($result)) {
            while ($data = dbarray($result)) {
                dbquery("UPDATE " . DB_FORUMS . " SET forum_postcount='" . $data['postcount'] . "' WHERE forum_id='" . $data['forum_id'] . "'");
            }
        }
        // calculate and update total threads to forum
        $result = dbquery("SELECT COUNT(thread_id) AS threadcount, forum_id FROM " . DB_FORUM_THREADS . " WHERE forum_id='" . $forum_id . "' GROUP BY forum_id");
        if (dbrows($result)) {
            while ($data = dbarray($result)) {
                dbquery("UPDATE " . DB_FORUMS . " SET forum_threadcount='" . $data['threadcount'] . "' WHERE forum_id='" . $data['forum_id'] . "'");
            }
        }
    }