Revision 1953
Added by darkviper about 12 years ago
| branches/2.8.x/CHANGELOG | ||
|---|---|---|
| 11 | 11 | ! = Update/Change | 
| 12 | 12 | =============================================================================== | 
| 13 | 13 |  | 
| 14 | 14 Aug-2013 Build 1953 M.v.d.Decken(DarkViper) | |
| 15 | # solved some problems with MultiLingual module | |
| 14 | 16 | 12 Aug-2013 Build 1952 M.v.d.Decken(DarkViper) | 
| 15 | 17 | # solved an autoloading problem on upgrade in /framework/Password.php | 
| 16 | 18 | 09 Aug-2013 Build 1951 M.v.d.Decken(DarkViper) | 
| branches/2.8.x/wb/admin/skel/themes/htt/pages_settings.htt | ||
|---|---|---|
| 2 | 2 | <script src="{WB_URL}/include/jquery/overlib_mini.js" type="text/javascript"></script>
 | 
| 3 | 3 | <script src="{ADMIN_URL}/pages/page_settings.js" type="text/javascript"></script>
 | 
| 4 | 4 | <div class="page-info"> | 
| 5 | <table> | |
| 6 | <thead> | |
| 7 |   <tr>
 | |
| 8 |     <th class="description"></th>
 | |
| 9 |     <th class="id"></th>
 | |
| 10 |     <th></th>
 | |
| 11 |   </tr>
 | |
| 12 | </thead> | |
| 13 | <tbody> | |
| 14 |   <tr>
 | |
| 15 | 	<td class="left nowrap"><h2>{HEADING_MODIFY_PAGE_SETTINGS}</h2></td>
 | |
| 16 | 	<td class="left">PID: {PAGE_ID}</td>
 | |
| 17 | <td class="right nowrap"> | |
| 18 | 		{TEXT_CURRENT_PAGE}:<strong>{PAGE_TITLE}</strong><br />
 | |
| 19 | 		{MODIFY_LINK_BEFORE}{TEXT_MODIFY_PAGE}{MODIFY_LINK_AFTER}
 | |
| 20 | 		<span class="{DISPLAY_MANAGE_SECTIONS}">
 | |
| 21 | 		- {SECTIONS_LINK_BEFORE}{TEXT_MANAGE_SECTIONS}{SECTIONS_LINK_AFTER}
 | |
| 22 | </span> | |
| 23 | <br /> | |
| 24 | 		<span class="right {DISPLAY_MODIFIED}">
 | |
| 25 | 			{TEXT_LAST_MODIFIED} {MODIFIED_BY}, {MODIFIED_WHEN}
 | |
| 26 | </span> | |
| 27 | </td> | |
| 28 |   </tr>
 | |
| 29 | </tbody> | |
| 30 | </table> | |
| 5 | 	<table>
 | |
| 6 | 		<thead>
 | |
| 7 | 			<tr>
 | |
| 8 | 				<th class="description"></th>
 | |
| 9 | 				<th class="id"></th>
 | |
| 10 | 				<th></th>
 | |
| 11 | 			</tr>
 | |
| 12 | 		</thead>
 | |
| 13 | 		<tbody>
 | |
| 14 | 			<tr>
 | |
| 15 | 				<td class="left nowrap"><h2>{HEADING_MODIFY_PAGE_SETTINGS}</h2></td>
 | |
| 16 | 				<td class="left">PID: {PAGE_ID}</td>
 | |
| 17 | 				<td class="right nowrap">
 | |
| 18 | 					{TEXT_CURRENT_PAGE}:<strong>{PAGE_TITLE}</strong><br />
 | |
| 19 | 					{MODIFY_LINK_BEFORE}{TEXT_MODIFY_PAGE}{MODIFY_LINK_AFTER}
 | |
| 20 | 					<span class="{DISPLAY_MANAGE_SECTIONS}">
 | |
| 21 | 						- {SECTIONS_LINK_BEFORE}{TEXT_MANAGE_SECTIONS}{SECTIONS_LINK_AFTER}
 | |
| 22 | 					</span>
 | |
| 23 | 					<br />
 | |
| 24 | 					<span class="right {DISPLAY_MODIFIED}">
 | |
| 25 | 						{TEXT_LAST_MODIFIED} {MODIFIED_BY}, {MODIFIED_WHEN}
 | |
| 26 | 					</span>
 | |
| 27 | 				</td>
 | |
| 28 | 			</tr>
 | |
| 29 | 		</tbody>
 | |
| 30 | 	</table>
 | |
| 31 | 31 | </div> | 
| 32 | 32 |  | 
| 33 | 33 | <form name="settings" action="settings_save.php" method="post"> | 
| ... | ... | |
| 149 | 149 | <!-- BEGIN show_page_code_block --> | 
| 150 | 150 | <div> | 
| 151 | 151 | <label for="page_code" class="overlib" | 
| 152 | 					style="background-image: url({THEME_URL}/icons/help_16.png);"
 | |
| 153 | 					{p_menu_page_code}>{TEXT_PAGE_CODE}:
 | |
| 152 | 					style="background-image: url({THEME_URL}/icons/help_16.png);" {p_menu_page_code}>
 | |
| 153 | 					<a href="{PAGE_CODE_UPDATE_URL}">{PAGE_CODE_LABEL_TEXT}: </a>
 | |
| 154 | 154 | </label> | 
| 155 | 155 | <select id="page_code" name="page_code" class="value_page_code"> | 
| 156 | 156 | <!-- BEGIN page_code_list_block --> | 
| 157 | 						<option value="{VALUE}"{SELECTED} style="background: {FLAG_CODE_ICON} no-repeat center left; padding-left: 20px;"> {PAGE_VALUE}</option>
 | |
| 157 | 					<option value="{PAGE_CODE_VALUE}"{PAGE_CODE_SELECTED} style="background: {PAGE_CODE_ICON_URL} no-repeat center left; padding-left: 20px;">
 | |
| 158 | 						{PAGE_CODE_PAGE_TITLE}
 | |
| 159 | </option> | |
| 158 | 160 | <!-- END page_code_list_block --> | 
| 159 | 161 | </select> | 
| 160 | 162 | </div> | 
| branches/2.8.x/wb/admin/pages/PageTree.php | ||
|---|---|---|
| 34 | 34 | class a_pages_PageTree | 
| 35 | 35 | {
 | 
| 36 | 36 | /** @var array language definitions */ | 
| 37 | 	private $_TEXT     = null;
 | |
| 37 | 	protected $_TEXT     = null;
 | |
| 38 | 38 | /** @var array language definitions */ | 
| 39 | 	private $_MESSAGE  = null;
 | |
| 39 | 	protected $_MESSAGE  = null;
 | |
| 40 | 40 | /** @var array language definitions */ | 
| 41 | 	private $_HEADING  = null;
 | |
| 41 | 	protected $_HEADING  = null;
 | |
| 42 | 42 | /** @var object instance of the application object */ | 
| 43 | 	private $_oApp     = null;
 | |
| 43 | 	protected $_oApp     = null;
 | |
| 44 | 44 | /** @var object instance of the database object */ | 
| 45 | 	private $_oDb      = null;
 | |
| 45 | 	protected $_oDb      = null;
 | |
| 46 | 46 | /** @var array holds several values from the application global scope */ | 
| 47 | 	private $_aReg     = array();
 | |
| 47 | 	protected $_aReg     = array();
 | |
| 48 | 48 | /** @var string full HTML formattet list of pages */ | 
| 49 | 	private $_sOutput         = '';
 | |
| 49 | 	protected $_sOutput         = '';
 | |
| 50 | 50 | /** @var integer number of all reachable pages */ | 
| 51 | 	private $_iPagesTotal     = 0;
 | |
| 51 | 	protected $_iPagesTotal     = 0;
 | |
| 52 | 52 | /** @var integer number of all writeable pages */ | 
| 53 | 	private $_iPagesWriteable = 0;
 | |
| 53 | 	protected $_iPagesWriteable = 0;
 | |
| 54 | 54 | /** @var integer index for toggle background color of the list */ | 
| 55 | 	private $_iLineColor      = 0;
 | |
| 55 | 	protected $_iLineColor      = 0;
 | |
| 56 | 56 | /** @var array entries to build a select list for parents */ | 
| 57 | 	private $_aParentList     = array();
 | |
| 57 | 	protected $_aParentList     = array();
 | |
| 58 | 58 | /** @var integer count all executed database requests passing all iterations. */ | 
| 59 | 	private $_queries = 0;
 | |
| 59 | 	protected $_queries = 0;
 | |
| 60 | 60 | /** | 
| 61 | 61 | * constructor used to import some application constants and objects | 
| 62 | 62 | */ | 
| ... | ... | |
| 98 | 98 | * a list with all possible parent pages | 
| 99 | 99 | * @return array | 
| 100 | 100 | */ | 
| 101 | 	public function getParentList() {
 | |
| 101 | 	public function getParentList($iTreeRoot = 0) {
 | |
| 102 | 102 | 		if(!$this->_sOutput) {
 | 
| 103 | $this->parseTree(); | |
| 103 | 			$this->parseTree($iTreeRoot);
 | |
| 104 | 104 | } | 
| 105 | 105 | return $this->_aParentList; | 
| 106 | 106 | } | 
| 107 | 107 | /** | 
| 108 | 108 | * used to import some WB-constants and objects | 
| 109 | 109 | */ | 
| 110 | 	private function _wbAdaptor()
 | |
| 110 | 	protected function _wbAdaptor()
 | |
| 111 | 111 | 	{
 | 
| 112 | 112 | $this->_TEXT = $GLOBALS['TEXT']; | 
| 113 | 113 | $this->_MESSAGE = $GLOBALS['MESSAGE']; | 
| ... | ... | |
| 129 | 129 | * @param int use page-ID as root of the generated page tree. (default: 0) | 
| 130 | 130 | * @return string the whoole list | 
| 131 | 131 | */ | 
| 132 | 	private function _createTree($iTreeRoot = 0)
 | |
| 132 | 	protected function _createTree($iTreeRoot = 0)
 | |
| 133 | 133 | 	{
 | 
| 134 | 134 | // compose the complete list | 
| 135 | 135 | $sOutput = '' | 
| ... | ... | |
| 167 | 167 | * @param bool $bRelative false if should be set to absolute value | 
| 168 | 168 | * @return string | 
| 169 | 169 | */ | 
| 170 | 	private function _Tabs($iTabsDiv = 0, $bRelative = true)
 | |
| 170 | 	protected function _Tabs($iTabsDiv = 0, $bRelative = true)
 | |
| 171 | 171 | 	{
 | 
| 172 | 172 | static $iTabLevel = 0; | 
| 173 | 173 | $iTabLevel = ($bRelative ? $iTabLevel + $iTabsDiv : $iTabsDiv); | 
| ... | ... | |
| 179 | 179 | * @param integer $iParentKey | 
| 180 | 180 | * @return string SQL statement | 
| 181 | 181 | */ | 
| 182 | 	private function _makeSql($iParentKey = 0)
 | |
| 182 | 	protected function _makeSql($iParentKey = 0)
 | |
| 183 | 183 | 	{
 | 
| 184 | $sql = 'SELECT ( SELECT COUNT(*) ' | |
| 185 | . 'FROM `'.$this->_aReg['TABLE_PREFIX'].'pages` `x` ' | |
| 186 | . 'WHERE x.`parent`=p.`page_id`' | |
| 187 | . ') `children`, ' | |
| 188 | . 's.`module`, MAX(s.`publ_start` + s.`publ_end`) published, p.`link`, ' | |
| 189 | . '(SELECT MAX(`position`) FROM `'.$this->_aReg['TABLE_PREFIX'].'pages` ' | |
| 190 | . 'WHERE `parent`='.$iParentKey.') max_position, ' | |
| 191 | . '0 min_position, ' | |
| 192 | . 'p.`position`, ' | |
| 193 | . 'p.`page_id`, p.`parent`, p.`level`, p.`language`, p.`admin_groups`, ' | |
| 194 | . 'p.`admin_users`, p.`viewing_groups`, p.`viewing_users`, p.`visibility`, ' | |
| 195 | . 'p.`menu_title`, p.`page_title`, p.`page_trail` ' | |
| 196 | . 'FROM `'.$this->_aReg['TABLE_PREFIX'].'pages` p ' | |
| 197 | . 'INNER JOIN `'.$this->_aReg['TABLE_PREFIX'].'sections` s ' | |
| 198 | . 'ON p.`page_id`=s.`page_id` '; | |
| 199 | //		if($iParentKey) {
 | |
| 200 | // | |
| 201 | // $sql .= 'WHERE `root_parent`='.$iParentKey.' '; | |
| 202 | //		} else {
 | |
| 203 | // // if tree based on root is requested (parent=0) | |
| 204 | $sql .= 'WHERE `parent`='.$iParentKey.' '; | |
| 205 | // } | |
| 206 | // do not get pages with 'deleted' flag set on activated trashcan | |
| 184 | 207 | 		if($this->_aReg['PAGE_TRASH'] != 'inline') {
 | 
| 185 | $sUseTrash = ' AND `visibility`!=\'deleted\''; | |
| 186 | 		}else { $sUseTrash = ''; }
 | |
| 187 | $sql = 'SELECT ( SELECT COUNT(*) ' | |
| 188 | . 'FROM `'.$this->_aReg['TABLE_PREFIX'].'pages` `x` ' | |
| 189 | . 'WHERE x.`parent`=p.`page_id`' | |
| 190 | . ') `children`, ' | |
| 191 | . 's.`module`, MAX(s.`publ_start` + s.`publ_end`) published, p.`link`, ' | |
| 192 | . '(SELECT MAX(`position`) FROM `'.$this->_aReg['TABLE_PREFIX'].'pages` ' | |
| 193 | . 'WHERE `parent`='.$iParentKey.') max_position, ' | |
| 194 | . '0 min_position, ' | |
| 195 | . 'p.`position`, ' | |
| 196 | . 'p.`page_id`, p.`parent`, p.`level`, p.`language`, p.`admin_groups`, ' | |
| 197 | . 'p.`admin_users`, p.`viewing_groups`, p.`viewing_users`, p.`visibility`, ' | |
| 198 | . 'p.`menu_title`, p.`page_title`, p.`page_trail` ' | |
| 199 | . 'FROM `'.$this->_aReg['TABLE_PREFIX'].'pages` p ' | |
| 200 | . 'INNER JOIN `'.$this->_aReg['TABLE_PREFIX'].'sections` s ' | |
| 201 | . 'ON p.`page_id`=s.`page_id` ' | |
| 202 | . 'WHERE `parent`='.$iParentKey.$sUseTrash.' ' | |
| 203 | . 'GROUP BY p.`page_id` ' | |
| 204 | . 'ORDER BY p.`position` ASC'; | |
| 208 | $sql .= 'AND `visibility`!=\'deleted\' '; | |
| 209 | } | |
| 210 | $sql .= 'GROUP BY p.`page_id` ' | |
| 211 | . 'ORDER BY p.`position` ASC'; | |
| 205 | 212 | return $sql; | 
| 206 | 213 | } | 
| 207 | 214 | /** | 
| ... | ... | |
| 209 | 216 | * @param integer start iteration from this parent page ( 0 = root) | 
| 210 | 217 | * @return string all of the item lines | 
| 211 | 218 | */ | 
| 212 | 	private function _IterateTree($iParent = 0)
 | |
| 219 | 	protected function _IterateTree($iParent = 0)
 | |
| 213 | 220 | 	{
 | 
| 214 | 221 | $sOutput = ''; | 
| 215 | 222 | // Get page list from database | 
| ... | ... | |
| 261 | 268 | * @param type $aPage | 
| 262 | 269 | * @return string | 
| 263 | 270 | */ | 
| 264 | 	private function _createListItem($aPage)
 | |
| 271 | 	protected function _createListItem($aPage)
 | |
| 265 | 272 | 	{
 | 
| 266 | 273 | // output the current item | 
| 267 | 274 | // --- HEADER ------------------------------------------------------------------------ | 
| ... | ... | |
| 428 | 435 | * build a list of possible parent pages | 
| 429 | 436 | * @param array $aPage | 
| 430 | 437 | */ | 
| 431 | 	private function _addToParentList(array $aPage)
 | |
| 438 | 	protected function _addToParentList(array $aPage)
 | |
| 432 | 439 | 	{
 | 
| 433 | 440 | if( ($aPage['level'] < ($this->_aReg['PAGE_LEVEL_LIMIT'] - 1)) | 
| 434 | 441 | && $aPage['iswriteable'] | 
| 435 | 442 | && ($aPage['visibility'] != 'deleted') | 
| 436 | 443 | 			&& $this->_oApp->get_permission('pages_add') ) 
 | 
| 437 | 444 | 		{
 | 
| 438 | $aNewEntry = array(); | |
| 439 | $aNewEntry['ID'] = $aPage['page_id']; | |
| 440 | $aNewEntry['TITLE'] = $aPage['menu_title']; | |
| 441 | $aNewEntry['DISABLED'] = ($aPage['iswriteable'] ? 0 : 1); | |
| 442 | $aNewEntry['PARENT'] = $aPage['parent']; | |
| 443 | $aNewEntry['FLAG_ROOT_ICON'] = ''; | |
| 444 | $aNewEntry['LEVEL'] = $aPage['level']; | |
| 445 | $aNewEntry['LANGUAGE'] = $aPage['language']; | |
| 446 | $this->_aParentList[] = $aNewEntry; | |
| 445 | $aPage['disabled'] = ($aPage['iswriteable'] ? 0 : 1); | |
| 446 | $this->_aParentList[] = $aPage; | |
| 447 | 447 | } | 
| 448 | 448 | } | 
| 449 | 449 |  | 
| branches/2.8.x/wb/admin/pages/SmallRawPageTree.php | ||
|---|---|---|
| 1 | <?php | |
| 2 |  | |
| 3 | /** | |
| 4 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. | |
| 5 | * | |
| 6 | * This program is free software: you can redistribute it and/or modify | |
| 7 | * it under the terms of the GNU General Public License as published by | |
| 8 | * the Free Software Foundation, either version 3 of the License, or | |
| 9 | * (at your option) any later version. | |
| 10 | * | |
| 11 | * This program is distributed in the hope that it will be useful, | |
| 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 | * GNU General Public License for more details. | |
| 15 | * | |
| 16 | * You should have received a copy of the GNU General Public License | |
| 17 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
| 18 | */ | |
| 19 |  | |
| 20 | /** | |
| 21 | * ParentPageTree.php | |
| 22 | * | |
| 23 | * @category WbACP | |
| 24 | * @package WbACP_Pages | |
| 25 | * @copyright Manuela v.d.Decken <manuela@isteam.de> | |
| 26 | * @author Manuela v.d.Decken <manuela@isteam.de> | |
| 27 | * @license http://www.gnu.org/licenses/gpl.html GPL License | |
| 28 | * @version 0.0.1 | |
| 29 | * @revision $Revision: $ | |
| 30 | * @link $HeadURL: $ | |
| 31 | * @lastmodified $Date: $ | |
| 32 | * @since File available since 05.08.2013 | |
| 33 | * @description xyz | |
| 34 | */ | |
| 35 |  | |
| 36 | class a_pages_SmallRawPageTree extends a_pages_PageTree{
 | |
| 37 |  | |
| 38 | /** | |
| 39 | * create a page tree as a well formatted, unordered list | |
| 40 | * @param int use page-ID as root of the generated page tree. (default: 0) | |
| 41 | * @return string the whoole list | |
| 42 | */ | |
| 43 | protected function _createTree($iTreeRoot = 0) | |
| 44 | 	{
 | |
| 45 | // generate the page lines | |
| 46 | $this->_IterateTree($iTreeRoot); | |
| 47 | return ''; | |
| 48 | } | |
| 49 | /** | |
| 50 | * iterate through all nodes which having subnodes | |
| 51 | * @param integer start iteration from this parent page ( 0 = root) | |
| 52 | * @return string all of the item lines | |
| 53 | */ | |
| 54 | protected function _IterateTree($iParent = 0) | |
| 55 | 	{
 | |
| 56 | $sOutput = ''; | |
| 57 | // Get page list from database | |
| 58 | if(($oPages = $this->_oDb->query($this->_makeSql($iParent)))) | |
| 59 | 		{
 | |
| 60 | $this->_queries++; | |
| 61 | $iMinPosition = 1; | |
| 62 | while($aPage = $oPages->fetchRow(MYSQL_ASSOC)) | |
| 63 | 			{ // iterate through the current branch
 | |
| 64 | 				if($this->_aReg['PAGE_LEVEL_LIMIT'] && ($aPage['level'] > $this->_aReg['PAGE_LEVEL_LIMIT'])) {
 | |
| 65 | return ''; | |
| 66 | } | |
| 67 | $aPage['min_position'] = ($aPage['position'] < $iMinPosition ? $aPage['position'] : $iMinPosition); | |
| 68 | $this->_iLineColor = $this->_iPagesTotal++ % 2; | |
| 69 | $aPage['iswriteable'] = false; | |
| 70 | if( $this->_oApp->ami_group_member($aPage['admin_users']) || | |
| 71 | $this->_oApp->is_group_match($this->_oApp->get_groups_id(), $aPage['admin_groups'])) | |
| 72 | 				{
 | |
| 73 | if(($aPage['visibility'] == 'deleted' && $this->_aReg['PAGE_TRASH'] == 'inline') || | |
| 74 | ($aPage['visibility'] != 'deleted')) | |
| 75 | 					{
 | |
| 76 | $aPage['iswriteable'] = true; | |
| 77 | $this->_iPagesWriteable++; | |
| 78 | } | |
| 79 | 				} else {
 | |
| 80 | 					if($aPage['visibility'] == 'private') { continue; }
 | |
| 81 | } | |
| 82 | // add this item to the secondary list of parents | |
| 83 | $this->_addToParentList($aPage); | |
| 84 | // if there are children, iterate through this children now | |
| 85 | 				if((bool)$aPage['children']) {
 | |
| 86 | $this->_IterateTree($aPage['page_id']); | |
| 87 | } | |
| 88 | } | |
| 89 | } | |
| 90 | return $sOutput; | |
| 91 | } | |
| 92 |  | |
| 93 |  | |
| 94 | } // end of class LanguagePageTree | |
| branches/2.8.x/wb/admin/pages/settings.php | ||
|---|---|---|
| 90 | 90 | // $mLang->setLanguage(dirname(__FILE__).'/languages/', LANGUAGE, DEFAULT_LANGUAGE); | 
| 91 | 91 | $mLang = Translate::getinstance(); | 
| 92 | 92 | 	$mLang->enableAddon('admin\pages');
 | 
| 93 | $oDb = WbDatabase::getInstance(); | |
| 93 | 94 | $sDisabled = ' disabled="disabled"'; | 
| 94 | 95 | $sSelected = ' selected="selected"'; | 
| 95 | 96 | $sChecked = ' checked="checked"'; | 
| ... | ... | |
| 417 | 418 | 	} else {
 | 
| 418 | 419 | 		$oTpl->set_var('DISPLAY_VIEWERS', 'display:none;');
 | 
| 419 | 420 | } | 
| 420 | /*-- start multilanguage page_code 20090904 --------------------------------------------*/ | |
| 421 | // Work-out if page languages feature is enabled | |
| 421 | /*-- start multilanguage page_code -----------------------------------------------------*/ | |
| 422 | 422 | 	$oTpl->set_block('main_block', 'show_page_code_block',  'show_page_code');
 | 
| 423 | 423 | 	if( (defined('PAGE_LANGUAGES') && PAGE_LANGUAGES) &&
 | 
| 424 | 424 | 		 isset($aCurrentPage['page_code']) && class_exists('m_MultiLingual_Lib'))
 | 
| 425 | 425 | 	{
 | 
| 426 | // workout field is set but module missing | |
| 427 | 		$oTpl->set_var('TEXT_PAGE_CODE',
 | |
| 428 | '<a href="'.WB_URL.'/modules/MultiLingual/update_keys.php?page_id='.$page_id.'">'.$mLang->TEXT_PAGE_CODE.'</a>' | |
| 429 | ); | |
| 430 | /*-- begin recursive function page_code list ---------------------------------------*/ | |
| 431 | function page_code_list($parent) | |
| 432 | 		{
 | |
| 433 | global $admin, $database, $oTpl, $aCurrentPage, $pageCode; | |
| 434 | $default_language = DEFAULT_LANGUAGE; | |
| 435 |  | |
| 436 | $sql = 'SELECT * FROM `'.TABLE_PREFIX.'pages` ' | |
| 437 | . 'WHERE `parent`='.$parent.' AND `language`=\''.$default_language.'\' ' | |
| 438 | . 'ORDER BY `position` ASC'; | |
| 439 | $get_pages = $database->query($sql); | |
| 440 |  | |
| 441 | while($page = $get_pages->fetchRow(MYSQL_ASSOC)) | |
| 442 | 			{
 | |
| 443 | 				if(($admin->page_is_visible($page)==false) && ($page['visibility'] <> 'none') ) { continue; }
 | |
| 444 |  | |
| 445 | 				$oTpl->set_var('FLAG_CODE_ICON',' none ');
 | |
| 446 | if( $page['parent'] == 0 ) | |
| 447 | 				{
 | |
| 448 | 					$oTpl->set_var('FLAG_CODE_ICON','url('.THEME_URL.'/images/flags/'.strtolower($page['language']).'.png)');
 | |
| 449 | } | |
| 450 |  | |
| 451 | // If the current page cannot be parent, then its children neither | |
| 452 | $list_next_level = true; | |
| 453 | // Stop users from adding pages with a level of more than the set page level limit | |
| 454 | if($page['level']+1 < PAGE_LEVEL_LIMIT) | |
| 455 | 				{
 | |
| 456 | $can_modify = ($admin->ami_group_member($page['admin_groups']) || | |
| 457 | $admin->is_group_match($admin->get_user_id(), $page['admin_users'])); | |
| 458 | $title_prefix = ''; | |
| 459 | 					for($i = 1; $i <= $page['level']; $i++) { $title_prefix .= ' - -  '; }
 | |
| 460 | 					// $space = str_repeat(' ', 3);  $space.'<'..'>'
 | |
| 461 | $oTpl->set_var(array( | |
| 462 | 'VALUE' => intval($page['page_code']), | |
| 463 | 'PAGE_VALUE' => $title_prefix.$page['menu_title'], | |
| 464 | 'PAGE_CODE' => $title_prefix.$page['page_id'] | |
| 465 | ) | |
| 466 | ); | |
| 467 | if($aCurrentPage['page_code'] == $page['page_code']) | |
| 468 | 					{
 | |
| 469 | 						$oTpl->set_var('SELECTED', ' selected="selected"');
 | |
| 470 | } elseif($aCurrentPage['page_code'] == $page['page_code']) | |
| 471 | 					{
 | |
| 472 | 						$oTpl->set_var('SELECTED', ' disabled="disabled" class="disabled"');
 | |
| 473 | $list_next_level=false; | |
| 474 | } elseif($can_modify != true) | |
| 475 | 					{
 | |
| 476 | 						$oTpl->set_var('SELECTED', ' disabled="disabled" class="disabled"');
 | |
| 477 | 					} else {
 | |
| 478 | 						$oTpl->set_var('SELECTED', '');
 | |
| 479 | } | |
| 480 | 					$oTpl->parse('page_code_list', 'page_code_list_block', true);
 | |
| 481 | } | |
| 482 | if ($list_next_level) | |
| 483 | page_code_list($page['page_id']); | |
| 484 | } | |
| 426 | $aTplBlockData = array(); | |
| 427 | // workout field is set but module missing | |
| 428 | $aTplBlockData['PAGE_CODE_LABEL_TEXT'] = $mLang->TEXT_PAGE_CODE; | |
| 429 | $aTplBlockData['PAGE_CODE_UPDATE_URL'] = WB_REL.'/modules/MultiLingual/update_keys.php?page_id='.$page_id; | |
| 430 | // get the root element(level 0) of current page with same language in same menu | |
| 431 | $sql = 'SELECT `page_id` FROM `'.$oDb->TablePrefix.'pages` ' | |
| 432 | . 'WHERE `language`=\''.DEFAULT_LANGUAGE.'\' ' | |
| 433 | . 'AND `level`=0 '; | |
| 434 | 		if(defined('MULTIPLE_MENUS') && MULTIPLE_MENUS == 'true') {
 | |
| 435 | $sql .= 'AND `menu`='.$aCurrentPage['menu'].' '; | |
| 485 | 436 | } | 
| 486 | /*-- end recursive function page_code list -----------------------------------------*/ | |
| 487 | // Insert code_page values from page to modify | |
| 437 | $sql .= 'ORDER BY `position` ASC'; | |
| 438 | $iLangStartPageId = $oDb->get_one($sql); | |
| 439 | // read the tree of the found root element | |
| 440 | $oPageList = new a_pages_SmallRawPageTree(); | |
| 441 | $aLangCodePagesList = $oPageList->getParentList($iLangStartPageId); | |
| 442 | // create option list for the select box | |
| 488 | 443 | 		$oTpl->set_block('show_page_code_block', 'page_code_list_block', 'page_code_list');
 | 
| 489 | 		if($admin->get_permission('pages_add_l0') == true OR $aCurrentPage['level'] == 0) {
 | |
| 490 | $selected = ($aCurrentPage['parent'] == 0 ? $sSelected : ''); | |
| 491 | $oTpl->set_var(array( | |
| 492 | 'VALUE' => 0, | |
| 493 | 'PAGE_CODE' => $mLang->TEXT_NONE, | |
| 494 | 'PAGE_VALUE' => '', | |
| 495 | 'SELECTED' => $selected | |
| 496 | ) | |
| 497 | ); | |
| 444 | $aTplItemData = array(); | |
| 445 | $bPageCodeIsSelected = false; | |
| 446 | // add 'no selection' option at top | |
| 447 | 		if($admin->get_permission('pages_add_l0') OR !$aCurrentPage['level'])
 | |
| 448 | 		{
 | |
| 449 | $aTplItemData['PAGE_CODE_VALUE'] = 0; | |
| 450 | $aTplItemData['PAGE_CODE_PAGE_TITLE'] = $mLang->TEXT_NONE; | |
| 451 | $bPageCodeIsSelected = ($aCurrentPage['page_code'] == 0); | |
| 452 | $aTplItemData['PAGE_CODE_SELECTED'] = ($bPageCodeIsSelected ? $sSelected : ''); | |
| 453 | $oTpl->set_var($aTplItemData); | |
| 498 | 454 | 			$oTpl->parse('page_code_list', 'page_code_list_block', true);
 | 
| 455 | $aTplItemData = array(); | |
| 499 | 456 | } | 
| 500 | // get pagecode form this page_id | |
| 501 | page_code_list(0); | |
| 457 | $iLastEntryLevel = 0; | |
| 458 | $bSkipChildren = false; | |
| 459 | // loop through all items | |
| 460 | while (list(, $aPage) = each($aLangCodePagesList)) | |
| 461 | 		{
 | |
| 462 | // skip child pages where current user has no rights for | |
| 463 | 			if($bSkipChildren && ($aPage['level'] > $iLastEntryLevel)) { continue; }
 | |
| 464 | $bSkipChildren = false; | |
| 465 | $iLastEntryLevel = $aPage['level']; | |
| 466 | //skip entry if it's not visible | |
| 467 | 			if(($admin->page_is_visible($aPage)==false) && ($aPage['visibility'] <> 'none') ) { continue; }
 | |
| 468 | // insert language flag on level 0 | |
| 469 | $sThemeRel = WB_REL.'/'.str_replace(WB_URL, '', THEME_URL).'/images/flags/'.strtolower($aPage['language']).'.png)'; | |
| 470 | 			$aTplItemData['PAGE_CODE_ICON_URL'] = ($aPage['level'] ? 'url('.$sThemeRel.')' : 'none');
 | |
| 471 | // create indent chars | |
| 472 | 			$sTitlePrefix = str_repeat('-- ', $aPage['level']).' ';
 | |
| 473 | $aTplItemData['PAGE_CODE_PAGE_TITLE'] = $sTitlePrefix . $aPage['menu_title']; | |
| 474 | $aTplItemData['PAGE_CODE_VALUE'] = intval($aPage['page_code']); | |
| 475 | // set SELECTED status of this entry | |
| 476 | if( $aPage['page_id'] == $aCurrentPage['page_code'] | |
| 477 | && $aCurrentPage['page_code'] != 0 | |
| 478 | && !$bPageCodeIsSelected | |
| 479 | ) | |
| 480 | 			{ // 
 | |
| 481 | $aTplItemData['PAGE_CODE_SELECTED'] = $sSelected; | |
| 482 | $bPageCodeIsSelected = true; | |
| 483 | } elseif(!$aPage['iswriteable']) | |
| 484 | 			{ // 
 | |
| 485 | $aTplItemData['PAGE_CODE_SELECTED'] = $sDisabled.' class="disabled"'; | |
| 486 | $bSkipChildren = true; | |
| 487 | 			} else {
 | |
| 488 | $aTplItemData['PAGE_CODE_SELECTED'] = ''; | |
| 489 | } | |
| 490 | // output item data | |
| 491 | $oTpl->set_var($aTplItemData); | |
| 492 | 			$oTpl->parse('page_code_list', 'page_code_list_block', true);
 | |
| 493 | $aTplItemData = array(); | |
| 494 | } | |
| 495 | // output block data | |
| 496 | $oTpl->set_var($aTplBlockData); | |
| 502 | 497 | 		$oTpl->parse('show_page_code', 'show_page_code_block', true);
 | 
| 503 | 498 | 	}else {
 | 
| 504 | 499 | 		$oTpl->set_block('show_page_code', '');
 | 
| 505 | 500 | } | 
| 506 | /*-- end multilanguage page_code 20090904 ----------------------------------------------*/
 | |
| 501 | /*-- end multilanguage page_code -------------------------------------------------------*/
 | |
| 507 | 502 |  | 
| 508 | 503 | /*-- show list of parent pages ---------------------------------------------------------*/ | 
| 509 | 504 | 	$oTpl->set_block('main_block', 'parent_page_list_block', 'parent_page_list');
 | 
| ... | ... | |
| 515 | 510 | ) ); | 
| 516 | 511 | 		$oTpl->parse('parent_page_list', 'parent_page_list_block', true);
 | 
| 517 | 512 | } | 
| 513 |  | |
| 518 | 514 | parent_list(0); | 
| 519 | 515 | 	$oTpl->set_var('DISPLAY_MODIFIED', ($modified_ts == 'Unknown' ? 'hide' : ''));
 | 
| 520 | 516 |  | 
| branches/2.8.x/wb/admin/pages/index.php | ||
|---|---|---|
| 135 | 135 |  | 
| 136 | 136 | // --- build parent pages list ----------------------------------------------------------- | 
| 137 | 137 | $aParents = $oPageTree->getParentList(); | 
| 138 | 	$aFirstEntry = array();
 | |
| 139 | 	$aFirstEntry['ID']             = 0;
 | |
| 140 | 	$aFirstEntry['TITLE']          = $TEXT['NONE'];
 | |
| 141 | 	$aFirstEntry['DISABLED']       = 0;
 | |
| 142 | 	$aFirstEntry['PARENT']         = 99;
 | |
| 143 | 	$aFirstEntry['FLAG_ROOT_ICON'] = '';
 | |
| 144 | 	$aFirstEntry['LEVEL']          = 0;
 | |
| 145 | 	$aFirstEntry['LANGUAGE']       = '';
 | |
| 146 | 	array_unshift($aParents, $aFirstEntry);
 | |
| 138 | 	$aNewEntry = array();
 | |
| 139 | 	$aNewEntry['page_id']        = 0;
 | |
| 140 | 	$aNewEntry['menu_title']     = $TEXT['NONE'];
 | |
| 141 | 	$aNewEntry['disabled']       = 0;
 | |
| 142 | 	$aNewEntry['parent']         = 99;
 | |
| 143 | 	$aNewEntry['flag_root_icon'] = '';
 | |
| 144 | 	$aNewEntry['level']          = 0;
 | |
| 145 | 	$aNewEntry['language']       = '';
 | |
| 146 | 	array_unshift($aParents, $aNewEntry);
 | |
| 147 | 147 | reset($aParents); | 
| 148 | 148 | 	$oTpl->set_block('main_block', 'parents_list_block', 'parents_list');
 | 
| 149 | 149 | // walk through all items | 
| 150 | 150 | 	while (list(, $aItem) = each($aParents)) {
 | 
| 151 | 151 | 		if($admin->get_permission('pages_add')) {
 | 
| 152 | $aNewEntry = array(); | |
| 153 | $aNewEntry['ID'] = $aItem['page_id']; | |
| 154 | $aNewEntry['PARENT'] = $aItem['parent']; | |
| 155 | $aNewEntry['LEVEL'] = $aItem['level']; | |
| 156 | $aNewEntry['LANGUAGE'] = $aItem['language']; | |
| 157 | $aNewEntry['FLAG_ROOT_ICON'] = ''; | |
| 152 | 158 | // modify item | 
| 153 | 			$aItem['DISABLED'] = ($aItem['DISABLED'] ? ' disabled="disabled" class="disabled"' : '');
 | |
| 154 | 			if(!$aItem['PARENT']) {
 | |
| 155 | 				$aItem['FLAG_ROOT_ICON'] = ' style="background-image: url('.THEME_REL.'/images/flags/'
 | |
| 159 | 			$aNewEntry['DISABLED'] = ($aItem['disabled'] ? ' disabled="disabled" class="disabled"' : '');
 | |
| 160 | 			if(!$aItem['parent']) {
 | |
| 161 | 				$aNewEntry['FLAG_ROOT_ICON'] = ' style="background-image: url('.THEME_REL.'/images/flags/'
 | |
| 156 | 162 | . strtolower($aItem['LANGUAGE']).'.png);"'; | 
| 157 | 163 | } | 
| 158 | 			$aItem['TITLE'] = str_repeat('- ', $aItem['LEVEL']).$aItem['TITLE'];
 | |
| 164 | 			$aNewEntry['TITLE'] = str_repeat('- ', $aItem['level']).$aItem['menu_title'];
 | |
| 159 | 165 | // write block into template | 
| 160 | 			$oTpl->set_var($aItem);
 | |
| 166 | 			$oTpl->set_var($aNewEntry);
 | |
| 161 | 167 | 			$oTpl->parse('parents_list', 'parents_list_block', true);
 | 
| 162 | 168 | } | 
| 163 | 169 | } | 
| 164 | 170 | unset($aParents); | 
| 165 |  | |
| 166 | 171 | // --- build modules list ---------------------------------------------------------------- | 
| 167 | 172 | $bMatch = false; | 
| 168 | 173 | 	$aModulePermissions = '\''.implode(',', $_SESSION['MODULE_PERMISSIONS']).'\'';
 | 
| branches/2.8.x/wb/admin/interface/version.php | ||
|---|---|---|
| 51 | 51 |  | 
| 52 | 52 | // check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled) | 
| 53 | 53 | if(!defined('VERSION')) define('VERSION', '2.8.3');
 | 
| 54 | if(!defined('REVISION')) define('REVISION', '1952');
 | |
| 54 | if(!defined('REVISION')) define('REVISION', '1953');
 | |
| 55 | 55 | if(!defined('SP')) define('SP', '');
 | 
| branches/2.8.x/wb/modules/MultiLingual/update_keys.php | ||
|---|---|---|
| 54 | 54 | require(WB_PATH.'/modules/admin.php'); | 
| 55 | 55 | $temp_page_id = intval( htmlentities($page_id ) ); | 
| 56 | 56 |  | 
| 57 | $mLang = ModLanguage::getInstance(); | |
| 58 | $mLang->setLanguage(dirname(__FILE__).'/languages/', LANGUAGE, DEFAULT_LANGUAGE); | |
| 59 |  | |
| 57 | $oTrans = Translate::getInstance(); | |
| 60 | 58 | // check for page languages | 
| 61 | 59 | $oPageLang = new m_MultiLingual_Lib(); | 
| 62 | 60 | $Result = $oPageLang->updateDefaultPagesCode(); | 
| ... | ... | |
| 64 | 62 | {
 | 
| 65 | 63 | $admin->print_error($database->get_error(), ADMIN_URL.'/pages/settings.php?page_id='.$temp_page_id ); | 
| 66 | 64 | } else {
 | 
| 67 | 	$admin->print_success($mLang->MESSAGE_PAGES_UPDATE_SETTINGS, ADMIN_URL.'/pages/settings.php?page_id='.$temp_page_id );
 | |
| 65 | 	$admin->print_success($oTrans->MESSAGE_PAGES_UPDATE_SETTINGS, ADMIN_URL.'/pages/settings.php?page_id='.$temp_page_id );
 | |
| 68 | 66 | } | 
Also available in: Unified diff
solved some problems with MultiLingual module