Public Member Functions

ilObjForumGUI Class Reference

Inheritance diagram for ilObjForumGUI:
Collaboration diagram for ilObjForumGUI:

Public Member Functions

 ilObjForumGUI ($a_data, $a_id, $a_call_by_reference, $a_prepare_output=true)
 Constructor public.
executeCommand ()
 execute command
 markAllReadObject ()
 showThreadsObject ()
 list threads of forum
 createObject ()
 creation form
 cancelObject ($in_rep=false)
 cancel action and go back to previous page public
 updateObject ()
 updates object entry in object_data
 editObject ()
 display edit form (usually called by editObject)
 performImportObject ()
 saveObject ()
 save object public
 getTabs (&$tabs_gui)
 get tabs abstract method.
 showStatisticsObject ()
 called from GUI
 __initFileObject ()
 __initParserObject ($a_xml_file)
 _goto ($a_target, $a_thread=0)
 redirect script

Detailed Description

Definition at line 39 of file class.ilObjForumGUI.php.


Member Function Documentation

ilObjForumGUI::__initFileObject (  ) 

Definition at line 744 of file class.ilObjForumGUI.php.

Referenced by performImportObject().

        {
                include_once "classes/class.ilFileDataImportForum.php";

                $this->file_obj =& new ilFileDataImportForum();

                return true;
        }

Here is the caller graph for this function:

ilObjForumGUI::__initParserObject ( a_xml_file  ) 

Definition at line 753 of file class.ilObjForumGUI.php.

Referenced by performImportObject().

        {
                include_once "classes/class.ilForumImportParser.php";

                $this->parser_obj =& new ilForumImportParser($a_xml_file,$this->ref_id);

                return true;
        }

Here is the caller graph for this function:

ilObjForumGUI::_goto ( a_target,
a_thread = 0 
)

redirect script

Parameters:
string $a_target

Definition at line 767 of file class.ilObjForumGUI.php.

References $_GET, $ilErr, ilObjectGUI::$lng, ilObject::_lookupObjId(), ilObject::_lookupTitle(), exit, and sendInfo().

        {
                global $ilAccess, $ilErr, $lng;

                if ($ilAccess->checkAccess("read", "", $a_target))
                {
                        if ($a_thread != 0)
                        {
                                $_GET["thr_pk"] = $a_thread;
                                $_GET["ref_id"] = $a_target;
                                include_once("forums_frameset.php");
                                exit;
                        }
                        else
                        {
                                $_GET["ref_id"] = $a_target;
                                include_once("repository.php");
                                exit;
                        }
                }
                else if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID))
                {
                        $_GET["cmd"] = "frameset";
                        $_GET["target"] = "";
                        $_GET["ref_id"] = ROOT_FOLDER_ID;
                        sendInfo(sprintf($lng->txt("msg_no_perm_read_item"),
                                ilObject::_lookupTitle(ilObject::_lookupObjId($a_target))), true);
                        include("repository.php");
                        exit;
                }

                $ilErr->raiseError($lng->txt("msg_no_perm_read_lm"), $ilErr->FATAL);

        }

Here is the call graph for this function:

ilObjForumGUI::cancelObject ( in_rep = false  ) 

cancel action and go back to previous page public

Reimplemented from ilObjectGUI.

Definition at line 399 of file class.ilObjForumGUI.php.

References $_GET, ilUtil::redirect(), and sendInfo().

        {
                sendInfo($this->lng->txt("msg_cancel"),true);

                //$this->ctrl->redirectByClass("ilrepositorygui", "frameset");
                ilUtil::redirect("repository.php?cmd=frameset&ref_id=".$_GET["ref_id"]);

        }

Here is the call graph for this function:

ilObjForumGUI::createObject (  ) 

creation form

Reimplemented from ilObjectGUI.

Definition at line 311 of file class.ilObjForumGUI.php.

References $_GET, $_POST, $rbacsystem, ilMainMenuGUI::_checkAdministrationPermission(), ilFrameTargetInfo::_getFrame(), ilUtil::formCheckbox(), ilUtil::formRadioButton(), and ilUtil::getImagePath().

Referenced by performImportObject().

        {
                global $rbacsystem;

                $new_type = $_POST["new_type"] ? $_POST["new_type"] : $_GET["new_type"];

                if (!$rbacsystem->checkAccess("create", $_GET["ref_id"], $new_type))
                {
                        $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
                }

                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.frm_create.html");

                $this->tpl->setVariable("TYPE_IMG",ilUtil::getImagePath('icon_frm.gif'));
                $this->tpl->setVariable("ALT_IMG", $this->lng->txt('edit_properties'));

                $this->tpl->setVariable("TXT_TITLE", $this->lng->txt("title"));
                $this->tpl->setVariable("TXT_DESC", $this->lng->txt("desc"));
                $this->tpl->setVariable("TITLE",$_POST['title']);
                $this->tpl->setVariable("DESC",$_POST['description']);

                $this->ctrl->setParameter($this, "new_type", $new_type);
                $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));

                $this->tpl->setVariable("TARGET", ' target="'.
                        ilFrameTargetInfo::_getFrame("MainContent").'" ');

                $this->tpl->setVariable("TXT_HEADER", $this->lng->txt('frm_new'));
                $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
                $this->tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
                $this->tpl->setVariable("CMD_SUBMIT", "save");
                $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));

                // DEFAULT ORDER
                $this->tpl->setVariable("TXT_VIEW",$this->lng->txt('frm_default_view'));
                $this->tpl->setVariable("TXT_ANSWER",$this->lng->txt('order_by').' '.$this->lng->txt('answers'));
                $this->tpl->setVariable("TXT_DATE",$this->lng->txt('order_by').' '.$this->lng->txt('date'));

                $default_sort = $_POST['sort'] ? $_POST['sort'] : 1;

                $this->tpl->setVariable("CHECK_ANSWER",ilUtil::formRadioButton($default_sort == 1 ? 1 : 0,'sort',1));
                $this->tpl->setVariable("CHECK_DATE",ilUtil::formRadioButton($default_sort == 2 ? 1 : 0,'sort',2));

                // ANONYMIZED OR NOT
#               $this->tpl->setVariable("TXT_ANONYMIZED",$this->lng->txt('frm_anonymous_posting'));
#               $this->tpl->setVariable("TXT_ANONYMIZED_DESC",$this->lng->txt('frm_anonymous_posting_desc'));

#               $anonymized = $_POST['anonymized'] ? $_POST['anonymized'] : 0;

#               $this->tpl->setVariable("CHECK_ANONYMIZED",ilUtil::formCheckbox($anonymized == 1 ? 1 : 0,'anonymized',1));

                // Statistics enabled or not
                
                $statisticsEnabled  = $_POST['statistics_enabled'] ? $_POST['statistics_enabled'] : 1;
                
                $this->tpl->setVariable("TXT_STATISTICS_ENABLED", $this->lng->txt("frm_statistics_enabled"));   
                $this->tpl->setVariable("TXT_STATISTICS_ENABLED_DESC", $this->lng->txt("frm_statistics_enabled_desc"));
                
                
                $this->tpl->setVariable("CHECK_STATISTICS_ENABLED", 
                        ilUtil::formCheckbox(
                                $statisticsEnabled == 1 && $this->ilias->getSetting("enable_fora_statistics", true)? 1 : 0,
                                'statistics_enabled', 1,
                                $this->ilias->getSetting("enable_fora_statistics", true)?false:true));

                // show ilias 2 forum import for administrators only
                include_once("classes/class.ilMainMenuGUI.php");
                if(ilMainMenuGUI::_checkAdministrationPermission())
                {
                        $this->tpl->setCurrentBlock("forum_import");
                        $this->tpl->setVariable("FORMACTION_IMPORT",
                                $this->ctrl->getFormAction($this));
                        $this->tpl->setVariable("TXT_IMPORT_FORUM", $this->lng->txt("forum_import")." (ILIAS 2)");
                        $this->tpl->setVariable("TXT_IMPORT_FILE", $this->lng->txt("forum_import_file"));
                        $this->tpl->setVariable("BTN2_CANCEL", $this->lng->txt("cancel"));
                        $this->tpl->setVariable("BTN_IMPORT", $this->lng->txt("import"));
                        $this->tpl->setVariable("TYPE_IMG2",ilUtil::getImagePath('icon_frm.gif'));
                        $this->tpl->setVariable("ALT_IMG2", $this->lng->txt("forum_import"));
                        $this->tpl->parseCurrentBlock();
                }
                return true;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjForumGUI::editObject (  ) 

display edit form (usually called by editObject)

private

Parameters:
array $fields key/value pairs of input fields

Reimplemented from ilObjectGUI.

Definition at line 436 of file class.ilObjForumGUI.php.

References $_GET, $_POST, $rbacsystem, ilUtil::formCheckbox(), ilUtil::formRadioButton(), ilUtil::getImagePath(), ilUtil::prepareFormOutput(), and ilUtil::stripSlashes().

Referenced by updateObject().

        {
                global $rbacsystem;

                if (!$rbacsystem->checkAccess("write", $_GET["ref_id"],"frm"))
                {
                        $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
                }

                $default_sort = $_POST['sort']
                        ? $_POST['sort'] 
                        : $this->object->getDefaultView();
#               $anonymized = $_POST['anonymized']
#                       ? $_POST['anonymized'] 
#                       : $this->object->isAnonymized();
                        
                $statisticsEnabled  = $_POST['statistics_enabled'] ? 
                        $_POST['statistics_enabled'] 
                        : $this->object->isStatisticsEnabled();

                
                        
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.forum_properties.html");

                $this->tpl->setVariable("TYPE_IMG",ilUtil::getImagePath('icon_frm.gif'));
                $this->tpl->setVariable("ALT_IMG",$this->lng->txt('edit_properties'));


                $this->tpl->setVariable("TXT_TITLE", $this->lng->txt("title"));
                $this->tpl->setVariable("TXT_DESC", $this->lng->txt("desc"));
                $this->tpl->setVariable("TITLE", ilUtil::prepareFormOutput($this->object->getTitle()));
                $this->tpl->setVariable("DESC", ilUtil::stripSlashes($this->object->getDescription()));


                $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this));
                $this->tpl->setVariable("TXT_HEADER", $this->lng->txt('edit_properties'));
                $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel"));
                $this->tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
                $this->tpl->setVariable("CMD_SUBMIT", "update");
                $this->tpl->setVariable("TXT_REQUIRED_FLD", $this->lng->txt("required_field"));

                // DEFAULT ORDER
                $this->tpl->setVariable("TXT_VIEW",$this->lng->txt('frm_default_view'));
                $this->tpl->setVariable("TXT_ANSWER",$this->lng->txt('order_by').' '.$this->lng->txt('answers'));
                $this->tpl->setVariable("TXT_DATE",$this->lng->txt('order_by').' '.$this->lng->txt('date'));

                $this->tpl->setVariable("CHECK_ANSWER",ilUtil::formRadioButton($default_sort == 1 ? 1 : 0,'sort',1));
                $this->tpl->setVariable("CHECK_DATE",ilUtil::formRadioButton($default_sort == 2 ? 1 : 0,'sort',2));

                // ANONYMIZED OR NOT
#               $this->tpl->setVariable("TXT_ANONYMIZED",$this->lng->txt('frm_anonymous_posting'));
#               $this->tpl->setVariable("TXT_ANONYMIZED_DESC",$this->lng->txt('frm_anonymous_posting_desc'));

#               $this->tpl->setVariable("CHECK_ANONYMIZED",ilUtil::formCheckbox($anonymized == 1 ? 1 : 0,'anonymized',1));

                // Statistics enabled or not
                $this->tpl->setVariable("TXT_STATISTICS_ENABLED", $this->lng->txt("frm_statistics_enabled"));   
                $this->tpl->setVariable("TXT_STATISTICS_ENABLED_DESC", $this->lng->txt("frm_statistics_enabled_desc"));
                
                $this->tpl->setVariable("CHECK_STATISTICS_ENABLED", 
                        ilUtil::formCheckbox(
                                $statisticsEnabled == 1 && $this->ilias->getSetting("enable_fora_statistics", true)? 1 : 0,
                                'statistics_enabled', 1,
                                $this->ilias->getSetting("enable_fora_statistics", true)?false:true));
                                

        }

Here is the call graph for this function:

Here is the caller graph for this function:

& ilObjForumGUI::executeCommand (  ) 

execute command

Reimplemented from ilObjectGUI.

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

References $cmd, and ilObjectGUI::prepareOutput().

        {
                $next_class = $this->ctrl->getNextClass($this);
                $cmd = $this->ctrl->getCmd();
                $this->prepareOutput();

                switch($next_class)
                {
                        case 'ilpermissiongui':
                                include_once("./classes/class.ilPermissionGUI.php");
                                $perm_gui =& new ilPermissionGUI($this);
                                $ret =& $this->ctrl->forwardCommand($perm_gui);
                                break;

                        default:
                                if(!$cmd)
                                {
                                        $cmd = "showThreads";
                                }
                                $cmd .= "Object";

                                $this->$cmd();
                                        
                                break;
                }

                return true;
        }

Here is the call graph for this function:

ilObjForumGUI::getTabs ( &$  tabs_gui  ) 

get tabs abstract method.

overwrite in derived GUI class of your object type public

Parameters:
object instance of ilTabsGUI

Reimplemented from ilObjectGUI.

Definition at line 611 of file class.ilObjForumGUI.php.

References $_GET, $rbacsystem, and ilRepositoryExplorer::buildLinkTarget().

        {
                global $rbacsystem;

                $this->ctrl->setParameter($this,"ref_id",$this->ref_id);

                if($rbacsystem->checkAccess('write',$this->ref_id))
                {
                        include_once './classes/class.ilRepositoryExplorer.php';

                        $tabs_gui->addTarget("forums_threads",ilRepositoryExplorer::buildLinkTarget($this->ref_id,'frm'),
                                array("", "showThreads", "view", "markAllRead"), "");
                }
                if ($rbacsystem->checkAccess('write',$this->ref_id))
                {
                        $force_active = ($_GET["cmd"] == "edit")
                                ? true
                                : false;
                        $tabs_gui->addTarget("edit_properties",
                                $this->ctrl->getLinkTarget($this, "edit"), "edit", get_class($this),
                                "", $force_active);
                }
        
                if ($this->ilias->getSetting("enable_fora_statistics", true) &&
                        ($this->object->isStatisticsEnabled() || $rbacsystem->checkAccess('write',$this->ref_id))) 
                {
                        $tabs_gui->addTarget("statistic", 
                                $this->ctrl->getLinkTarget($this, "showStatistics"), "showStatistics", get_class($this),"",false);                                                      
                        
                }

                if ($rbacsystem->checkAccess('edit_permission',$this->ref_id))
                {
                        $tabs_gui->addTarget("perm_settings",
                                $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"), array("perm","info","owner"), 'ilpermissiongui');                                                 
                }
                
                return true;
        }

Here is the call graph for this function:

ilObjForumGUI::ilObjForumGUI ( a_data,
a_id,
a_call_by_reference,
a_prepare_output = true 
)

Constructor public.

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

References $ilCtrl, and ilObjectGUI::ilObjectGUI().

        {
                global $ilCtrl;

                // CONTROL OPTIONS
                $this->ctrl =& $ilCtrl;
                $this->ctrl->saveParameter($this,array("ref_id","cmdClass"));

                $this->type = "frm";
                $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,false);

                $this->lng->loadLanguageModule('forum');
        }

Here is the call graph for this function:

ilObjForumGUI::markAllReadObject (  ) 

Definition at line 88 of file class.ilObjForumGUI.php.

References sendInfo(), and showThreadsObject().

        {
                global $ilUser;

                $this->object->markAllThreadsRead($ilUser->getId());

                sendInfo($this->lng->txt('forums_all_threads_marked_read'));

                $this->showThreadsObject();
                return true;
        }

Here is the call graph for this function:

ilObjForumGUI::performImportObject (  ) 

Definition at line 505 of file class.ilObjForumGUI.php.

References $_GET, ilObjectGUI::$ref_id, __initFileObject(), __initParserObject(), createObject(), ilObjectGUI::getReturnLocation(), ilUtil::redirect(), and sendInfo().

        {

                $this->__initFileObject();

                if(!$this->file_obj->storeUploadedFile($_FILES["importFile"]))  // STEP 1 save file in ...import/mail
                {
                        $this->message = $this->lng->txt("import_file_not_valid"); 
                        $this->file_obj->unlinkLast();
                }
                else if(!$this->file_obj->unzip())
                {
                        $this->message = $this->lng->txt("cannot_unzip_file");                  // STEP 2 unzip uplaoded file
                        $this->file_obj->unlinkLast();
                }
                else if(!$this->file_obj->findXMLFile())                                                // STEP 3 getXMLFile
                {
                        $this->message = $this->lng->txt("cannot_find_xml");
                        $this->file_obj->unlinkLast();
                }
                else if(!$this->__initParserObject($this->file_obj->getXMLFile()) or !$this->parser_obj->startParsing())
                {
                        $this->message = $this->lng->txt("import_parse_error").":<br/>"; // STEP 5 start parsing
                }

                // FINALLY CHECK ERROR
                if(!$this->message)
                {
                        sendInfo($this->lng->txt("import_forum_finished"),true);
                        $ref_id = $this->parser_obj->getRefId();
                        if ($ref_id > 0)
                        {
                                $this->ctrl->setParameter($this, "ref_id", $ref_id);
                                ilUtil::redirect($this->getReturnLocation("save",
                                        $this->ctrl->getLinkTarget($this, "showThreads")));
                        }
                        else
                        {
                                ilUtil::redirect("repository.php?cmd=frameset&ref_id=".$_GET["ref_id"]);
                        }
                }
                else
                {
                        sendInfo($this->message);
                        $this->createObject();
                }
        }

Here is the call graph for this function:

ilObjForumGUI::saveObject (  ) 

save object public

Reimplemented from ilObjectGUI.

Definition at line 558 of file class.ilObjForumGUI.php.

References $_POST, $_SESSION, $forumObj, $q, $rbacadmin, ilUtil::redirect(), sendInfo(), and ilObjUser::updateActiveRoles().

        {
                global $rbacadmin;


                $_POST['Fobject']['title'] = $_POST['title'];
                $_POST['Fobject']['desc'] = $_POST['desc'];

                // create and insert forum in objecttree
                $forumObj = parent::saveObject();

                // Create settings
                $forumObj->setDefaultView((int) $_POST['sort']);
#               $forumObj->setAnonymized((int) $_POST['anonymized']);
                $forumObj->setStatisticsEnabled((int) $_POST['statistics_enabled']);
                $forumObj->createSettings();

                // setup rolefolder & default local roles (moderator)
                $roles = $forumObj->initDefaultRoles();

                // ...finally assign moderator role to creator of forum object
                $rbacadmin->assignUser($roles[0], $forumObj->getOwner(), "n");
                ilObjUser::updateActiveRoles($forumObj->getOwner());
                        
                // insert new forum as new topic into frm_data
                $top_data = array(
            "top_frm_fk"                => $forumObj->getId(),
                        "top_name"              => addslashes($forumObj->getTitle()),
            "top_description"   => addslashes($forumObj->getDescription()),
            "top_num_posts"     => 0,
            "top_num_threads"   => 0,
            "top_last_post"     => "",
                        "top_mods"              => $roles[0],
                        "top_usr_id"            => $_SESSION["AccountId"],
            "top_date"                  => date("Y-m-d H:i:s")
        );
        
                $q = "INSERT INTO frm_data ";
                $q .= "(top_frm_fk,top_name,top_description,top_num_posts,top_num_threads,top_last_post,top_mods,top_date,top_usr_id) ";
                $q .= "VALUES ";
                $q .= "('".$top_data["top_frm_fk"]."','".$top_data["top_name"]."','".$top_data["top_description"]."','".
                        $top_data["top_num_posts"]."','".$top_data["top_num_threads"]."','".$top_data["top_last_post"]."','".
                        $top_data["top_mods"]."','".$top_data["top_date"]."','".$top_data["top_usr_id"]."')";
                $this->ilias->db->query($q);

                // always send a message
                sendInfo($this->lng->txt("frm_added"),true);
                
                $this->ctrl->setParameter($this, "ref_id", $forumObj->getRefId());

                ilUtil::redirect($this->ctrl->getLinkTarget($this,'showThreads'));
        }

Here is the call graph for this function:

ilObjForumGUI::showStatisticsObject (  ) 

called from GUI

if globally deactivated, skip!!! intrusion detected

Definition at line 654 of file class.ilObjForumGUI.php.

References $_GET, ilObjectGUI::$data, $query, $rbacsystem, $row, and $tbl.

        {
                global $rbacsystem, $ilUser, $ilAccess;
                
                if (!$this->ilias->getSetting("enable_fora_statistics", true))
                {
                        $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
                }
                
                // if no read access -> intrusion detected
                if (!$rbacsystem->checkAccess("read", $_GET["ref_id"],"frm"))
                {
                        $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
                }

                // if read access and statistics disabled -> intrusion detected                 
                if (!$rbacsystem->checkAccess("read", $_GET["ref_id"],"frm") && !$this->object->isStatisticsEnabled())
                {
                        $this->ilias->raiseError($this->lng->txt("permission_denied"),$this->ilias->error_obj->MESSAGE);
                }
                
                
                
                $tbl = new ilTableGUI();
                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.forums_statistics_view.html");              
        $this->tpl->addBlockfile("TBL_CONTENT", "tbl_content", "tpl.table.html");               
                
                
                
                // if write access and statistics disabled -> ok, for forum admin               
                if ($rbacsystem->checkAccess("write", $_GET["ref_id"],"frm") && !$this->object->isStatisticsEnabled())
                {
                        //todo: show message
                        $this->tpl->setVariable ("STATUSLINE",$this->lng->txt("frm_statistics_disabled_for_participants")); 
                }
                
                // get sort variables from get vars
                $sort_order = isset($_GET['sort_order']) ? $_GET['sort_order']:"DESC";
                $sort_by  = isset($_GET['sort_by']) ? $_GET['sort_by'] : 'ranking';

                if ($sort_by == "title")
                        $sort_by = "ranking";

                
                // create query
                $query = "SELECT COUNT(f.pos_usr_id) as ranking, u.login, u.lastname, u.firstname
                                            FROM frm_posts f, frm_posts_tree t, frm_threads th, usr_data u, frm_data d
                                            WHERE f.pos_pk = t.pos_fk AND t.thr_fk = th.thr_pk AND u.usr_id = f.pos_usr_id AND d.top_pk = f.pos_top_fk AND d.top_frm_fk=".$this->object->getId()."
                                            GROUP BY pos_usr_id ORDER BY $sort_by $sort_order"; 
                                                           
                // get resultset
                $resultset = $this->ilias->db->query ($query);
                
                while ($row = $resultset->fetchRow(DB_FETCHMODE_ASSOC)) {
                    $data [] = $row;
                }
                
        
                // title & header columns
                $tbl->setTitle($this->lng->txt("statistic"),"icon_usr_b.gif",$this->lng->txt("obj_".$this->object->getType()));
                                
                $header_names = array ($this->lng->txt("frm_statistics_ranking"),$this->lng->txt("login"), $this->lng->txt("lastname"),$this->lng->txt("firstname"));
                         
                $tbl->setHeaderNames($header_names);

                $header_params = array("ref_id"         => $this->ref_id, "cmd"                 => "statistic" );
                $header_fields = array("ranking","login","lastname", "firstname");              

                $tbl->setHeaderVars($header_fields,$header_params);
                $tbl->setColumnWidth(array("","25%","25%","25%"));

                // table properties
        $tbl->enable("hits");
        $tbl->disable("sort");
                $tbl->setOrderColumn($sort_by);
                $tbl->setOrderDirection($sort_order);
                $tbl->setLimit(0);
                $tbl->setOffset(0);
                $tbl->setData($data);

                $tbl->render();
                                
                $this->tpl->parseCurrentBlock();                        
                        
        }

ilObjForumGUI::showThreadsObject (  ) 

list threads of forum

Definition at line 103 of file class.ilObjForumGUI.php.

References $_GET, $frm, $rbacsystem, $topicData, ilUtil::Linkbar(), ilUtil::redirect(), and ilUtil::switchColor().

Referenced by markAllReadObject().

        {
                global $rbacsystem,$ilUser;

                $frm =& $this->object->Forum;
                $frm->setForumId($this->object->getId());
                $frm->setForumRefId($this->object->getRefId());
                $frm->setWhereCondition("top_frm_fk = ".$frm->getForumId());

                $topicData = $frm->getOneTopic();
                if(!$topicData['top_num_threads'])
                {
                        ilUtil::redirect("forums_threads_new.php?ref_id=".$this->object->getRefId());
                }

                $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.forums_threads_liste.html");
                if($rbacsystem->checkAccess('edit_post',$this->object->getRefId()))
                {
                        $this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
                
                        // display button
                        $this->tpl->setCurrentBlock("btn_cell");
                        $this->tpl->setVariable("BTN_LINK",'forums_threads_new.php?ref_id='.$this->object->getRefId());
                        $this->tpl->setVariable("BTN_TXT",$this->lng->txt('forums_new_thread'));
                        $this->tpl->parseCurrentBlock();
                }

                // Button mark all read
                $this->tpl->setCurrentBlock("btn_cell");
                $this->tpl->setVariable("BTN_LINK",$this->ctrl->getLinkTarget($this,'markAllRead'));
                $this->tpl->setVariable("BTN_TXT",$this->lng->txt('forums_mark_read'));
                $this->tpl->parseCurrentBlock();


                if($topicData)
                {
                        // Visit-Counter
                        $frm->setDbTable("frm_data");
                        $frm->setWhereCondition("top_pk = ".$topicData["top_pk"]);
                        $frm->updateVisits($topicData["top_pk"]);
        
                        // get list of threads
                        $frm->setOrderField("thr_date DESC");
                        $resThreads = $frm->getThreadList($topicData["top_pk"]);
                        $thrNum = $resThreads->numRows();
                        
                        // check number of threads
                        if ($thrNum != $topicData['top_num_threads'])
                        {
                                $frm->fixThreadNumber($topicData['top_pk'], $thrNum);
                        }
                        
                        $pageHits = $frm->getPageHits();
                        $pageHits = $ilUser->getPref('hits_per_page');

                        if ($thrNum > 0)
                        {
                                $z = 0;
                
                                // navigation to browse
                                if ($thrNum > $pageHits)
                                {
                                        $params = array(
                                                "ref_id"                => $_GET["ref_id"]      
                                                );
                        
                                        if (!$_GET["offset"])
                                        {
                                                $Start = 0;
                                        }
                                        else
                                        {
                                                $Start = $_GET["offset"];
                                        }
                        
                                        $linkbar = ilUtil::Linkbar(basename($_SERVER["PHP_SELF"]),$thrNum,$pageHits,$Start,$params);
                        
                                        if ($linkbar != "")
                                        {
                                                $this->tpl->setVariable("LINKBAR", $linkbar);
                                        }
                                }
                
                                // get threads dates
                                while ($thrData = $resThreads->fetchRow(DB_FETCHMODE_ASSOC))
                                {
                                        $rowCol = ilUtil::switchColor($z,"tblrow1","tblrow2");
                                        
                                        if ($thrNum > $pageHits && $z >= ($Start+$pageHits))
                                        {
                                                break;
                                        }
                
                                        if (($thrNum > $pageHits && $z >= $Start) || $thrNum <= $pageHits)
                                        {
                                                // GET USER DATA, USED FOR IMPORTED USERS
                                                $usr_data = $frm->getUserData($thrData["thr_usr_id"],$thrData["import_name"]);


                                                $this->tpl->setCurrentBlock("threads_row");
                                                $this->tpl->setVariable("ROWCOL", $rowCol);
                                
                                                $thrData["thr_date"] = $frm->convertDate($thrData["thr_date"]);
                                                $this->tpl->setVariable("DATE",$thrData["thr_date"]);
                                                $this->tpl->setVariable("TITLE","<a href=\"forums_frameset.php?thr_pk=".
                                                                                                $thrData["thr_pk"]."&ref_id=".$this->object->getRefId()."\">".
                                                                                                $thrData["thr_subject"]."</a>");
                                                if ($this->ilias->getSetting("forum_notification") != 0 &&
                                                        $frm->isNotificationEnabled($ilUser->getId(), $thrData["thr_pk"]))
                                                {
                                                        $this->tpl->setVariable("NOTIFICATION_ENABLED", $this->lng->txt("forums_notification_enabled"));
                                                }

                                                $num_unread = $this->object->getCountUnread($ilUser->getId(),$thrData['thr_pk']);
                                                $this->tpl->setVariable("NUM_POSTS",$thrData["thr_num_posts"].' ('.$num_unread.')');
                                                $this->tpl->setVariable("NEW_POSTS",$this->object->getCountNew($ilUser->getId(),$thrData['thr_pk']));
                                                $this->tpl->setVariable("NUM_VISITS",$thrData["visits"]);       
                                
                                                // get author data

                                                if($thrData["thr_usr_id"] && $usr_data["usr_id"] != 0)
                                                {
                                                        $backurl = urlencode("repository.php?ref_id=".$_GET["ref_id"]."&offset=".$Start);
                                                        $this->tpl->setVariable("AUTHOR","<a href=\"forums_user_view.php?ref_id=".$this->object->getRefId().
                                                                                                        "&user=".$usr_data["usr_id"]."&backurl=".$backurl.
                                                                                                        "\">".$usr_data["login"]."</a>");
                                                }
                                                else
                                                {
                                                        $this->tpl->setVariable("AUTHOR",$usr_data["login"]);
                                                }
                                        
                                
                                                // get last-post data
                                                $lpCont = "";                           
                                                if ($thrData["thr_last_post"] != "")
                                                {
                                                        $lastPost = $frm->getLastPost($thrData["thr_last_post"]);
                                                }
                                                // TODOOOOOOOOOOOOOOOOOOO
                                                $last_usr_data = $frm->getUserData($lastPost["pos_usr_id"],$lastPost["import_name"]);
                                                if (is_array($lastPost))
                                                {                               
                                                        $lastPost["pos_message"] = $frm->prepareText($lastPost["pos_message"]);
                                                        $lpCont = $lastPost["pos_date"]."<br/>".strtolower($this->lng->txt("from"))."&nbsp;";
                                                        $lpCont .= "<a href=\"forums_frameset.php?pos_pk=".
                                                                $lastPost["pos_pk"]."&thr_pk=".$lastPost["pos_thr_fk"]."&ref_id=".
                                                                $this->object->getRefId()."#".$lastPost["pos_pk"]."\">".$last_usr_data["login"]."</a>";
                                                }

                                                $this->tpl->setVariable("LAST_POST", $lpCont);  
                                
                                                $this->tpl->setVariable("FORUM_ID", $thrData["thr_pk"]);                
                                                $this->tpl->setVariable("THR_TOP_FK", $thrData["thr_top_fk"]);          
                                
                                                $this->tpl->setVariable("TXT_PRINT", $this->lng->txt("print"));
                                
                                                $this->tpl->setVariable("THR_IMGPATH",$this->tpl->tplPath);
                                
                                                $this->tpl->parseCurrentBlock("threads_row");
                                
                                        } // if (($thrNum > $pageHits && $z >= $Start) || $thrNum <= $pageHits)
                        
                                        $z ++;
                        
                                } // while ($thrData = $resThreads->fetchRow(DB_FETCHMODE_ASSOC))
                
                                $this->tpl->setVariable("TXT_SELECT_ALL", $this->lng->txt("select_all"));               
                                $this->tpl->setVariable("FORMACTION",'forums_threads_liste.php?ref_id='.$this->object->getRefId());
                                $this->tpl->setVariable("TXT_OK",$this->lng->txt("ok"));                        
                                $this->tpl->setVariable("TXT_EXPORT_HTML", $this->lng->txt("export_html"));
                                $this->tpl->setVariable("TXT_EXPORT_XML", $this->lng->txt("export_xml"));
                                if ($this->ilias->getSetting("forum_notification") != 0)
                                {
                                        $this->tpl->setVariable("TXT_DISABLE_NOTIFICATION", $this->lng->txt("forums_disable_notification"));
                                        $this->tpl->setVariable("TXT_ENABLE_NOTIFICATION", $this->lng->txt("forums_enable_notification"));
                                }
                                $this->tpl->setVariable("IMGPATH",$this->tpl->tplPath);
                
                        } // if ($thrNum > 0)   
                
                } // if (is_array($topicData = $frm->getOneTopic()))

                $this->tpl->setCurrentBlock("threadtable");
                $this->tpl->setVariable("COUNT_THREAD", $this->lng->txt("forums_count_thr").": ".$thrNum);
                $this->tpl->setVariable("TXT_DATE", $this->lng->txt("date"));
                $this->tpl->setVariable("TXT_TITLE", $this->lng->txt("title"));
                $this->tpl->setVariable("TXT_TOPIC", $this->lng->txt("forums_thread"));
                $this->tpl->setVariable("TXT_AUTHOR", $this->lng->txt("forums_created_by"));
                $this->tpl->setVariable("TXT_NUM_POSTS", $this->lng->txt("forums_articles").' ('.$this->lng->txt('unread').')');
                $this->tpl->setVariable("TXT_NEW_POSTS",$this->lng->txt('forums_new_articles'));
                $this->tpl->setVariable("TXT_NUM_VISITS", $this->lng->txt("visits"));
                $this->tpl->setVariable("TXT_LAST_POST", $this->lng->txt("forums_last_post"));
                $this->tpl->parseCurrentBlock("threadtable");
                
                $this->tpl->setCurrentBlock("perma_link");
                $this->tpl->setVariable("PERMA_LINK", ILIAS_HTTP_PATH.
                        "/goto.php?target=".
                        $this->object->getType().
                        "_".$this->object->getRefId()."&client_id=".CLIENT_ID);
                $this->tpl->setVariable("TXT_PERMA_LINK", $this->lng->txt("perma_link"));
                $this->tpl->setVariable("PERMA_TARGET", "_top");
                $this->tpl->parseCurrentBlock();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilObjForumGUI::updateObject (  ) 

updates object entry in object_data

public

Reimplemented from ilObjectGUI.

Definition at line 408 of file class.ilObjForumGUI.php.

References $_POST, editObject(), sendInfo(), and ilUtil::stripSlashes().

        {
                if(strlen($_POST['title']))
                {
                        $this->object->setTitle(ilUtil::stripSlashes($_POST["title"]));
                        $this->object->setDescription(ilUtil::stripSlashes($_POST["desc"]));
                        $this->object->setDefaultView((int) $_POST['sort']);
#                       $this->object->setAnonymized((int) $_POST['anonymized']);
                        $this->object->setStatisticsEnabled((int) $_POST['statistics_enabled']);
                        $this->object->update();

                        sendInfo($this->lng->txt("msg_obj_modified"),true);

                        // REDIRECT (UPDATE TITLE)
                        $this->ctrl->redirect($this,'edit');
                }
                // ERROR
                sendInfo($this->lng->txt('frm_title_required'));

                return $this->editObject();
        }

Here is the call graph for this function:


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