当前位置: 首页>>代码示例>>PHP>>正文


PHP driver_interface::get_sql_layer方法代码示例

本文整理汇总了PHP中phpbb\db\driver\driver_interface::get_sql_layer方法的典型用法代码示例。如果您正苦于以下问题:PHP driver_interface::get_sql_layer方法的具体用法?PHP driver_interface::get_sql_layer怎么用?PHP driver_interface::get_sql_layer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在phpbb\db\driver\driver_interface的用法示例。


在下文中一共展示了driver_interface::get_sql_layer方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: page_header

    public function page_header($event)
    {
        if ($this->auth->acl_get('u_did_you_know')) {
            $sql_layer = $this->db->get_sql_layer();
            switch ($sql_layer) {
                case 'postgres':
                    $random = 'RANDOM()';
                    break;
                case 'mssql':
                case 'mssql_odbc':
                    $random = 'NEWID()';
                    break;
                default:
                    $random = 'RAND()';
                    break;
            }
            $sql = 'SELECT word, bbcode_uid, bbcode_bitfield, bbcode_options
				FROM ' . $this->did_you_know . "\n\t\t\t\tWHERE lang_iso = '{$this->user->data['user_lang']}'\n\t\t\t\t\tOR lang_iso = 'default'\n\t\t\t\tORDER BY {$random}";
            $result = $this->db->sql_query_limit($sql, 1);
            $row = $this->db->sql_fetchrow($result);
            $this->db->sql_freeresult($result);
            $word = generate_text_for_display($row['word'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options']);
            $this->template->assign_vars(array('DID_YOU_KNOW' => str_replace(""", '"', $word), 'S_DIDYOUKNOW' => !empty($this->user->data['user_didyouknow']) ? true : false, 'U_DYK_HIDE' => $this->helper->route('dmzx_didyouknow_controller', array('mode' => 'hide'))));
        }
    }
开发者ID:phpbb-es,项目名称:Did-You-Know,代码行数:25,代码来源:listener.php

示例2: test_attachment_delete

 /**
  * @dataProvider data_attachment_delete
  */
 public function test_attachment_delete($mode, $ids, $resync, $expected)
 {
     // We need to reset the attachment ID sequence to properly test this
     if ($this->db->get_sql_layer() === 'postgres') {
         $sql = 'ALTER SEQUENCE phpbb_attachments_seq RESTART WITH 1';
         $this->db->sql_query($sql);
     }
     $this->assertSame($expected, $this->attachment_delete->delete($mode, $ids, $resync));
 }
开发者ID:MrAdder,项目名称:phpbb,代码行数:12,代码来源:delete_test.php

示例3: switch

    /**
     * Obtain active bots
     */
    function obtain_bots()
    {
        if (($bots = $this->driver->get('_bots')) === false) {
            switch ($this->db->get_sql_layer()) {
                case 'mssql_odbc':
                case 'mssqlnative':
                    $sql = 'SELECT user_id, bot_agent, bot_ip
						FROM ' . BOTS_TABLE . '
						WHERE bot_active = 1
					ORDER BY LEN(bot_agent) DESC';
                    break;
                    // LENGTH supported by MySQL, IBM DB2 and Oracle for sure...
                // LENGTH supported by MySQL, IBM DB2 and Oracle for sure...
                default:
                    $sql = 'SELECT user_id, bot_agent, bot_ip
						FROM ' . BOTS_TABLE . '
						WHERE bot_active = 1
					ORDER BY LENGTH(bot_agent) DESC';
                    break;
            }
            $result = $this->db->sql_query($sql);
            $bots = array();
            while ($row = $this->db->sql_fetchrow($result)) {
                $bots[] = $row;
            }
            $this->db->sql_freeresult($result);
            $this->driver->put('_bots', $bots);
        }
        return $bots;
    }
开发者ID:phpbb,项目名称:phpbb-core,代码行数:33,代码来源:service.php

示例4: finish

    /**
     * Render the final page of the convertor
     */
    public function finish()
    {
        $this->setup_navigation('finish');
        $this->template->assign_vars(array('TITLE' => $this->language->lang('CONVERT_COMPLETE'), 'BODY' => $this->language->lang('CONVERT_COMPLETE_EXPLAIN')));
        // If we reached this step (conversion completed) we want to purge the cache and log the user out.
        // This is for making sure the session get not screwed due to the 3.0.x users table being completely new.
        $this->cache->purge();
        $this->installer_cache->purge();
        require_once $this->phpbb_root_path . 'includes/constants.' . $this->php_ext;
        require_once $this->phpbb_root_path . 'includes/functions_convert.' . $this->php_ext;
        $sql = 'SELECT config_value
			FROM ' . $this->config_table . '
			WHERE config_name = \'search_type\'';
        $result = $this->db->sql_query($sql);
        if ($this->db->sql_fetchfield('config_value') != 'fulltext_mysql') {
            $this->template->assign_vars(array('S_ERROR_BOX' => true, 'ERROR_TITLE' => $this->language->lang('SEARCH_INDEX_UNCONVERTED'), 'ERROR_MSG' => $this->language->lang('SEARCH_INDEX_UNCONVERTED_EXPLAIN')));
        }
        $this->db->sql_freeresult($result);
        switch ($this->db->get_sql_layer()) {
            case 'sqlite':
            case 'sqlite3':
                $this->db->sql_query('DELETE FROM ' . $this->session_keys_table);
                $this->db->sql_query('DELETE FROM ' . $this->session_table);
                break;
            default:
                $this->db->sql_query('TRUNCATE TABLE ' . $this->session_keys_table);
                $this->db->sql_query('TRUNCATE TABLE ' . $this->session_table);
                break;
        }
        return $this->controller_helper->render('installer_convert.html', 'CONVERT_COMPLETE');
    }
开发者ID:007durgesh219,项目名称:phpbb,代码行数:34,代码来源:convertor.php

示例5: get_stats

    /**
     * Computes the stats and store them in the $this->stats associative array
     */
    protected function get_stats()
    {
        if (strpos($this->db->get_sql_layer(), 'mysql') === false) {
            $this->stats = array();
            return;
        }
        $sql = 'SHOW INDEX
			FROM ' . POSTS_TABLE;
        $result = $this->db->sql_query($sql);
        while ($row = $this->db->sql_fetchrow($result)) {
            // deal with older MySQL versions which didn't use Index_type
            $index_type = isset($row['Index_type']) ? $row['Index_type'] : $row['Comment'];
            if ($index_type == 'FULLTEXT') {
                if ($row['Key_name'] == 'post_subject') {
                    $this->stats['post_subject'] = $row;
                } else {
                    if ($row['Key_name'] == 'post_content') {
                        $this->stats['post_content'] = $row;
                    }
                }
            }
        }
        $this->db->sql_freeresult($result);
        $this->stats['total_posts'] = empty($this->stats) ? 0 : $this->db->get_estimated_row_count(POSTS_TABLE);
    }
开发者ID:Mtechnik,项目名称:phpbb-core,代码行数:28,代码来源:fulltext_mysql.php

示例6: acp

    /**
     * Display various options that can be configured for the backend from the acp
     *
     * @return associative array containing template and config variables
     */
    public function acp()
    {
        $tpl = '
		<dl>
			<dt><label>' . $this->user->lang['FULLTEXT_POSTGRES_VERSION_CHECK'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_POSTGRES_VERSION_CHECK_EXPLAIN'] . '</span></dt>
			<dd>' . ($this->db->get_sql_layer() == 'postgres' ? $this->user->lang['YES'] : $this->user->lang['NO']) . '</dd>
		</dl>
		<dl>
			<dt><label>' . $this->user->lang['FULLTEXT_POSTGRES_TS_NAME'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_POSTGRES_TS_NAME_EXPLAIN'] . '</span></dt>
			<dd><select name="config[fulltext_postgres_ts_name]">';
        if ($this->db->get_sql_layer() == 'postgres') {
            $sql = 'SELECT cfgname AS ts_name
				  FROM pg_ts_config';
            $result = $this->db->sql_query($sql);
            while ($row = $this->db->sql_fetchrow($result)) {
                $tpl .= '<option value="' . $row['ts_name'] . '"' . ($row['ts_name'] === $this->config['fulltext_postgres_ts_name'] ? ' selected="selected"' : '') . '>' . $row['ts_name'] . '</option>';
            }
            $this->db->sql_freeresult($result);
        } else {
            $tpl .= '<option value="' . $this->config['fulltext_postgres_ts_name'] . '" selected="selected">' . $this->config['fulltext_postgres_ts_name'] . '</option>';
        }
        $tpl .= '</select></dd>
		</dl>
                <dl>
                        <dt><label for="fulltext_postgres_min_word_len">' . $this->user->lang['FULLTEXT_POSTGRES_MIN_WORD_LEN'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_POSTGRES_MIN_WORD_LEN_EXPLAIN'] . '</span></dt>
                        <dd><input id="fulltext_postgres_min_word_len" type="number" min="0" max="255" name="config[fulltext_postgres_min_word_len]" value="' . (int) $this->config['fulltext_postgres_min_word_len'] . '" /></dd>
                </dl>
                <dl>
                        <dt><label for="fulltext_postgres_max_word_len">' . $this->user->lang['FULLTEXT_POSTGRES_MAX_WORD_LEN'] . $this->user->lang['COLON'] . '</label><br /><span>' . $this->user->lang['FULLTEXT_POSTGRES_MAX_WORD_LEN_EXPLAIN'] . '</span></dt>
                        <dd><input id="fulltext_postgres_max_word_len" type="number" min="0" max="255" name="config[fulltext_postgres_max_word_len]" value="' . (int) $this->config['fulltext_postgres_max_word_len'] . '" /></dd>
                </dl>
		';
        // These are fields required in the config table
        return array('tpl' => $tpl, 'config' => array('fulltext_postgres_ts_name' => 'string', 'fulltext_postgres_min_word_len' => 'integer:0:255', 'fulltext_postgres_max_word_len' => 'integer:0:255'));
    }
开发者ID:phpbb,项目名称:phpbb-core,代码行数:40,代码来源:fulltext_postgres.php

示例7: get_template_side

 /**
  * {@inheritdoc}
  */
 public function get_template_side($module_id)
 {
     // Generate birthday list if required ... / borrowed from index.php 3.0.6
     $birthday_list = $birthday_ahead_list = '';
     if ($this->config['load_birthdays'] && $this->config['allow_birthdays']) {
         $time = $this->user->create_datetime();
         $now = phpbb_gmgetdate($time->getTimestamp() + $time->getOffset());
         $cache_days = $this->config['board3_birthdays_ahead_' . $module_id];
         $sql_days = '';
         while ($cache_days > 0) {
             $day = phpbb_gmgetdate($time->getTimestamp() + 86400 * $cache_days + $time->getOffset());
             $like_expression = $this->db->sql_like_expression($this->db->get_any_char() . sprintf('%2d-%2d-', $day['mday'], $day['mon']) . $this->db->get_any_char());
             $sql_days .= " OR u.user_birthday " . $like_expression . "";
             $cache_days--;
         }
         switch ($this->db->get_sql_layer()) {
             case 'mssql':
             case 'mssql_odbc':
                 $order_by = 'u.user_birthday ASC';
                 break;
             default:
                 $order_by = 'SUBSTRING(u.user_birthday FROM 4 FOR 2) ASC, SUBSTRING(u.user_birthday FROM 1 FOR 2) ASC, u.username_clean ASC';
                 break;
         }
         $sql_array = array('SELECT' => 'u.user_id, u.username, u.user_colour, u.user_birthday', 'FROM' => array(USERS_TABLE => 'u'), 'LEFT_JOIN' => array(array('FROM' => array(BANLIST_TABLE => 'b'), 'ON' => 'u.user_id = b.ban_userid')), 'WHERE' => "(b.ban_id IS NULL\n\t\t\t\t\t\tOR b.ban_exclude = 1)\n\t\t\t\t\tAND (u.user_birthday " . $this->db->sql_like_expression($this->db->get_any_char() . sprintf('%2d-%2d-', $now['mday'], $now['mon']) . $this->db->get_any_char()) . " {$sql_days})\n\t\t\t\t\tAND " . $this->db->sql_in_set('u.user_type', array(USER_NORMAL, USER_FOUNDER)), 'ORDER BY' => $order_by);
         $sql = $this->db->sql_build_query('SELECT', $sql_array);
         $result = $this->db->sql_query($sql, 3600);
         $today = sprintf('%2d-%2d-', $now['mday'], $now['mon']);
         while ($row = $this->db->sql_fetchrow($result)) {
             if (substr($row['user_birthday'], 0, 6) == $today) {
                 $birthday_list = true;
                 $this->template->assign_block_vars('board3_birthday_list', array('USER' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']), 'AGE' => ($age = (int) substr($row['user_birthday'], -4)) ? ' (' . ($now['year'] - $age) . ')' : ''));
             } else {
                 if ($this->config['board3_birthdays_ahead_' . $module_id] > 0) {
                     $birthday_ahead_list = true;
                     $this->template->assign_block_vars('board3_birthday_ahead_list', array('USER' => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']), 'AGE' => ($age = (int) substr($row['user_birthday'], -4)) ? ' (' . ($now['year'] - $age) . ')' : '', 'DATE' => $this->format_birthday($this->user, $row['user_birthday'], 'd M')));
                 }
             }
         }
         $this->db->sql_freeresult($result);
     }
     // Assign index specific vars
     $this->template->assign_vars(array('BIRTHDAY_LIST' => $birthday_list, 'BIRTHDAYS_AHEAD_LIST' => $this->config['board3_birthdays_ahead_' . $module_id] ? $birthday_ahead_list : '', 'L_BIRTHDAYS_AHEAD' => sprintf($this->user->lang['BIRTHDAYS_AHEAD'], $this->config['board3_birthdays_ahead_' . $module_id]), 'S_DISPLAY_BIRTHDAY_LIST' => $this->config['load_birthdays'] ? true : false, 'S_DISPLAY_BIRTHDAY_AHEAD_LIST' => $this->config['board3_birthdays_ahead_' . $module_id] > 0 ? true : false));
     return 'birthdays_side.html';
 }
开发者ID:sgtevmckay,项目名称:Board3-Portal,代码行数:48,代码来源:birthday_list.php

示例8: exec_action

    /**
     * Execute action requested
     *
     * @param	string $action Requested action
     * @return	null
     */
    public function exec_action($action)
    {
        switch ($action) {
            case 'votes':
                switch ($this->db->get_sql_layer()) {
                    case 'sqlite':
                    case 'firebird':
                        $this->db->sql_query('DELETE FROM ' . DIR_VOTE_TABLE);
                        break;
                    default:
                        $this->db->sql_query('TRUNCATE TABLE ' . DIR_VOTE_TABLE);
                        break;
                }
                $sql = 'UPDATE ' . DIR_LINK_TABLE . '
					SET link_vote = 0, link_note = 0';
                $this->db->sql_query($sql);
                if ($this->request->is_ajax()) {
                    trigger_error('DIR_RESET_VOTES_SUCCESS');
                }
                break;
            case 'comments':
                switch ($this->db->get_sql_layer()) {
                    case 'sqlite':
                    case 'firebird':
                        $this->db->sql_query('DELETE FROM ' . DIR_COMMENT_TABLE);
                        break;
                    default:
                        $this->db->sql_query('TRUNCATE TABLE ' . DIR_COMMENT_TABLE);
                        break;
                }
                $sql = 'UPDATE ' . DIR_LINK_TABLE . '
					SET link_comment = 0';
                $this->db->sql_query($sql);
                if ($this->request->is_ajax()) {
                    trigger_error('DIR_RESET_COMMENTS_SUCCESS');
                }
                break;
            case 'clicks':
                $sql = 'UPDATE ' . DIR_LINK_TABLE . '
					SET link_view = 0';
                $this->db->sql_query($sql);
                if ($this->request->is_ajax()) {
                    trigger_error('DIR_RESET_CLICKS_SUCCESS');
                }
                break;
            case 'orphans':
                $this->_orphan_files(true);
                if ($this->request->is_ajax()) {
                    trigger_error('DIR_DELETE_ORPHANS_SUCCESS');
                }
                break;
        }
    }
开发者ID:rmcgirr83,项目名称:ext-phpbb-directory,代码行数:59,代码来源:main.php

示例9: delete_index

 /**
  * Deletes all words from the index
  */
 public function delete_index($acp_module, $u_action)
 {
     switch ($this->db->get_sql_layer()) {
         case 'sqlite':
         case 'sqlite3':
             $this->db->sql_query('DELETE FROM ' . SEARCH_WORDLIST_TABLE);
             $this->db->sql_query('DELETE FROM ' . SEARCH_WORDMATCH_TABLE);
             $this->db->sql_query('DELETE FROM ' . SEARCH_RESULTS_TABLE);
             break;
         default:
             $this->db->sql_query('TRUNCATE TABLE ' . SEARCH_WORDLIST_TABLE);
             $this->db->sql_query('TRUNCATE TABLE ' . SEARCH_WORDMATCH_TABLE);
             $this->db->sql_query('TRUNCATE TABLE ' . SEARCH_RESULTS_TABLE);
             break;
     }
 }
开发者ID:hgchen,项目名称:phpbb,代码行数:19,代码来源:fulltext_native.php

示例10: sql_random

 /**
  *	Get the random statement for this database layer
  */
 protected function sql_random()
 {
     switch ($this->db->get_sql_layer()) {
         case 'firebird':
         case 'oracle':
         case 'postgres':
         case 'sqlite':
             return 'RANDOM()';
             /* All other cases should use the default
             			case 'mssql':
             			case 'mssqlnative':
             			case 'mysql_40':
             			case 'mysql_41':
             			case 'mysqli':*/
         /* All other cases should use the default
         			case 'mssql':
         			case 'mssqlnative':
         			case 'mysql_40':
         			case 'mysql_41':
         			case 'mysqli':*/
         default:
             return 'RAND()';
     }
 }
开发者ID:Galixte,项目名称:Sortables-CAPTCHA-Plugin,代码行数:27,代码来源:sortables.php

示例11: phpbb_update_foes

/**
* Removes moderators and administrators from foe lists.
*
* @param \phpbb\db\driver\driver_interface $db Database connection
* @param \phpbb\auth\auth $auth Authentication object
* @param array|bool $group_id If an array, remove all members of this group from foe lists, or false to ignore
* @param array|bool $user_id If an array, remove this user from foe lists, or false to ignore
* @return null
*/
function phpbb_update_foes($db, $auth, $group_id = false, $user_id = false)
{
    // update foes for some user
    if (is_array($user_id) && sizeof($user_id)) {
        $sql = 'DELETE FROM ' . ZEBRA_TABLE . '
			WHERE ' . $db->sql_in_set('zebra_id', $user_id) . '
				AND foe = 1';
        $db->sql_query($sql);
        return;
    }
    // update foes for some group
    if (is_array($group_id) && sizeof($group_id)) {
        // Grab group settings...
        $sql_ary = array('SELECT' => 'a.group_id', 'FROM' => array(ACL_OPTIONS_TABLE => 'ao', ACL_GROUPS_TABLE => 'a'), 'LEFT_JOIN' => array(array('FROM' => array(ACL_ROLES_DATA_TABLE => 'r'), 'ON' => 'a.auth_role_id = r.role_id')), 'WHERE' => '(ao.auth_option_id = a.auth_option_id OR ao.auth_option_id = r.auth_option_id)
				AND ' . $db->sql_in_set('a.group_id', $group_id) . "\n\t\t\t\tAND ao.auth_option IN ('a_', 'm_')", 'GROUP_BY' => 'a.group_id');
        $sql = $db->sql_build_query('SELECT', $sql_ary);
        $result = $db->sql_query($sql);
        $groups = array();
        while ($row = $db->sql_fetchrow($result)) {
            $groups[] = (int) $row['group_id'];
        }
        $db->sql_freeresult($result);
        if (!sizeof($groups)) {
            return;
        }
        switch ($db->get_sql_layer()) {
            case 'mysqli':
            case 'mysql4':
                $sql = 'DELETE ' . ($db->get_sql_layer() === 'mysqli' || version_compare($db->sql_server_info(true), '4.1', '>=') ? 'z.*' : ZEBRA_TABLE) . '
					FROM ' . ZEBRA_TABLE . ' z, ' . USER_GROUP_TABLE . ' ug
					WHERE z.zebra_id = ug.user_id
						AND z.foe = 1
						AND ' . $db->sql_in_set('ug.group_id', $groups);
                $db->sql_query($sql);
                break;
            default:
                $sql = 'SELECT user_id
					FROM ' . USER_GROUP_TABLE . '
					WHERE ' . $db->sql_in_set('group_id', $groups);
                $result = $db->sql_query($sql);
                $users = array();
                while ($row = $db->sql_fetchrow($result)) {
                    $users[] = (int) $row['user_id'];
                }
                $db->sql_freeresult($result);
                if (sizeof($users)) {
                    $sql = 'DELETE FROM ' . ZEBRA_TABLE . '
						WHERE ' . $db->sql_in_set('zebra_id', $users) . '
							AND foe = 1';
                    $db->sql_query($sql);
                }
                break;
        }
        return;
    }
    // update foes for everyone
    $perms = array();
    foreach ($auth->acl_get_list(false, array('a_', 'm_'), false) as $forum_id => $forum_ary) {
        foreach ($forum_ary as $auth_option => $user_ary) {
            $perms = array_merge($perms, $user_ary);
        }
    }
    if (sizeof($perms)) {
        $sql = 'DELETE FROM ' . ZEBRA_TABLE . '
			WHERE ' . $db->sql_in_set('zebra_id', array_unique($perms)) . '
				AND foe = 1';
        $db->sql_query($sql);
    }
    unset($perms);
}
开发者ID:bruninoit,项目名称:phpbb,代码行数:79,代码来源:functions_admin.php

示例12: main

 public function main($id, $mode)
 {
     global $cache, $config, $db, $phpbb_log, $request, $template, $user;
     $this->cache = $cache;
     $this->config = $config;
     $this->db = $db;
     $this->log = $phpbb_log;
     $this->request = $request;
     $this->template = $template;
     $this->user = $user;
     $this->user->add_lang_ext('vse/dbtool', 'dbtool_acp');
     $this->tpl_name = 'acp_dbtool';
     $this->page_title = 'ACP_OPTIMIZE_REPAIR';
     // Check to make sure only MySQL users can proceed
     if ($this->db->get_sql_layer() != 'mysql4' && $this->db->get_sql_layer() != 'mysqli') {
         trigger_error($this->user->lang('WARNING_MYSQL'), E_USER_WARNING);
     }
     // Get vars from the form
     $type = $this->request->variable('type', '');
     $marked = $this->request->variable('mark', array(''));
     $disable_board = !$this->config['board_disable'] ? $this->request->variable('disable_board', 0) : 0;
     if ($this->request->is_set_post('submit')) {
         if (confirm_box(true)) {
             if (!sizeof($marked)) {
                 trigger_error($this->user->lang('TABLE_ERROR') . adm_back_link($this->u_action), E_USER_WARNING);
             }
             // Make sure Safe Mode is disabled during this script execution
             if (@ini_get('safe_mode') || @strtolower(ini_get('safe_mode')) == 'on') {
                 @ini_set('safe_mode', 'Off');
             }
             // Extend or disable script execution timeout (copied this from acp_database.php)
             @set_time_limit(1200);
             @set_time_limit(0);
             $tables = implode(', ', $marked);
             unset($marked);
             switch ($type) {
                 case 'optimize':
                     $optimize = $this->table_maintenance('OPTIMIZE TABLE', $tables, $disable_board);
                     $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'OPTIMIZE_LOG', time(), array($tables));
                     trigger_error($this->user->lang('OPTIMIZE_SUCCESS') . $optimize . adm_back_link($this->u_action));
                     break;
                 case 'repair':
                     $repair = $this->table_maintenance('REPAIR TABLE', $tables, $disable_board);
                     $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'REPAIR_LOG', time(), array($tables));
                     trigger_error($this->user->lang('REPAIR_SUCCESS') . $repair . adm_back_link($this->u_action));
                     break;
                 case 'check':
                     $check = $this->table_maintenance('CHECK TABLE', $tables, $disable_board);
                     trigger_error($this->user->lang('CHECK_SUCCESS') . $check . adm_back_link($this->u_action));
                     break;
             }
         } else {
             confirm_box(false, $this->user->lang('CONFIRM_OPERATION'), build_hidden_fields(array('submit' => 1, 'mode' => $mode, 'type' => $type, 'mark' => $marked, 'disable_board' => $disable_board)));
         }
     }
     // Generate Show Table Data
     $total_data_size = $total_data_free = 0;
     $tables = $this->db->sql_query('SHOW TABLE STATUS');
     while ($table = $this->db->sql_fetchrow($tables)) {
         /**
          * NOTE: Only MyISAM, InnoDB and Archive storage engines can be used
          * Check    supports MyISAM, InnoDB and Archive
          * Optimize supports MyISAM, InnoDB and (as of MySQL 5.0.16) Archive
          * Repair   supports MyISAM, Archive
          */
         $table['Engine'] = !empty($table['Type']) ? $table['Type'] : $table['Engine'];
         if (in_array(strtolower($table['Engine']), array('myisam', 'innodb', 'archive'))) {
             // Data_free should always be 0 for InnoDB tables
             if (strtolower($table['Engine']) == 'innodb') {
                 $table['Data_free'] = 0;
             }
             $data_size = $table['Data_length'] + $table['Index_length'];
             $total_data_size = $total_data_size + $data_size;
             $total_data_free = $total_data_free + $table['Data_free'];
             $this->template->assign_block_vars('tables', array('TABLE_NAME' => $table['Name'], 'TABLE_TYPE' => $table['Engine'], 'DATA_SIZE' => $this->file_size($data_size), 'DATA_FREE' => $this->file_size($table['Data_free']), 'S_OVERHEAD' => $table['Data_free'] ? true : false));
         }
     }
     $this->db->sql_freeresult($tables);
     $this->template->assign_vars(array('TOTAL_DATA_SIZE' => $this->file_size($total_data_size), 'TOTAL_DATA_FREE' => $this->file_size($total_data_free), 'U_ACTION' => $this->u_action));
 }
开发者ID:cracknel,项目名称:ubuntudanmark.dk,代码行数:80,代码来源:dbtool_module.php

示例13: display_lottery


//.........这里部分代码省略.........
         // Get current lottery_base_amount
         $current_lottery_jackpot = $points_values['lottery_jackpot'];
         $current_lottery_base_amount = $points_values['lottery_base_amount'];
         // Values for phpbb_points_config
         $lottery_enable = $this->request->variable('lottery_enable', 0);
         $lottery_multi_ticket_enable = $this->request->variable('lottery_multi_ticket_enable', 0);
         $display_lottery_stats = $this->request->variable('display_lottery_stats', 0);
         // Values for phpbb_points_values
         $lottery_base_amount = round($this->request->variable('lottery_base_amount', 0.0), 2);
         $lottery_draw_period = $this->request->variable('lottery_draw_period', 0) * 3600;
         $lottery_ticket_cost = round($this->request->variable('lottery_ticket_cost', 0.0), 2);
         $lottery_name = $this->request->variable('lottery_name', '', true);
         $lottery_chance = round($this->request->variable('lottery_chance', 0.0), 2);
         $lottery_max_tickets = round($this->request->variable('lottery_max_tickets', 0.0), 2);
         $lottery_pm_from = $this->request->variable('lottery_pm_from', 0);
         // Check entered lottery chance - has to be max 100
         if ($lottery_chance > 100) {
             trigger_error($this->user->lang['LOTTERY_CHANCE_ERROR'] . adm_back_link($this->u_action), E_USER_WARNING);
         }
         // If base amount increases, increase jackpot
         if ($lottery_base_amount > $current_lottery_base_amount) {
             $this->functions_points->set_points_values('lottery_jackpot', $current_lottery_jackpot . '+' . $lottery_base_amount . '-' . $current_lottery_base_amount);
             //set_points_values('lottery_base_amount', $lottery_base_amount);
         }
         // Update values in phpbb_points_config
         if ($lottery_enable != $points_config['lottery_enable']) {
             $this->functions_points->set_points_config('lottery_enable', $lottery_enable);
         }
         if ($lottery_multi_ticket_enable != $points_config['lottery_multi_ticket_enable']) {
             $this->functions_points->set_points_config('lottery_multi_ticket_enable', $lottery_multi_ticket_enable);
         }
         if ($display_lottery_stats != $points_config['display_lottery_stats']) {
             $this->functions_points->set_points_config('display_lottery_stats', $display_lottery_stats);
         }
         // Update values in phpbb_points_values
         $this->functions_points->set_points_values('lottery_base_amount', $lottery_base_amount);
         // Check if 0 is entered. Must be > 0
         if ($lottery_draw_period < 0) {
             trigger_error($this->user->lang['LOTTERY_DRAW_PERIOD_SHORT'] . adm_back_link($this->u_action), E_USER_WARNING);
         } else {
             $this->functions_points->set_points_values('lottery_draw_period', $lottery_draw_period);
         }
         $this->functions_points->set_points_values('lottery_ticket_cost', $lottery_ticket_cost);
         $this->functions_points->set_points_values('lottery_name', "'" . $this->db->sql_escape($lottery_name) . "'");
         $this->functions_points->set_points_values('lottery_chance', $lottery_chance);
         $this->functions_points->set_points_values('lottery_max_tickets', $lottery_max_tickets);
         // Check, if the entered user_id really exists
         $sql_array = array('SELECT' => 'user_id', 'FROM' => array(USERS_TABLE => 'u'), 'WHERE' => 'user_id = ' . (int) $lottery_pm_from);
         $sql = $this->db->sql_build_query('SELECT', $sql_array);
         $result = $this->db->sql_query($sql);
         $id_exist = $this->db->sql_fetchfield('user_id');
         $this->db->sql_freeresult($result);
         if ($lottery_pm_from == 0) {
             $this->functions_points->set_points_values('lottery_pm_from', $lottery_pm_from);
         } else {
             if (empty($id_exist)) {
                 trigger_error($this->user->lang['NO_USER'] . adm_back_link($this->u_action), E_USER_WARNING);
             } else {
                 $this->functions_points->set_points_values('lottery_pm_from', $lottery_pm_from);
             }
         }
         // Set last draw time to current time, if draw period activated
         if ($points_values['lottery_last_draw_time'] == 0 && $points_values['lottery_draw_period'] != 0) {
             $this->functions_points->set_points_values('lottery_last_draw_time', time());
         }
         // Set last draw time to 0, if draw period deactivated
         if ($points_values['lottery_draw_period'] == 0) {
             $this->functions_points->set_points_values('lottery_last_draw_time', 0);
         }
         // Add logs
         $this->log->add('admin', $this->user->data['user_id'], $this->user->data['user_ip'], 'LOG_MOD_POINTS_LOTTERY');
         trigger_error($this->user->lang['CONFIG_UPDATED'] . adm_back_link($this->u_action));
     }
     // Delete lottery history
     $reset_lottery_history = isset($_POST['action_lottery_history']) ? true : false;
     if ($reset_lottery_history) {
         if (confirm_box(true)) {
             if (!$this->auth->acl_get('a_points')) {
                 trigger_error($this->user->lang['NO_AUTH_OPERATION'] . adm_back_link($this->u_action), E_USER_WARNING);
             }
             $sql_layer = $this->db->get_sql_layer();
             switch ($sql_layer) {
                 case 'sqlite':
                 case 'firebird':
                     $this->db->sql_query('DELETE FROM ' . $this->table_points_lottery_history);
                     break;
                 default:
                     $this->db->sql_query('TRUNCATE TABLE ' . $this->table_points_lottery_history);
                     break;
             }
             $this->log->add('admin', $this->user->data['user_id'], $this->user->data['user_ip'], 'LOG_RESYNC_LOTTERY_HISTORY');
             trigger_error($this->user->lang['LOG_RESYNC_LOTTERY_HISTORY'] . adm_back_link($this->u_action));
         } else {
             $s_hidden_fields = build_hidden_fields(array('action_lottery_history' => true));
             // Display mode
             confirm_box(false, $this->user->lang['RESYNC_LOTTERY_HISTORY_CONFIRM'], $s_hidden_fields);
         }
     }
     $this->template->assign_vars(array('LOTTERY_BASE_AMOUNT' => $points_values['lottery_base_amount'], 'LOTTERY_DRAW_PERIOD' => $points_values['lottery_draw_period'] == 0 ? $points_values['lottery_draw_period'] : $points_values['lottery_draw_period'] / 3600, 'LOTTERY_TICKET_COST' => $points_values['lottery_ticket_cost'], 'LOTTERY_CASH_NAME' => $this->config['points_name'], 'LOTTERY_NAME' => $points_values['lottery_name'], 'LOTTERY_CHANCE' => $points_values['lottery_chance'], 'LOTTERY_MAX_TICKETS' => $points_values['lottery_max_tickets'], 'LOTTERY_PM_FROM' => $points_values['lottery_pm_from'], 'S_LOTTERY_ENABLE' => $points_config['lottery_enable'] ? true : false, 'S_LOTTERY_MULTI_TICKET_ENABLE' => $points_config['lottery_multi_ticket_enable'] ? true : false, 'S_DISPLAY_LOTTERY_STATS' => $points_config['display_lottery_stats'] ? true : false, 'S_LOTTERY' => true, 'U_ACTION' => $this->u_action));
 }
开发者ID:rampmaster,项目名称:Ultimate-Points-Extension,代码行数:101,代码来源:admin_controller.php

示例14: config_generate

    /**
     * Generates content of sphinx.conf
     *
     * @return bool True if sphinx.conf content is correctly generated, false otherwise
     */
    protected function config_generate()
    {
        // Check if Database is supported by Sphinx
        if ($this->db->get_sql_layer() == 'mysql' || $this->db->get_sql_layer() == 'mysql4' || $this->db->get_sql_layer() == 'mysqli') {
            $this->dbtype = 'mysql';
        } else {
            if ($this->db->get_sql_layer() == 'postgres') {
                $this->dbtype = 'pgsql';
            } else {
                $this->config_file_data = $this->user->lang('FULLTEXT_SPHINX_WRONG_DATABASE');
                return false;
            }
        }
        // Check if directory paths have been filled
        if (!$this->config['fulltext_sphinx_data_path']) {
            $this->config_file_data = $this->user->lang('FULLTEXT_SPHINX_NO_CONFIG_DATA');
            return false;
        }
        include $this->phpbb_root_path . 'config.' . $this->php_ext;
        /* Now that we're sure everything was entered correctly,
        		generate a config for the index. We use a config value
        		fulltext_sphinx_id for this, as it should be unique. */
        $config_object = new \phpbb\search\sphinx\config($this->config_file_data);
        $config_data = array('source source_phpbb_' . $this->id . '_main' => array(array('type', $this->dbtype . ' # mysql or pgsql'), array('sql_host', $dbhost . ' # SQL server host sphinx connects to'), array('sql_user', '[dbuser]'), array('sql_pass', '[dbpassword]'), array('sql_db', $dbname), array('sql_port', $dbport . ' # optional, default is 3306 for mysql and 5432 for pgsql'), array('sql_query_pre', 'SET NAMES \'utf8\''), array('sql_query_pre', 'UPDATE ' . SPHINX_TABLE . ' SET max_doc_id = (SELECT MAX(post_id) FROM ' . POSTS_TABLE . ') WHERE counter_id = 1'), array('sql_query_range', 'SELECT MIN(post_id), MAX(post_id) FROM ' . POSTS_TABLE . ''), array('sql_range_step', '5000'), array('sql_query', 'SELECT
						p.post_id AS id,
						p.forum_id,
						p.topic_id,
						p.poster_id,
						p.post_visibility,
						CASE WHEN p.post_id = t.topic_first_post_id THEN 1 ELSE 0 END as topic_first_post,
						p.post_time,
						p.post_subject,
						p.post_subject as title,
						p.post_text as data,
						t.topic_last_post_time,
						0 as deleted
					FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t
					WHERE
						p.topic_id = t.topic_id
						AND p.post_id >= $start AND p.post_id <= $end'), array('sql_query_post', ''), array('sql_query_post_index', 'UPDATE ' . SPHINX_TABLE . ' SET max_doc_id = $maxid WHERE counter_id = 1'), array('sql_query_info', 'SELECT * FROM ' . POSTS_TABLE . ' WHERE post_id = $id'), array('sql_attr_uint', 'forum_id'), array('sql_attr_uint', 'topic_id'), array('sql_attr_uint', 'poster_id'), array('sql_attr_uint', 'post_visibility'), array('sql_attr_bool', 'topic_first_post'), array('sql_attr_bool', 'deleted'), array('sql_attr_timestamp', 'post_time'), array('sql_attr_timestamp', 'topic_last_post_time'), array('sql_attr_string', 'post_subject')), 'source source_phpbb_' . $this->id . '_delta : source_phpbb_' . $this->id . '_main' => array(array('sql_query_pre', ''), array('sql_query_range', ''), array('sql_range_step', ''), array('sql_query', 'SELECT
						p.post_id AS id,
						p.forum_id,
						p.topic_id,
						p.poster_id,
						p.post_visibility,
						CASE WHEN p.post_id = t.topic_first_post_id THEN 1 ELSE 0 END as topic_first_post,
						p.post_time,
						p.post_subject,
						p.post_subject as title,
						p.post_text as data,
						t.topic_last_post_time,
						0 as deleted
					FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t
					WHERE
						p.topic_id = t.topic_id
						AND p.post_id >=  ( SELECT max_doc_id FROM ' . SPHINX_TABLE . ' WHERE counter_id=1 )')), 'index index_phpbb_' . $this->id . '_main' => array(array('path', $this->config['fulltext_sphinx_data_path'] . 'index_phpbb_' . $this->id . '_main'), array('source', 'source_phpbb_' . $this->id . '_main'), array('docinfo', 'extern'), array('morphology', 'none'), array('stopwords', ''), array('min_word_len', '2'), array('charset_type', 'utf-8'), array('charset_table', 'U+FF10..U+FF19->0..9, 0..9, U+FF41..U+FF5A->a..z, U+FF21..U+FF3A->a..z, A..Z->a..z, a..z, U+0149, U+017F, U+0138, U+00DF, U+00FF, U+00C0..U+00D6->U+00E0..U+00F6, U+00E0..U+00F6, U+00D8..U+00DE->U+00F8..U+00FE, U+00F8..U+00FE, U+0100->U+0101, U+0101, U+0102->U+0103, U+0103, U+0104->U+0105, U+0105, U+0106->U+0107, U+0107, U+0108->U+0109, U+0109, U+010A->U+010B, U+010B, U+010C->U+010D, U+010D, U+010E->U+010F, U+010F, U+0110->U+0111, U+0111, U+0112->U+0113, U+0113, U+0114->U+0115, U+0115, U+0116->U+0117, U+0117, U+0118->U+0119, U+0119, U+011A->U+011B, U+011B, U+011C->U+011D, U+011D, U+011E->U+011F, U+011F, U+0130->U+0131, U+0131, U+0132->U+0133, U+0133, U+0134->U+0135, U+0135, U+0136->U+0137, U+0137, U+0139->U+013A, U+013A, U+013B->U+013C, U+013C, U+013D->U+013E, U+013E, U+013F->U+0140, U+0140, U+0141->U+0142, U+0142, U+0143->U+0144, U+0144, U+0145->U+0146, U+0146, U+0147->U+0148, U+0148, U+014A->U+014B, U+014B, U+014C->U+014D, U+014D, U+014E->U+014F, U+014F, U+0150->U+0151, U+0151, U+0152->U+0153, U+0153, U+0154->U+0155, U+0155, U+0156->U+0157, U+0157, U+0158->U+0159, U+0159, U+015A->U+015B, U+015B, U+015C->U+015D, U+015D, U+015E->U+015F, U+015F, U+0160->U+0161, U+0161, U+0162->U+0163, U+0163, U+0164->U+0165, U+0165, U+0166->U+0167, U+0167, U+0168->U+0169, U+0169, U+016A->U+016B, U+016B, U+016C->U+016D, U+016D, U+016E->U+016F, U+016F, U+0170->U+0171, U+0171, U+0172->U+0173, U+0173, U+0174->U+0175, U+0175, U+0176->U+0177, U+0177, U+0178->U+00FF, U+00FF, U+0179->U+017A, U+017A, U+017B->U+017C, U+017C, U+017D->U+017E, U+017E, U+0410..U+042F->U+0430..U+044F, U+0430..U+044F, U+4E00..U+9FFF'), array('min_prefix_len', '0'), array('min_infix_len', '0')), 'index index_phpbb_' . $this->id . '_delta : index_phpbb_' . $this->id . '_main' => array(array('path', $this->config['fulltext_sphinx_data_path'] . 'index_phpbb_' . $this->id . '_delta'), array('source', 'source_phpbb_' . $this->id . '_delta')), 'indexer' => array(array('mem_limit', $this->config['fulltext_sphinx_indexer_mem_limit'] . 'M')), 'searchd' => array(array('compat_sphinxql_magics', '0'), array('listen', ($this->config['fulltext_sphinx_host'] ? $this->config['fulltext_sphinx_host'] : 'localhost') . ':' . ($this->config['fulltext_sphinx_port'] ? $this->config['fulltext_sphinx_port'] : '9312')), array('log', $this->config['fulltext_sphinx_data_path'] . 'log/searchd.log'), array('query_log', $this->config['fulltext_sphinx_data_path'] . 'log/sphinx-query.log'), array('read_timeout', '5'), array('max_children', '30'), array('pid_file', $this->config['fulltext_sphinx_data_path'] . 'searchd.pid'), array('max_matches', (string) SPHINX_MAX_MATCHES), array('binlog_path', $this->config['fulltext_sphinx_data_path'])));
        $non_unique = array('sql_query_pre' => true, 'sql_attr_uint' => true, 'sql_attr_timestamp' => true, 'sql_attr_str2ordinal' => true, 'sql_attr_bool' => true);
        $delete = array('sql_group_column' => true, 'sql_date_column' => true, 'sql_str2ordinal_column' => true);
        foreach ($config_data as $section_name => $section_data) {
            $section = $config_object->get_section_by_name($section_name);
            if (!$section) {
                $section = $config_object->add_section($section_name);
            }
            foreach ($delete as $key => $void) {
                $section->delete_variables_by_name($key);
            }
            foreach ($non_unique as $key => $void) {
                $section->delete_variables_by_name($key);
            }
            foreach ($section_data as $entry) {
                $key = $entry[0];
                $value = $entry[1];
                if (!isset($non_unique[$key])) {
                    $variable = $section->get_variable_by_name($key);
                    if (!$variable) {
                        $variable = $section->create_variable($key, $value);
                    } else {
                        $variable->set_value($value);
                    }
                } else {
                    $variable = $section->create_variable($key, $value);
                }
            }
        }
        $this->config_file_data = $config_object->get_data();
        return true;
    }
开发者ID:Voxel37,项目名称:phpbb,代码行数:92,代码来源:fulltext_sphinx.php

示例15: is_mysql

 /**
  * Check if the database layer is MySQL4 or later
  *
  * @return	bool	True is MySQL4 or later, false otherwise
  * @access	protected
  */
 protected function is_mysql()
 {
     return $this->db->get_sql_layer() == 'mysql4' || $this->db->get_sql_layer() == 'mysqli';
 }
开发者ID:sasha2567,项目名称:rabota,代码行数:10,代码来源:similar_topics.php


注:本文中的phpbb\db\driver\driver_interface::get_sql_layer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。