Public Member Functions

ilPCTableGUI Class Reference
[Services/COPage]

Class ilPCTableGUI. More...

Inheritance diagram for ilPCTableGUI:
Collaboration diagram for ilPCTableGUI:

Public Member Functions

 ilPCTableGUI (&$a_pg_obj, &$a_content_obj, $a_hier_id)
 Constructor public.
executeCommand ()
 execute command
 edit ()
 edit properties form
 setWidth ()
 set width of selected table data cells
 setClass ()
 set class of selected table data cells
 setProperties ()
 saveProperties ()
 save table properties in db and return to page edit screen
 rightAlign ()
 align table to right
 leftAlign ()
 align table to left
 centerAlign ()
 align table to left
 leftFloatAlign ()
 align table to left float
 rightFloatAlign ()
 align table to left
 insert ()
 insert new table form
 create ()
 create new table in dom and update page in db
 setTabs ()
 output tabs
 getTabs (&$tabs_gui)
 adds tabs to tab gui object

Detailed Description

Class ilPCTableGUI.

User Interface for Table Editing

Author:
Alex Killing <alex.killing@gmx.de>
Version:
Id:
class.ilPCTableGUI.php 13123 2007-01-29 13:57:16Z smeyer

Definition at line 37 of file class.ilPCTableGUI.php.


Member Function Documentation

ilPCTableGUI::centerAlign (  ) 

align table to left

Definition at line 267 of file class.ilPCTableGUI.php.

References $_SESSION.

        {
                $this->content_obj->setHorizontalAlign("Center");
                $_SESSION["il_pg_error"] = $this->pg_obj->update();
                $this->ctrl->returnToParent($this, "jump".$this->hier_id);
        }

ilPCTableGUI::create (  ) 

create new table in dom and update page in db

Definition at line 362 of file class.ilPCTableGUI.php.

References ilPageContentGUI::$lng, and insert().

        {
                global  $lng;
                $this->content_obj = new ilPCTable($this->dom);
                $this->content_obj->create($this->pg_obj, $this->hier_id);
                $this->content_obj->setLanguage($_POST["tab_language"]);
                $import_table = trim($_POST["import_table"]);
                
                // import xhtml or spreadsheet table
                if (!empty ($import_table))
                {
                        switch($_POST["import_type"])
                        {
                                // xhtml import
                                case "html":
                                        if (!$this->content_obj->importHtml ($_POST["tab_language"], $import_table))
                                        {
                                                $this->insert();
                                                return; 
                                        }
                                        break;
                                        
                                // spreadsheet
                                case "spreadsheet":
                                        $this->content_obj->importSpreadsheet($_POST["tab_language"], $import_table);
                                        break;
                        }
                }
                else
                {               
                        $this->content_obj->addRows($_POST["nr_rows"], $_POST["nr_cols"]);
                }
                
                $this->updated = $this->pg_obj->update();
                
                if ($this->updated === true)
                {
                        $this->ctrl->returnToParent($this, "jump".$this->hier_id);
                }
                else
                {
                        $this->insert();
                }
        }

Here is the call graph for this function:

ilPCTableGUI::edit (  ) 

edit properties form

Definition at line 74 of file class.ilPCTableGUI.php.

References $lang, ilMDLanguageItem::_getLanguages(), ilPageContentGUI::displayValidationError(), formSelect(), ilUtil::getImagePath(), setTabs(), xslt_create(), xslt_error(), xslt_free(), and xslt_process().

Referenced by saveProperties(), setClass(), and setWidth().

        {

                $this->setTabs();

                // add paragraph edit template
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.table_properties.html", "Services/COPage");
                $this->tpl->setVariable("TXT_ACTION", $this->lng->txt("cont_edit_tab_properties"));
                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));

                $this->displayValidationError();

                // table
                $this->tpl->setVariable("TXT_TABLE", $this->lng->txt("cont_table"));
                $this->tpl->setVariable("INPUT_TD_WIDTH", "td_width");
                $this->tpl->setVariable("BTN_WIDTH", "setWidth");
                $this->tpl->setVariable("BTN_TXT_WIDTH", $this->lng->txt("cont_set_width"));
                // todo: we need a css concept here!
                $select_class = ilUtil::formSelect ("","td_class",
                        array("" => $this->lng->txt("none"), "ilc_Cell1" => "Cell1", "ilc_Cell2" => "Cell2",
                        "ilc_Cell3" => "Cell3", "ilc_Cell4" => "Cell4"),false,true);
                $this->tpl->setVariable("SELECT_CLASS", $select_class);
                $this->tpl->setVariable("BTN_CLASS", "setClass");
                $this->tpl->setVariable("BTN_TXT_CLASS", $this->lng->txt("cont_set_class"));
                $tab_node = $this->content_obj->getNode();
                $content = $this->dom->dump_node($tab_node);
                //$dom2 =& domxml_open_mem($this->xml);
                $trans =& $this->pg_obj->getLanguageVariablesXML();
                $content = "<dummy>".$content.$trans."</dummy>";

                $xsl = file_get_contents("./Services/COPage/xsl/page.xsl");
                $args = array( '/_xml' => $content, '/_xsl' => $xsl );
                $xh = xslt_create();
//echo "<b>XML</b>:".htmlentities($content).":<br>";
//echo "<b>XSLT</b>:".htmlentities($xsl).":<br>";
                $med_disabled_path = ilUtil::getImagePath("media_disabled.gif");
                $params = array ('mode' => 'table_edit', 'med_disabled_path' => $med_disabled_path);
                $output = xslt_process($xh,"arg:/_xml","arg:/_xsl",NULL,$args, $params);
                echo xslt_error($xh);
                xslt_free($xh);

                // unmask user html
                $output = str_replace("&lt;","<",$output);
                $output = str_replace("&gt;",">",$output);
                $output = str_replace("&amp;","&",$output);

//echo "<b>HTML</b>".htmlentities($output);
                $this->tpl->setVariable("CONT_TABLE", $output);


                // language
                $this->tpl->setVariable("TXT_LANGUAGE", $this->lng->txt("language"));
                require_once("Services/MetaData/classes/class.ilMDLanguageItem.php");
                $lang = ilMDLanguageItem::_getLanguages();
                $select_lang = ilUtil::formSelect ($this->content_obj->getLanguage(),"tab_language",$lang,false,true);
                $this->tpl->setVariable("SELECT_LANGUAGE", $select_lang);

                // width
                $this->tpl->setVariable("TXT_TABLE_WIDTH", $this->lng->txt("cont_table_width"));
                $this->tpl->setVariable("INPUT_TABLE_WIDTH", "tab_width");
                $this->tpl->setVariable("VAL_TABLE_WIDTH", $this->content_obj->getWidth());

                // border
                $this->tpl->setVariable("TXT_TABLE_BORDER", $this->lng->txt("cont_table_border"));
                $this->tpl->setVariable("INPUT_TABLE_BORDER", "tab_border");
                $this->tpl->setVariable("VAL_TABLE_BORDER", $this->content_obj->getBorder());

                // padding
                $this->tpl->setVariable("TXT_TABLE_PADDING", $this->lng->txt("cont_table_cellpadding"));
                $this->tpl->setVariable("INPUT_TABLE_PADDING", "tab_padding");
                $this->tpl->setVariable("VAL_TABLE_PADDING", $this->content_obj->getCellPadding());

                // spacing
                $this->tpl->setVariable("TXT_TABLE_SPACING", $this->lng->txt("cont_table_cellspacing"));
                $this->tpl->setVariable("INPUT_TABLE_SPACING", "tab_spacing");
                $this->tpl->setVariable("VAL_TABLE_SPACING", $this->content_obj->getCellSpacing());

                // caption
                $caption = $this->content_obj->getCaption();
                $caption = str_replace("&", "&amp;", $caption);
                $this->tpl->setVariable("TXT_CAPTION", $this->lng->txt("cont_caption"));
                $this->tpl->setVariable("INPUT_CAPTION", "tab_caption");
                $this->tpl->setVariable("VAL_CAPTION", $caption);
                $select_align = ilUtil::formSelect ($this->content_obj->getCaptionAlign(),"tab_cap_align",
                        array("top" => $this->lng->txt("cont_top"), "bottom" => $this->lng->txt("cont_bottom")),false,true);
                $this->tpl->setVariable("SELECT_CAPTION", $select_align);

                $this->tpl->parseCurrentBlock();

                // operations
                $this->tpl->setCurrentBlock("commands");
                $this->tpl->setVariable("BTN_NAME", "saveProperties");
                $this->tpl->setVariable("BTN_TEXT", $this->lng->txt("save"));
                $this->tpl->setVariable("BTN_CANCEL", "cancelUpdate");
                $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
                $this->tpl->parseCurrentBlock();

        }

Here is the call graph for this function:

Here is the caller graph for this function:

& ilPCTableGUI::executeCommand (  ) 

execute command

Definition at line 52 of file class.ilPCTableGUI.php.

References $cmd, and $ret.

        {
                // get next class that processes or forwards current command
                $next_class = $this->ctrl->getNextClass($this);

                // get current command
                $cmd = $this->ctrl->getCmd();

                switch($next_class)
                {
                        default:
                                $ret =& $this->$cmd();
                                break;
                }

                return $ret;
        }

ilPCTableGUI::getTabs ( &$  tabs_gui  ) 

adds tabs to tab gui object

Parameters:
object $tabs_gui ilTabsGUI object

Definition at line 426 of file class.ilPCTableGUI.php.

Referenced by setTabs().

        {
                // back to upper context
                /*
                $tabs_gui->addTarget("cont_back",
                        $this->ctrl->getParentReturn($this), "",
                        "");
                */
        }

Here is the caller graph for this function:

ilPCTableGUI::ilPCTableGUI ( &$  a_pg_obj,
&$  a_content_obj,
a_hier_id 
)

Constructor public.

Definition at line 44 of file class.ilPCTableGUI.php.

References ilPageContentGUI::ilPageContentGUI().

        {
                parent::ilPageContentGUI($a_pg_obj, $a_content_obj, $a_hier_id);
        }

Here is the call graph for this function:

ilPCTableGUI::insert (  ) 

insert new table form

Definition at line 297 of file class.ilPCTableGUI.php.

References $_GET, $_SESSION, $lang, ilMDLanguageItem::_getLanguages(), ilPageContentGUI::displayValidationError(), formSelect(), and setTabs().

Referenced by create().

        {
                global $ilUser;

                $this->setTabs();

                // new table form (input of rows and columns)
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.table_new.html", "Services/COPage");
                $this->tpl->setVariable("TXT_ACTION", $this->lng->txt("cont_insert_table"));
                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));

                $this->displayValidationError();

                for($i=1; $i<=10; $i++)
                {
                        $nr[$i] = $i;
                }

                if ($_SESSION["il_text_lang_".$_GET["ref_id"]] != "")
                {
                        $s_lang = $_SESSION["il_text_lang_".$_GET["ref_id"]];
                }
                else
                {
                        $s_lang = $ilUser->getLanguage();
                }

                // select fields for number of columns
                $this->tpl->setVariable("TXT_LANGUAGE", $this->lng->txt("language"));
                require_once("Services/MetaData/classes/class.ilMDLanguageItem.php");
                $lang = ilMDLanguageItem::_getLanguages();
                $select_language = ilUtil::formSelect ($s_lang, "tab_language", $lang, false, true);
                $this->tpl->setVariable("SELECT_LANGUAGE", $select_language);
                $this->tpl->setVariable("TXT_COLS", $this->lng->txt("cont_nr_cols"));
                $select_cols = ilUtil::formSelect ("2","nr_cols",$nr,false,true);
                $this->tpl->setVariable("SELECT_COLS", $select_cols);
                $this->tpl->setVariable("TXT_ROWS", $this->lng->txt("cont_nr_rows"));
                $select_rows = ilUtil::formSelect ("2","nr_rows",$nr,false,true);
                $this->tpl->setVariable("SELECT_ROWS", $select_rows);
                
                //import html table
                $this->tpl->setVariable("TXT_HTML_IMPORT", $this->lng->txt("cont_table_html_import"));
                $this->tpl->setVariable("TXT_SPREADSHEET", $this->lng->txt("cont_table_spreadsheet_import"));           
                $this->tpl->setVariable("TXT_BTN_HTML_IMPORT", $this->lng->txt("import"));              
                $this->tpl->setVariable("TXT_HTML_IMPORT_INFO", $this->lng->txt("cont_table_html_import_info"));
                $this->tpl->setVariable("TXT_SPREADSHEET_IMPORT_INFO", $this->lng->txt("cont_table_spreadsheet_import_info"));          
                $this->tpl->setVariable("CMD_HTML_IMPORT", "create_tab");
                $this->tpl->setVariable("SELECT_ROWS", $select_rows);
                                        
                $this->tpl->parseCurrentBlock();

                // operations
                $this->tpl->setCurrentBlock("commands");
                $this->tpl->setVariable("BTN_NAME", "create_tab");
                $this->tpl->setVariable("BTN_TEXT", $this->lng->txt("save"));
                $this->tpl->setVariable("BTN_CANCEL", "cancelCreate");
                $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
                $this->tpl->parseCurrentBlock();

        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilPCTableGUI::leftAlign (  ) 

align table to left

Definition at line 257 of file class.ilPCTableGUI.php.

References $_SESSION.

        {
                $this->content_obj->setHorizontalAlign("Left");
                $_SESSION["il_pg_error"] = $this->pg_obj->update();
                $this->ctrl->returnToParent($this, "jump".$this->hier_id);
        }

ilPCTableGUI::leftFloatAlign (  ) 

align table to left float

Definition at line 277 of file class.ilPCTableGUI.php.

References $_SESSION.

        {
                $this->content_obj->setHorizontalAlign("LeftFloat");
                $_SESSION["il_pg_error"] = $this->pg_obj->update();
                $this->ctrl->returnToParent($this, "jump".$this->hier_id);
        }

ilPCTableGUI::rightAlign (  ) 

align table to right

Definition at line 247 of file class.ilPCTableGUI.php.

References $_SESSION.

        {
                $this->content_obj->setHorizontalAlign("Right");
                $_SESSION["il_pg_error"] = $this->pg_obj->update();
                $this->ctrl->returnToParent($this, "jump".$this->hier_id);
        }

ilPCTableGUI::rightFloatAlign (  ) 

align table to left

Definition at line 287 of file class.ilPCTableGUI.php.

References $_SESSION.

        {
                $this->content_obj->setHorizontalAlign("RightFloat");
                $_SESSION["il_pg_error"] = $this->pg_obj->update();
                $this->ctrl->returnToParent($this, "jump".$this->hier_id);
        }

ilPCTableGUI::saveProperties (  ) 

save table properties in db and return to page edit screen

Definition at line 229 of file class.ilPCTableGUI.php.

References edit(), and setProperties().

        {
                $this->setProperties();
                $this->updated = $this->pg_obj->update();
                if ($this->updated === true)
                {
                        $this->ctrl->returnToParent($this, "jump".$this->hier_id);
                }
                else
                {
                        $this->pg_obj->addHierIDs();
                        $this->edit();
                }
        }

Here is the call graph for this function:

ilPCTableGUI::setClass (  ) 

set class of selected table data cells

Definition at line 194 of file class.ilPCTableGUI.php.

References ilPageContentGUI::$hier_id, edit(), and setProperties().

        {
                if (is_array($_POST["target"]))
                {
                        foreach ($_POST["target"] as $hier_id)
                        {
                                $this->content_obj->setTDClass($hier_id, $_POST["td_class"]);
                        }
                }
                $this->setProperties();
                $this->updated = $this->pg_obj->update();
                $this->pg_obj->addHierIDs();
                $this->edit();
        }

Here is the call graph for this function:

ilPCTableGUI::setProperties (  ) 

Definition at line 210 of file class.ilPCTableGUI.php.

Referenced by saveProperties(), setClass(), and setWidth().

        {
                // mask html
                $caption = $_POST["tab_caption"];
                $caption = str_replace("&","&amp;", $caption);
                $caption = str_replace("<","&lt;", $caption);
                $caption = str_replace(">","&gt;", $caption);

                $this->content_obj->setLanguage($_POST["tab_language"]);
                $this->content_obj->setWidth($_POST["tab_width"]);
                $this->content_obj->setBorder($_POST["tab_border"]);
                $this->content_obj->setCellSpacing($_POST["tab_spacing"]);
                $this->content_obj->setCellPadding($_POST["tab_padding"]);
                $this->content_obj->setCaption($caption, $_POST["tab_cap_align"]);
        }

Here is the caller graph for this function:

ilPCTableGUI::setTabs (  ) 

output tabs

Definition at line 410 of file class.ilPCTableGUI.php.

References getTabs().

Referenced by edit(), and insert().

        {
                global $ilTabs;

                // catch feedback message
                #include_once("classes/class.ilTabsGUI.php");
                #$tabs_gui =& new ilTabsGUI();
                $this->getTabs($ilTabs);
                #$this->tpl->setVariable("TABS", $tabs_gui->getHTML());
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilPCTableGUI::setWidth (  ) 

set width of selected table data cells

Definition at line 176 of file class.ilPCTableGUI.php.

References ilPageContentGUI::$hier_id, edit(), and setProperties().

        {
                if (is_array($_POST["target"]))
                {
                        foreach ($_POST["target"] as $hier_id)
                        {
                                $this->content_obj->setTDWidth($hier_id, $_POST["td_width"]);
                        }
                }
                $this->setProperties();
                $this->updated = $this->pg_obj->update();
                $this->pg_obj->addHierIDs();
                $this->edit();
        }

Here is the call graph for this function:


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