From cbf87fd6ef901973087046f9a2cb7dc8fd937bcf Mon Sep 17 00:00:00 2001 From: loremipsum Date: Tue, 22 Sep 2015 09:16:37 +0200 Subject: [PATCH 1/7] Changement for lib_doctrine replace parent ='0' by parent is null --- upload/framework/class.frontend.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/upload/framework/class.frontend.php b/upload/framework/class.frontend.php index 8f1f0463..671c14a9 100644 --- a/upload/framework/class.frontend.php +++ b/upload/framework/class.frontend.php @@ -107,7 +107,7 @@ function page_select() $table_p = TABLE_PREFIX . 'pages'; $table_s = TABLE_PREFIX . 'sections'; $now = time(); - $query_default = "SELECT `p`.`page_id`, `link` FROM `$table_p` AS `p` INNER JOIN `$table_s` USING(`page_id`) WHERE `parent` = '0' + $query_default = "SELECT `p`.`page_id`, `link` FROM `$table_p` AS `p` INNER JOIN `$table_s` USING(`page_id`) WHERE `parent` is null AND `visibility` = 'public' AND (($now>=`publ_start` OR `publ_start`=0) AND ($now<=`publ_end` OR `publ_end`=0)) $this->sql_where_language ORDER BY `p`.`position` ASC LIMIT 1"; $get_default = $database->query( $query_default ); $default_num_rows = $get_default->numRows(); @@ -669,4 +669,4 @@ private function __find_files( &$aFilenames, &$aBasename, &$aStorrage, &$exeptio } } -?> \ No newline at end of file +?> From 7c47aa9c4928f56c10f1b9f2183f534e80215bad Mon Sep 17 00:00:00 2001 From: loremipsum Date: Tue, 22 Sep 2015 09:20:51 +0200 Subject: [PATCH 2/7] Changement for lib_doctrine http://forum.lepton-cms.org/viewtopic.php?f=29&t=2586 --- upload/admins/pages/index.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/upload/admins/pages/index.php b/upload/admins/pages/index.php index c1873310..2d8b6c53 100644 --- a/upload/admins/pages/index.php +++ b/upload/admins/pages/index.php @@ -245,9 +245,15 @@ function parent_list($parent) { global $admin, $database, $template, $field_set; + if(is_null($parent)){ + $parent = 'is null'; + }else{ + $parent = ' = ' . $parent; + } + $admin_user_id = $admin->get_user_id(); - $query = "SELECT `page_id`,`admin_groups`,`admin_users`,`menu_title`,`page_title`,`visibility`,`parent`,`level`,`viewing_groups`,`viewing_users` FROM ".TABLE_PREFIX."pages WHERE parent = '$parent' AND visibility!='deleted' ORDER BY position ASC"; + $query = "SELECT `page_id`,`admin_groups`,`admin_users`,`menu_title`,`page_title`,`visibility`,`parent`,`level`,`viewing_groups`,`viewing_users` FROM ".TABLE_PREFIX."pages WHERE parent $parent AND visibility!='deleted' ORDER BY position ASC"; $get_pages = $database->query($query); while($page = $get_pages->fetchRow( MYSQL_ASSOC )) { if($admin->page_is_visible($page)==false) @@ -684,4 +690,4 @@ function handle_search () { } // ----- BlackBird Search ID Hack Part II ---- -?> \ No newline at end of file +?> From 6b08eb9d8328d5a055c818b02a21ab9b1a041224 Mon Sep 17 00:00:00 2001 From: loremipsum Date: Tue, 22 Sep 2015 09:25:01 +0200 Subject: [PATCH 3/7] Changement for lib_doctrine http://forum.lepton-cms.org/viewtopic.php?f=29&t=2586 --- upload/admins/pages/index.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/upload/admins/pages/index.php b/upload/admins/pages/index.php index 2d8b6c53..055f628c 100644 --- a/upload/admins/pages/index.php +++ b/upload/admins/pages/index.php @@ -166,7 +166,7 @@ ); $template->parse('page_list2', 'page_list_block2', true); } -parent_list(0); +parent_list(null); // Explode module permissions $module_permissions = $_SESSION['MODULE_PERMISSIONS']; @@ -308,7 +308,12 @@ function url_encode($string) { return str_replace($entities, $replacements, rawurlencode($string)); } -function make_list($parent = 0, &$editable_pages = 0) { +function make_list($parent = null, &$editable_pages = 0) { + if(is_null($parent)){ + $parent_cond = 'is null'; + }else{ + $parent_cond = ' = ' . $parent; + } // Get objects and vars from outside this function global $admin, $database, $TEXT, $MESSAGE, $HEADING, $par; $template = new Template(THEME_PATH.'/templates'); @@ -339,7 +344,7 @@ function make_list($parent = 0, &$editable_pages = 0) { } // Get page list from database - $sql = 'SELECT * FROM `'.TABLE_PREFIX.'pages` WHERE `parent` = '.$parent.' '; + $sql = 'SELECT * FROM `'.TABLE_PREFIX.'pages` WHERE `parent` '.$parent_cond.' '; $sql .= (PAGE_TRASH != 'inline') ? 'AND `visibility` != \'deleted\' ' : ' '; $sql .= 'ORDER BY `position` ASC'; $get_pages = $database->query($sql); @@ -566,7 +571,7 @@ function print_list_page(){ $par['num_subs'] = 1; $editable_pages = 0; - $loop = make_list(0, $editable_pages); + $loop = make_list(null, $editable_pages); $template->set_var('PAGES_LIST_LOOP', $loop); $template->parse('pages_list', 'page_list_block'); $template->parse('main', 'main_block'); From 69a147467d967a5567fe56cff5713b1c3993ad6b Mon Sep 17 00:00:00 2001 From: loremipsum Date: Tue, 22 Sep 2015 09:37:29 +0200 Subject: [PATCH 4/7] Changement for lib_doctrine http://forum.lepton-cms.org/viewtopic.php?f=29&t=2586 --- upload/install/save.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/upload/install/save.php b/upload/install/save.php index 3bbbe38f..6b7a09a5 100644 --- a/upload/install/save.php +++ b/upload/install/save.php @@ -546,8 +546,8 @@ function install_createGUID() // Try installing tables // Pages table $pages = 'CREATE TABLE `'.TABLE_PREFIX.'pages` ( `page_id` INT NOT NULL auto_increment,' - . ' `parent` INT NOT NULL DEFAULT \'0\',' - . ' `root_parent` INT NOT NULL DEFAULT \'0\',' + . ' `parent` INT DEFAULT NULL,' + . ' `root_parent` INT DEFAULT NULL,' . ' `level` INT NOT NULL DEFAULT \'0\',' . ' `link` TEXT NOT NULL,' . ' `target` VARCHAR( 7 ) NOT NULL DEFAULT \'\' ,' @@ -576,7 +576,7 @@ function install_createGUID() // Sections table $sections = 'CREATE TABLE `'.TABLE_PREFIX.'sections` ( `section_id` INT NOT NULL auto_increment,' - . ' `page_id` INT NOT NULL DEFAULT \'0\',' + . ' `page_id` INT DEFAULT NULL,' . ' `position` INT NOT NULL DEFAULT \'0\',' . ' `module` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' . ' `block` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' @@ -656,7 +656,7 @@ function install_createGUID() // Users table $users = 'CREATE TABLE `'.TABLE_PREFIX.'users` ( `user_id` INT NOT NULL auto_increment,' - . ' `group_id` INT NOT NULL DEFAULT \'0\',' + . ' `group_id` INT DEFAULT NULL,' . ' `groups_id` VARCHAR( 255 ) NOT NULL DEFAULT \'0\',' . ' `active` INT NOT NULL DEFAULT \'0\',' . ' `statusflags` INT NOT NULL DEFAULT \'6\',' @@ -1004,4 +1004,4 @@ function install_createGUID() // redirect to the backend login header("Location: ../install/support.php" ); -?> \ No newline at end of file +?> From a04db229cf28fd2782ed1a4026a3c466cdea4b3a Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 24 Sep 2015 12:18:53 +0200 Subject: [PATCH 5/7] [Page] Add foreign key for pages, sections and users --- upload/install/save.php | 136 ++++++++++++++++++++++------------------ 1 file changed, 74 insertions(+), 62 deletions(-) diff --git a/upload/install/save.php b/upload/install/save.php index 6b7a09a5..380666bd 100644 --- a/upload/install/save.php +++ b/upload/install/save.php @@ -545,46 +545,54 @@ function install_createGUID() // Try installing tables // Pages table - $pages = 'CREATE TABLE `'.TABLE_PREFIX.'pages` ( `page_id` INT NOT NULL auto_increment,' - . ' `parent` INT DEFAULT NULL,' - . ' `root_parent` INT DEFAULT NULL,' - . ' `level` INT NOT NULL DEFAULT \'0\',' - . ' `link` TEXT NOT NULL,' - . ' `target` VARCHAR( 7 ) NOT NULL DEFAULT \'\' ,' - . ' `page_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `menu_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `description` TEXT NOT NULL ,' - . ' `keywords` TEXT NOT NULL ,' - . ' `page_trail` TEXT NOT NULL ,' - . ' `template` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `visibility` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `position` INT NOT NULL DEFAULT \'0\',' - . ' `menu` INT NOT NULL DEFAULT \'0\',' - . ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'\' ,' - . ' `page_code` VARCHAR( 100 ) NOT NULL DEFAULT \'\' ,' - . ' `searching` INT NOT NULL DEFAULT \'0\',' - . ' `admin_groups` TEXT NOT NULL ,' - . ' `admin_users` TEXT NOT NULL ,' - . ' `viewing_groups` TEXT NOT NULL ,' - . ' `viewing_users` TEXT NOT NULL ,' - . ' `modified_when` INT NOT NULL DEFAULT \'0\',' - . ' `modified_by` INT NOT NULL DEFAULT \'0\',' - . ' PRIMARY KEY ( `page_id` ) ' - . ' )'; + $pages = 'CREATE TABLE `' . TABLE_PREFIX . '_pages` (' + . ' `page_id` int(11) NOT NULL AUTO_INCREMENT,' + . ' `parent` int(11) DEFAULT NULL,' + . ' `root_parent` int(11) DEFAULT NULL,' + . ' `level` int(11) NOT NULL,' + . ' `link` text NOT NULL,' + . ' `target` varchar(7) NOT NULL DEFAULT \'\',' + . ' `page_title` varchar(255) NOT NULL DEFAULT \'\',' + . ' `menu_title` varchar(255) NOT NULL DEFAULT \'\',' + . ' `description` text NOT NULL,' + . ' `keywords` text NOT NULL,' + . ' `page_trail` text NOT NULL,' + . ' `template` varchar(255) NOT NULL DEFAULT \'\',' + . ' `visibility` varchar(255) NOT NULL DEFAULT \'\',' + . ' `position` int(11) NOT NULL DEFAULT \'0\',' + . ' `menu` int(11) NOT NULL DEFAULT \'0\',' + . ' `language` varchar(5) NOT NULL DEFAULT \'\',' + . ' `page_code` varchar(100) NOT NULL DEFAULT \'\',' + . ' `searching` int(11) NOT NULL DEFAULT \'0\',' + . ' `admin_groups` text NOT NULL,' + . ' `admin_users` text NOT NULL,' + . ' `viewing_groups` text NOT NULL,' + . ' `viewing_users` text NOT NULL,' + . ' `modified_when` int(11) NOT NULL DEFAULT \'0\',' + . ' `modified_by` int(11) NOT NULL DEFAULT \'0\',' + . ' PRIMARY KEY (`page_id`),' + . ' KEY `IDX_33B3B0A01F348C8E` (`root_parent`),' + . ' KEY `IDX_33B3B0A03D8E604F` (`parent`),' + . ' CONSTRAINT `FK_33B3B0A01F348C8E` FOREIGN KEY (`root_parent`) REFERENCES `lep_pages` (`page_id`),' + . ' CONSTRAINT `FK_33B3B0A03D8E604F` FOREIGN KEY (`parent`) REFERENCES `lep_pages` (`page_id`)' + . ')ENGINE=InnoDB AUTO_INCREMENT=137 DEFAULT CHARSET=utf8'; $database->query($pages); if ($database->is_error()) trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); // Sections table - $sections = 'CREATE TABLE `'.TABLE_PREFIX.'sections` ( `section_id` INT NOT NULL auto_increment,' - . ' `page_id` INT DEFAULT NULL,' - . ' `position` INT NOT NULL DEFAULT \'0\',' - . ' `module` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `block` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `publ_start` VARCHAR( 255 ) NOT NULL DEFAULT \'0\' ,' - . ' `publ_end` VARCHAR( 255 ) NOT NULL DEFAULT \'0\' ,' - . ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'no name\' ,' - . ' PRIMARY KEY ( `section_id` ) ' - . ' )'; + $sections = 'CREATE TABLE `' . TABLE_PREFIX . 'sections` (' + . ' `section_id` int(11) NOT NULL AUTO_INCREMENT,' + . ' `page_id` int(11) DEFAULT NULL,' + . ' `position` int(11) NOT NULL DEFAULT \'0\',' + . ' `module` varchar(255) NOT NULL DEFAULT \'\',' + . ' `block` varchar(255) NOT NULL DEFAULT \'\',' + . ' `publ_start` varchar(255) NOT NULL DEFAULT \'0\',' + . ' `publ_end` varchar(255) NOT NULL DEFAULT \'0\',' + . ' `name` varchar(255) NOT NULL DEFAULT \'no name\',' + . ' PRIMARY KEY (`section_id`),' + . ' KEY `IDX_62184A52C4663E4` (`page_id`),' + . ' CONSTRAINT `FK_62184A52C4663E4` FOREIGN KEY (`page_id`) REFERENCES `lep_pages` (`page_id`)' + . ')ENGINE=InnoDB AUTO_INCREMENT=246 DEFAULT CHARSET=utf8'; $database->query($sections); if ($database->is_error()) trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); @@ -655,36 +663,40 @@ function install_createGUID() if ($database->is_error()) trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); // Users table - $users = 'CREATE TABLE `'.TABLE_PREFIX.'users` ( `user_id` INT NOT NULL auto_increment,' - . ' `group_id` INT DEFAULT NULL,' - . ' `groups_id` VARCHAR( 255 ) NOT NULL DEFAULT \'0\',' - . ' `active` INT NOT NULL DEFAULT \'0\',' - . ' `statusflags` INT NOT NULL DEFAULT \'6\',' - . ' `username` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `password` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `last_reset` INT NOT NULL DEFAULT \'0\',' - . ' `display_name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `email` TEXT NOT NULL ,' - . " `timezone_string` VARCHAR( 50 ) NOT NULL DEFAULT '$default_timezone_string'," - . ' `date_format` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `time_format` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'' .$default_language .'\' ,' - . ' `home_folder` TEXT NOT NULL ,' - . ' `login_when` INT NOT NULL DEFAULT \'0\',' - . ' `login_ip` VARCHAR( 15 ) NOT NULL DEFAULT \'\' ,' - . ' PRIMARY KEY ( `user_id` ) ' - . ' )'; + $users = 'CREATE TABLE `' . TABLE_PREFIX . 'users` (' + . ' `user_id` int(11) NOT NULL AUTO_INCREMENT,' + . ' `group_id` int(11) DEFAULT NULL,' + . ' `groups_id` varchar(255) NOT NULL DEFAULT \'0\',' + . ' `active` int(11) NOT NULL DEFAULT \'0\',' + . ' `statusflags` int(11) NOT NULL DEFAULT \'6\',' + . ' `username` varchar(255) NOT NULL DEFAULT \'\',' + . ' `password` varchar(255) NOT NULL DEFAULT \'\',' + . ' `last_reset` int(11) NOT NULL DEFAULT \'0\',' + . ' `display_name` varchar(255) NOT NULL DEFAULT \'\',' + . ' `email` text NOT NULL,' + . ' `timezone_string` varchar(50) NOT NULL DEFAULT \'' . $default_timezone_string . '\',' + . ' `date_format` varchar(255) NOT NULL DEFAULT \'\',' + . ' `time_format` varchar(255) NOT NULL DEFAULT \'\',' + . ' `language` varchar(5) NOT NULL DEFAULT \'' .$default_language .'\',' + . ' `home_folder` text NOT NULL,' + . ' `login_when` int(11) NOT NULL DEFAULT \'0\',' + . ' `login_ip` varchar(15) NOT NULL DEFAULT \'\',' + . ' PRIMARY KEY (`user_id`),' + . ' KEY `IDX_744F03CFE54D947` (`group_id`),' + . ' CONSTRAINT `FK_744F03CFE54D947` FOREIGN KEY (`group_id`) REFERENCES `lep_groups` (`group_id`)' + . ')ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8'; $database->query($users); if ($database->is_error()) trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); // Groups table - $groups = 'CREATE TABLE `'.TABLE_PREFIX.'groups` ( `group_id` INT NOT NULL auto_increment,' - . ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' - . ' `system_permissions` TEXT NOT NULL ,' - . ' `module_permissions` TEXT NOT NULL ,' - . ' `template_permissions` TEXT NOT NULL ,' - . ' PRIMARY KEY ( `group_id` ) ' - . ' )'; + $group = 'CREATE TABLE `' . TABLE_PREFIX . 'groups` (' + . ' `group_id` int(11) NOT NULL AUTO_INCREMENT,' + . ' `name` varchar(255) NOT NULL DEFAULT \'\',' + . ' `system_permissions` text NOT NULL,' + . ' `module_permissions` text NOT NULL,' + . ' `template_permissions` text NOT NULL,' + . ' PRIMARY KEY (`group_id`)' + . ')ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8'; $database->query($groups); if ($database->is_error()) trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); From 2344901b895e037cca07b5ef4d08f35479cfb814 Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 24 Sep 2015 12:19:05 +0200 Subject: [PATCH 6/7] [Page] fixes for field "parent = null" instead of "parent= 0" and root_parent --- upload/admins/pages/add.php | 25 +++++++++++-------- upload/admins/pages/index.php | 4 +-- upload/admins/pages/settings.php | 12 ++++++--- upload/admins/pages/settings2.php | 18 ++++++------- .../functions/function.root_parent.php | 2 +- 5 files changed, 35 insertions(+), 26 deletions(-) diff --git a/upload/admins/pages/add.php b/upload/admins/pages/add.php index e8838f29..4f425405 100644 --- a/upload/admins/pages/add.php +++ b/upload/admins/pages/add.php @@ -159,20 +159,25 @@ $position = $order->get_new($parent); // Work-out if the page parent (if selected) has a seperate template or language to the default -$query_parent = $database->query("SELECT template, language FROM ".TABLE_PREFIX."pages WHERE page_id = '$parent'"); -if($query_parent->numRows() > 0) -{ - $fetch_parent = $query_parent->fetchRow( MYSQL_ASSOC ); - $template = $fetch_parent['template']; - $language = $fetch_parent['language']; -} else { - $template = ''; - $language = DEFAULT_LANGUAGE; +$template = ''; +$language = DEFAULT_LANGUAGE; +if($parent != '0'){ + $query_parent = $database->query("SELECT template, language FROM ".TABLE_PREFIX."pages WHERE page_id = '$parent'"); + if($query_parent->numRows() > 0) + { + $fetch_parent = $query_parent->fetchRow( MYSQL_ASSOC ); + $template = $fetch_parent['template']; + $language = $fetch_parent['language']; + } } // Insert page into pages table $sql = 'INSERT INTO `'.TABLE_PREFIX.'pages` SET '; -$sql .= '`parent` = '.$parent.', '; +if($parent != '0'){ + $sql .= '`parent` = '.$parent.', '; +}else{ + $sql .= '`parent` = NULL, '; +} $sql .= '`target` = "_top", '; $sql .= '`page_title` = "'.$title.'", '; $sql .= '`menu_title` = "'.$title.'", '; diff --git a/upload/admins/pages/index.php b/upload/admins/pages/index.php index 055f628c..32a4529d 100644 --- a/upload/admins/pages/index.php +++ b/upload/admins/pages/index.php @@ -166,7 +166,7 @@ ); $template->parse('page_list2', 'page_list_block2', true); } -parent_list(null); +parent_list(); // Explode module permissions $module_permissions = $_SESSION['MODULE_PERMISSIONS']; @@ -241,7 +241,7 @@ // Parent page list -function parent_list($parent) +function parent_list($parent = null) { global $admin, $database, $template, $field_set; diff --git a/upload/admins/pages/settings.php b/upload/admins/pages/settings.php index 0b1da4d1..43b8e8be 100644 --- a/upload/admins/pages/settings.php +++ b/upload/admins/pages/settings.php @@ -272,11 +272,15 @@ } // Parent page list -function parent_list($parent) +function parent_list($parent = null) { global $admin, $database, $template, $results_array,$field_set; - $sql = 'SELECT * FROM `'.TABLE_PREFIX.'pages` WHERE `parent` = '.$parent.' ORDER BY `position` ASC'; + if(is_null($parent)){ + $sql = 'SELECT * FROM `'.TABLE_PREFIX.'pages` WHERE `parent` IS NULL ORDER BY `position` ASC'; + }else{ + $sql = 'SELECT * FROM `'.TABLE_PREFIX.'pages` WHERE `parent` = '.$parent.' ORDER BY `position` ASC'; + } $get_pages = $database->query($sql); while(false !== ($page = $get_pages->fetchRow( MYSQL_ASSOC ) ) ) @@ -351,7 +355,7 @@ function parent_list($parent) $template->set_block('main_block', 'page_list_block2', 'page_list2'); if($admin->get_permission('pages_add_l0') == true OR $results_array['level'] == 0) { - if($results_array['parent'] == 0) + if(is_null($results_array['parent'])) { $selected = ' selected="selected"'; } else { @@ -365,7 +369,7 @@ function parent_list($parent) ); $template->parse('page_list2', 'page_list_block2', true); } -parent_list(0); +parent_list(); if($modified_ts == 'Unknown') { diff --git a/upload/admins/pages/settings2.php b/upload/admins/pages/settings2.php index 0a4a1fba..0f43c5e1 100644 --- a/upload/admins/pages/settings2.php +++ b/upload/admins/pages/settings2.php @@ -62,7 +62,7 @@ $description = htmlspecialchars(addslashes($admin->get_post('description')) ); $keywords = htmlspecialchars(addslashes($admin->get_post('keywords')) ); $page_code = htmlspecialchars(addslashes($admin->get_post('page_code'))); -$parent = $admin->get_post_escaped('parent'); +$parent = ($admin->get_post_escaped('parent') == '0') ? null : $admin->get_post_escaped('parent'); $visibility = $admin->get_post_escaped('visibility'); $template = $admin->get_post_escaped('template'); $target = $admin->get_post_escaped('target'); @@ -131,18 +131,18 @@ } // Work out level and root parent -if ($parent!='0') +if (!is_null($parent)) { $level = level_count($parent)+1; $root_parent = root_parent($parent); } else { $level = '0'; - $root_parent = '0'; + $root_parent = $page_id; } // Work-out what the link should be -if($parent == '0') +if(is_null($parent)) { $link = '/'.page_filename($page_link); // rename menu titles: index && intro to prevent clashes with intro page feature and WB core file /pages/index.php @@ -178,7 +178,7 @@ } // Update page with new order -$sql = 'UPDATE `'.TABLE_PREFIX.'pages` SET `parent`='.$parent.', `position`='.$position.' WHERE `page_id`='.$page_id.''; +$sql = 'UPDATE `'.TABLE_PREFIX.'pages` SET `parent`= ' . ((is_null($parent)) ? 'NULL' : $parent) . ' , `position`='.$position.' WHERE `page_id`='.$page_id.''; $database->query($sql); // Get page trail @@ -186,13 +186,13 @@ // Update page settings in the pages table $sql = 'UPDATE `'.TABLE_PREFIX.'pages` SET '; -$sql .= '`parent` = '.$parent.', '; +$sql .= '`parent` = ' . ((is_null($parent)) ? 'NULL' : $parent) . ', '; $sql .= '`page_title` = "'.$page_title.'", '; $sql .= '`menu_title` = "'.$menu_title.'", '; $sql .= '`menu` = '.$menu.', '; $sql .= '`level` = '.$level.', '; $sql .= '`page_trail` = "'.$page_trail.'", '; -$sql .= '`root_parent` = '.$root_parent.', '; +$sql .= '`root_parent` = '.((is_null($root_parent)) ? 'NULL' : $root_parent).', '; $sql .= '`link` = "'.$link.'", '; $sql .= '`template` = "'.$template.'", '; $sql .= '`target` = "'.$target.'", '; @@ -282,7 +282,7 @@ function fix_page_trail($parent,$root_parent) // Get objects and vars from outside this function global $admin, $template, $database, $TEXT, $MESSAGE; // Get page list from database - $query = "SELECT page_id FROM ".TABLE_PREFIX."pages WHERE parent = '$parent'"; + $query = "SELECT page_id FROM ".TABLE_PREFIX."pages WHERE parent " . ((is_null($parent)) ? 'IS NULL' : "= '$parent'"); $get_pages = $database->query($query); // Insert values into main page list if($get_pages->numRows() > 0) @@ -291,7 +291,7 @@ function fix_page_trail($parent,$root_parent) { // Fix page trail - $database->query("UPDATE ".TABLE_PREFIX."pages SET ".($root_parent != 0 ?"root_parent = '$root_parent', ":"")." page_trail = '".get_page_trail($page['page_id'])."' WHERE page_id = '".$page['page_id']."'"); + $database->query("UPDATE ".TABLE_PREFIX."pages SET ".((is_null($root_parent)) ? "root_parent = '$root_parent', " : "")." page_trail = '".get_page_trail($page['page_id'])."' WHERE page_id = '".$page['page_id']."'"); // Run this query on subs fix_page_trail($page['page_id'],$root_parent); } diff --git a/upload/framework/functions/function.root_parent.php b/upload/framework/functions/function.root_parent.php index bfa9d223..fa5b9041 100644 --- a/upload/framework/functions/function.root_parent.php +++ b/upload/framework/functions/function.root_parent.php @@ -60,7 +60,7 @@ function root_parent( $page_id ) { return $parent; } //$level == 1 - elseif ( $parent == 0 ) + elseif (is_null($parent)) { return $page_id; } //$parent == 0 From 5e0c5c8636ce5d26b0aa250f6d9fdc62d878787d Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 24 Sep 2015 20:43:31 +0200 Subject: [PATCH 7/7] Revert to 69a147467d967a5567fe56cff5713b1c3993ad6b --- upload/install/save.php | 136 ++++++++++++++++++---------------------- 1 file changed, 62 insertions(+), 74 deletions(-) diff --git a/upload/install/save.php b/upload/install/save.php index 380666bd..32392df2 100644 --- a/upload/install/save.php +++ b/upload/install/save.php @@ -545,54 +545,46 @@ function install_createGUID() // Try installing tables // Pages table - $pages = 'CREATE TABLE `' . TABLE_PREFIX . '_pages` (' - . ' `page_id` int(11) NOT NULL AUTO_INCREMENT,' - . ' `parent` int(11) DEFAULT NULL,' - . ' `root_parent` int(11) DEFAULT NULL,' - . ' `level` int(11) NOT NULL,' - . ' `link` text NOT NULL,' - . ' `target` varchar(7) NOT NULL DEFAULT \'\',' - . ' `page_title` varchar(255) NOT NULL DEFAULT \'\',' - . ' `menu_title` varchar(255) NOT NULL DEFAULT \'\',' - . ' `description` text NOT NULL,' - . ' `keywords` text NOT NULL,' - . ' `page_trail` text NOT NULL,' - . ' `template` varchar(255) NOT NULL DEFAULT \'\',' - . ' `visibility` varchar(255) NOT NULL DEFAULT \'\',' - . ' `position` int(11) NOT NULL DEFAULT \'0\',' - . ' `menu` int(11) NOT NULL DEFAULT \'0\',' - . ' `language` varchar(5) NOT NULL DEFAULT \'\',' - . ' `page_code` varchar(100) NOT NULL DEFAULT \'\',' - . ' `searching` int(11) NOT NULL DEFAULT \'0\',' - . ' `admin_groups` text NOT NULL,' - . ' `admin_users` text NOT NULL,' - . ' `viewing_groups` text NOT NULL,' - . ' `viewing_users` text NOT NULL,' - . ' `modified_when` int(11) NOT NULL DEFAULT \'0\',' - . ' `modified_by` int(11) NOT NULL DEFAULT \'0\',' - . ' PRIMARY KEY (`page_id`),' - . ' KEY `IDX_33B3B0A01F348C8E` (`root_parent`),' - . ' KEY `IDX_33B3B0A03D8E604F` (`parent`),' - . ' CONSTRAINT `FK_33B3B0A01F348C8E` FOREIGN KEY (`root_parent`) REFERENCES `lep_pages` (`page_id`),' - . ' CONSTRAINT `FK_33B3B0A03D8E604F` FOREIGN KEY (`parent`) REFERENCES `lep_pages` (`page_id`)' - . ')ENGINE=InnoDB AUTO_INCREMENT=137 DEFAULT CHARSET=utf8'; + $pages = 'CREATE TABLE `'.TABLE_PREFIX.'pages` ( `page_id` INT NOT NULL auto_increment,' + . ' `parent` INT DEFAULT NULL,' + . ' `root_parent` INT DEFAULT NULL,' + . ' `level` INT NOT NULL DEFAULT \'0\',' + . ' `link` TEXT NOT NULL,' + . ' `target` VARCHAR( 7 ) NOT NULL DEFAULT \'\' ,' + . ' `page_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `menu_title` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `description` TEXT NOT NULL ,' + . ' `keywords` TEXT NOT NULL ,' + . ' `page_trail` TEXT NOT NULL ,' + . ' `template` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `visibility` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `position` INT NOT NULL DEFAULT \'0\',' + . ' `menu` INT NOT NULL DEFAULT \'0\',' + . ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'\' ,' + . ' `page_code` VARCHAR( 100 ) NOT NULL DEFAULT \'\' ,' + . ' `searching` INT NOT NULL DEFAULT \'0\',' + . ' `admin_groups` TEXT NOT NULL ,' + . ' `admin_users` TEXT NOT NULL ,' + . ' `viewing_groups` TEXT NOT NULL ,' + . ' `viewing_users` TEXT NOT NULL ,' + . ' `modified_when` INT NOT NULL DEFAULT \'0\',' + . ' `modified_by` INT NOT NULL DEFAULT \'0\',' + . ' PRIMARY KEY ( `page_id` ) ' + . ' )'; $database->query($pages); if ($database->is_error()) trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); // Sections table - $sections = 'CREATE TABLE `' . TABLE_PREFIX . 'sections` (' - . ' `section_id` int(11) NOT NULL AUTO_INCREMENT,' - . ' `page_id` int(11) DEFAULT NULL,' - . ' `position` int(11) NOT NULL DEFAULT \'0\',' - . ' `module` varchar(255) NOT NULL DEFAULT \'\',' - . ' `block` varchar(255) NOT NULL DEFAULT \'\',' - . ' `publ_start` varchar(255) NOT NULL DEFAULT \'0\',' - . ' `publ_end` varchar(255) NOT NULL DEFAULT \'0\',' - . ' `name` varchar(255) NOT NULL DEFAULT \'no name\',' - . ' PRIMARY KEY (`section_id`),' - . ' KEY `IDX_62184A52C4663E4` (`page_id`),' - . ' CONSTRAINT `FK_62184A52C4663E4` FOREIGN KEY (`page_id`) REFERENCES `lep_pages` (`page_id`)' - . ')ENGINE=InnoDB AUTO_INCREMENT=246 DEFAULT CHARSET=utf8'; + $sections = 'CREATE TABLE `'.TABLE_PREFIX.'sections` ( `section_id` INT NOT NULL auto_increment,' + . ' `page_id` INT DEFAULT NULL,' + . ' `position` INT NOT NULL DEFAULT \'0\',' + . ' `module` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `block` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `publ_start` VARCHAR( 255 ) NOT NULL DEFAULT \'0\' ,' + . ' `publ_end` VARCHAR( 255 ) NOT NULL DEFAULT \'0\' ,' + . ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'no name\' ,' + . ' PRIMARY KEY ( `section_id` ) ' + . ' )'; $database->query($sections); if ($database->is_error()) trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); @@ -663,40 +655,36 @@ function install_createGUID() if ($database->is_error()) trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); // Users table - $users = 'CREATE TABLE `' . TABLE_PREFIX . 'users` (' - . ' `user_id` int(11) NOT NULL AUTO_INCREMENT,' - . ' `group_id` int(11) DEFAULT NULL,' - . ' `groups_id` varchar(255) NOT NULL DEFAULT \'0\',' - . ' `active` int(11) NOT NULL DEFAULT \'0\',' - . ' `statusflags` int(11) NOT NULL DEFAULT \'6\',' - . ' `username` varchar(255) NOT NULL DEFAULT \'\',' - . ' `password` varchar(255) NOT NULL DEFAULT \'\',' - . ' `last_reset` int(11) NOT NULL DEFAULT \'0\',' - . ' `display_name` varchar(255) NOT NULL DEFAULT \'\',' - . ' `email` text NOT NULL,' - . ' `timezone_string` varchar(50) NOT NULL DEFAULT \'' . $default_timezone_string . '\',' - . ' `date_format` varchar(255) NOT NULL DEFAULT \'\',' - . ' `time_format` varchar(255) NOT NULL DEFAULT \'\',' - . ' `language` varchar(5) NOT NULL DEFAULT \'' .$default_language .'\',' - . ' `home_folder` text NOT NULL,' - . ' `login_when` int(11) NOT NULL DEFAULT \'0\',' - . ' `login_ip` varchar(15) NOT NULL DEFAULT \'\',' - . ' PRIMARY KEY (`user_id`),' - . ' KEY `IDX_744F03CFE54D947` (`group_id`),' - . ' CONSTRAINT `FK_744F03CFE54D947` FOREIGN KEY (`group_id`) REFERENCES `lep_groups` (`group_id`)' - . ')ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8'; + $users = 'CREATE TABLE `'.TABLE_PREFIX.'users` ( `user_id` INT NOT NULL auto_increment,' + . ' `group_id` INT DEFAULT NULL,' + . ' `groups_id` VARCHAR( 255 ) NOT NULL DEFAULT \'0\',' + . ' `active` INT NOT NULL DEFAULT \'0\',' + . ' `statusflags` INT NOT NULL DEFAULT \'6\',' + . ' `username` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `password` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `last_reset` INT NOT NULL DEFAULT \'0\',' + . ' `display_name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `email` TEXT NOT NULL ,' + . " `timezone_string` VARCHAR( 50 ) NOT NULL DEFAULT '$default_timezone_string'," + . ' `date_format` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `time_format` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `language` VARCHAR( 5 ) NOT NULL DEFAULT \'' .$default_language .'\' ,' + . ' `home_folder` TEXT NOT NULL ,' + . ' `login_when` INT NOT NULL DEFAULT \'0\',' + . ' `login_ip` VARCHAR( 15 ) NOT NULL DEFAULT \'\' ,' + . ' PRIMARY KEY ( `user_id` ) ' + . ' )'; $database->query($users); if ($database->is_error()) trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR); // Groups table - $group = 'CREATE TABLE `' . TABLE_PREFIX . 'groups` (' - . ' `group_id` int(11) NOT NULL AUTO_INCREMENT,' - . ' `name` varchar(255) NOT NULL DEFAULT \'\',' - . ' `system_permissions` text NOT NULL,' - . ' `module_permissions` text NOT NULL,' - . ' `template_permissions` text NOT NULL,' - . ' PRIMARY KEY (`group_id`)' - . ')ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8'; + $groups = 'CREATE TABLE `'.TABLE_PREFIX.'groups` ( `group_id` INT NOT NULL auto_increment,' + . ' `name` VARCHAR( 255 ) NOT NULL DEFAULT \'\' ,' + . ' `system_permissions` TEXT NOT NULL ,' + . ' `module_permissions` TEXT NOT NULL ,' + . ' `template_permissions` TEXT NOT NULL ,' + . ' PRIMARY KEY ( `group_id` ) ' + . ' )'; $database->query($groups); if ($database->is_error()) trigger_error(sprintf('[%s - %s] %s', __FILE__, __LINE__, $database->get_error()), E_USER_ERROR);