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

Class ilPCSection. More...

+ Inheritance diagram for ilPCSection:
+ Collaboration diagram for ilPCSection:

Public Member Functions

 init ()
 Init page content component. More...
 
 setNode (&$a_node)
 Set node. More...
 
 create (&$a_pg_obj, $a_hier_id, $a_pc_id="")
 Create section node in xml. More...
 
 setCharacteristic ($a_char)
 Set Characteristic of section. More...
 
 getCharacteristic ()
 Get characteristic of section. More...
 
 modifyPageContentPostXsl ($a_output, $a_mode)
 Modify page content after xsl. More...
 
 setActiveFrom ($a_unix_ts)
 Set activation from. More...
 
 getActiveFrom ()
 Get activation from. More...
 
 setActiveTo ($a_unix_ts)
 Set activation to. More...
 
 getActiveTo ()
 Get activation to. More...
 
 insertTimings ($a_html)
 Insert timings (in edit mode) 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 afterPageUpdate ($a_page, DOMDocument $a_domdoc, $a_xml, $a_creation)
 After page has been updated (or created) More...
 
static saveTimings ($a_page)
 Save timings. More...
 
static getCacheTriggerString ($a_page)
 Get page cache update trigger string. 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

 $dom
 
 $sec_node
 
- Data Fields inherited from ilPageContent
 $hier_id
 
 $node
 
 $dom
 

Additional Inherited Members

- Protected Member Functions inherited from ilPageContent
 setType ($a_type)
 Set Type. More...
 

Detailed Description

Class ilPCSection.

Section content object (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 17 of file class.ilPCSection.php.

Member Function Documentation

◆ afterPageUpdate()

static ilPCSection::afterPageUpdate (   $a_page,
DOMDocument  $a_domdoc,
  $a_xml,
  $a_creation 
)
static

After page has been updated (or created)

Parameters
object$a_pagepage object
DOMDocument$a_domdocdom document
string$a_xmlxml
bool$a_creationtrue on creation, otherwise false

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

110  {
111  include_once("./Services/COPage/classes/class.ilPCSection.php");
112  self::saveTimings($a_page);
113  }

◆ create()

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

Create section node in xml.

Parameters
object$a_pg_objPage Object
string$a_hier_idHierarchical ID

Definition at line 45 of file class.ilPCSection.php.

References ilPageContent\createPageContentNode(), and IL_INSERT_AFTER.

46  {
47  $this->node = $this->createPageContentNode();
48  $a_pg_obj->insertContent($this, $a_hier_id, IL_INSERT_AFTER, $a_pc_id);
49  $this->sec_node =& $this->dom->create_element("Section");
50  $this->sec_node =& $this->node->append_child($this->sec_node);
51  $this->sec_node->set_attribute("Characteristic", "Block");
52  }
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:

◆ getActiveFrom()

ilPCSection::getActiveFrom ( )

Get activation from.

Returns
string unix ts activation from

Definition at line 153 of file class.ilPCSection.php.

154  {
155  if (is_object($this->sec_node))
156  {
157  return $this->sec_node->get_attribute("ActiveFrom");
158  }
159 
160  return "";
161  }

◆ getActiveTo()

ilPCSection::getActiveTo ( )

Get activation to.

Returns
string unix ts activation to

Definition at line 188 of file class.ilPCSection.php.

189  {
190  if (is_object($this->sec_node))
191  {
192  return $this->sec_node->get_attribute("ActiveTo");
193  }
194 
195  return "";
196  }

◆ getCacheTriggerString()

static ilPCSection::getCacheTriggerString (   $a_page)
static

Get page cache update trigger string.

Parameters
ilPageObject$a_page
Returns
string trigger string

Definition at line 251 of file class.ilPCSection.php.

References $ilDB, and IL_CAL_UNIX.

Referenced by ilPageObjectGUI\showPage().

252  {
253  global $ilDB;
254 
255  $set = $ilDB->query("SELECT * FROM copg_section_timings ".
256  " WHERE page_id = ".$ilDB->quote($a_page->getId(), "integer").
257  " AND parent_type = ".$ilDB->quote($a_page->getParentType(), "text")
258  );
259  $str = "";
260  $current_ts = new ilDateTime(time(),IL_CAL_UNIX);
261  $current_ts = $current_ts->get(IL_CAL_UNIX);
262  while ($rec = $ilDB->fetchAssoc($set))
263  {
264  $unix_ts = $rec["unix_ts"];
265  if ($unix_ts < $current_ts)
266  {
267  $unix_ts.= "a";
268  }
269  $str.= "-".$unix_ts;
270  }
271 
272  return $str;
273  }
const IL_CAL_UNIX
Date and time handling
global $ilDB
+ Here is the caller graph for this function:

◆ getCharacteristic()

ilPCSection::getCharacteristic ( )

Get characteristic of section.

Returns
string characteristic

Definition at line 79 of file class.ilPCSection.php.

80  {
81  if (is_object($this->sec_node))
82  {
83  $char = $this->sec_node->get_attribute("Characteristic");
84  if (substr($char, 0, 4) == "ilc_")
85  {
86  $char = substr($char, 4);
87  }
88  return $char;
89  }
90  }

◆ getLangVars()

static ilPCSection::getLangVars ( )
static

Get lang vars needed for editing.

Returns
array array of lang var keys

Definition at line 96 of file class.ilPCSection.php.

97  {
98  return array("ed_insert_section");
99  }

◆ init()

ilPCSection::init ( )

Init page content component.

Definition at line 25 of file class.ilPCSection.php.

References ilPageContent\setType().

26  {
27  $this->setType("sec");
28  }
setType($a_type)
Set Type.
+ Here is the call graph for this function:

◆ insertTimings()

ilPCSection::insertTimings (   $a_html)

Insert timings (in edit mode)

Parameters
string$a_htmlhtml
Returns
string htmls

Definition at line 281 of file class.ilPCSection.php.

References $html, $ilCtrl, $lng, ilDatePresentation\formatDate(), IL_CAL_UNIX, and ilDatePresentation\setUseRelativeDates().

282  {
283  global $ilCtrl, $lng;
284 
285  $c_pos = 0;
286  $start = strpos($a_html, "{{{{{Section;ActiveFrom");
287  if (is_int($start))
288  {
289  $end = strpos($a_html, "}}}}}", $start);
290  }
291  $i = 1;
292  while ($end > 0)
293  {
294  $param = substr($a_html, $start + 13, $end - $start - 13);
295  $param = explode(";", $param);
296  $from = $param[1];
297  $to = $param[3];
298  $html = "";
299  if ($from != "")
300  {
302  $from = new ilDateTime($from, IL_CAL_UNIX);
303  $html.= $lng->txt("cont_active_from").": ".ilDatePresentation::formatDate($from);
304  }
305  if ($to != "")
306  {
307  $to = new ilDateTime($to, IL_CAL_UNIX);
308  $html.= " ".$lng->txt("cont_active_to").": ".ilDatePresentation::formatDate($to);
309  }
310 
311  $h2 = substr($a_html, 0, $start).
312  $html.
313  substr($a_html, $end + 5);
314  $a_html = $h2;
315  $i++;
316 
317  $start = strpos($a_html, "{{{{{Section;ActiveFrom;", $start + 5);
318  $end = 0;
319  if (is_int($start))
320  {
321  $end = strpos($a_html, "}}}}}", $start);
322  }
323  }
324  return $a_html;
325  }
static setUseRelativeDates($a_status)
set use relative dates
const IL_CAL_UNIX
global $ilCtrl
Definition: ilias.php:18
static formatDate(ilDateTime $date)
Format a date public.
Date and time handling
global $lng
Definition: privfeed.php:40
$html
Definition: example_001.php:87
+ Here is the call graph for this function:

◆ modifyPageContentPostXsl()

ilPCSection::modifyPageContentPostXsl (   $a_output,
  $a_mode 
)

Modify page content after xsl.

Parameters
string$a_output
Returns
string

Definition at line 121 of file class.ilPCSection.php.

122  {
123  $a_output = self::insertTimings($a_output);
124 
125  return $a_output;
126  }

◆ saveTimings()

static ilPCSection::saveTimings (   $a_page)
static

Save timings.

Parameters
ilPageObject$a_pagepage object

Definition at line 203 of file class.ilPCSection.php.

References $ilDB, $path, $res, domxml_open_mem(), xpath_eval(), and xpath_new_context().

204  {
205  global $ilDB;
206 
207  $ilDB->manipulate("DELETE FROM copg_section_timings WHERE ".
208  " page_id = ".$ilDB->quote($a_page->getId(), "integer").
209  " AND parent_type = ".$ilDB->quote($a_page->getParentType(), "text")
210  );
211 
212  $xml = $a_page->getXMLFromDom();
213 
214  $doc = domxml_open_mem($xml);
215 
216  // media aliases
217  $xpc = xpath_new_context($doc);
218  $path = "//Section";
219  $res = xpath_eval($xpc, $path);
220  for ($i=0; $i < count($res->nodeset); $i++)
221  {
222  $from = $res->nodeset[$i]->get_attribute("ActiveFrom");
223  if ($from != "")
224  {
225  $ilDB->manipulate("INSERT INTO copg_section_timings ".
226  "(page_id, parent_type, unix_ts) VALUES (".
227  $ilDB->quote($a_page->getId(), "integer").",".
228  $ilDB->quote($a_page->getParentType(), "text").",".
229  $ilDB->quote($from, "text").
230  ")");
231  }
232  $to = $res->nodeset[$i]->get_attribute("ActiveTo");
233  if ($to != "")
234  {
235  $ilDB->manipulate("INSERT INTO copg_section_timings ".
236  "(page_id, parent_type, unix_ts) VALUES (".
237  $ilDB->quote($a_page->getId(), "integer").",".
238  $ilDB->quote($a_page->getParentType(), "text").",".
239  $ilDB->quote($to, "text").
240  ")");
241  }
242  }
243  }
domxml_open_mem($str, $mode=DOMXML_LOAD_PARSING, &$error=NULL)
xpath_new_context($dom_document)
xpath_eval($xpath_context, $eval_str, $contextnode=null)
$path
Definition: index.php:22
global $ilDB
+ Here is the call graph for this function:

◆ setActiveFrom()

ilPCSection::setActiveFrom (   $a_unix_ts)

Set activation from.

Parameters
string$a_unix_tsunix ts activation from

Definition at line 133 of file class.ilPCSection.php.

134  {
135  if ($a_unix_ts > 0)
136  {
137  $this->sec_node->set_attribute("ActiveFrom", $a_unix_ts);
138  }
139  else
140  {
141  if ($this->sec_node->has_attribute("ActiveFrom"))
142  {
143  $this->sec_node->remove_attribute("ActiveFrom");
144  }
145  }
146  }

◆ setActiveTo()

ilPCSection::setActiveTo (   $a_unix_ts)

Set activation to.

Parameters
string$a_unix_tsunix ts activation to

Definition at line 168 of file class.ilPCSection.php.

169  {
170  if ($a_unix_ts > 0)
171  {
172  $this->sec_node->set_attribute("ActiveTo", $a_unix_ts);
173  }
174  else
175  {
176  if ($this->sec_node->has_attribute("ActiveTo"))
177  {
178  $this->sec_node->remove_attribute("ActiveTo");
179  }
180  }
181  }

◆ setCharacteristic()

ilPCSection::setCharacteristic (   $a_char)

Set Characteristic of section.

Parameters
string$a_charCharacteristic

Definition at line 59 of file class.ilPCSection.php.

60  {
61  if (!empty($a_char))
62  {
63  $this->sec_node->set_attribute("Characteristic", $a_char);
64  }
65  else
66  {
67  if ($this->sec_node->has_attribute("Characteristic"))
68  {
69  $this->sec_node->remove_attribute("Characteristic");
70  }
71  }
72  }

◆ setNode()

ilPCSection::setNode ( $a_node)

Set node.

Definition at line 33 of file class.ilPCSection.php.

34  {
35  parent::setNode($a_node); // this is the PageContent node
36  $this->sec_node =& $a_node->first_child(); // this is the Section node
37  }

Field Documentation

◆ $dom

ilPCSection::$dom

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

◆ $sec_node

ilPCSection::$sec_node

Definition at line 20 of file class.ilPCSection.php.


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