| Server IP : 172.67.178.83 / Your IP : 216.73.217.141 Web Server : Apache System : Linux hosting01.arsenalhost.com 4.18.0-425.13.1.lve.el8.x86_64 #1 SMP Mon Feb 27 15:23:24 EST 2023 x86_64 User : corbizre ( 1013) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/corbizre/gotofindhomes.com/components/Menu/ |
Upload File : |
<?php
/**
* Documentation
* @author
* @category
* @package
* @subpackage
* @copyright Copyright (c) 2005-2009 ITCrimea Ukraine Inc. (http://www.itcrimea.com)
* @license
*/
class Menu_Item extends System_Db_Object
{
/**
* Построение дерева
* @author [email protected]
* @param id: ParentID
* @param list: array
* @param children: array
* @param pref: string
* @param type: boolen
* @return array
*/
public static function treerequrse($id, $list, &$children, $pref='', $type=true)
{
if (isset($children[$id]))
{
if ( $type ) {
$pre = '<sup>|_</sup> ';
$spacer = '. ';
} else {
$pre = '- ';
$spacer = ' ';
}
foreach ($children[$id] as $v)
{
$id = $v['ID'];
if ( $v['ParentID'] != 0 ) {
$v['Name']= $pref . $pre . $v['Name'];
}
$pt = $v['ParentID'];
$list[$id] = $v;
$list = self::treerequrse($id, $list, $children, $pref.$spacer, $type);
}
}
return $list;
}
/**
* Пост-инсерт
* @author [email protected]
* @return void
*/
protected function _insert ()
{
if (empty($this->Order)) {
$tblMenu = new Menu_Table();
$selectMaxOrder = $tblMenu->select();
$selectMaxOrder->from($tblMenu->getTableName(),array(new Zend_Db_Expr('MAX(`Order`)')));
$selectMaxOrder->where('MenuID = ?',$this->MenuID);
$elmMaxOrder = $tblMenu->getAdapter()->fetchOne($selectMaxOrder);
$this->Order = $elmMaxOrder + 1;
}
}
/**
* Пост-обновление.
* @author [email protected]
* @return void
*/
protected function _postUpdate()
{
$this->reorder();
}
/**
* Удаление всех зависимых записей
* @author [email protected]
* @return void
*/
protected function _delete()
{
$select = $this->select();
$select->where('ParentID = ?', $this->ID);
$objectItemsRows = $this->getTable()->fetchAll($select);
foreach ($objectItemsRows as $itemRow){
$itemRow->delete();
}
}
/**
* Переопределение Order
* @author [email protected]
* @return void
*/
protected function reorder()
{
$select = $this->select();
$select->where('ParentID = ?', $this->ParentID);
$select->where('MenuID = ?', $this->MenuID);
$select->where('ID != ?', $this->ID);
$select->where('`Order` >= ?', $this->Order);
$select->order('Order');
$objectItemRow = $this->getTable()->fetchRow($select);
if(is_object($objectItemRow)){
$objectItemRow->Order = $this->Order + 1;
$objectItemRow->Save();
}
}
}