5require_once(
"./Services/COPage/classes/class.ilPageContent.php");
 
   34                parent::setNode($a_node);               
 
   35                $this->plug_node =& $a_node->first_child();             
 
   44        function create($a_pg_obj, $a_hier_id, $a_pc_id, $a_plugin_name,
 
   49                $this->plug_node =& $this->dom->create_element(
"Plugged");
 
   50                $this->plug_node =& $this->node->append_child($this->plug_node);
 
   51                $this->plug_node->set_attribute(
"PluginName", $a_plugin_name);
 
   52                $this->plug_node->set_attribute(
"PluginVersion", $a_plugin_version);
 
   62                if (!is_object($this->plug_node))
 
   68                $children = $this->plug_node->child_nodes();
 
   69                for($i=0; $i<count($children); $i++)
 
   71                        $this->plug_node->remove_child($children[$i]);
 
   74                foreach($a_properties as $key => $value)
 
   76                        $prop_node = $this->dom->create_element(
"PluggedProperty");
 
   77                        $prop_node = $this->plug_node->append_child($prop_node);
 
   78                        $prop_node->set_attribute(
"Name", $key);
 
   81                                $prop_node->set_content($value);
 
   93                $properties = array();
 
   95                if (is_object($this->plug_node))
 
   98                        $children = $this->plug_node->child_nodes();
 
   99                        for($i=0; $i<count($children); $i++)
 
  101                                if ($children[$i]->node_name() == 
"PluggedProperty")
 
  103                                        $properties[$children[$i]->get_attribute(
"Name")] =
 
  104                                                $children[$i]->get_content();
 
  119                if (!empty($a_version))
 
  121                        $this->plug_node->set_attribute(
"PluginVersion", $a_version);
 
  125                        if ($this->plug_node->has_attribute(
"PluginVersion"))
 
  127                                $this->plug_node->remove_attribute(
"PluginVersion");
 
  139                if (is_object($this->plug_node))
 
  141                        return $this->plug_node->get_attribute(
"PluginVersion");
 
  154                        $this->plug_node->set_attribute(
"PluginName", $a_name);
 
  158                        if ($this->plug_node->has_attribute(
"PluginName"))
 
  160                                $this->plug_node->remove_attribute(
"PluginName");
 
  172                if (is_object($this->plug_node))
 
  174                        return $this->plug_node->get_attribute(
"PluginName");
 
  186                global 
$lng, $ilPluginAdmin;
 
  189                $start = strpos($a_html, 
"{{{{{Plugged<pl");
 
  193                        $end = strpos($a_html, 
"}}}}}", $start);
 
  199                        $param = substr($a_html, $start + 5, $end - $start - 5);
 
  200                        $param = str_replace(
' xmlns:xhtml="http://www.w3.org/1999/xhtml"', 
"", $param);
 
  201                        $param = explode(
"<pl/>", $param);
 
  203                        $plugin_name = $param[1];
 
  204                        $plugin_version = $param[2];
 
  205                        $properties = array();
 
  207                        for ($i = 3; $i < count($param); $i+=2)
 
  209                                $properties[$param[$i]] = $param[$i+1];
 
  213                        if ($a_mode == 
"edit")
 
  215                                $plugin_html = 
'<div class="ilBox">'.$lng->txt(
"content_plugin_not_activated").
" (".$plugin_name.
")</div>";
 
  217                if ($ilPluginAdmin->isActive(
IL_COMP_SERVICE, 
"COPage", 
"pgcp", $plugin_name))
 
  219                                $plugin_obj = $ilPluginAdmin->getPluginObject(
IL_COMP_SERVICE, 
"COPage",
 
  220                                        "pgcp", $plugin_name);
 
  221                                $gui_obj = $plugin_obj->getUIClassInstance();
 
  222                                $plugin_html = $gui_obj->getElementHTML($a_mode, $properties, $plugin_version);
 
  225                        $a_html = substr($a_html, 0, $start).
 
  227                                substr($a_html, $end + 5);
 
  229                        if (strlen($a_html) > $start + 5)
 
  231                                $start = strpos($a_html, 
"{{{{{Plugged<pl", $start + 5);
 
  240                                $end = strpos($a_html, 
"}}}}}", $start);
 
  252                global $ilPluginAdmin;
 
  258                foreach ($pl_names as $pl_name)
 
  261                                "COPage", 
"pgcp", $pl_name);
 
  262                        $pl_dir = $plugin->getDirectory();
 
  264                        $pl_js_files = $plugin->getJavascriptFiles();
 
  265                        foreach ($pl_js_files as $pl_js_file)
 
  267                                if (!is_int(strpos($pl_js_file, 
"//")))
 
  269                                        $pl_js_file = $pl_dir.
"/".$pl_js_file;
 
  271                                if (!in_array($pl_js_file, $js_files))
 
  273                                        $js_files[] = $pl_js_file;
 
  286                global $ilPluginAdmin;
 
  288                $css_files = array();
 
  292                foreach ($pl_names as $pl_name)
 
  295                                "COPage", 
"pgcp", $pl_name);
 
  296                        $pl_dir = $plugin->getDirectory();
 
  298                        $pl_css_files = $plugin->getCssFiles();
 
  299                        foreach ($pl_css_files as $pl_css_file)
 
  301                                if (!is_int(strpos($pl_css_file, 
"//")))
 
  303                                        $pl_css_file = $pl_dir.
"/".$pl_css_file;
 
  305                                if (!in_array($pl_css_file, $css_files))
 
  307                                        $css_files[] = $pl_css_file;
 
Class ilPCPlugged Plugged content object (see ILIAS DTD)
getCssFiles()
Get css files.
modifyPageContentPostXsl($a_html, $a_mode)
Modify page content after xsl.
getPluginName()
Get name of plugged component.
setNode(&$a_node)
Set node.
init()
Init page content component.
setPluginName($a_name)
Set name of plugged component.
setProperties($a_properties)
Set properties of plugged component.
create($a_pg_obj, $a_hier_id, $a_pc_id, $a_plugin_name, $a_plugin_version)
Create plugged node in xml.
getJavascriptFiles()
Get javascript files.
getProperties()
Get properties of plugged component.
setPluginVersion($a_version)
Set version of plugged component.
getPluginVersion()
Get version of plugged component.
createPageContentNode($a_set_this_node=true)
Create page content node (always use this method first when adding a new element)
setType($a_type)
Set Type.