Project

General

Profile

« Previous | Next » 

Revision 1953

Added by darkviper over 11 years ago

solved some problems with MultiLingual module

View differences:

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
	

Also available in: Unified diff