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

Class ilPCTabs. More...

+ Inheritance diagram for ilPCTabs:
+ Collaboration diagram for ilPCTabs:

Public Member Functions

 init ()
 Init page content component. More...
 
 setNode (&$a_node)
 Set content node. More...
 
 create (&$a_pg_obj, $a_hier_id, $a_pc_id="")
 Create new Tabs node. More...
 
 setTabType ($a_type="HorizontalTabs")
 Set type of tabs. More...
 
 getTabType ()
 Get type of tabs. More...
 
 setContentWidth ($a_val)
 Set content width. More...
 
 getContentWidth ()
 Get content width. More...
 
 setContentHeight ($a_val)
 Set content height. More...
 
 getContentHeight ()
 Get content height. More...
 
 setHorizontalAlign ($a_val)
 Set horizontal align. More...
 
 getHorizontalAlign ()
 Get horizontal align. More...
 
 setBehavior ($a_val)
 Set behavior. More...
 
 getBehavior ()
 Get behavior. More...
 
 getCaptions ()
 Get captions. More...
 
 getCaption ($a_hier_id, $a_pc_id)
 Get caption. More...
 
 savePositions ($a_pos)
 Save positions of tabs. More...
 
 saveCaptions ($a_captions)
 Add Tab items. More...
 
 deleteTab ($a_hier_id, $a_pc_id)
 Save positions of tabs. More...
 
 addTab ($a_caption)
 Add a tab. More...
 
 setTemplate ($a_template)
 Set template. More...
 
 getTemplate ()
 Get template. More...
 
 setAutoTime ($a_val)
 Set auto animation waiting time. More...
 
 getAutoTime ()
 Get auto animation waiting time. More...
 
 setRandomStart ($a_val)
 Set random start. More...
 
 getRandomStart ()
 Get random start. More...
 
 getJavascriptFiles ($a_mode)
 Get Javascript files. More...
 
 getCssFiles ($a_mode)
 Get Javascript files. More...
 
- Public Member Functions inherited from ilPageContent
 __construct ($a_pg_obj)
 Constructor. More...
 
 setPage ($a_val)
 Set page. More...
 
 getPage ()
 Get page. More...
 
 init ()
 Init object. More...
 
 getType ()
 Get type of page content. More...
 
 setNode (&$a_node)
 Set xml node of page content. More...
 
getNode ()
 Get xml node of page content. More...
 
 getJavascriptFiles ()
 Get Javascript files. More...
 
 getCssFiles ()
 Get css files. More...
 
 getOnloadCode ()
 Get on load code. More...
 
 setHierId ($a_hier_id)
 Set hierarchical ID in xml structure. More...
 
 getHierId ()
 Get hierarchical id. More...
 
 lookupHierId ()
 Get hierarchical id from dom. More...
 
 readHierId ()
 Read PC Id. More...
 
 setPcId ($a_pcid)
 Set PC Id. More...
 
 getPCId ()
 Get PC Id. More...
 
 readPCId ()
 Read PC Id. More...
 
 writePCId ($a_pc_id)
 Write pc id. More...
 
 isGreaterHierId ($a, $b)
 Check whether Hier ID $a is greater than Hier ID $b. More...
 
 setEnabled ($value)
 Set Enabled value for page content component. More...
 
 enable ()
 Enable page content. More...
 
 disable ()
 Disable page content. More...
 
 isEnabled ()
 Check whether page content is enabled. More...
 
 createPageContentNode ($a_set_this_node=true)
 Create page content node (always use this method first when adding a new element) More...
 
 modifyPageContentPostXsl ($a_output, $a_mode)
 Modify page content after xsl. More...
 

Static Public Member Functions

static getLangVars ()
 Get lang vars needed for editing. More...
 
- Static Public Member Functions inherited from ilPageContent
static incEdId ($ed_id)
 Increases an hierarchical editing id at lowest level (last number) More...
 
static decEdId ($ed_id)
 Decreases an hierarchical editing id at lowest level (last number) More...
 
static haveSameContainer ($ed_id1, $ed_id2)
 Check, if two ids are in same container. More...
 
static sortHierIds ($a_array)
 Sort an array of Hier IDS in ascending order. More...
 
static getLangVars ()
 Get lang vars needed for editing. More...
 
static handleCopiedContent (DOMDocument $a_domdoc, $a_self_ass=true, $a_clone_mobs=false)
 Handle copied content. More...
 
static afterPageUpdate ($a_page, DOMDocument $a_domdoc, $a_xml, $a_creation)
 After page has been updated (or created) More...
 
static beforePageDelete ($a_page)
 Before page is being deleted. More...
 
static afterPageHistoryEntry ($a_page, DOMDocument $a_old_domdoc, $a_old_xml, $a_old_nr)
 After page history entry has been created. More...
 

Data Fields

 $tabs_node
 
const ACCORDION_HOR = "HorizontalAccordion"
 
const ACCORDION_VER = "VerticalAccordion"
 
const CAROUSEL = "Carousel"
 
- Data Fields inherited from ilPageContent
 $hier_id
 
 $node
 
 $dom
 

Protected Member Functions

 setTabsAttribute ($a_attr, $a_value)
 Set attribute of tabs tag. More...
 
- Protected Member Functions inherited from ilPageContent
 setType ($a_type)
 Set Type. More...
 

Detailed Description

Class ilPCTabs.

Tabbed contents (see ILIAS DTD)

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

Definition at line 36 of file class.ilPCTabs.php.

Member Function Documentation

◆ addTab()

ilPCTabs::addTab (   $a_caption)

Add a tab.

Definition at line 342 of file class.ilPCTabs.php.

References ilDOMUtil\setFirstOptionalElement().

343  {
344  $new_item = $this->dom->create_element("Tab");
345  $new_item = $this->tabs_node->append_child($new_item);
346  ilDOMUtil::setFirstOptionalElement($this->dom, $new_item, "TabCaption",
347  array(), $a_caption, array());
348  }
setFirstOptionalElement(&$doc, &$parent_node, $a_node_name, $a_successors, $a_content, $a_attributes, $a_remove_childs=true)
searches for an element $a_node_name within the childs of $parent_node if no node is found...
+ Here is the call graph for this function:

◆ create()

ilPCTabs::create ( $a_pg_obj,
  $a_hier_id,
  $a_pc_id = "" 
)

Create new Tabs node.

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

References ilPageContent\createPageContentNode(), and IL_INSERT_AFTER.

64  {
65  $this->node = $this->createPageContentNode();
66  $a_pg_obj->insertContent($this, $a_hier_id, IL_INSERT_AFTER, $a_pc_id);
67  $this->tabs_node =& $this->dom->create_element("Tabs");
68  $this->tabs_node =& $this->node->append_child($this->tabs_node);
69  }
const IL_INSERT_AFTER
createPageContentNode($a_set_this_node=true)
Create page content node (always use this method first when adding a new element) ...
+ Here is the call graph for this function:

◆ deleteTab()

ilPCTabs::deleteTab (   $a_hier_id,
  $a_pc_id 
)

Save positions of tabs.

Definition at line 321 of file class.ilPCTabs.php.

322  {
323  // File Item
324  $childs = $this->tabs_node->child_nodes();
325  $nodes = array();
326  for ($i=0; $i<count($childs); $i++)
327  {
328  if ($childs[$i]->node_name() == "Tab")
329  {
330  if ($a_pc_id == $childs[$i]->get_attribute("PCID") &&
331  $a_hier_id == $childs[$i]->get_attribute("HierId"))
332  {
333  $childs[$i]->unlink($childs[$i]);
334  }
335  }
336  }
337  }

◆ getAutoTime()

ilPCTabs::getAutoTime ( )

Get auto animation waiting time.

Returns
int auto animation time

Definition at line 395 of file class.ilPCTabs.php.

396  {
397  return $this->tabs_node->get_attribute("AutoAnimWait");
398  }

◆ getBehavior()

ilPCTabs::getBehavior ( )

Get behavior.

Returns
string behavior

Definition at line 192 of file class.ilPCTabs.php.

193  {
194  return $this->tabs_node->get_attribute("Behavior");
195  }

◆ getCaption()

ilPCTabs::getCaption (   $a_hier_id,
  $a_pc_id 
)

Get caption.

Definition at line 233 of file class.ilPCTabs.php.

234  {
235  $captions = array();
236  $tab_nodes = $this->tabs_node->child_nodes();
237  $k = 0;
238  for($i = 0; $i < count($tab_nodes); $i++)
239  {
240  if ($tab_nodes[$i]->node_name() == "Tab")
241  {
242  if ($a_pc_id == $tab_nodes[$i]->get_attribute("PCID") &&
243  ($a_hier_id == $tab_nodes[$i]->get_attribute("HierId")))
244  {
245  $tab_node_childs = $tab_nodes[$i]->child_nodes();
246  for($j = 0; $j < count($tab_node_childs); $j++)
247  {
248  if ($tab_node_childs[$j]->node_name() == "TabCaption")
249  {
250  return $tab_node_childs[$j]->get_content();
251  }
252  }
253  }
254  }
255  }
256 
257  return "";
258  }

◆ getCaptions()

ilPCTabs::getCaptions ( )

Get captions.

Definition at line 200 of file class.ilPCTabs.php.

References ilPageContent\$hier_id.

201  {
202  $captions = array();
203  $tab_nodes = $this->tabs_node->child_nodes();
204  $k = 0;
205  for($i = 0; $i < count($tab_nodes); $i++)
206  {
207  if ($tab_nodes[$i]->node_name() == "Tab")
208  {
209  $pc_id = $tab_nodes[$i]->get_attribute("PCID");
210  $hier_id = $tab_nodes[$i]->get_attribute("HierId");
211 
212  $tab_node_childs = $tab_nodes[$i]->child_nodes();
213  $current_caption = "";
214  for($j = 0; $j < count($tab_node_childs); $j++)
215  {
216  if ($tab_node_childs[$j]->node_name() == "TabCaption")
217  {
218  $current_caption = $tab_node_childs[$j]->get_content();
219  }
220  }
221  $captions[] = array("pos" => $k,
222  "caption" => $current_caption, "pc_id" => $pc_id, "hier_id" => $hier_id);
223  $k++;
224  }
225  }
226 
227  return $captions;
228  }

◆ getContentHeight()

ilPCTabs::getContentHeight ( )

Get content height.

Returns
int content height

Definition at line 152 of file class.ilPCTabs.php.

153  {
154  return $this->tabs_node->get_attribute("ContentHeight");
155  }

◆ getContentWidth()

ilPCTabs::getContentWidth ( )

Get content width.

Returns
int content width

Definition at line 132 of file class.ilPCTabs.php.

133  {
134  return $this->tabs_node->get_attribute("ContentWidth");
135  }

◆ getCssFiles()

ilPCTabs::getCssFiles (   $a_mode)

Get Javascript files.

Definition at line 432 of file class.ilPCTabs.php.

References ilAccordionGUI\getLocalCssFiles().

433  {
434  include_once("./Services/Accordion/classes/class.ilAccordionGUI.php");
436  }
+ Here is the call graph for this function:

◆ getHorizontalAlign()

ilPCTabs::getHorizontalAlign ( )

Get horizontal align.

Returns
string horizontal align

Definition at line 172 of file class.ilPCTabs.php.

173  {
174  return $this->tabs_node->get_attribute("HorizontalAlign");
175  }

◆ getJavascriptFiles()

ilPCTabs::getJavascriptFiles (   $a_mode)

Get Javascript files.

Definition at line 423 of file class.ilPCTabs.php.

References ilAccordionGUI\getLocalJavascriptFiles().

424  {
425  include_once("./Services/Accordion/classes/class.ilAccordionGUI.php");
427  }
static getLocalJavascriptFiles()
+ Here is the call graph for this function:

◆ getLangVars()

static ilPCTabs::getLangVars ( )
static

Get lang vars needed for editing.

Returns
array array of lang var keys

Definition at line 374 of file class.ilPCTabs.php.

375  {
376  return array("pc_vacc", "pc_hacc", "pc_carousel");
377  }

◆ getRandomStart()

ilPCTabs::getRandomStart ( )

Get random start.

Returns
bool random start

Definition at line 415 of file class.ilPCTabs.php.

416  {
417  return $this->tabs_node->get_attribute("RandomStart");
418  }

◆ getTabType()

ilPCTabs::getTabType ( )

Get type of tabs.

Definition at line 112 of file class.ilPCTabs.php.

113  {
114  return $this->tabs_node->get_attribute("Type");
115  }

◆ getTemplate()

ilPCTabs::getTemplate ( )

Get template.

Returns
string template

Definition at line 365 of file class.ilPCTabs.php.

366  {
367  return $this->tabs_node->get_attribute("Template");
368  }

◆ init()

ilPCTabs::init ( )

Init page content component.

Definition at line 46 of file class.ilPCTabs.php.

References ilPageContent\setType().

47  {
48  $this->setType("tabs");
49  }
setType($a_type)
Set Type.
+ Here is the call graph for this function:

◆ saveCaptions()

ilPCTabs::saveCaptions (   $a_captions)

Add Tab items.

Definition at line 293 of file class.ilPCTabs.php.

References ilPageContent\$hier_id, ilDOMUtil\deleteAllChildsByName(), and ilDOMUtil\setFirstOptionalElement().

294  {
295  // iterate all tab nodes
296  $tab_nodes = $this->tabs_node->child_nodes();
297  for($i = 0; $i < count($tab_nodes); $i++)
298  {
299  if ($tab_nodes[$i]->node_name() == "Tab")
300  {
301  $pc_id = $tab_nodes[$i]->get_attribute("PCID");
302  $hier_id = $tab_nodes[$i]->get_attribute("HierId");
303  $k = $hier_id.":".$pc_id;
304  // if caption given, set it, otherwise delete caption subitem
305  if ($a_captions[$k] != "")
306  {
307  ilDOMUtil::setFirstOptionalElement($this->dom, $tab_nodes[$i], "TabCaption",
308  array(), $a_captions[$k], array());
309  }
310  else
311  {
312  ilDOMUtil::deleteAllChildsByName($tab_nodes[$i], array("TabCaption"));
313  }
314  }
315  }
316  }
deleteAllChildsByName(&$a_parent, $a_node_names)
delete all childs of a node by names in $a_node_names
setFirstOptionalElement(&$doc, &$parent_node, $a_node_name, $a_successors, $a_content, $a_attributes, $a_remove_childs=true)
searches for an element $a_node_name within the childs of $parent_node if no node is found...
+ Here is the call graph for this function:

◆ savePositions()

ilPCTabs::savePositions (   $a_pos)

Save positions of tabs.

Definition at line 263 of file class.ilPCTabs.php.

References ilPageContent\$hier_id.

264  {
265  asort($a_pos);
266 
267  // File Item
268  $childs = $this->tabs_node->child_nodes();
269  $nodes = array();
270  for ($i=0; $i<count($childs); $i++)
271  {
272  if ($childs[$i]->node_name() == "Tab")
273  {
274  $pc_id = $childs[$i]->get_attribute("PCID");
275  $hier_id = $childs[$i]->get_attribute("HierId");
276  $nodes[$hier_id.":".$pc_id] = $childs[$i];
277  $childs[$i]->unlink($childs[$i]);
278  }
279  }
280 
281  foreach($a_pos as $k => $v)
282  {
283  if (is_object($nodes[$k]))
284  {
285  $nodes[$k] = $this->tabs_node->append_child($nodes[$k]);
286  }
287  }
288  }

◆ setAutoTime()

ilPCTabs::setAutoTime (   $a_val)

Set auto animation waiting time.

Parameters
int$a_valauto animation time

Definition at line 385 of file class.ilPCTabs.php.

References setTabsAttribute().

386  {
387  $this->setTabsAttribute("AutoAnimWait", $a_val);
388  }
setTabsAttribute($a_attr, $a_value)
Set attribute of tabs tag.
+ Here is the call graph for this function:

◆ setBehavior()

ilPCTabs::setBehavior (   $a_val)

Set behavior.

Parameters
stringbehavior

Definition at line 182 of file class.ilPCTabs.php.

References setTabsAttribute().

183  {
184  $this->setTabsAttribute("Behavior", $a_val);
185  }
setTabsAttribute($a_attr, $a_value)
Set attribute of tabs tag.
+ Here is the call graph for this function:

◆ setContentHeight()

ilPCTabs::setContentHeight (   $a_val)

Set content height.

Parameters
intcontent height

Definition at line 142 of file class.ilPCTabs.php.

References setTabsAttribute().

143  {
144  $this->setTabsAttribute("ContentHeight", $a_val);
145  }
setTabsAttribute($a_attr, $a_value)
Set attribute of tabs tag.
+ Here is the call graph for this function:

◆ setContentWidth()

ilPCTabs::setContentWidth (   $a_val)

Set content width.

Parameters
intcontent width

Definition at line 122 of file class.ilPCTabs.php.

References setTabsAttribute().

123  {
124  $this->setTabsAttribute("ContentWidth", $a_val);
125  }
setTabsAttribute($a_attr, $a_value)
Set attribute of tabs tag.
+ Here is the call graph for this function:

◆ setHorizontalAlign()

ilPCTabs::setHorizontalAlign (   $a_val)

Set horizontal align.

Parameters
stringhorizontal align

Definition at line 162 of file class.ilPCTabs.php.

References setTabsAttribute().

163  {
164  $this->setTabsAttribute("HorizontalAlign", $a_val);
165  }
setTabsAttribute($a_attr, $a_value)
Set attribute of tabs tag.
+ Here is the call graph for this function:

◆ setNode()

ilPCTabs::setNode ( $a_node)

Set content node.

Definition at line 54 of file class.ilPCTabs.php.

55  {
56  parent::setNode($a_node); // this is the PageContent node
57  $this->tabs_node =& $a_node->first_child(); // this is the Tabs node
58  }

◆ setRandomStart()

ilPCTabs::setRandomStart (   $a_val)

Set random start.

Parameters
bool$a_valrandom start

Definition at line 405 of file class.ilPCTabs.php.

References setTabsAttribute().

406  {
407  $this->setTabsAttribute("RandomStart", $a_val);
408  }
setTabsAttribute($a_attr, $a_value)
Set attribute of tabs tag.
+ Here is the call graph for this function:

◆ setTabsAttribute()

ilPCTabs::setTabsAttribute (   $a_attr,
  $a_value 
)
protected

Set attribute of tabs tag.

Parameters
stringattribute name
stringattribute value

Definition at line 77 of file class.ilPCTabs.php.

Referenced by setAutoTime(), setBehavior(), setContentHeight(), setContentWidth(), setHorizontalAlign(), setRandomStart(), and setTemplate().

78  {
79  if (!empty($a_value))
80  {
81  $this->tabs_node->set_attribute($a_attr, $a_value);
82  }
83  else
84  {
85  if ($this->tabs_node->has_attribute($a_attr))
86  {
87  $this->tabs_node->remove_attribute($a_attr);
88  }
89  }
90  }
+ Here is the caller graph for this function:

◆ setTabType()

ilPCTabs::setTabType (   $a_type = "HorizontalTabs")

Set type of tabs.

Parameters
string$a_type("HorizontalTabs" | "Accordion")

Definition at line 97 of file class.ilPCTabs.php.

References ACCORDION_HOR, ACCORDION_VER, and CAROUSEL.

98  {
99  switch ($a_type)
100  {
103  case ilPCTabs::CAROUSEL:
104  $this->tabs_node->set_attribute("Type", $a_type);
105  break;
106  }
107  }
const ACCORDION_HOR
const ACCORDION_VER
const CAROUSEL

◆ setTemplate()

ilPCTabs::setTemplate (   $a_template)

Set template.

Parameters
string$a_templatetemplate

Definition at line 355 of file class.ilPCTabs.php.

References setTabsAttribute().

356  {
357  $this->setTabsAttribute("Template", $a_template);
358  }
setTabsAttribute($a_attr, $a_value)
Set attribute of tabs tag.
+ Here is the call graph for this function:

Field Documentation

◆ $tabs_node

ilPCTabs::$tabs_node

Definition at line 38 of file class.ilPCTabs.php.

◆ ACCORDION_HOR

const ilPCTabs::ACCORDION_HOR = "HorizontalAccordion"

◆ ACCORDION_VER

const ilPCTabs::ACCORDION_VER = "VerticalAccordion"

◆ CAROUSEL

const ilPCTabs::CAROUSEL = "Carousel"

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