ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilSplitButtonGUI Class Reference

Class ilSplitButton. More...

+ Inheritance diagram for ilSplitButtonGUI:
+ Collaboration diagram for ilSplitButtonGUI:

Public Member Functions

 addMenuItem (ilSplitButtonMenuItem $menu_item)
 
 removeMenuItem (ilSplitButtonMenuItem $menu_item)
 
 hasMenuItems ()
 
 getMenuItems ()
 
 setMenuItems ($menu_items)
 
 getDefaultButton ()
 
 hasDefaultButton ()
 
 setDefaultButton (ilButtonBase $default_button)
 
 render ()
 
- Public Member Functions inherited from ilButtonBase
 __clone ()
 Clone instance. More...
 
 getType ()
 Get button type. More...
 
 setId ($a_value)
 Set id. More...
 
 getId ()
 Get id. More...
 
 setCaption ($a_value, $a_is_lng_id=true)
 Set caption. More...
 
 getCaption ($a_translate=true)
 Get caption. More...
 
 setPrimary ($a_value)
 Toggle primary status. More...
 
 isPrimary ()
 Get primary status. More...
 
 setOmitPreventDoubleSubmission ($a_value)
 Toggle double submission prevention status. More...
 
 getOmitPreventDoubleSubmission ()
 Get double submission prevention status. More...
 
 setOnClick ($a_value)
 Set onclick. More...
 
 getOnClick ()
 Get onclick. More...
 
 setAccessKey ($a_value)
 Set access key. More...
 
 getAccessKey ()
 Get access key. More...
 
 setDisabled ($a_value)
 Toggle disabled status. More...
 
 isDisabled ()
 Get disabled status. More...
 
 addCSSClass ($a_value)
 Add CSS class. More...
 
 getCSSClasses ()
 Get CSS class(es) More...
 
 applyDefaultCss ($apply_default_css=null)
 
 render ()
 Render HTML. More...
 
 getToolbarHTML ()
 
 getToolbarHTML ()
 Get input item HTML to be inserted into ilToolbarGUI. More...
 

Static Public Member Functions

static getInstance ()
 
static getInstance ()
 Factory. More...
 

Protected Attributes

 $lng
 
 $default_button
 
 $menu_items = array()
 
- Protected Attributes inherited from ilButtonBase
 $type
 
 $id
 
 $caption
 
 $caption_is_lng_id
 
 $primary
 
 $omit_prevent_double_submission
 
 $onclick
 
 $acc_key
 
 $disabled
 
 $css = array()
 
 $apply_default_css = true
 

Additional Inherited Members

- Data Fields inherited from ilButtonBase
const TYPE_SUBMIT = 1
 
const TYPE_LINK = 2
 
const TYPE_SPLIT = 3
 
const TYPE_BUTTON = 4
 
- Protected Member Functions inherited from ilButtonBase
 __construct ($a_type)
 Constructor. More...
 
 setType ($a_value)
 Set button type. More...
 
 gatherCssClasses ()
 Gather all active CSS classes. More...
 
 renderAttributesHelper (array $a_attr)
 Render HTML node attributes. More...
 
 renderAttributes (array $a_additional_attr=null)
 Render current HTML attributes. More...
 
 prepareRender ()
 Prepare render
More...
 

Detailed Description

Class ilSplitButton.

Author
Michael Jansen mjans.nosp@m.en@d.nosp@m.ataba.nosp@m.y.de

Definition at line 14 of file class.ilSplitButtonGUI.php.

Member Function Documentation

◆ addMenuItem()

ilSplitButtonGUI::addMenuItem ( ilSplitButtonMenuItem  $menu_item)
Parameters
ilSplitButtonMenuItem$menu_item

Definition at line 55 of file class.ilSplitButtonGUI.php.

56 {
57 $this->menu_items[] = $menu_item;
58 }

◆ getDefaultButton()

ilSplitButtonGUI::getDefaultButton ( )
Returns
ilButtonBase

Definition at line 109 of file class.ilSplitButtonGUI.php.

References $default_button.

Referenced by render().

+ Here is the caller graph for this function:

◆ getInstance()

static ilSplitButtonGUI::getInstance ( )
static
Returns
self;

Reimplemented from ilButtonBase.

Definition at line 47 of file class.ilSplitButtonGUI.php.

48 {
49 return new self(self::TYPE_SPLIT);
50 }

References ilButtonBase\TYPE_SPLIT.

◆ getMenuItems()

ilSplitButtonGUI::getMenuItems ( )
Returns
ilSplitButtonMenuItem[]

Definition at line 83 of file class.ilSplitButtonGUI.php.

References $menu_items.

Referenced by render().

+ Here is the caller graph for this function:

◆ hasDefaultButton()

ilSplitButtonGUI::hasDefaultButton ( )
Returns
boolean

Definition at line 117 of file class.ilSplitButtonGUI.php.

118 {
119 return ($this->default_button instanceof ilButtonBase);
120 }

Referenced by render().

+ Here is the caller graph for this function:

◆ hasMenuItems()

ilSplitButtonGUI::hasMenuItems ( )
Returns
boolean

Definition at line 75 of file class.ilSplitButtonGUI.php.

76 {
77 return count($this->menu_items) > 0;
78 }

Referenced by render().

+ Here is the caller graph for this function:

◆ removeMenuItem()

ilSplitButtonGUI::removeMenuItem ( ilSplitButtonMenuItem  $menu_item)
Parameters
ilSplitButtonMenuItem$menu_item

Definition at line 63 of file class.ilSplitButtonGUI.php.

64 {
65 $key = array_search($menu_item, $this->menu_items);
66 if($key !== false)
67 {
68 unset($this->menu_items[$key]);
69 }
70 }

◆ render()

ilSplitButtonGUI::render ( )
Returns
string
Exceptions
ilSplitButtonException

Reimplemented from ilButtonBase.

Definition at line 134 of file class.ilSplitButtonGUI.php.

135 {
136 $tpl = new ilTemplate('tpl.split_button.html', true, true, 'Services/UIComponent/SplitButton');
137
138 if(!$this->hasDefaultButton())
139 {
140 throw new ilSplitButtonException(
141 "Cannot render a split button without a default button"
142 );
143 }
144
145 $tpl->setVariable('DEFAULT_ITEM_CONTENT', $this->getDefaultButton()->render());
146 if($this->hasMenuItems())
147 {
148 $btn_classes = $this->getDefaultButton()->getCSSClasses();
149 if($this->getDefaultButton()->isPrimary())
150 {
151 $btn_classes[] = 'btn-primary';
152 }
153 $tpl->setVariable('BTN_CSS_CLASS', implode(' ', $btn_classes));
154
155 foreach($this->getMenuItems() as $item)
156 {
157 if($item instanceof ilSplitButtonSeparatorMenuItem)
158 {
159 $tpl->setCurrentBlock('separator');
160 $tpl->touchBlock('separator');
161 $tpl->parseCurrentBlock();
162 }
163 else
164 {
165 $tpl->setCurrentBlock('item');
166 $tpl->setVariable('CONTENT', $item->getContent());
167 $tpl->parseCurrentBlock();
168 }
169
170 $tpl->setCurrentBlock('items');
171 $tpl->parseCurrentBlock();
172 }
173
174 $tpl->setVariable('TXT_TOGGLE_DROPDOWN', $this->lng->txt('toggle_dropdown'));
175 }
176
177 return $tpl->get();
178 }
global $tpl
Definition: ilias.php:8
isPrimary()
Get primary status.
Class ilSplittButtonException.
special template class to simplify handling of ITX/PEAR
Interface ilSplitButtonSeparatorMenuItem.

References $tpl, getDefaultButton(), getMenuItems(), hasDefaultButton(), hasMenuItems(), ilButtonBase\isPrimary(), and render().

Referenced by render().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setDefaultButton()

ilSplitButtonGUI::setDefaultButton ( ilButtonBase  $default_button)
Parameters
ilButtonBase$default_button

Definition at line 125 of file class.ilSplitButtonGUI.php.

126 {
127 $this->default_button = $default_button;
128 }

References $default_button.

◆ setMenuItems()

ilSplitButtonGUI::setMenuItems (   $menu_items)
Parameters
ilSplitButtonMenuItem[]$menu_items
Exceptions
ilSplitButtonException

Definition at line 92 of file class.ilSplitButtonGUI.php.

93 {
94 array_walk($menu_items, function(&$item, $idx) {
95 if(!($item instanceof ilSplitButtonMenuItem))
96 {
97 throw new ilSplitButtonException(sprintf(
98 "Cannot set menu items, element at index '%s' is not of type 'ilSplitButtonItem'", $idx
99 ));
100 }
101 });
102
103 $this->menu_items = $menu_items;
104 }
Interface ilSplitButtonMenuItem.

References $menu_items.

Field Documentation

◆ $default_button

ilSplitButtonGUI::$default_button
protected

Definition at line 24 of file class.ilSplitButtonGUI.php.

Referenced by getDefaultButton(), and setDefaultButton().

◆ $lng

ilSplitButtonGUI::$lng
protected

Definition at line 19 of file class.ilSplitButtonGUI.php.

◆ $menu_items

ilSplitButtonGUI::$menu_items = array()
protected

Definition at line 29 of file class.ilSplitButtonGUI.php.

Referenced by getMenuItems(), and setMenuItems().


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