Public Member Functions

ilFeedbackGUI Class Reference
[Services/Feedback]

GUI class for feedback services. More...

Public Member Functions

 ilFeedbackGUI ()
 Constructor.
executeCommand ()
 Execute current command.
 getFeedbackHTML ()
 fbList ()
 List all feedback items.
__initTableGUI ()
 delete ()
 stats ()
 edit ()
 Edit screen for single feedback item.
 update ()
 save ()
 get_last ($a_var, $a_value='', $pForm=true)
 get stored post var in case of an error/warning otherwise return passed value
 addBarometer ()
 Display the new feedback creation screen.
 getButtons ($a_barometer_id)
 getDateSelect ($a_type, $a_varname, $a_selected)
 showBarometerById ($a_id=0, $a_header=false)
 _isRequiredFeedbackOnLogin ()
 showBarometer ()
 saveVote ()
 selectbox ($selected_itm, $name, $items, $params='', $first='')
 getPDFeedbackListHTML ()
 getCRSFeedbackListHTML ()
 handleRequiredFeedback ($a_ref_id=0)
 voteform ($a_barometer_id=0)

Detailed Description

GUI class for feedback services.

Feedbacks are little polls that are embedded into the info screen and currently used by courses only.

Author:
Helmuth Antholzer <helmuth.antholzer@maguma.com>
Version:
Id:
class.ilFeedbackGUI.php 14221 2007-06-22 11:03:38Z smeyer

ilFeedbackGUI:

Definition at line 35 of file class.ilFeedbackGUI.php.


Member Function Documentation

& ilFeedbackGUI::__initTableGUI (  ) 

Definition at line 178 of file class.ilFeedbackGUI.php.

Referenced by fbList().

        {
                include_once "./classes/class.ilTableGUI.php";
                return new ilTableGUI(0,false);

        }

Here is the caller graph for this function:

ilFeedbackGUI::_isRequiredFeedbackOnLogin (  ) 

Definition at line 688 of file class.ilFeedbackGUI.php.

References ilCourseMembers::_isMember().

                                             {
                global $ilUser;
                include_once('Services/Feedback/classes/class.ilFeedback.php');
                include_once('course/classes/class.ilCourseMembers.php');

                $feedback = new ilFeedback();
                $feedback->getFeedback();

                if(($feedback->getId())&&(ilCourseMembers::_isMember($ilUser->getId(),$feedback->getObjId())))

                        return($feedback->getRefId());
                else
                        return(0);

        }

Here is the call graph for this function:

ilFeedbackGUI::addBarometer (  ) 

Display the new feedback creation screen.

Definition at line 488 of file class.ilFeedbackGUI.php.

References $_POST, $tpl, ilUtil::formSelect(), get_last(), getDateSelect(), ilUtil::getImagePath(), and ilUtil::prepareFormOutput().

                               {
                $tpl = new ilTemplate("tpl.feedback_edit.html", true, true, "Services/Feedback");
                $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                $tpl->setVariable("TXT_HEADER", $this->lng->txt("bar_create"));
                $tpl->setVariable("IMG_FEEDB", ilUtil::getImagePath("icon_feedb.gif"));
                $tpl->setVariable("ALT_FEEDB", $this->lng->txt("bar_create"));
                $tpl->setVariable("TXT_TITLE", $this->lng->txt("title"));
                $tpl->setVariable("TXT_TIME", $this->lng->txt("feedb_time"));
                $tpl->setVariable("VALUE_TITLE",$this->get_last("title"));
                $tpl->setVariable("TXT_TOP_TEXT", $this->lng->txt("text"));
                $tpl->setVariable("VALUE_TEXT", $this->get_last("text"));
                $tpl->setVariable("TXT_ANONYMOUS", $this->lng->txt("anonymous"));
                if($this->get_last("anonymous")=="0")
                        $tpl->setVariable("ANONYMOUS_NO", " checked");
                else
                        $tpl->setVariable("ANONYMOUS_YES", " checked");
                $tpl->setVariable("TXT_YES", $this->lng->txt("yes"));
                $tpl->setVariable("TXT_NO", $this->lng->txt("no"));
                $tpl->setVariable("TXT_TYPE", $this->lng->txt("type"));
                $typeSB[0] = $this->lng->txt('optional');
                $typeSB[1] = $this->lng->txt('required');
                $tpl->setVariable("SELECT_TYPE", ilUtil::formSelect($this->get_last('type'),'type',$typeSB,false,true));

                $tpl->setVariable("TXT_REQUIRED", $this->lng->txt("required"));
                if($this->get_last("show_on")=="course")
                        $tpl->setVariable("SHOW_CHANGE_COURSE_SELECTED", "selected");
                else
                        $tpl->setVariable("SHOW_LOGIN_SELECTED", "selected");
                $tpl->setVariable("TXT_LOGIN", $this->lng->txt("login"));
                $tpl->setVariable("TXT_CHANGE_COURSE", $this->lng->txt("change_course"));
                if($this->get_last("text_answer")=="1")
                        $tpl->setVariable("TEXT_ANSWER_YES", " checked");
                else
                        $tpl->setVariable("TEXT_ANSWER_NO", " checked");
                $tpl->setVariable("TXT_TEXT_ANSWER", $this->lng->txt("text_answer"));
                $tpl->setVariable("TXT_VOTES", $this->lng->txt("votes"));
                $extra_votes = $this->get_last("extra_votes",0);
                if ($_POST['cmd']['addBarometer']) $extra_votes+=1;
                $tpl->setVariable("VALUE_EXTRA_VOTES", $extra_votes);
                $vote_txt=$this->get_last('vote',array(),false);
                for($i=1;$i < 3+$extra_votes ;$i++){
                        $tpl->setCurrentBlock("vote");
                        $tpl->setVariable("TXT_TEXT",$this->lng->txt("text"));
                        $tpl->setVariable("VALUE_VOTE_TEXT",ilUtil::prepareFormOutput($vote_txt[$i]));
                        $tpl->setVariable("VOTE_NUM",$i);
                        $tpl->parseCurrentBlock();
                }
                $tpl->setVariable("TXT_DAY",$this->lng->txt("day"));
                $tpl->setVariable("SELECT_ACTIVATION_START_DAY",$this->getDateSelect('day','start_day',$this->get_last('start_day')));
                $tpl->setVariable("SELECT_ACTIVATION_START_MONTH",$this->getDateSelect('month','start_month',$this->get_last('start_month')));
                $tpl->setVariable("SELECT_ACTIVATION_START_YEAR",$this->getDateSelect('year','start_year',$this->get_last('start_year')));
                $tpl->setVariable("SELECT_ACTIVATION_START_HOUR",$this->getDateSelect('hour','start_hour',$this->get_last('start_hour')));
                $tpl->setVariable("SELECT_ACTIVATION_START_MINUTE",$this->getDateSelect('minute','start_minute',$this->get_last('start_minute')));
                $tpl->setVariable("SELECT_ACTIVATION_END_DAY",$this->getDateSelect('day','end_day',$this->get_last('end_day')));
                $tpl->setVariable("SELECT_ACTIVATION_END_MONTH",$this->getDateSelect('month','end_month',$this->get_last('end_month')));
                $tpl->setVariable("SELECT_ACTIVATION_END_YEAR",$this->getDateSelect('year','end_year',$this->get_last('end_year')));
                $tpl->setVariable("SELECT_ACTIVATION_END_HOUR",$this->getDateSelect('hour','end_hour',$this->get_last('end_hour')));
                $tpl->setVariable("SELECT_ACTIVATION_END_MINUTE",$this->getDateSelect('minute','end_minute',$this->get_last('end_minute')));

                $tpl->setVariable("TXT_MONTH",$this->lng->txt("month"));
                $tpl->setVariable("TXT_YEAR",$this->lng->txt("year"));
                $tpl->setVariable("TXT_FROM",$this->lng->txt("from"));
                $tpl->setVariable("TXT_UNTIL",$this->lng->txt("until"));

                $tpl->setVariable("TXT_DURATION",$this->lng->txt("duration"));
                $tpl->setVariable("TXT_HOURS",$this->lng->txt("hours"));
                $tpl->setVariable("TXT_DAYS",$this->lng->txt("days"));
                $tpl->setVariable("TXT_WEEKS",$this->lng->txt("weeks"));
                $tpl->setVariable("TXT_MONTHS",$this->lng->txt("months"));
                $tpl->setVariable("TXT_REPEAT",$this->lng->txt("repeat"));

                for($i=0;$i < 25;$i++){
                        $interval[$i]=$i;
                }
                $tpl->setVariable("SELECT_INTERVAL",ilUtil::formSelect($this->get_last('interval'),'interval',$interval,false,true));
                $tpl->setVariable("TXT_EVERY",$this->lng->txt("every"));

                $interval_unitSB[0] = $this->lng->txt('hours');
                $interval_unitSB[1] = $this->lng->txt('days');
                $interval_unitSB[2] = $this->lng->txt('weeks');
                $interval_unitSB[3] = $this->lng->txt('months');
                $tpl->setVariable("SELECT_INTERVAL_UNIT",ilUtil::formSelect($this->get_last('interval_unit'),'interval_unit',$interval_unitSB,false,true));

                $tpl->setVariable("TXT_FIRST_VOTE",$this->lng->txt("first_vote"));
                $tpl->setVariable("TXT_BEST",$this->lng->txt("best"));
                $tpl->setVariable("TXT_WORST",$this->lng->txt("worst"));
                if($this->get_last("first_vote_best")==1)
                        $tpl->setVariable("BEST_CHECKED", "checked");
                else
                        $tpl->setVariable("WORST_CHECKED", "checked");

                $tpl->setVariable("TXT_NEW_VOTE", $this->lng->txt("new_vote"));
                $tpl->setVariable("CMD_ADDVOTE", 'addBarometer');
                $tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
                $tpl->setVariable("CMD_SUBMIT", "save");
                $tpl->parseCurrentBlock();
                return($tpl->get());

        }

Here is the call graph for this function:

ilFeedbackGUI::delete (  ) 

Definition at line 184 of file class.ilFeedbackGUI.php.

References $_POST, and ilUtil::redirect().

                         {
                if(is_Array($_POST['barometer'])){
                        include_once('Services/Feedback/classes/class.ilFeedback.php');
                        $ilFB = new ilFeedback();
                        $ilFB->setIds($_POST['barometer']);
                        $ilFB->delete();
                }
                ilUtil::redirect($this->ctrl->getLinkTarget($this, 'fbList'));
        }

Here is the call graph for this function:

ilFeedbackGUI::edit (  ) 

Edit screen for single feedback item.

Definition at line 275 of file class.ilFeedbackGUI.php.

References $_GET, $_POST, $data, $tpl, ilUtil::formSelect(), getDateSelect(), and ilUtil::getImagePath().

                       {
                include_once('Services/Feedback/classes/class.ilFeedback.php');

                $ilFB = new ilFeedback($_GET['barometer_id']);
                $tpl = new ilTemplate("tpl.feedback_edit.html", true, true, "Services/Feedback");

                $data['title'] = $_POST['title'] ? $_POST['title'] : $ilFB->getTitle();
                $data['description'] = $_POST['text'] ? $_POST['text'] : $ilFB->getDescription();
                $data['anonymous'] = ($_POST['anonymous']!='') ? $_POST['anonymous'] : $ilFB->getAnonymous();
                $data['required'] = ($_POST['required']!='') ? $_POST['required'] : $ilFB->getRequired();
                $data['show_on'] = $_POST['show_on'] ? $_POST['show_on'] : $ilFB->getShowOn();
                $data['vote'] = $_POST['vote'] ? $_POST['vote'] : unserialize($ilFB->getVotes());
                if($_POST['extra_votes']=='')
                        $_POST['extra_votes'] = count($data['votes']);
                $data['text_answer'] = ($_POST['text_answer']!='') ? $_POST['text_answer'] : $ilFB->getTextAnswer();
                if($ilFB->getStarttime()>=0||isset($_POST['start_day'])){
                        $data['start_day'] = $_POST['start_day'] ? $_POST['start_day'] : date('d',$ilFB->getStarttime());
                        $data['start_month'] =$_POST['start_month'] ? $_POST['start_month'] : date('m',$ilFB->getStarttime());
                        $data['start_year'] = $_POST['start_year'] ? $_POST['start_year'] :date('Y',$ilFB->getStarttime());
                        $data['start_hour'] = $_POST['start_hour'] ? $_POST['start_hour'] :date('h',$ilFB->getStarttime());
                        $data['start_minute'] = $_POST['start_minute'] ? $_POST['start_minute'] :date('i',$ilFB->getStarttime());
                }
                if($ilFB->getEndtime()>=0||isset($_POST['end_day'])){
                        $data['end_day'] = $_POST['end_day'] ? $_POST['end_day'] :date('d',$ilFB->getEndtime());
                        $data['end_month'] = $_POST['end_month'] ? $_POST['end_month'] :date('m',$ilFB->getEndtime());
                        $data['end_year'] = $_POST['end_year'] ? $_POST['end_year'] :date('Y',$ilFB->getEndtime());
                        $data['end_hour'] = $_POST['end_hour'] ? $_POST['end_hour'] :date('h',$ilFB->getEndtime());
                        $data['end_minute'] = $_POST['end_minute'] ? $_POST['end_minute'] :date('i',$ilFB->getEndtime());
                }

                $data['interval'] = $_POST['interval'] ? $_POST['interval'] : $ilFB->getInterval();
                $data['interval_unit'] = $_POST['interval_unit'] ? $_POST['interval_unit'] : $ilFB->getIntervalUnit();
                $data['first_vote_best'] = ($_POST['first_vote_best']!='') ? $_POST['first_vote_best'] : $ilFB->getFirstVoteBest();

                $this->ctrl->setParameter($this,"barometer_id",$_GET['barometer_id']);
                $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                $tpl->setVariable("TXT_HEADER", $this->lng->txt("feedb_edit_feedback"));
                $tpl->setVariable("IMG_FEEDB", ilUtil::getImagePath("icon_feedb.gif"));
                $tpl->setVariable("ALT_FEEDB", $this->lng->txt("feedb_edit_feedback"));
                $tpl->setVariable("TXT_TITLE", $this->lng->txt("title"));
                $tpl->setVariable("VALUE_TITLE",$data['title']);
                //$tpl->setVariable("TXT_TEXT", $this->lng->txt("text"));
                $tpl->setVariable("TXT_TIME", $this->lng->txt("feedb_time"));
                $tpl->setVariable("VALUE_TEXT", $data['description']);
                $tpl->setVariable("TXT_ANONYMOUS", $this->lng->txt("anonymous"));

                if($data["anonymous"]=="0")
                        $tpl->setVariable("ANONYMOUS_NO", " checked");
                else
                        $tpl->setVariable("ANONYMOUS_YES", " checked");
                $tpl->setVariable("TXT_YES", $this->lng->txt("yes"));
                $tpl->setVariable("TXT_NO", $this->lng->txt("no"));
                $tpl->setVariable("TXT_TYPE", $this->lng->txt("type"));
                $typeSB[0] = $this->lng->txt('optional');
                $typeSB[1] = $this->lng->txt('required');

                $tpl->setVariable("SELECT_TYPE",
                        ilUtil::formSelect($data['required'],'type',$typeSB,false,true));

                $tpl->setVariable("TXT_REQUIRED", $this->lng->txt("required"));
                if($data["show_on"]=="course")
                        $tpl->setVariable("SHOW_CHANGE_COURSE_SELECTED", "selected");
                else
                        $tpl->setVariable("SHOW_LOGIN_SELECTED", "selected");
                $tpl->setVariable("TXT_LOGIN", $this->lng->txt("login"));
                $tpl->setVariable("TXT_CHANGE_COURSE", $this->lng->txt("change_course"));
                if($data["text_answer"]=="1")
                        $tpl->setVariable("TEXT_ANSWER_YES", " checked");
                else
                        $tpl->setVariable("TEXT_ANSWER_NO", " checked");
                $tpl->setVariable("TXT_TEXT_ANSWER", $this->lng->txt("text_answer"));
                $tpl->setVariable("TXT_VOTES", $this->lng->txt("votes"));
                $extra_votes = $_POST["extra_votes"] ? $_POST["extra_votes"]+1 : (count($data["vote"])-2);
                if ($extra_votes<1) $extra_votes=1;
                $tpl->setVariable("VALUE_EXTRA_VOTES", $extra_votes);

                for($i=1;$i < 3+$extra_votes ;$i++){
                        $tpl->setCurrentBlock("vote");
                        $tpl->setVariable("TXT_TEXT",$this->lng->txt("text"));
                        $tpl->setVariable("VALUE_VOTE_TEXT",$data["vote"][$i]);
                        $tpl->setVariable("VOTE_NUM",$i);
                        $tpl->parseCurrentBlock();
                }

                $tpl->setVariable("TXT_DAY",$this->lng->txt("day"));
                $tpl->setVariable("SELECT_ACTIVATION_START_DAY",$this->getDateSelect('day','start_day',$data['start_day']));
                $tpl->setVariable("SELECT_ACTIVATION_START_MONTH",$this->getDateSelect('month','start_month',$data['start_month']));
                $tpl->setVariable("SELECT_ACTIVATION_START_YEAR",$this->getDateSelect('year','start_year',$data['start_year']));
                $tpl->setVariable("SELECT_ACTIVATION_START_HOUR",$this->getDateSelect('hour','start_hour',$data['start_hour']));
                $tpl->setVariable("SELECT_ACTIVATION_START_MINUTE",$this->getDateSelect('minute','start_minute',$data['start_minute']));
                $tpl->setVariable("SELECT_ACTIVATION_END_DAY",$this->getDateSelect('day','end_day',$data['end_day']));
                $tpl->setVariable("SELECT_ACTIVATION_END_MONTH",$this->getDateSelect('month','end_month',$data['end_month']));
                $tpl->setVariable("SELECT_ACTIVATION_END_YEAR",$this->getDateSelect('year','end_year',$data['end_year']));
                $tpl->setVariable("SELECT_ACTIVATION_END_HOUR",$this->getDateSelect('hour','end_hour',$data['end_hour']));
                $tpl->setVariable("SELECT_ACTIVATION_END_MINUTE",$this->getDateSelect('minute','end_minute',$data['end_minute']));

                $tpl->setVariable("TXT_MONTH",$this->lng->txt("month"));
                $tpl->setVariable("TXT_YEAR",$this->lng->txt("year"));
                $tpl->setVariable("TXT_FROM",$this->lng->txt("from"));
                $tpl->setVariable("TXT_UNTIL",$this->lng->txt("until"));

                $tpl->setVariable("TXT_DURATION",$this->lng->txt("duration"));
                $tpl->setVariable("TXT_HOURS",$this->lng->txt("hours"));
                $tpl->setVariable("TXT_DAYS",$this->lng->txt("days"));
                $tpl->setVariable("TXT_WEEKS",$this->lng->txt("weeks"));
                $tpl->setVariable("TXT_MONTHS",$this->lng->txt("months"));
                $tpl->setVariable("TXT_REPEAT",$this->lng->txt("repeat"));
                $tpl->setVariable("TXT_FTEXT",$this->lng->txt("text"));

                for($i=0;$i < 25;$i++){
                        $interval[$i]=$i;
                }
                $tpl->setVariable("SELECT_INTERVAL",ilUtil::formSelect($data['interval'],'interval',$interval,false,true));

                $interval_unitSB[0] = $this->lng->txt('hours');
                $interval_unitSB[1] = $this->lng->txt('days');
                $interval_unitSB[2] = $this->lng->txt('weeks');
                $interval_unitSB[3] = $this->lng->txt('months');
                $tpl->setVariable("SELECT_INTERVAL_UNIT",ilUtil::formSelect($data['interval_unit'],'interval_unit',$interval_unitSB,false,true));

                $tpl->setVariable("TXT_FIRST_VOTE",$this->lng->txt("first_vote"));
                $tpl->setVariable("TXT_BEST",$this->lng->txt("best"));
                $tpl->setVariable("TXT_WORST",$this->lng->txt("worst"));
                if($data["first_vote_best"]==1)
                        $tpl->setVariable("BEST_CHECKED", "checked");
                else
                        $tpl->setVariable("WORST_CHECKED", "checked");
                $tpl->setVariable("TXT_VOTE", $this->lng->txt("vote"));
                $tpl->setVariable("TXT_NEW_VOTE", $this->lng->txt("new_vote"));
                $tpl->setVariable("CMD_ADDVOTE", 'edit');
                $tpl->setVariable("TXT_SUBMIT", $this->lng->txt("save"));
                $tpl->setVariable("CMD_SUBMIT", "update");
                $tpl->parseCurrentBlock();
                return($tpl->get());

        }

Here is the call graph for this function:

& ilFeedbackGUI::executeCommand (  ) 

Execute current command.

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

References $_SESSION, $cmd, and $ilErr.

        {
                global $ilAccess,$ilErr;

                if(isset($_SESSION["message"])) {
                        if(isset($_SESSION['error_post_vars']['cmd']['update'])){
                                //var_dump($_SESSION);
                                $this->ctrl->setCmd('edit');
                        }else
                                $this->ctrl->setCmd('addBarometer');
                }
                $params = $this->ctrl->getParameterArray($this);

                        $cmd = $this->ctrl->getCmd('fbList');
                        //No write permissions, so this has to be a normal user..

                        if((!$ilAccess->checkAccess('write','edit',$params['ref_id']))&&(in_array($cmd,array('fbList','save','delete','update','edit'))))
                                $cmd = 'showBarometer';

                        $next_class = $this->ctrl->getNextClass($this);
                        switch($next_class){
                                default:
                                        return($this->$cmd());
                                break;
                        }
        }

ilFeedbackGUI::fbList (  ) 

List all feedback items.

Definition at line 99 of file class.ilFeedbackGUI.php.

References $_GET, $tbl, __initTableGUI(), ilUtil::array_php2js(), ilUtil::formCheckbox(), getButtons(), and ilUtil::getImagePath().

                         {

                include_once('Services/Feedback/classes/class.ilFeedback.php');
                $tbl =& $this->__initTableGUI();
                $cnt=0;
                $ilFeedback = new ilFeedback();
                $ilFeedback->setRefId($_GET['ref_id']);
                $barometers = $ilFeedback->getAllBarometer();

                if(is_Array($barometers)){
                        foreach($barometers as $barometer){
                                $rows[$cnt]['checkbox'] = ilUtil::formCheckbox(0,"barometer[]",$barometer->getId());;
                                $rows[$cnt]['title'] = $barometer->getTitle();
                                $rows[$cnt]['status'] = 'Aktive';
                                if(($barometer->getStarttime()>0) && ($barometer->getStarttime()>0)){
                                        $rows[$cnt]['running'] = date('d.m.Y H:i',$barometer->getStarttime()).' - '.date('d.m.Y H:i',$barometer->getEndtime());
                                        if(($barometer->getStarttime()<=time())&&($barometer->getEndtime()>=time()))
                                                $rows[$cnt]['status'] = $this->lng->txt('active');
                                        else
                                                $rows[$cnt]['status'] = $this->lng->txt('inactive');

                                }else{
                                        $rows[$cnt]['running'] = '';
                                        $rows[$cnt]['status'] = $this->lng->txt('active');
                                }
                                $rows[$cnt]['options'] = $this->getButtons($barometer->getId());
                                $barometer_ids[]=$barometer->getId();
                                $cnt++;
                        }
                }

                $tbl->tpl->setCurrentBlock("tbl_form_header");
                $tbl->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
                $tbl->tpl->parseCurrentBlock();
                $tbl->setTitle($this->lng->txt("feedb_feedback_list"),
                        "icon_feedb.gif", $this->lng->txt("feedb_feedback_list"));
                $tbl->setHeaderNames(array("",$this->lng->txt("title"),$this->lng->txt("status"),$this->lng->txt("time"),$this->lng->txt("options")));
                $tbl->setHeaderVars(array("checkbox","title","stauts","running","options"));
                $tbl->setData($rows);
                $tbl->setOffset(0);
                $tbl->setLimit(0);
                $tbl->disable('sort');
                $tbl->setMaxCount(count($rows));
                $tbl->tpl->setCurrentBlock("plain_button");
                $tbl->tpl->setVariable("PBTN_NAME","addBarometer");
                $tbl->tpl->setVariable("PBTN_VALUE",$this->lng->txt("barometer_add"));
                $tbl->tpl->parseCurrentBlock();
                $tbl->tpl->setCurrentBlock("plain_buttons");
                $tbl->tpl->parseCurrentBlock();
                if (!empty($rows))
                {
                        // set checkbox toggles
                        $tbl->tpl->setCurrentBlock("tbl_action_toggle_checkboxes");
                        $tbl->tpl->setVariable("JS_VARNAME","barometer");
                        $tbl->tpl->setVariable("JS_ONCLICK",ilUtil::array_php2js($barometer_ids));
                        $tbl->tpl->setVariable("TXT_CHECKALL", $this->lng->txt("check_all"));
                        $tbl->tpl->setVariable("TXT_UNCHECKALL", $this->lng->txt("uncheck_all"));
                        $tbl->tpl->parseCurrentBlock();
                }


                $tbl->tpl->setVariable("COLUMN_COUNTS",5);
                $tbl->tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));

                $tbl->tpl->setCurrentBlock("tbl_action_select");
                //$tbl->tpl->setVariable("SELECT_ACTION",ilUtil::formSelect(1,"action",array('delete'),false,true));
                $tbl->tpl->setVariable("BTN_NAME","delete");
                $tbl->tpl->setVariable("BTN_VALUE",$this->lng->txt("delete"));
                $tbl->tpl->parseCurrentBlock();
                //$tbl->setOrderColumn('title');
                $tbl->setOrderDirection('asc');
                $tbl->setColumnWidth(array("","25%","25%","25%",""));
                #$tbl->disable('sort');
                $tbl->setFooter("tblfooter");
                $tbl->render();

                return($tbl->tpl->get());

        }

Here is the call graph for this function:

ilFeedbackGUI::get_last ( a_var,
a_value = '',
pForm = true 
)

get stored post var in case of an error/warning otherwise return passed value

Definition at line 474 of file class.ilFeedbackGUI.php.

References $_POST, $_SESSION, $result, and ilUtil::prepareFormOutput().

Referenced by addBarometer().

        {
                if (!empty($_POST[$a_var])) $result=$_POST[$a_var];
                elseif (!empty($_SESSION["error_post_vars"][$a_var])) $result=$_SESSION["error_post_vars"][$a_var];
                else {
                        $result=$a_value;
                        $pForm=false;
                }

                return $pForm?ilUtil::prepareFormOutput($result):$result;
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilFeedbackGUI::getButtons ( a_barometer_id  ) 

Definition at line 587 of file class.ilFeedbackGUI.php.

References $_GET, and $tpl.

Referenced by fbList().

                                            {

                $tpl = new ilTemplate("tpl.buttons.html", true, true,"Services/Feedback");

                $tpl->setCurrentBlock("btn_cell");
                $this->ctrl->setParameter($this,"barometer_id",$a_barometer_id);
                $this->ctrl->setParameter($this,"ref_id",$_GET['ref_id']);
                $tpl->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this,'stats'));
                $tpl->setVariable("BTN_TXT", $this->lng->txt("statistics"));
                $tpl->parseCurrentBlock();
                $tpl->setCurrentBlock("btn_cell");
                $tpl->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this,'edit'));
                $tpl->setVariable("BTN_TXT", $this->lng->txt("edit"));
                $tpl->parseCurrentBlock();
                return($tpl->get());
        }

Here is the caller graph for this function:

ilFeedbackGUI::getCRSFeedbackListHTML (  ) 

Definition at line 807 of file class.ilFeedbackGUI.php.

References $_GET, $output, and $tpl.

                                         {
                global $ilUser;

                include_once('Services/Feedback/classes/class.ilFeedback.php');
                $feedback = new ilFeedback();
                $feedback->setRefId($_GET['ref_id']);
                $barometers = $feedback->getAllBarometer(0);

                $tpl = new ilTemplate("tpl.feedback_pdbox.html", true,true, "Services/Feedback");
                $tpl->setVariable('TXT_TITLE',$this->lng->txt('feedback'));
                $rownum = 0;
                if(count($barometers)){
                        foreach ($barometers as $barometer){
                                if($barometer->canVote($ilUser->getId(),$barometer->getId())==1){
                                        $tpl->setCurrentBlock('tbl_row');
                                        $tpl->setVariable('ROWCOL', 'tblrow'.(($rownum++ % 2)+1));
                                        $this->ctrl->setParameter($this,"barometer_id",$barometer->getId());
                                        $link ='<a href="'.$this->ctrl->getLinkTargetByClass(array('ilinfoscreengui','ilfeedbackgui'),'fbList').'">'.$barometer->getTitle().'</a>';

                                        $tpl->setVariable('BAROMETER_LINK',$link);
                                        $tpl->parseCurrentBlock();
                                }
                        }
                }
                $output = $rownum ? $tpl->get() : '' ;
                return($output);
        }

ilFeedbackGUI::getDateSelect ( a_type,
a_varname,
a_selected 
)

Definition at line 603 of file class.ilFeedbackGUI.php.

References formSelect().

Referenced by addBarometer(), and edit().

        {
                switch($a_type)
                {
                        case "minute":
                                for($i=0;$i<60;$i++)
                                {
                                        $days[$i] = $i < 10 ? "0".$i : $i;
                                }
                                return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);

                        case "hour":
                                for($i=0;$i<24;$i++)
                                {
                                        $days[$i] = $i < 10 ? "0".$i : $i;
                                }
                                return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);

                        case "day":
                                for($i=1;$i<32;$i++)
                                {
                                        $days[$i] = $i < 10 ? "0".$i : $i;
                                }
                                $days[0] = '';
                                return ilUtil::formSelect($a_selected,$a_varname,$days,false,true);

                        case "month":
                                for($i=1;$i<13;$i++)
                                {
                                        $month[$i] = $i < 10 ? "0".$i : $i;
                                }
                                $month[0] = '';
                                return ilUtil::formSelect($a_selected,$a_varname,$month,false,true);

                        case "year":
                                for($i = date("Y",time());$i < date("Y",time()) + 3;++$i)
                                {
                                        $year[$i] = $i;
                                }
                                $year[0] = '';
                                return ilUtil::formSelect($a_selected,$a_varname,$year,false,true);
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilFeedbackGUI::getFeedbackHTML (  ) 

Definition at line 81 of file class.ilFeedbackGUI.php.

References $lng, and $tpl.

                                  {
                global $lng;

                $tpl = new ilTemplate("tpl.feedbacklist.html", true, true, "Services/Feedback");
                $tpl->setVariable("TXT_FEEDBACK_TITLE", $lng->txt("stimmungsb"));
                $tpl->setVariable("TXT_TITLE", $lng->txt("title"));
                $tpl->setVariable("TXT_STATUS", $lng->txt("status"));
                $tpl->setVariable("TXT_ACTIVE_TIME", $lng->txt("active_time"));
                $tpl->setVariable("TXT_OPTIONS", $lng->txt("options"));

                $tpl->setVariable("TXT_NEW_VOTE", $lng->txt("options"));
                $tpl->parseCurrentBlock();
                return($tpl->get());
        }

ilFeedbackGUI::getPDFeedbackListHTML (  ) 

Definition at line 773 of file class.ilFeedbackGUI.php.

References $output, and $tpl.

                                        {
                global $ilUser, $ilAccess;

                include_once('Services/Feedback/classes/class.ilFeedback.php');
                $feedback = new ilFeedback();
                $barometers = $feedback->getAllBarometer(0);

                $tpl = new ilTemplate("tpl.feedback_pdbox.html", true,true, "Services/Feedback");
                $tpl->setVariable('TXT_TITLE',$this->lng->txt('feedback'));
                $rownum = 0;
                if(count($barometers)){
                        foreach ($barometers as $barometer)
                        {
                                // do not show feedback for tutors/admins
                                if ($ilAccess->checkAccess("write", "", $barometer->getRefId()))
                                {
                                        continue;
                                }
                                if($barometer->canVote($ilUser->getId(),$barometer->getId())==1)
                                {
                                        $tpl->setCurrentBlock('tbl_row');
                                        $tpl->setVariable('ROWCOL', 'tblrow'.(($rownum++ % 2)+1));
                                        $this->ctrl->setParameter($this,"barometer_id",$barometer->getId());
                                        $link ='<a href="'.$this->ctrl->getLinkTargetByClass('ilfeedbackgui','voteform').'">'.$barometer->getTitle().'</a>';
                                        //$link ='<a href="repository.php?jumpToFeedback=1&barometer_id='.$barometer->getId().'&ref_id='.$barometer->getRefId().'&rep_frame=1">'.$barometer->getTitle().'</a>';
                                        $tpl->setVariable('BAROMETER_LINK',$link);
                                        $tpl->parseCurrentBlock();
                                }
                        }
                }
                $output = $rownum ? $tpl->get() : '' ;
                return($output);
        }

ilFeedbackGUI::handleRequiredFeedback ( a_ref_id = 0  ) 

Definition at line 835 of file class.ilFeedbackGUI.php.

        {
                global $ilUser;

                include_once('Services/Feedback/classes/class.ilFeedback.php');
                $feedback = new ilFeedback();
                if ($a_ref_id > 0)
                {
                        $feedback->setRefId($a_ref_id);
                }
                $barometers = $feedback->getAllBarometer(0,1);

                $rownum = 0;
                if(count($barometers))
                {
                        foreach ($barometers as $barometer)
                        {
                                if($barometer->canVote($ilUser->getId(),$barometer->getId())==1){
                                        $this->ctrl->setParameter($this,"barometer_id",$barometer->getId());
                                        $this->ctrl->redirectByClass(array("ilinfoscreengui", "ilfeedbackgui"), "showBarometerById");
                                }
                        }
                }
        }

ilFeedbackGUI::ilFeedbackGUI (  ) 

Constructor.

Definition at line 40 of file class.ilFeedbackGUI.php.

References $ilCtrl, $lng, and update().

                                {
                global $ilCtrl;
                global $lng;
                $this->update = 0;

                $this->ctrl =& $ilCtrl;
                $this->lng =& $lng;
                $this->lng->loadLanguageModule('barometer');

        }

Here is the call graph for this function:

ilFeedbackGUI::save (  ) 

Definition at line 416 of file class.ilFeedbackGUI.php.

References $_GET, $_POST, $ilias, ilUtil::redirect(), ilUtil::stripSlashes(), and update().

Referenced by update().

                       {
        //print_r($_POST);
                global $ilias;
                include_once('Services/Feedback/classes/class.ilFeedback.php');
                $params = $this->ctrl->getParameterArray($this);
                $tmp_votes=array();
                $vote_cnt=1;
                foreach ($_POST['vote'] as $k=>$v)
                {
                        if(trim($v))
                        {
                                $tmp_votes[$vote_cnt]=$v;
                                $vote_cnt++;
                        }
                }
                if(($_POST['title']=='')||($_POST['text']=='')|| $vote_cnt<3){
                        $this->ctrl->setParameter($this,'a','32');
                        $ilias->raiseError($this->lng->txt('missing_fields'),$ilias->error_obj->MESSAGE);
                }
                $ilFeedback = new  ilFeedback();
                $ilFeedback->setTitle(ilUtil::stripSlashes($_POST['title']));
                $ilFeedback->setDescription(ilUtil::stripSlashes($_POST['text']));
                $ilFeedback->setAnonymous(ilUtil::stripSlashes($_POST['anonymous']));
                $ilFeedback->setRequired(ilUtil::stripSlashes($_POST['type']));
                $ilFeedback->setShowOn(ilUtil::stripSlashes($_POST['show_on']));
                $ilFeedback->setTextAnswer(ilUtil::stripSlashes($_POST['text_answer']));
                $ilFeedback->setVotes(serialize($tmp_votes));
                $ilFeedback->setStarttime(mktime(ilUtil::stripSlashes($_POST['start_hour']),
                        ilUtil::stripSlashes($_POST['start_minute']),0,
                        ilUtil::stripSlashes($_POST['start_month']),
                        ilUtil::stripSlashes($_POST['start_day']),
                        ilUtil::stripSlashes($_POST['start_year'])));
                $ilFeedback->setEndtime(mktime(
                        ilUtil::stripSlashes($_POST['end_hour']),
                        ilUtil::stripSlashes($_POST['end_minute']),0,
                        ilUtil::stripSlashes($_POST['end_month']),
                        ilUtil::stripSlashes($_POST['end_day']),
                        ilUtil::stripSlashes($_POST['end_year'])));
                $ilFeedback->setInterval(
                        ilUtil::stripSlashes($_POST['interval']));
                $ilFeedback->setIntervalUnit(
                        ilUtil::stripSlashes($_POST['interval_unit']));
                $ilFeedback->setFirstVoteBest(
                        ilUtil::stripSlashes($_POST['first_vote_best']));
                $ilFeedback->setObjId($params['obj_id']);
                $ilFeedback->setRefId($params['ref_id']);
                if($this->update==1){
                        $ilFeedback->setId($_GET['barometer_id']);
                        $ilFeedback->update();
                }else
                        $ilFeedback->create();
                ilUtil::redirect($this->ctrl->getLinkTarget($this, 'fbList'));

        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilFeedbackGUI::saveVote (  ) 

Definition at line 740 of file class.ilFeedbackGUI.php.

References $_GET, $_POST, and ilUtil::stripSlashes().

                           {
                global $ilUser;
                include_once('Services/Feedback/classes/class.ilFeedback.php');

                $feedback = new ilFeedback();
                $feedback->setId($_GET['fb_id']);
                $feedback->getBarometer()
;
                $feedback->setVote(ilUtil::stripSlashes($_POST['vote']));
                $feedback->setNote(ilUtil::stripSlashes($_POST['text_answer']));
                if($feedback->getAnonymous())
                        $feedback->setUserId(0);
                else
                        $feedback->setUserId($ilUser->getId());
                $feedback->saveResult();
                $this->ctrl->returnToParent($this);
        }

Here is the call graph for this function:

ilFeedbackGUI::selectbox ( selected_itm,
name,
items,
params = '',
first = '' 
)

Definition at line 757 of file class.ilFeedbackGUI.php.

References $key.

Referenced by stats().

                                                                              {
                $selected_ = '';
                $options = $first ? '<option value="">'.$first.'</option>'.chr(10) : '';
                if(is_Array($items)){
                        foreach($items as $key => $item){
                                $selected = ($key == $selected_itm) ? ' selected' : '';
                                $options.='<option value="'.$key.'"'.$selected.'>'.$item.'</option>'.chr(10);

                        }
                }
                $content = '<select name="'.$name.'" '.$params.'>
                                '.$options.'
                                </select>';
                return($content);
        }

Here is the caller graph for this function:

ilFeedbackGUI::showBarometer (  ) 

Definition at line 704 of file class.ilFeedbackGUI.php.

References $_GET, $tpl, and ilUtil::formRadioButton().

                                {
                global $ilUser;
                include_once('Services/Feedback/classes/class.ilFeedback.php');

                $ilfeedback = new ilFeedback();
                $ilfeedback->setRefId($_GET['ref_id']);
                $feedbacks = $ilfeedback->getAllBarometer();

                //There can be more then 1 Barometer for a ref_id so we show show always only the first_vote_best
                //Barometer a user can vote, the next time he acceses this page, he will get the next barometer a.s.o.
                foreach($feedbacks as $feedback){
                        //Show only if there is no vote yet or enough time has passed since the last vote
                        if($feedback->getId()&& ($feedback->canVote($ilUser->getId(),$feedback->getId())==1)){
                                $tpl = new ilTemplate("tpl.feedback_vote.html", true,true, "Services/Feedback");
                                $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this).'&fb_id='.$feedback->getId());
                                $tpl->setVariable("TXT_TITLE", $feedback->getTitle());
                                $tpl->setVariable("TXT_DESCRIPTION", $feedback->getDescription());
                                $votes = unserialize($feedback->getVotes());
                                $checked = 1;
                                foreach($votes as $vote => $votetext){
                                        $radios.=ilUtil::formRadioButton($checked,'vote',$vote).$votetext.'<br>';
                                        $checked = 0;
                                }
                                $tpl->setVariable("TXT_SAVE",$this->lng->txt('save_vote'));
                                $tpl->setVariable("RADIO_VOTES",$radios);
                                if($feedback->getTextAnswer()){
                                        $tpl->setCurrentBlock("text_answer");
                                        $tpl->setVariable("TXT_NOTE",$this->lng->txt('note'));

                                }
                                $tpl->parseCurrentBlock();

                                return($tpl->get());
                        }
                }
        }

Here is the call graph for this function:

ilFeedbackGUI::showBarometerById ( a_id = 0,
a_header = false 
)

Definition at line 647 of file class.ilFeedbackGUI.php.

References $_GET, $tpl, ilObject::_lookupTitle(), ilUtil::formRadioButton(), and ilUtil::getImagePath().

Referenced by voteform().

                                                              {
                global $ilAccess,$ilUser;
                include_once('Services/Feedback/classes/class.ilFeedback.php');
                $feedback = new ilFeedback();
                $bid = $a_id ? $a_id :$_GET['barometer_id'];
                $feedback->setId($bid);
                $feedback->getBarometer();
                if($feedback->getId()&& ($feedback->canVote($ilUser->getId(),$feedback->getId())==1)){
                        $tpl = new ilTemplate("tpl.feedback_vote.html", true,true, "Services/Feedback");
                        
                        if ($a_header)
                        {
                                $tpl->setCurrentBlock("vote_head");
                                $tpl->setVariable("IMG_VHEAD", ilUtil::getImagePath("icon_crs.gif"));
                                $tpl->setVariable("TXT_CRS_TITLE", ilObject::_lookupTitle($feedback->getObjId()));
                                $tpl->parseCurrentBlock();
                        }

                        $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this).'&fb_id='.$feedback->getId());
                        $tpl->setVariable("TXT_TITLE", $feedback->getTitle());
                        $tpl->setVariable("TXT_DESCRIPTION", $feedback->getDescription());
                        $votes = unserialize($feedback->getVotes());
                        $checked = 1;
                        foreach($votes as $vote => $votetext){
                                $radios.=ilUtil::formRadioButton($checked,'vote',$vote).$votetext.'<br>';
                                $checked = 0;
                        }
                        $tpl->setVariable("TXT_SAVE",$this->lng->txt('save_vote'));

                        $tpl->setVariable("RADIO_VOTES",$radios);
                        if($feedback->getTextAnswer()){
                                $tpl->setCurrentBlock("text_answer");
                                $tpl->setVariable("TXT_NOTE",$this->lng->txt('note'));

                        }
                        $tpl->parseCurrentBlock();

                        return($tpl->get());
                }

        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilFeedbackGUI::stats (  ) 

Definition at line 193 of file class.ilFeedbackGUI.php.

References $_GET, $_POST, $chart_type, $data, $legend, $tpl, selectbox(), and ilUtil::stripSlashes().

                        {

                include_once('Services/Feedback/classes/class.ilFeedback.php');


                $tpl = new ilTemplate("tpl.feedback_stats.html", true, true, "Services/Feedback");
                $feedback = new ilFeedback();
                $feedback->setUserId(ilUtil::stripSlashes($_POST['chart_user']));
                $feedback->setId($_GET['barometer_id']);
                $chartdata = $feedback->getChartData();
                $data = $chartdata['data'];
                $legend = $chartdata['legend'];
                $legendpie = $chartdata['legendpie'];
                $datapie = $chartdata['datapie'];
                $datatable = $chartdata['table'];

                $chartlines = '<img src="Services/Feedback/showchart.php?chart_type=lines&title='.base64_encode($this->lng->txt('chart_users')).'&data='.base64_encode(serialize($data)).'&legend='.base64_encode(serialize($legend)).'">';
                $chartpie = '<img src="Services/Feedback/showchart.php?chart_type=pie&title='.base64_encode($this->lng->txt('chart_votes')).'&data='.base64_encode(serialize($datapie)).'&legend='.base64_encode(serialize($legendpie)).'">';

                $chart_type['lines'] = $this->lng->txt('lines');
                $chart_type['pie'] = $this->lng->txt('pie');
                $chart_type['table'] = $this->lng->txt('table');

                $chart_user[0] = $this->lng->txt('all_users');
                $chart_user = $feedback->getResultUsers();

                $tpl->setVariable("TXT_USER",$this->lng->txt('user'));
                $tpl->setVariable("TXT_CHART_TYPE",$this->lng->txt('chart_type'));
                switch($_POST['chart_type']){
                        case 'pie':
                                $tpl->setVariable("CHART_PIE", $chartpie);
                                break;
                        case 'table':
                                if(is_array($datatable)){
                                        $tpl->setCurrentBlock('tablerow');
                                        $tpl->setVariable('TXT_TABLE_USERNAME',$this->lng->txt('username'));
                                        $tpl->setVariable('TXT_TABLE_VOTE',$this->lng->txt('vote'));
                                        $tpl->setVariable('TXT_TABLE_DATE', $this->lng->txt('date'));
                                        $tpl->parseCurrentBlock();
                                        $i=0;
                                        foreach($datatable as $tablerow){
                                                $tpl->setVariable('VALUE_NUM',(($i++ % 2) ? 1 : 2));
                                                $tpl->setVariable('VALUE_VOTETIME', $tablerow['votetime']);
                                                $tpl->setVariable('VALUE_USER', $tablerow['user']);
                                                $tpl->setVariable('VALUE_VOTE', $tablerow['vote']);
                                                $tpl->parseCurrentBlock();
                                        }
                                }
                                break;
                        default:
                                $tpl->setVariable("CHART_LINES", $chartlines);
                                break;
                }
                $tpl->setVariable("SELECTBOX_CHART_TYPE", $this->selectbox(ilUtil::stripSlashes($_POST['chart_type']),'chart_type',$chart_type,'onChange="document.forms[0].submit()"'));
                $tpl->setVariable("SELECTBOX_USER", $this->selectbox(ilUtil::stripSlashes($_POST['chart_user']),'chart_user',$chart_user,'onChange="document.forms[0].submit()"',$this->lng->txt('all_users')));




                $comments = $feedback->getNotes();
                if(is_Array($comments)){
                        $tpl->setCurrentBlock('comment_row');
                        $tpl->setVariable('TXT_USERNAME',$this->lng->txt('username'));
                        $tpl->setVariable('TXT_COMMENT',$this->lng->txt('comment'));
                        $tpl->setVariable('TXT_DATE', $this->lng->txt('date'));
                        $tpl->parseCurrentBlock();
                        $i=0;
                        foreach ($comments as $comment){
                                $tpl->setVariable('VALUE_NUM',(($i++ % 2) ? 1 : 2));
                                $tpl->setVariable('VALUE_LOGIN',$comment['user']);
                                $tpl->setVariable('VALUE_DATE',$comment['votetime']);
                                $tpl->setVariable('VALUE_NOTE',$comment['note']);
                                $tpl->parseCurrentBlock();
                        }
                }
                $tpl->parseCurrentBlock();
                return($tpl->get());
        }

Here is the call graph for this function:

ilFeedbackGUI::update (  ) 

Definition at line 411 of file class.ilFeedbackGUI.php.

References save().

Referenced by ilFeedbackGUI(), and save().

                         {
                $this->update=1;

                $this->save();
        }

Here is the call graph for this function:

Here is the caller graph for this function:

ilFeedbackGUI::voteform ( a_barometer_id = 0  ) 

Definition at line 860 of file class.ilFeedbackGUI.php.

References $_GET, $tpl, and showBarometerById().

                                            {
                global $tpl;

                $barometer_id = $a_barometer_id ? $a_barometer_id :$_GET['barometer_id'];
                //$tpl->setVariable('CONTENT',$this->showBarometerById($a_barometer_id));
                $tpl->setContent($this->showBarometerById($a_barometer_id, true));
                //$tpl->parseCurrentBlock();
                $tpl->show();

        }

Here is the call graph for this function:


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