NAVIGATION
Backend: This is a really dirty solution but it works well and should be a fine quick hack to let users work with admin rights but not edit admin section without special superuser check.
Docu: –
Forum: Quick and dirty Superuser functionality
Autor: O.Georgi http://phpwcms.de
CMS version: >= 1.4
Version: V1.0
Tag: mysite.com/phpwcms.php?superuser=muschi
file name: navi_text.inc.php
location: include/inc_lib/
Unzip the attached file navi_text.inc.php.zip (1 KiB, 79 downloads)
and replace navi_text.inc.php at include/inc_lib/ (maybe make a backup of original navi_text.inc.php).
Inside that file you can find a new “hidden” word - set it
$phpwcms['superuser_checkword'] = 'muschi';
to whatever you like and keep it in mind.
By default the you will never see the admin menu until you type in the superuser URI like that:
mysite.com/phpwcms.php?superuser=muschi
See the images:
Then the superuser is registered in session and admin menu will be available as long as your session is active.
Only for this registered admin users the admin menu is available.
In the example the user with the username “hans” ans “erwin”.
The idea is based on it, that all users with admin rights will not see the admin menu.
File: include/inc_lib/navi_text.inc.php
Change
$wcsnav["admin"] = '<a href="phpwcms.php?do=admin&p=6">'.$BL['be_nav_admin'].'</a>';
to
// +KH: 14.04.10 Only for this registered admin users the admin menu is available // ----------------------------------------------------- if ($_SESSION['wcs_user'] === 'hans' OR $_SESSION['wcs_user'] === 'erwin') $wcsnav["admin"] = '<a href="phpwcms.php?do=admin&p=6">'.$BL['be_nav_admin'].'</a>'; // -----------------------------------------------------
Tested with V 1.4.6 r402
for this registered admin users the admin menu is not available.
In the example the user with the username “oblong” and “don-blech”.
The idea is based on it, that all users with admin rights will not see the admin menu.
In addition still the CP-selection for the registered Usern is reduced.
In addition a dupe of the file “include/inc_lib/article.contenttype.inc.php” is produced and the appropriate CPs closed or approved.
→ New Filename: “include/inc_lib/article.contenttype_small.inc.php”
File: include/inc_lib/navi_text.inc.php
Replace
$wcsnav["admin"] = '<a href="phpwcms.php?do=admin&p=6">'.$BL['be_nav_admin'].'</a>';
with
// +KH: 14.04.10 Only for this registered admin user the admin menu is available // ----------------------------------------------------- if ($_SESSION['wcs_user'] !== 'oblong' AND $_SESSION['wcs_user'] !== 'don-blech') $wcsnav["admin"] = '<a href="phpwcms.php?do=admin&p=6">'.$BL['be_nav_admin'].'</a>'; // -----------------------------------------------------
File: phpwcms.php
Replace (approximately in line 87)
include(PHPWCMS_ROOT.'/include/inc_lib/article.contenttype.inc.php'); //loading array with actual content types
with
// +KH: 14.04.10 This user has a special contentpart list // --------------------------------------------------------- if ($_SESSION['wcs_user'] !== 'oblong' AND $_SESSION['wcs_user'] !== 'don-blech') include(PHPWCMS_ROOT.'/include/inc_lib/article.contenttype.inc.php'); //loading array with actual content types else include(PHPWCMS_ROOT.'/include/inc_lib/article.contenttype_small.inc.php'); //loading array with small content type list // ---------------------------------------------------------
The file “include / inc_lib / article.contenttype_small.inc.php” will be recreated and the non-use CPs commented.
article.contenttype_small.inc.php
<?php /************************************************************************************* Copyright notice (c) 2002-2010 Oliver Georgi (oliver@phpwcms.de) // All rights reserved. This script is part of PHPWCMS. The PHPWCMS web content management system is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. The GNU General Public License can be found at http://www.gnu.org/copyleft/gpl.html A copy is found in the textfile GPL.txt and important notices to the license from the author is found in LICENSE.txt distributed with these scripts. This script is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. This copyright notice MUST APPEAR in all copies of the script! *************************************************************************************/ // Content Part Types // DO NOT define 30 = used for modules $wcs_content_type = array( 0 => $BL['be_ctype_plaintext'] , //kh 6 => $BL['be_ctype_html'], 14 => $BL['be_ctype_wysywig'], //kh 11 => $BL['be_ctype_code'], 1 => $BL['be_ctype_textimage'], 29 => $BL['be_ctype_imagesdiv'], //kh 31 => $BL['be_ctype_imagesspecial'], //kh 32 => $BL['be_ctype_tabs'], 2 => $BL['be_ctype_images'], //kh 4 => $BL['be_ctype_bulletlist'], //kh 100 => $BL['be_ctype_ullist'], //kh 3 => $BL['be_ctype_link'], 5 => $BL['be_ctype_linklist'], 8 => $BL['be_ctype_linkarticle'], //kh 33 => $BL['be_news'], 15 => $BL['be_ctype_articlemenu'], //kh 9 => $BL['be_ctype_multimedia'], 7 => $BL['be_ctype_filelist'], //kh 16 => $BL['be_ctype_ecard'], //17 => $BL['be_ctype_blog'], //kh 23 => $BL['be_ctype_simpleform'], //kh 10 => $BL['be_ctype_emailform'].' [old]', //kh 12 => $BL['be_ctype_newsletter'], //kh 13 => $BL['be_ctype_search'], //kh 18 => $BL['be_ctype_guestbook'], //kh 19 => $BL['be_ctype_sitemap'], //20 => $BL['be_ctype_bid'], //kh 21 => $BL['be_ctype_pages'], //kh 22 => $BL['be_ctype_rssfeed'], //kh 50 => $BL['be_ctype_reference'], //kh 51 => $BL['be_ctype_map'], //kh 52 => $BL['be_ctype_phpvar'], //53 => $BL['be_ctype_forum'], //kh 24 => $BL['be_ctype_alias'], //kh 89 => $BL['be_ctype_poll'], // jens poll //kh 26 => $BL['be_ctype_recipe'], //kh 27 => $BL['be_ctype_faq'], //kh 28 => $BL['be_ctype_felogin'], //kh 25 => $BL['be_ctype_flashplayer'] ); // set module content parts = 30 if(count($phpwcms['modules'])) { foreach($phpwcms['modules'] as $value) { if($value['cntp']) { $wcs_content_type[30] = $BL['be_ctype_module']; break; } } } ?>
The selection order of the CPs in BE depends on the order of the entries in this file. (See also: Content part Types).