diff options
| author | Nathaniel Guse <nathaniel.guse@gmail.com> | 2013-03-04 13:25:53 -0600 |
|---|---|---|
| committer | Nathaniel Guse <nathaniel.guse@gmail.com> | 2013-03-04 13:25:53 -0600 |
| commit | 029f096411f620f2066608cd0a1e8711f88da9e1 (patch) | |
| tree | c470b9a0ebccca8cc3a6d6db6e1baa30556801b0 /phpBB/includes/db | |
| parent | 5695097b8a691d2c18615e59420ed383b6a34af3 (diff) | |
| parent | 19c3917de985d04f994bc22bcec1e814aa2e207c (diff) | |
| download | forums-029f096411f620f2066608cd0a1e8711f88da9e1.tar forums-029f096411f620f2066608cd0a1e8711f88da9e1.tar.gz forums-029f096411f620f2066608cd0a1e8711f88da9e1.tar.bz2 forums-029f096411f620f2066608cd0a1e8711f88da9e1.tar.xz forums-029f096411f620f2066608cd0a1e8711f88da9e1.zip | |
Merge remote-tracking branch 'remotes/nickv/ticket/10411-2' into develop
# By Joas Schilling
# Via Joas Schilling
* remotes/nickv/ticket/10411-2: (33 commits)
[ticket/10411] Fix call to function on non-object $db->...()
[ticket/10411] Remove ajax delete, so the page is refreshed
[ticket/10411] Update schema file with new table and remove the column
[ticket/10411] Add unit tests for move() with values >1
[ticket/10411] Add migrations file for teampage table
[ticket/10411] Revert database_update.php changes from for easier update
[ticket/10411] Add maxlength to category name input field
[ticket/10411] Test for thrown exceptions when group does not exist
[ticket/10411] Catch exceptions from grouppositions
[ticket/10411] Throw exceptions instead of using trigger_error()
[ticket/10411] Add return values to add/delete function
[ticket/10411] Add return value to move functions
[ticket/10411] Fix typehinting and change private to protected
[ticket/10411] Use template loops instead of defining the html in php files
[ticket/10411] Ensure we only get services that do exist
[ticket/10411] Add a comment why we left join the group table
[ticket/10411] Rename template variable CUR_ to CURRENT_
[ticket/10411] Move globals to the top and use array for cache destroy
[ticket/10411] Use new ajax callback name row_up/row_down
[ticket/10411] Fix logic error when editing/creating a group
...
Diffstat (limited to 'phpBB/includes/db')
| -rw-r--r-- | phpBB/includes/db/migration/data/310/teampage.php | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/phpBB/includes/db/migration/data/310/teampage.php b/phpBB/includes/db/migration/data/310/teampage.php new file mode 100644 index 0000000000..4e77da17b7 --- /dev/null +++ b/phpBB/includes/db/migration/data/310/teampage.php @@ -0,0 +1,104 @@ +<?php +/** +* +* @package migration +* @copyright (c) 2012 phpBB Group +* @license http://opensource.org/licenses/gpl-license.php GNU Public License v2 +* +*/ + +class phpbb_db_migration_data_310_teampage extends phpbb_db_migration +{ + public function effectively_installed() + { + return $this->db_tools->sql_table_exists($this->table_prefix . 'teampage'); + } + + static public function depends_on() + { + return array('phpbb_db_migration_data_310_dev'); + } + + public function update_schema() + { + return array( + 'add_tables' => array( + $this->table_prefix . 'teampage' => array( + 'COLUMNS' => array( + 'teampage_id' => array('UINT', NULL, 'auto_increment'), + 'group_id' => array('UINT', 0), + 'teampage_name' => array('VCHAR_UNI:255', ''), + 'teampage_position' => array('UINT', 0), + 'teampage_parent' => array('UINT', 0), + ), + 'PRIMARY_KEY' => 'teampage_id', + ), + ), + 'drop_columns' => array( + $this->table_prefix . 'groups' => array( + 'group_teampage', + ), + ), + ); + } + + public function revert_schema() + { + return array( + 'drop_tables' => array( + $this->table_prefix . 'teampage', + ), + 'add_columns' => array( + $this->table_prefix . 'groups' => array( + 'group_teampage' => array('UINT', 0, 'after' => 'group_legend'), + ), + ), + ); + } + + public function update_data() + { + return array( + array('custom', array(array($this, 'add_groups_teampage'))), + ); + } + + public function add_groups_teampage() + { + $sql = 'SELECT teampage_id + FROM ' . TEAMPAGE_TABLE; + $result = $this->db->sql_query_limit($sql, 1); + $added_groups_teampage = (bool) $this->db->sql_fetchfield('teampage_id'); + $this->db->sql_freeresult($result); + + if (!$added_groups_teampage) + { + $sql = 'SELECT * + FROM ' . GROUPS_TABLE . ' + WHERE group_type = ' . GROUP_SPECIAL . " + AND (group_name = 'ADMINISTRATORS' + OR group_name = 'GLOBAL_MODERATORS') + ORDER BY group_name ASC"; + $result = $this->db->sql_query($sql); + + $teampage_entries = array(); + while ($row = $this->db->sql_fetchrow($result)) + { + $teampage_entries[] = array( + 'group_id' => (int) $row['group_id'], + 'teampage_name' => '', + 'teampage_position' => sizeof($teampage_entries) + 1, + 'teampage_parent' => 0, + ); + } + $this->db->sql_freeresult($result); + + if (sizeof($teampage_entries)) + { + $this->db->sql_multi_insert(TEAMPAGE_TABLE, $teampage_entries); + } + unset($teampage_entries); + } + + } +} |
