From 83fb9f58181939542bcd54a4f156b550618ab6fe Mon Sep 17 00:00:00 2001 From: SteveD Date: Sat, 29 Dec 2012 12:12:51 +0000 Subject: [PATCH] Issue #60 - set proper user class tree during install - plus dev aid to generate appropriate xml (data should match the 'set default tree' available on an option button from userclass admin) --- e107_admin/userclass2.php | 45 +- e107_core/xml/default_install.xml | 1075 ++++++++++++++++------------- e107_handlers/userclass_class.php | 25 + 3 files changed, 654 insertions(+), 491 deletions(-) diff --git a/e107_admin/userclass2.php b/e107_admin/userclass2.php index 586925085..03cb3436d 100644 --- a/e107_admin/userclass2.php +++ b/e107_admin/userclass2.php @@ -669,32 +669,39 @@ $ns->tablerender(UCSLAN_21, $text); if (isset($_POST['flatten_class_tree'])) { // Remove the default tree - $message = UCSLAN_65; - $sql->db_Update("userclass_classes", "userclass_parent='0'"); - $e_userclass->calc_tree(); - $e_userclass->save_tree(); - $e_userclass->readTree(TRUE); // Need to re-read the tree to show correct info - $message .= UCSLAN_64; + $message = UCSLAN_65; + $sql->db_Update('userclass_classes', "userclass_parent='0'"); + $e_userclass->calc_tree(); + $e_userclass->save_tree(); + $e_userclass->readTree(TRUE); // Need to re-read the tree to show correct info + $message .= UCSLAN_64; } if (isset($_POST['rebuild_tree'])) { - $message = UCSLAN_70; - $e_userclass->calc_tree(); - $e_userclass->save_tree(); - $message .= UCSLAN_64; + $message = UCSLAN_70; + $e_userclass->calc_tree(); + $e_userclass->save_tree(); + $message .= UCSLAN_64; + } + + if ($params == 'xml') $params = '.xml'; else $params = ''; + + if (isset($_POST['create_xml_db']) && ($params == '.xml')) + { + $message = $e_userclass->makeXMLFile() ? 'XML file created' : 'Error creating XML file'; } if ($message) { - $ns->tablerender("", "
".$message."
"); + $ns->tablerender('', "
".$message."
"); } $mes = e107::getMessage(); $mes->addWarning(UCSLAN_52."
".UCSLAN_53); - $text = "
+ $text = " @@ -710,8 +717,18 @@ $ns->tablerender(UCSLAN_21, $text); - -
".$frm->admin_button('flatten_class_tree','no-value','delete', UCSLAN_58)."
"; + "; + if ($params == '.xml') + { + $text .= " + ".'Create XML file of DB'."
".'Dev aid to set initial values'."
+ + ".$frm->admin_button('create_xml_db','no-value','create', 'Create')." + + "; + + } + $text .= ""; $ns->tablerender(UCSLAN_61, $mes->render().$text); diff --git a/e107_core/xml/default_install.xml b/e107_core/xml/default_install.xml index 2d8efaf71..626c86365 100644 --- a/e107_core/xml/default_install.xml +++ b/e107_core/xml/default_install.xml @@ -504,459 +504,459 @@ City, State, Country )]]> - - - 1 - _common - _common_image - (Common Images) - Media in this category will be available in all areas of admin. - 253 - - 0 - - - 2 - _common - _common_file - (Common Files) - Media in this category will be available in all areas of admin. - 253 - - 0 - - - 3 - news - news - News - Will be available in the news area. - 253 - - 1 - - - 4 - page - page - Custom Pages - Will be available in the custom pages area of admin. - 253 - - 0 - - - 5 - download - download_image - Download Images - - 253 - - 0 - - - 6 - download - download_thumb - Download Thumbnails - - 253 - - 0 - - - 7 - download - download_file - Download Files - - 253 - - 0 - - - 8 - news - news_thumb - News Thumbnails (Legacy) - Legacy news thumbnails. - 253 - - 1 - - - 9 - _icon - _icon_16 - Icons 16px - Available where icons are used in admin. - 253 - - 0 - - - 10 - _icon - _icon_32 - Icons 32px - Available where icons are used in admin. - 253 - - 0 - - - 11 - _icon - _icon_48 - Icons 48px - Available where icons are used in admin. - 253 - - 0 - - - 12 - _icon - _icon_64 - Icons 64px - Available where icons are used in admin. - 253 - - 0 - - - - - 1 - wmessage - 1145848343 - 1 - Hello World! - 0 - Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque mattis sapien nec velit laoreet pulvinar. Integer sollicitudin risus nec nunc aliquam condimentum. Quisque malesuada posuere vulputate. Aliquam sit amet metus quam? Sed quam sem, condimentum ac convallis vel, posuere at augue. Cras accumsan, erat a laoreet blandit, turpis enim ullamcorper lectus, a tempus justo nunc id orci. Nulla vehicula, dolor vel rhoncus varius, nunc sapien laoreet turpis; id commodo arcu erat fringilla orci. Aenean gravida adipiscing nulla, ut tristique erat interdum porta. Sed at semper felis. Nullam bibendum faucibus gravida. In leo enim, gravida non molestie non, ultricies id nunc. Maecenas placerat interdum luctus. Ut mauris nisi, faucibus eu venenatis ac, lobortis ac velit. Donec sed leo urna, et vehicula neque. Curabitur malesuada auctor ornare. - - - - - - 1 - Home - index.php - - - 1 - 0 - 0 - 0 - 0 - - - - - 3 - Members - user.php - - - 2 - 3 - 0 - 0 - 0 - - - - - 4 - Submit News - submitnews.php - - - 2 - 4 - 0 - 0 - 0 - - - - - 5 - Contact Us - contact.php - - - 1 - 5 - 0 - 0 - 0 - - - - - 6 - News - news.php - - - 1 - 1 - 0 - 0 - 0 - - - - - 7 - Content - page.php - - - 1 - 2 - 0 - 0 - 0 - - - - - - - 1 - login_menu - 1 - 1 - 0 - - login_menu/ - - - - - 2 - online_menu - 0 - 0 - 0 - - online/ - - - - - 3 - blogcalendar_menu - 0 - 0 - 0 - - blogcalendar_menu/ - - - - - 4 - tree_menu - 0 - 0 - 0 - - tree_menu/ - - - - - 5 - search_menu - 0 - 0 - 0 - - search_menu/ - - - - - 6 - counter_menu - 0 - 0 - 0 - - siteinfo/ - - - - - 7 - userlanguage_menu - 0 - 0 - 0 - - user_menu/ - - - - - 8 - compliance_menu - 0 - 0 - 0 - - siteinfo/ - - - - - 9 - other_news_menu - 0 - 0 - 0 - - news/ - - - - - 10 - clock_menu - 0 - 0 - 0 - - clock_menu/ - - - - - 11 - other_news2_menu - 0 - 0 - 0 - - news/ - - - - - 12 - comment_menu - 0 - 0 - 0 - - comment_menu/ - - - - - 13 - lastseen_menu - 0 - 0 - 0 - - online/ - - - - - 14 - news_months_menu - 0 - 0 - 0 - - news/ - - - - - 15 - admin_menu - 0 - 0 - 0 - - admin_menu/ - - - - - 16 - news_categories_menu - 0 - 0 - 0 - - news/ - - - - - 17 - latestnews_menu - 0 - 0 - 0 - - news/ - - - - - 18 - usertheme_menu - 0 - 0 - 0 - - user_menu/ - - - - - 19 - powered_by_menu - 0 - 0 - 0 - - siteinfo/ - - - - - 20 - sitebutton_menu - 0 - 0 - 0 - - siteinfo/ - - - - - 21 - news_months_menu - 1 - 1 - 0 - - news/ - - - - + + + 1 + _common + _common_image + (Common Images) + Media in this category will be available in all areas of admin. + 253 + + 0 + + + 2 + _common + _common_file + (Common Files) + Media in this category will be available in all areas of admin. + 253 + + 0 + + + 3 + news + news + News + Will be available in the news area. + 253 + + 1 + + + 4 + page + page + Custom Pages + Will be available in the custom pages area of admin. + 253 + + 0 + + + 5 + download + download_image + Download Images + + 253 + + 0 + + + 6 + download + download_thumb + Download Thumbnails + + 253 + + 0 + + + 7 + download + download_file + Download Files + + 253 + + 0 + + + 8 + news + news_thumb + News Thumbnails (Legacy) + Legacy news thumbnails. + 253 + + 1 + + + 9 + _icon + _icon_16 + Icons 16px + Available where icons are used in admin. + 253 + + 0 + + + 10 + _icon + _icon_32 + Icons 32px + Available where icons are used in admin. + 253 + + 0 + + + 11 + _icon + _icon_48 + Icons 48px + Available where icons are used in admin. + 253 + + 0 + + + 12 + _icon + _icon_64 + Icons 64px + Available where icons are used in admin. + 253 + + 0 + + + + + 1 + wmessage + 1145848343 + 1 + Hello World! + 0 + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque mattis sapien nec velit laoreet pulvinar. Integer sollicitudin risus nec nunc aliquam condimentum. Quisque malesuada posuere vulputate. Aliquam sit amet metus quam? Sed quam sem, condimentum ac convallis vel, posuere at augue. Cras accumsan, erat a laoreet blandit, turpis enim ullamcorper lectus, a tempus justo nunc id orci. Nulla vehicula, dolor vel rhoncus varius, nunc sapien laoreet turpis; id commodo arcu erat fringilla orci. Aenean gravida adipiscing nulla, ut tristique erat interdum porta. Sed at semper felis. Nullam bibendum faucibus gravida. In leo enim, gravida non molestie non, ultricies id nunc. Maecenas placerat interdum luctus. Ut mauris nisi, faucibus eu venenatis ac, lobortis ac velit. Donec sed leo urna, et vehicula neque. Curabitur malesuada auctor ornare. + + + + + + 1 + Home + index.php + + + 1 + 0 + 0 + 0 + 0 + + + + + 3 + Members + user.php + + + 2 + 3 + 0 + 0 + 0 + + + + + 4 + Submit News + submitnews.php + + + 2 + 4 + 0 + 0 + 0 + + + + + 5 + Contact Us + contact.php + + + 1 + 5 + 0 + 0 + 0 + + + + + 6 + News + news.php + + + 1 + 1 + 0 + 0 + 0 + + + + + 7 + Content + page.php + + + 1 + 2 + 0 + 0 + 0 + + + + + + + 1 + login_menu + 1 + 1 + 0 + + login_menu/ + + + + + 2 + online_menu + 0 + 0 + 0 + + online/ + + + + + 3 + blogcalendar_menu + 0 + 0 + 0 + + blogcalendar_menu/ + + + + + 4 + tree_menu + 0 + 0 + 0 + + tree_menu/ + + + + + 5 + search_menu + 0 + 0 + 0 + + search_menu/ + + + + + 6 + counter_menu + 0 + 0 + 0 + + siteinfo/ + + + + + 7 + userlanguage_menu + 0 + 0 + 0 + + user_menu/ + + + + + 8 + compliance_menu + 0 + 0 + 0 + + siteinfo/ + + + + + 9 + other_news_menu + 0 + 0 + 0 + + news/ + + + + + 10 + clock_menu + 0 + 0 + 0 + + clock_menu/ + + + + + 11 + other_news2_menu + 0 + 0 + 0 + + news/ + + + + + 12 + comment_menu + 0 + 0 + 0 + + comment_menu/ + + + + + 13 + lastseen_menu + 0 + 0 + 0 + + online/ + + + + + 14 + news_months_menu + 0 + 0 + 0 + + news/ + + + + + 15 + admin_menu + 0 + 0 + 0 + + admin_menu/ + + + + + 16 + news_categories_menu + 0 + 0 + 0 + + news/ + + + + + 17 + latestnews_menu + 0 + 0 + 0 + + news/ + + + + + 18 + usertheme_menu + 0 + 0 + 0 + + user_menu/ + + + + + 19 + powered_by_menu + 0 + 0 + 0 + + siteinfo/ + + + + + 20 + sitebutton_menu + 0 + 0 + 0 + + siteinfo/ + + + + + 21 + news_months_menu + 1 + 1 + 0 + + news/ + + + + 1 @@ -980,39 +980,160 @@ City, State, Country 0 - - - 1 - Misc - - - - 254 - news_16.png - 0 - - + + + 1 + Misc + + + + 254 + news_16.png + 0 + + - - 1 - PRIVATEMENU - Grants access to private menu items - 254 - 0 - - 0 - 0 - - 2 CONTACT PEOPLE Example contact person class 254 0 - + 0,2 + 0 + 0 + + + + 253 + Members + Registered and logged in members + 250 + 0 + 0,253 + 253 + 0 + + + + 246 + Search Bots + Identified search bots + 250 + 0 + 0,246 + 254 + 0 + + + + 254 + Admin + Site Administrators + 250 + 249 + 254 + 253 + 0 + + + + 248 + Forum Moderators + Moderators for Forums and other areas + 250 + 249 + 248 + 253 + 0 + + + + 249 + Admins and Mods + Anyone able to administer something, moderate forums etc + 250 + 250 + 249,254,248 + 253 + 0 + + + + 1 + PRIVATEMENU + Grants access to private menu items + 254 + 253 + 0,253,1 + 0 + 0 + + + + 247 + New Users + Recently joined users + 250 + 253 + 0,253,247 + 254 + 0 + + + + 250 + Main Admin + Main site Administrators + 250 + 255 + 250,249,254,248 + 253 + 0 + + + + 0 + Everyone (public) + Fixed class + 250 + 0 + 0 + 0 + 0 + + + + 252 + Guests + Fixed class + 250 + 0 + 252 + 0 + 0 + + + + 255 + No One (inactive) + Fixed class + 250 + 0 + 255 + 0 + 0 + + + + 251 + Read Only + Fixed class + 250 + 0 + 251 0 0 diff --git a/e107_handlers/userclass_class.php b/e107_handlers/userclass_class.php index e96942998..7623cc13b 100644 --- a/e107_handlers/userclass_class.php +++ b/e107_handlers/userclass_class.php @@ -1762,6 +1762,31 @@ class user_class_admin extends user_class } + + /** + * Write the current userclass tree to the file e_TEMP.'userclasses.xml' + * + * @return TRUE on success, FALSE on fail. + */ + public function makeXMLFile() + { + $xml = "\n"; + foreach ($this->class_tree as $uc => $d) + { + $xml .= "\t\n"; + $xml .= "\t\t{$uc}\n"; + foreach ($this->field_list as $f => $v) + { + $xml .= "\t\t{$d[$f]}\n"; + } + $xml .= "\t\n"; + } + $xml .= "\n"; + return (file_put_contents(e_TEMP.'userclasses.xml', $xml) === FALSE) ? FALSE : TRUE; + } + + + /** * Clear user class cache * @return none