Beispiel #1
0
    /**
     * Handle some stuff we need when submitting a revision
     */
    public function submit()
    {
        if (!$this->revision_id) {
            // Update the contrib_last_update if required here
            if (!titania::$config->require_validation || !titania_types::$types[$this->contrib->contrib_type]->require_validation) {
                $this->contrib->contrib_last_update = titania::$time;
                $sql_ary = array('contrib_last_update' => $this->contrib->contrib_last_update);
                $sql = 'UPDATE ' . TITANIA_CONTRIBS_TABLE . '
					SET ' . phpbb::$db->sql_build_array('UPDATE', $sql_ary) . '
					WHERE contrib_id = ' . $this->contrib_id;
                phpbb::$db->sql_query($sql);
                // Subscriptions
                $email_vars = array('NAME' => $this->contrib->contrib_name, 'U_VIEW' => $this->contrib->get_url());
                titania_subscriptions::send_notifications(TITANIA_CONTRIB, $this->contrib_id, 'subscribe_notify.txt', $email_vars);
            }
        } else {
            if (sizeof($this->phpbb_versions)) {
                $sql = 'DELETE FROM ' . TITANIA_REVISIONS_PHPBB_TABLE . '
				WHERE revision_id = ' . (int) $this->revision_id;
                phpbb::$db->sql_query($sql);
            }
        }
        parent::submit();
        // Add phpBB versions supported
        if (sizeof($this->phpbb_versions)) {
            $versions = titania::$cache->get_phpbb_versions();
            $sql_ary = array();
            foreach ($this->phpbb_versions as $row) {
                if (!is_array($row)) {
                    $row = array('phpbb_version_branch' => (int) $row);
                }
                if (!isset($row['phpbb_version_branch']) || !isset(titania::$config->phpbb_versions[$row['phpbb_version_branch']])) {
                    continue;
                }
                // OMG, it's not in our cache!
                if (!isset($versions[$row['phpbb_version_branch'] . titania::$config->phpbb_versions[$row['phpbb_version_branch']]])) {
                    titania::$cache->destroy('_titania_phpbb_versions');
                }
                $sql_ary[] = array('revision_id' => $this->revision_id, 'contrib_id' => $this->contrib_id, 'revision_validated' => $this->revision_status == TITANIA_REVISION_APPROVED ? true : false, 'phpbb_version_branch' => $row['phpbb_version_branch'], 'phpbb_version_revision' => get_real_revision_version(isset($row['phpbb_version_revision']) ? $row['phpbb_version_revision'] : titania::$config->phpbb_versions[$row['phpbb_version_branch']]['latest_revision']));
            }
            if (sizeof($sql_ary)) {
                phpbb::$db->sql_multi_insert(TITANIA_REVISIONS_PHPBB_TABLE, $sql_ary);
            }
        }
        // Update the release topic
        if ($this->revision_status == TITANIA_REVISION_APPROVED) {
            $this->contrib->update_release_topic();
        }
        // Hooks
        titania::$hook->call_hook_ref(array(__CLASS__, __FUNCTION__), $this);
    }
    function run_tool()
    {
        $new_phpbb_version = request_var('new_phpbb_version', '');
        $limit_phpbb_versions = request_var('limit_phpbb_version', array(''));
        if (!$new_phpbb_version || strlen($new_phpbb_version) < 5 || $new_phpbb_version[1] != '.' || $new_phpbb_version[3] != '.') {
            trigger_back('NO_VERSION_SELECTED');
        }
        // Does the zip for this exist?
        $version = preg_replace('#[^a-zA-Z0-9\\.\\-]+#', '', $new_phpbb_version);
        if (!file_exists(TITANIA_ROOT . 'includes/phpbb_packages/phpBB-' . $version . '.zip')) {
            trigger_back(sprintf(phpbb::$user->lang['FILE_NOT_EXIST'], 'includes/phpbb_packages/phpBB-' . $version . '.zip'));
        }
        $phpbb_version_branch = (int) $new_phpbb_version[0] . (int) $new_phpbb_version[2];
        $phpbb_version_revision = get_real_revision_version(substr($new_phpbb_version, 4));
        // Is it in our version cache?
        $versions = titania::$cache->get_phpbb_versions();
        if (!isset($versions[$phpbb_version_branch . $phpbb_version_revision])) {
            titania::$cache->destroy('_titania_phpbb_versions');
        }
        $testable_types = array();
        foreach (titania_types::$types as $type_id => $type) {
            if ($type->automod_test) {
                $testable_types[] = $type_id;
            }
        }
        if (!sizeof($testable_types)) {
            trigger_back('NO_REVISIONS_UPDATED');
        }
        $revisions = array();
        $sql = 'SELECT DISTINCT(c.contrib_id), r.revision_id FROM ' . TITANIA_REVISIONS_TABLE . ' r, ' . TITANIA_CONTRIBS_TABLE . ' c
			WHERE c.contrib_id = r.contrib_id
				AND ' . phpbb::$db->sql_in_set('c.contrib_type', $testable_types) . '
			GROUP BY c.contrib_id
			ORDER BY r.revision_time DESC';
        $result = phpbb::$db->sql_query($sql);
        while ($row = phpbb::$db->sql_fetchrow($result)) {
            $revisions[$row['revision_id']] = $row['contrib_id'];
        }
        phpbb::$db->sql_freeresult($result);
        if (sizeof($limit_phpbb_versions) > 1 || sizeof($limit_phpbb_versions) && $limit_phpbb_versions[0] != 0) {
            $revisions_selected = array();
            // phpBB versions limiter
            foreach ($limit_phpbb_versions as $limit_phpbb_version) {
                $sql = 'SELECT revision_id
					FROM ' . TITANIA_REVISIONS_PHPBB_TABLE . '
					WHERE phpbb_version_branch = ' . (int) substr($limit_phpbb_version, 0, 2) . '
						AND phpbb_version_revision = \'' . phpbb::$db->sql_escape(substr($limit_phpbb_version, 2)) . '\'';
                $result = phpbb::$db->sql_query($sql);
                while ($row = phpbb::$db->sql_fetchrow($result)) {
                    if (isset($revisions[$row['revision_id']])) {
                        $revisions_selected[$row['revision_id']] = $revisions[$row['revision_id']];
                    }
                }
                phpbb::$db->sql_freeresult($result);
            }
            // swap
            $revisions = $revisions_selected;
        }
        if (!sizeof($revisions)) {
            trigger_back('NO_REVISIONS_UPDATED');
        }
        // Don't include those which already are marked for this phpBB version
        $sql = 'SELECT revision_id FROM ' . TITANIA_REVISIONS_PHPBB_TABLE . '
			WHERE ' . phpbb::$db->sql_in_set('revision_id', array_map('intval', array_keys($revisions))) . '
				AND phpbb_version_branch = ' . $phpbb_version_branch . '
				AND phpbb_version_revision = \'' . phpbb::$db->sql_escape($phpbb_version_revision) . '\'';
        $result = phpbb::$db->sql_query($sql);
        while ($row = phpbb::$db->sql_fetchrow($result)) {
            unset($revisions[$row['revision_id']]);
        }
        phpbb::$db->sql_freeresult($result);
        // Don't include those which already are in the automod queue
        $sql = 'SELECT revision_id FROM ' . TITANIA_AUTOMOD_QUEUE_TABLE . '
			WHERE phpbb_version_branch = ' . $phpbb_version_branch . '
				AND phpbb_version_revision = \'' . phpbb::$db->sql_escape($phpbb_version_revision) . '\'';
        $result = phpbb::$db->sql_query($sql);
        while ($row = phpbb::$db->sql_fetchrow($result)) {
            unset($revisions[$row['revision_id']]);
        }
        phpbb::$db->sql_freeresult($result);
        if (!sizeof($revisions)) {
            trigger_back('NO_REVISIONS_UPDATED');
        }
        $sql_ary = array();
        foreach ($revisions as $revision_id => $contrib_id) {
            $sql_ary[] = array('revision_id' => (int) $revision_id, 'phpbb_version_branch' => $phpbb_version_branch, 'phpbb_version_revision' => $phpbb_version_revision);
        }
        phpbb::$db->sql_multi_insert(TITANIA_AUTOMOD_QUEUE_TABLE, $sql_ary);
        trigger_back(sprintf(phpbb::$user->lang['REVISIONS_ADDED_TO_QUEUE'], sizeof($revisions)));
    }
Beispiel #3
0
			WHERE row_id = ' . $row['row_id'];
        phpbb::$db->sql_query($sql);
        $new_dir_name = $row['contrib_name_clean'] . '_' . preg_replace('#[^0-9a-z]#', '_', strtolower($row['revision_version']));
        $version = $row['phpbb_version_branch'][0] . '.' . $row['phpbb_version_branch'][1] . '.' . $row['phpbb_version_revision'];
        $zip = titania::$config->upload_path . utf8_basename($row['attachment_directory']) . '/' . utf8_basename($row['physical_filename']);
        $details = $results = $bbcode_results = '';
        $contrib_tools = new titania_contrib_tools($zip, $new_dir_name);
        $package_root = $contrib_tools->find_root();
        $contrib_tools->restore_root($package_root);
        if (sizeof($contrib_tools->error)) {
            continue;
        }
        if (!($phpbb_path = $contrib_tools->automod_phpbb_files($version))) {
            continue;
        }
        if ($contrib_tools->automod($phpbb_path, $details, $results, $bbcode_results)) {
            $sql_ary = array('revision_id' => $row['revision_id'], 'contrib_id' => $row['contrib_id'], 'phpbb_version_branch' => $row['phpbb_version_branch'], 'phpbb_version_revision' => get_real_revision_version($row['phpbb_version_revision']), 'revision_validated' => $row['revision_status'] == TITANIA_REVISION_APPROVED ? true : false);
            phpbb::$db->sql_query('INSERT INTO ' . TITANIA_REVISIONS_PHPBB_TABLE . ' ' . phpbb::$db->sql_build_array('INSERT', $sql_ary));
        }
        $contrib_tools->remove_temp_files();
        unset($contrib_tools);
    }
    phpbb::$db->sql_freeresult($result);
}
// Unloading cache and closing db after having done the dirty work.
if ($use_shutdown_function) {
    register_shutdown_function('garbage_collection');
} else {
    garbage_collection();
}
exit;
    function run_tool()
    {
        $new_phpbb_version = request_var('new_phpbb_version', '');
        $limit_phpbb_versions = request_var('limit_phpbb_version', array(''));
        $categories = request_var('category', array(0));
        if (!$new_phpbb_version || strlen($new_phpbb_version) < 5 || $new_phpbb_version[1] != '.' || $new_phpbb_version[3] != '.') {
            trigger_back('NO_VERSION_SELECTED');
        }
        $phpbb_version_branch = (int) $new_phpbb_version[0] . (int) $new_phpbb_version[2];
        $phpbb_version_revision = get_real_revision_version(substr($new_phpbb_version, 4));
        // Is it in our version cache?
        $versions = titania::$cache->get_phpbb_versions();
        if (!isset($versions[$phpbb_version_branch . $phpbb_version_revision])) {
            titania::$cache->destroy('_titania_phpbb_versions');
        }
        // Categories limiter
        $contribs = $revisions = array();
        if (sizeof($categories) > 1 || sizeof($categories) && $categories[0] != 0) {
            $sql = 'SELECT contrib_id FROM ' . TITANIA_CONTRIB_IN_CATEGORIES_TABLE . '
				WHERE ' . phpbb::$db->sql_in_set('category_id', array_map('intval', $categories));
            $result = phpbb::$db->sql_query($sql);
            while ($row = phpbb::$db->sql_fetchrow($result)) {
                $contribs[] = $row['contrib_id'];
            }
            phpbb::$db->sql_freeresult($result);
            if (!sizeof($contribs)) {
                trigger_back('NO_REVISIONS_UPDATED');
            }
        }
        if (sizeof($limit_phpbb_versions) > 1 || sizeof($limit_phpbb_versions) && $limit_phpbb_versions[0] != 0) {
            // phpBB versions limiter
            foreach ($limit_phpbb_versions as $limit_phpbb_version) {
                $sql = 'SELECT rp.contrib_id, rp.revision_id, r.revision_status FROM ' . TITANIA_REVISIONS_PHPBB_TABLE . ' rp, ' . TITANIA_REVISIONS_TABLE . ' r
					WHERE rp.phpbb_version_branch = ' . (int) substr($limit_phpbb_version, 0, 2) . '
						AND rp.phpbb_version_revision = \'' . phpbb::$db->sql_escape(substr($limit_phpbb_version, 2)) . '\'' . (sizeof($contribs) ? ' AND ' . phpbb::$db->sql_in_set('rp.contrib_id', array_map('intval', $contribs)) : '') . '
						AND r.revision_id = rp.revision_id';
                $result = phpbb::$db->sql_query($sql);
                while ($row = phpbb::$db->sql_fetchrow($result)) {
                    $revisions[$row['revision_id']] = $row;
                }
                phpbb::$db->sql_freeresult($result);
            }
        } else {
            if (sizeof($categories) > 1 || sizeof($categories) && $categories[0] != 0) {
                // Only category limited
                $sql = 'SELECT contrib_id, revision_id, revision_status FROM ' . TITANIA_REVISIONS_TABLE . '
				WHERE ' . phpbb::$db->sql_in_set('contrib_id', array_map('intval', $contribs));
                $result = phpbb::$db->sql_query($sql);
                while ($row = phpbb::$db->sql_fetchrow($result)) {
                    $revisions[$row['revision_id']] = $row;
                }
                phpbb::$db->sql_freeresult($result);
            } else {
                // All
                $sql = 'SELECT contrib_id, revision_id, revision_status FROM ' . TITANIA_REVISIONS_TABLE;
                $result = phpbb::$db->sql_query($sql);
                while ($row = phpbb::$db->sql_fetchrow($result)) {
                    $revisions[$row['revision_id']] = $row;
                }
                phpbb::$db->sql_freeresult($result);
            }
        }
        if (!sizeof($revisions)) {
            trigger_back('NO_REVISIONS_UPDATED');
        }
        // Don't include those which already are marked for this phpBB version
        $sql = 'SELECT revision_id FROM ' . TITANIA_REVISIONS_PHPBB_TABLE . '
			WHERE ' . phpbb::$db->sql_in_set('revision_id', array_map('intval', array_keys($revisions))) . '
				AND phpbb_version_branch = ' . $phpbb_version_branch . '
				AND phpbb_version_revision = \'' . phpbb::$db->sql_escape($phpbb_version_revision) . '\'';
        $result = phpbb::$db->sql_query($sql);
        while ($row = phpbb::$db->sql_fetchrow($result)) {
            unset($revisions[$row['revision_id']]);
        }
        phpbb::$db->sql_freeresult($result);
        if (!sizeof($revisions)) {
            trigger_back('NO_REVISIONS_UPDATED');
        }
        $sql_ary = array();
        foreach ($revisions as $revision_id => $row) {
            $sql_ary[] = array('contrib_id' => (int) $row['contrib_id'], 'revision_id' => (int) $revision_id, 'phpbb_version_branch' => $phpbb_version_branch, 'phpbb_version_revision' => $phpbb_version_revision, 'revision_validated' => $row['revision_status'] == TITANIA_REVISION_APPROVED ? true : false);
        }
        phpbb::$db->sql_multi_insert(TITANIA_REVISIONS_PHPBB_TABLE, $sql_ary);
        trigger_back(sprintf(phpbb::$user->lang['REVISIONS_UPDATED'], sizeof($revisions)));
    }
			WHERE ' . phpbb::$db->sql_in_set('category_id', array(13, 14, 15, 16));
        $result = phpbb::$db->sql_query($sql);
        while ($row = phpbb::$db->sql_fetchrow($result)) {
            $contrib_ids[] = $row['contrib_id'];
        }
        phpbb::$db->sql_freeresult($result);
        $sql = 'DELETE FROM ' . TITANIA_REVISIONS_PHPBB_TABLE . '
			WHERE ' . phpbb::$db->sql_in_set('contrib_id', $contrib_ids);
        phpbb::$db->sql_query($sql);
        $versions = array(array(20, '23'), array(30, '0'), array(30, '1'), array(30, '2'), array(30, '3'), array(30, '4'), array(30, '5'), array(30, '6'), array(30, '7'), array(30, '7-pl1'));
        $sql = 'SELECT contrib_id, revision_id, revision_validated FROM ' . TITANIA_REVISIONS_TABLE . '
			WHERE ' . phpbb::$db->sql_in_set('contrib_id', $contrib_ids);
        $result = phpbb::$db->sql_query($sql);
        while ($row = phpbb::$db->sql_fetchrow($result)) {
            foreach ($versions as $data) {
                $sql_ary[] = array('contrib_id' => $row['contrib_id'], 'revision_id' => $row['revision_id'], 'phpbb_version_branch' => $data[0], 'phpbb_version_revision' => get_real_revision_version($data[1]), 'revision_validated' => $row['revision_validated']);
            }
        }
        phpbb::$db->sql_freeresult($result);
        phpbb::$db->sql_multi_insert(TITANIA_REVISIONS_PHPBB_TABLE, $sql_ary);
        $display_message = 'Smilies, Avatars, Ranks, Styles Misc support the latest phpBB';
        break;
    case 7:
        $sync = new titania_sync();
        $sync->authors('count');
        $display_message = 'Authors';
        break;
    case 8:
        $sync = new titania_sync();
        $sync->contribs('validated');
        $sync->categories('count');
function titania_custom($action, $version)
{
    switch ($action) {
        case 'install':
            switch ($version) {
                case '0.1.40':
                    titania_tags();
                    titania_categories();
                    break;
            }
            break;
        case 'update':
            switch ($version) {
                case '0.1.34':
                    $sync = new titania_sync();
                    $sync->topics('post_count');
                    break;
                case '0.1.37':
                    $sync = new titania_sync();
                    $sync->queue('revision_queue_id');
                    break;
                case '0.1.47':
                    $sync = new titania_sync();
                    $sync->topics('queue_discussion_category');
                    break;
                case '0.1.49':
                    $sql = 'UPDATE ' . TITANIA_TOPICS_TABLE . ' SET topic_sticky = 1
						WHERE topic_type = ' . TITANIA_QUEUE_DISCUSSION;
                    phpbb::$db->sql_query($sql);
                    break;
                case '0.1.53':
                    $sql_ary = array();
                    $sql = 'SELECT contrib_id, revision_id, phpbb_version FROM ' . TITANIA_REVISIONS_TABLE;
                    $result = phpbb::$db->sql_query($sql);
                    while ($row = phpbb::$db->sql_fetchrow($result)) {
                        $sql_ary[] = array('revision_id' => $row['revision_id'], 'contrib_id' => $row['contrib_id'], 'phpbb_version_branch' => $row['phpbb_version'][0] . $row['phpbb_version'][2], 'phpbb_version_revision' => get_real_revision_version(substr($row['phpbb_version'], 4)));
                    }
                    phpbb::$db->sql_freeresult($result);
                    phpbb::$db->sql_multi_insert(TITANIA_REVISIONS_PHPBB_TABLE, $sql_ary);
                    break;
                case '0.1.55':
                    $validated = array();
                    $sql = 'SELECT revision_id FROM ' . TITANIA_REVISIONS_TABLE . '
						WHERE revision_validated = 1';
                    $result = phpbb::$db->sql_query($sql);
                    while ($row = phpbb::$db->sql_fetchrow($result)) {
                        $validated[] = $row['revision_id'];
                    }
                    phpbb::$db->sql_freeresult($result);
                    if (sizeof($validated)) {
                        $sql = 'UPDATE ' . TITANIA_REVISIONS_PHPBB_TABLE . '
							SET revision_validated = 1
							WHERE ' . phpbb::$db->sql_in_set('revision_id', $validated);
                        phpbb::$db->sql_query($sql);
                    }
                    break;
                case '0.3.2':
                    $update = array();
                    // Reset the status
                    $sql = 'UPDATE ' . TITANIA_REVISIONS_TABLE . '
						SET revision_status = 0';
                    phpbb::$db->sql_query($sql);
                    $sql = 'SELECT r.revision_id, q.queue_status FROM ' . TITANIA_REVISIONS_TABLE . ' r, ' . TITANIA_QUEUE_TABLE . ' q
						WHERE q.revision_id = r.revision_id';
                    $result = phpbb::$db->sql_query($sql);
                    while ($row = phpbb::$db->sql_fetchrow($result)) {
                        switch ($row['queue_status']) {
                            case TITANIA_QUEUE_DENIED:
                                $update[TITANIA_REVISION_DENIED][] = $row['revision_id'];
                                break;
                            case TITANIA_QUEUE_APPROVED:
                                $update[TITANIA_REVISION_APPROVED][] = $row['revision_id'];
                                break;
                            case TITANIA_QUEUE_NEW:
                                $update[TITANIA_REVISION_NEW][] = $row['revision_id'];
                                break;
                        }
                    }
                    phpbb::$db->sql_freeresult($result);
                    foreach ($update as $status => $revision_ids) {
                        $sql = 'UPDATE ' . TITANIA_REVISIONS_TABLE . '
							SET revision_status = ' . (int) $status . '
							WHERE ' . phpbb::$db->sql_in_set('revision_id', $revision_ids);
                        phpbb::$db->sql_query($sql);
                    }
                    // Any that are left should be repacked
                    $sql = 'UPDATE ' . TITANIA_REVISIONS_TABLE . '
						SET revision_status = ' . TITANIA_REVISION_REPACKED . '
						WHERE revision_status = 0';
                    phpbb::$db->sql_query($sql);
                    break;
                case '0.3.3':
                    titania_sync::contribs('faq_count');
                    break;
            }
            break;
        case 'uninstall':
            // Uninstall the types (prevent errors)
            foreach (titania_types::$types as $class) {
                $class->uninstall();
            }
            titania_search::truncate();
            break;
    }
}
    }
    if (!copy($filename, titania::$config->upload_path . $move_dir . '/' . $move_file)) {
        echo 'Could Not Copy File - ' . $filename . '<br />';
        continue;
    }
    $sql_ary = array('object_type' => TITANIA_CONTRIB, 'object_id' => $row['contrib_id'], 'attachment_access' => TITANIA_ACCESS_PUBLIC, 'attachment_comment' => '', 'attachment_directory' => $move_dir, 'physical_filename' => $move_file, 'real_filename' => $row['revision_filename'], 'download_count' => 0, 'filesize' => $row['revision_filesize'], 'filetime' => $row['revision_date'], 'extension' => strpos($row['revision_filename'], '.zip') ? 'zip' : 'mod', 'mimetype' => strpos($row['revision_filename'], '.zip') ? 'application/x-zip-compressed' : 'text/plain', 'hash' => $row['revision_md5'], 'thumbnail' => 0, 'is_orphan' => 0);
    // Insert
    $attach_id = titania_insert(TITANIA_ATTACHMENTS_TABLE, $sql_ary);
    $sql_ary = array('revision_id' => $row['revision_id'], 'contrib_id' => $row['contrib_id'], 'attachment_id' => $attach_id, 'revision_version' => $row['revision_version'], 'revision_name' => $row['revision_name'], 'revision_time' => $row['revision_date'], 'revision_validated' => $row['queue_status'] == -1 ? true : false, 'validation_date' => $row['queue_status'] == -1 ? $row['revision_date'] : 0, 'install_time' => 0, 'install_level' => 0, 'revision_submitted' => 1, 'revision_queue_id' => isset($row['queue_id']) ? (int) $row['queue_id'] : 0);
    // Insert
    $revision_id = titania_insert(TITANIA_REVISIONS_TABLE, $sql_ary);
    if ($row['contrib_filename_internal'] == $row['revision_filename_internal']) {
        // More Ariel nubish.
        $sql_ary = array('revision_id' => $revision_id, 'contrib_id' => $row['contrib_id'], 'phpbb_version_branch' => $row['contrib_phpbb_version'][0] == '3' ? 30 : 20, 'phpbb_version_revision' => get_real_revision_version(substr($row['contrib_phpbb_version'], 4)), 'revision_validated' => $row['queue_status'] == -1 ? true : false);
    } else {
        $sql_ary = array('revision_id' => $revision_id, 'contrib_id' => $row['contrib_id'], 'phpbb_version_branch' => $row['revision_phpbb_version'][0] == '3' ? 30 : 20, 'phpbb_version_revision' => get_real_revision_version(substr($row['revision_phpbb_version'], 4)), 'revision_validated' => $row['queue_status'] == -1 ? true : false);
    }
    titania_insert(TITANIA_REVISIONS_PHPBB_TABLE, $sql_ary);
    // Update the contrib_last_update
    if ($row['queue_status'] == -1 || !titania::$config->require_validation) {
        $sql = 'UPDATE ' . TITANIA_CONTRIBS_TABLE . '
			SET contrib_last_update = ' . (int) $row['revision_date'] . '
			WHERE contrib_id = ' . (int) $row['contrib_id'] . '
				AND contrib_last_update < ' . (int) $row['revision_date'];
        phpbb::$db->sql_query($sql);
    }
}
phpbb::$db->sql_freeresult($result);
/**
* QUEUE DISCUSSION ------------------------------------------------------------------------------------------------------------------------------
*/