aliroMenuCreator Class Reference

List of all members.

Public Member Functions

 getIndents ($params)
 getMenuData ($params, $maxindent)

Static Public Member Functions

static getInstance ()

Private Member Functions

 __construct ()
 __clone ()
 makeMenuLink ($mitem, $params, $maxindent)

Private Attributes

 $config = null
 $handler = null
 $currlink = ''

Static Private Attributes

static $instance = __CLASS__


Detailed Description

Definition at line 46 of file aliroMenuCreator.php.


Constructor & Destructor Documentation

aliroMenuCreator::__construct (  )  [private]

Definition at line 52 of file aliroMenuCreator.php.

References aliroRequest::getInstance(), aliroMenuHandler::getInstance(), and aliroCore::getInstance().

00052                                     {
00053         $this->config = aliroCore::getInstance();
00054         $this->handler = aliroMenuHandler::getInstance();
00055         $itemid = aliroRequest::getInstance()->getItemid();
00056         if ($itemid) {
00057             $currmenu = $this->handler->getMenuByID($itemid);
00058             if ($currmenu) $this->currlink = $currmenu->link;
00059         }
00060     }


Member Function Documentation

aliroMenuCreator::__clone (  )  [private]

Definition at line 62 of file aliroMenuCreator.php.

00062                                 {
00063         // Null function - private to enforce singleton
00064     }

static aliroMenuCreator::getInstance (  )  [static]

Definition at line 66 of file aliroMenuCreator.php.

00066                                           {
00067         return is_object(self::$instance) ? self::$instance : (self::$instance = new self::$instance());
00068     }

aliroMenuCreator::makeMenuLink ( mitem,
params,
maxindent 
) [private]

Definition at line 70 of file aliroMenuCreator.php.

References aliroCore::get(), and aliroSEF::getInstance().

Referenced by getMenuData().

00070                                                                {
00071         $newlink = new aliroMenuLink ();
00072         $newlink->name = $mitem->name;
00073         $newlink->level = min($mitem->level,$maxindent);
00074         $newlink->link = aliroSEF::getInstance()->sefRelToAbs($mitem->link);
00075         // Active Menu highlighting
00076         $newlink->active = ($this->currlink == $mitem->link);
00077         // Set menu link class
00078         $newlink->opener = $mitem->browserNav;
00079         if ( $params->get('menu_images', 0)) {
00080             $menu_params = new aliroParameters($mitem->params);
00081             $menu_image = $menu_params->def( 'menu_image', -1 );
00082             if ($menu_image AND $menu_image <> '-1') {
00083                 $newlink->image = aliroCore::get('mosConfig_live_site').'/images/stories/'.$menu_image;
00084                 $newlink->image_last = $params->get('menu_images_align', 0);
00085             }
00086         }
00087         return $newlink;
00088     }

aliroMenuCreator::getIndents ( params  ) 

Get images for menu indentation

Definition at line 93 of file aliroMenuCreator.php.

References aliroRequest::getInstance(), aliroCore::getInstance(), and NULL.

00093                                           {
00094         $base = aliroCore::getInstance()->getCfg('live_site');
00095         $imgpath = $base.'/templates/'. aliroRequest::getInstance()->getTemplate() .'/images';
00096 
00097         for ( $i = 1; $i < 7; $i++ ) {
00098             switch ($params->get( 'indent_image', 0 )) {
00099 
00100                 case '1':
00101                 // Default images
00102                 $img[$i] = array("$base/images/M_images/indent$i.png", "Indent $i");
00103                 break;
00104 
00105                 case '2':
00106                 // Use Params
00107                 $img[$i] =  ('-1' == $params->get('indent_image'.$i, 0)) ? array (NULL, NULL) : array("$base/images/M_images/$parm", "Indent $i");
00108                 break;
00109 
00110                 case '3':
00111                 // None
00112                 $img[$i] = array(NULL,NULL);
00113                 break;
00114 
00115                 default:
00116                 // Template
00117                 $img[$i] = array("$imgpath/indent$i.png", "Indent $i");
00118                 break;
00119             }
00120         }
00121         return $img;
00122     }

aliroMenuCreator::getMenuData ( params,
maxindent 
)

Construct a menu

Definition at line 127 of file aliroMenuCreator.php.

References makeMenuLink().

00127                                                        {
00128         $menutype = $params->get('menutype', 'mainmenu');
00129         $rows = $this->handler->getByParentOrder($menutype, true);
00130         $entries = array();
00131         $show = array(0);
00132         foreach ($rows as $row) {
00133             if (!in_array($row->parent, $show)) array_unshift($show, $row->parent);
00134             elseif (!$row->parent == $show[0]) array_shift($show);
00135             if ($this->currlink == $row->link) {
00136                 array_push($show, $row->id);
00137                 break;
00138             }
00139         }
00140         foreach ($rows as $row) if (in_array($row->parent, $show)) {
00141             $entries[] = $this->makeMenuLink($row, $params, $maxindent);
00142         }
00143         return $entries;
00144     }


Member Data Documentation

aliroMenuCreator::$instance = __CLASS__ [static, private]

Definition at line 47 of file aliroMenuCreator.php.

aliroMenuCreator::$config = null [private]

Definition at line 48 of file aliroMenuCreator.php.

aliroMenuCreator::$handler = null [private]

Definition at line 49 of file aliroMenuCreator.php.

aliroMenuCreator::$currlink = '' [private]

Definition at line 50 of file aliroMenuCreator.php.


The documentation for this class was generated from the following file:

Generated on Thu Apr 17 13:03:30 2008 for ALIRO by  doxygen 1.5.5