function &execute(&$controller, &$request, &$user)
 {
     $objs =& $request->getAttribute('questions');
     $questions = array();
     foreach ($objs as $obj) {
         $arr =& $obj->getStructure();
         $arr['size_str'] = @sprintf(_MD_PLZXOO_FORMAT_ANSWERS_COUNT, $arr['size']);
         $questions[] =& $arr;
         unset($arr);
     }
     $listController =& $request->getAttribute('listController');
     $renderer = new mojaLE_XoopsTplRenderer($controller, $request, $user);
     $renderer->setTemplate('plzxoo_index.html');
     $renderer->setAttribute('questions', $questions);
     $renderer->setAttribute('listController', $listController->getStructure());
     exFrame::init(EXFRAME_PERM);
     $renderer->setAttribute('enable_post_question', exPerm::isPerm('post_question'));
     $cat_handler =& plzXoo::getHandler('category');
     $cat_obj =& $cat_handler->get(intval(@$_GET['cid']));
     if (is_object($cat_obj)) {
         $cat_arr = $cat_obj->getStructure();
         $renderer->setAttribute('category', $cat_arr);
         $renderer->setAttribute('xoops_pagetitle', $cat_arr['name']);
     } else {
         $renderer->setAttribute('category', array('children' => plzXooCategoryObject::getChildren(0), 'cid' => 0));
         $renderer->setAttribute('searchtxt4disp', htmlspecialchars($listController->filter_->txt_, ENT_QUOTES));
     }
     /*
     		echo "<pre>" ;
     		var_dump( $cat_obj->getStructure() ) ;
     		exit ;*/
     return $renderer;
 }
 function &execute(&$controller, &$request, &$user)
 {
     $editform =& $request->getAttribute('editform');
     $category =& $request->getAttribute('category');
     $question =& $request->getAttribute('question');
     $answer =& $request->getAttribute('answer');
     /* $form = new XoopsThemeForm('Answer','editanswer','','POST');
     		$form->addElement(new XoopsFormHidden('aid',$editform->aid_));
     		$form->addElement(new XoopsFormHidden('qid',$editform->qid_));
     		$form->addElement(new XoopsFormDhtmlTextArea(_MD_PLZXOO_LANG_ANSWER_BODY,'body',$editform->body_,6,50));
     
     		//Ticket
     		$form->addElement(new XoopsFormHidden($editform->ticket_->name_,$editform->ticket_->value_));
     
     		//-------------------------
     		// Tray & Button
     		//-------------------------
     		$tray = new XoopsFormElementTray(_MD_PLZXOO_LANG_CONTROL);
     
     		// preview (check isset($_POST['preview']))
     //		$tray->addElement( new XoopsFormButton ( '' , 'preview', 'DISPLAY STRING', 'submit' ) );
     
     		$tray->addElement( new XoopsFormButton ( '', 'submit', _MD_PLZXOO_LANG_SUBMIT, 'submit' ) );
     		$tray->addElement( new XoopsFormButton ( '' , 'reset', _MD_PLZXOO_LANG_RESET, 'reset' ) );
     
     		$backButton = new XoopsFormButton ( '' , "back", _MD_PLZXOO_LANG_GO_BACK, "button" );
     		$backButton->setExtra('onclick="javascript:history.go(-1);"');
     		$tray->addElement($backButton);
     
     		// add tray
     		$form->addElement($tray); */
     $renderer = new mojaLE_XoopsTplRenderer($controller, $request, $user);
     $renderer->setTemplate('plzxoo_answer_edit.html');
     //		$renderer = new mojaLE_Renderer($controller,$request,$user);
     //		$renderer->setTemplate('edit_answer.tpl');
     //		$renderer->setAttribute('xoopsform',$form);
     $renderer->setAttribute('editform', $editform);
     if (is_object(@$editform->ticket_)) {
         $renderer->setAttribute('hidden_ticket', $editform->ticket_->makeHTMLhidden());
     }
     $renderer->setAttribute('is_error', $editform->isError());
     $renderer->setAttribute('error_html', $editform->getHtmlErrors());
     $renderer->setAttribute('category', $category->getStructure());
     $renderer->setAttribute('question', $question->getStructure());
     $renderer->setAttribute('answer', $answer->getStructure('e'));
     return $renderer;
 }
 function &execute(&$controller, &$request, &$user)
 {
     $editform =& $request->getAttribute('editform');
     $category =& $request->getAttribute('category');
     $question =& $request->getAttribute('question');
     $answer =& $request->getAttribute('obj');
     $renderer = new mojaLE_XoopsTplRenderer($controller, $request, $user);
     $renderer->setTemplate('plzxoo_answer_delete.html');
     $renderer->setAttribute('editform', $editform);
     if (is_object(@$editform->ticket_)) {
         $renderer->setAttribute('hidden_ticket', $editform->ticket_->makeHTMLhidden());
     }
     $renderer->setAttribute('category', $category->getStructure());
     $renderer->setAttribute('question', $question->getStructure());
     $renderer->setAttribute('answer', $answer->getStructure());
     return $renderer;
 }
 function &execute(&$controller, &$request, &$user)
 {
     $editform =& $request->getAttribute('editform');
     $category =& $request->getAttribute('category');
     $question =& $request->getAttribute('question');
     $answer =& $request->getAttribute('answer');
     /* $form = new XoopsThemeForm(_MD_PLZXOO_LANG_RESPONSE,'Response','','POST');
     
     		$form->addElement(new XoopsFormHidden('aid',$editform->aid_));
     		$form->addElement(new XoopsFormHidden($editform->ticket_->name_,$editform->ticket_->value_));
     
     		//-------------------------
     		// Select
     		//-------------------------
     		if(isset($editform->point_)) {
     			$select =new XoopsFormSelect(_MD_PLZXOO_LANG_POINT,'point', $editform->point_);
     				$select->addOption(20, _MD_PLZXOO_LANG_POINT_20 );
     				$select->addOption(10, _MD_PLZXOO_LANG_POINT_10 );
     				$select->addOption(0, _MD_PLZXOO_LANG_POINT_0 );
     			$form->addElement($select);
     			unset($select);
     		}
     
     
     		//-------------------------
     		// TextArea(Plain)
     		//-------------------------
     		$form->addElement(new XoopsFormTextArea(_MD_PLZXOO_LANG_COMMENT,'comment',$editform->comment_,3, 50 ));
     
     
     		//-------------------------
     		// Tray & Button
     		//-------------------------
     		$tray = new XoopsFormElementTray(_MD_PLZXOO_LANG_CONTROL);
     
     		// preview (check isset($_POST['preview']))
     //		$tray->addElement( new XoopsFormButton ( '' , 'preview', 'DISPLAY STRING', 'submit' ) );
     
     		$tray->addElement( new XoopsFormButton ( '', 'submit', _MD_PLZXOO_LANG_SUBMIT, 'submit' ) );
     		$tray->addElement( new XoopsFormButton ( '', 'reset', _MD_PLZXOO_LANG_RESET, 'reset' ) );
     
     		$backButton = new XoopsFormButton ( '' , "back", _MD_PLZXOO_LANG_GO_BACK, "button" );
     		$backButton->setExtra('onclick="javascript:history.go(-1);"');
     		$tray->addElement($backButton);
     
     		// add tray
     		$form->addElement($tray); */
     $renderer = new mojaLE_XoopsTplRenderer($controller, $request, $user);
     $renderer->setTemplate('plzxoo_answer_response.html');
     //		$renderer = new mojaLE_Renderer($controller,$request,$user);
     //		$renderer->setTemplate('response.tpl');
     //		$renderer->setAttribute('xoopsform',$form);
     $renderer->setAttribute('editform', $editform);
     if (is_object(@$editform->ticket_)) {
         $renderer->setAttribute('hidden_ticket', $editform->ticket_->makeHTMLhidden());
     }
     $renderer->setAttribute('is_error', $editform->isError());
     $renderer->setAttribute('error_html', $editform->getHtmlErrors());
     $renderer->setAttribute('category', $category->getStructure());
     $renderer->setAttribute('question', $question->getStructure());
     $answer_structure = $answer->getStructure();
     $answer_structure['comment4edit'] = $answer->getVar('comment', 'e');
     $renderer->setAttribute('answer', $answer_structure);
     return $renderer;
 }
 function &execute(&$controller, &$request, &$user)
 {
     $editform =& $request->getAttribute('editform');
     $category =& $request->getAttribute('category');
     $question =& $request->getAttribute('question');
     $answers_obj =& $request->getAttribute('answers');
     $answers = array();
     foreach ($answers_obj as $answer) {
         $ret = $answer->getStructure();
         $ret['enable_edit'] = $answer->isEnableEdit($user);
         $ret['enable_delete'] = $answer->isEnableDelete($user);
         $answers[] =& $ret;
         unset($ret);
     }
     $points = explode('|', @$GLOBALS['xoopsModuleConfig']['points']);
     $point_options = '';
     foreach ($points as $key => $point_tmp) {
         @(list($point, $max) = explode(':', $point_tmp));
         if (empty($max)) {
             $max = 0;
         }
         $point = intval($point_tmp);
         $point_options .= "<option value='{$point}'>" . sprintf($max ? _MD_PLZXOO_FORMAT_POINT_OF_ANSWER : _MD_PLZXOO_FORMAT_POINT_OF_ANSWER_NOLIMIT, $point, $max) . "</option>\n";
     }
     $renderer = new mojaLE_XoopsTplRenderer($controller, $request, $user);
     $renderer->setTemplate('plzxoo_question_close.html');
     //		$renderer = new mojaLE_Renderer($controller,$request,$user);
     //		$renderer->setTemplate('close_input.tpl');
     $renderer->setAttribute('editform', $editform);
     if (is_object(@$editform->ticket_)) {
         $renderer->setAttribute('hidden_ticket', $editform->ticket_->makeHTMLhidden());
     }
     $renderer->setAttribute('is_error', $editform->isError());
     $renderer->setAttribute('error_html', $editform->getHtmlErrors());
     $renderer->setAttribute('category', $category->getStructure());
     $renderer->setAttribute('question', $question->getStructure());
     $renderer->setAttribute('answers', $answers);
     $renderer->setAttribute('point_options', $point_options);
     return $renderer;
 }
 function &execute(&$controller, &$request, &$user)
 {
     $editform =& $request->getAttribute('editform');
     $question =& $request->getAttribute('question');
     /*		$form = new XoopsThemeForm(_MD_PLZXOO_LANG_QUESTION,'editquestion','','POST');
     		$form->addElement(new XoopsFormHidden('qid',$editform->qid_));
     		$form->addElement(new XoopsFormText(_MD_PLZXOO_LANG_SUBJECT,'subject',64,255,$editform->subject_));
     		$form->addElement(new XoopsFormTextArea(_MD_PLZXOO_LANG_BODY,'body',$editform->body_,6,50)); */
     //Ticket
     //		$form->addElement(new XoopsFormHidden($editform->ticket_->name_,$editform->ticket_->value_));
     //Category
     $categories =& $request->getAttribute('categories');
     if (count($categories)) {
         include_once XOOPS_ROOT_PATH . '/class/xoopstree.php';
         $db =& Database::getInstance();
         $tree =& new XoopsTree($db->prefix('plzxoo_category'), 'cid', 'pid');
         ob_start();
         $tree->makeMySelBox('name', 'weight', $editform->cid_ ? $editform->cid_ : intval(@$_GET['cid']), 0, 'cid');
         $select_cid = ob_get_contents();
         ob_end_clean();
     }
     /*		if(count($categories)) {
     
     			$select = new XoopsFormSelect(_MD_PLZXOO_LANG_CATEGORY,'cid',$editform->cid_);
     			foreach($categories as $category) {
     				$select->addOption($category->getVar('cid'),$category->getVar('name'));
     			}
     			$form->addElement($select);
     			unset($select);
     		}
     		else {
     			$form->addElement(new XoopsFormHidden('cid',$editform->cid_));
     		} */
     //Priority
     /* $select = new XoopsFormSelect(_MD_PLZXOO_LANG_PRIORITY,'priority',$editform->priority_);
     		for($i=1;$i<=5;$i++)
     			$select->addOption($i,$i);
     
     		$form->addElement($select); */
     $select_priority = "<select name='priority'>\n";
     for ($i = 1; $i <= 5; $i++) {
         $selected = $i == $question->getVar('priority') ? "selected='selected'" : "";
         $select_priority .= "<option value='{$i}' {$selected}>{$i}</option>\n";
     }
     $select_priority .= "</select>\n";
     //Status (only admin can edit status directly)
     if (is_object($GLOBALS['xoopsUser']) && $GLOBALS['xoopsUser']->isAdmin()) {
         $select_status = "<select name='status'>\n";
         foreach ($GLOBALS['plzxoo_status_mapping'] as $st => $label) {
             $selected = $st == $question->getVar('status') ? "selected='selected'" : "";
             $select_status .= "<option value='{$st}' {$selected}>" . htmlspecialchars($label) . "</option>\n";
         }
         $select_status .= "</select>\n";
     }
     //-------------------------
     // Tray & Buttons
     //-------------------------
     /* $tray = new XoopsFormElementTray(_MD_PLZXOO_LANG_CONTROL);
     
     		// preview (check isset($_POST['preview']))
     //		$tray->addElement( new XoopsFormButton ( '' , 'preview', 'DISPLAY STRING', 'submit' ) );
     
     		$tray->addElement( new XoopsFormButton ( '', 'submit', _MD_PLZXOO_LANG_SUBMIT, 'submit' ) );
     		$tray->addElement( new XoopsFormButton ( '' , 'reset', _MD_PLZXOO_LANG_RESET, 'reset' ) );
     
     		$backButton = new XoopsFormButton ( '' , "back", _MD_PLZXOO_LANG_GO_BACK, "button" );
     		$backButton->setExtra('onclick="javascript:history.go(-1);"');
     		$tray->addElement($backButton);
     
     		// add tray
     		$form->addElement($tray); */
     $renderer = new mojaLE_XoopsTplRenderer($controller, $request, $user);
     $renderer->setTemplate('plzxoo_question_edit.html');
     //		$renderer = new mojaLE_Renderer($controller,$request,$user);
     //		$renderer->setTemplate('edit_question.tpl');
     //		$renderer->setAttribute('xoopsform',$form);
     $renderer->setAttribute('editform', $editform);
     if (is_object(@$editform->ticket_)) {
         $renderer->setAttribute('hidden_ticket', $editform->ticket_->makeHTMLhidden());
     }
     $renderer->setAttribute('is_error', $editform->isError());
     $renderer->setAttribute('error_html', $editform->getHtmlErrors());
     $renderer->setAttribute('question', $question->getStructure('e'));
     $renderer->setAttribute('select_cid', @$select_cid);
     $renderer->setAttribute('select_priority', @$select_priority);
     $renderer->setAttribute('select_status', @$select_status);
     return $renderer;
 }
 function &execute(&$controller, &$request, &$user)
 {
     $question =& $request->getAttribute('question');
     $answers_obj =& $request->getAttribute('answers');
     // prepare for points decoration
     $points = explode('|', @$GLOBALS['xoopsModuleConfig']['points']);
     rsort($points, SORT_NUMERIC);
     $point_decorations = array();
     $rank = 0;
     foreach ($points as $point) {
         $point = intval($point);
         $rank++;
         if (defined('_MD_PLZXOO_FORMAT_POINT_RESULT_RANK' . $rank)) {
             $point_decorations[$point] = sprintf(constant('_MD_PLZXOO_FORMAT_POINT_RESULT_RANK' . $rank), $point);
         } else {
             $point_decorations[$point] = sprintf(_MD_PLZXOO_FORMAT_POINT_RESULT_GENERAL, $point);
         }
     }
     $answers = array();
     foreach ($answers_obj as $answer) {
         $ret = $answer->getStructure();
         $ret['enable_edit'] = $answer->isEnableEdit($user);
         $ret['enable_delete'] = $answer->isEnableDelete($user);
         $ret['point_decorated'] = empty($point_decorations[$ret['point']]) ? $ret['point'] : $point_decorations[$ret['point']];
         $answers[] =& $ret;
         unset($ret);
     }
     // 権限チェック
     $question_arr = $question->getStructure();
     $question_arr['enable_edit'] = $question->isEnableEdit($user);
     $question_arr['enable_delete'] = $question->isEnableDelete($user);
     // メッセージ権限のチェック
     $question_arr['enable_message'] = is_object($user) ? $user->isAdmin() || $user->uid() == $question->getVar('uid') : false;
     $renderer = new mojaLE_XoopsTplRenderer($controller, $request, $user);
     $renderer->setTemplate('plzxoo_detail.html');
     $renderer->setAttribute('question', $question_arr);
     $renderer->setAttribute('answers', $answers);
     $renderer->setAttribute('enable_post_answer', exPerm::isPerm('post_answer') && is_object($user) && $question->getVar('uid') != $user->uid() | exPerm::isPerm('post_answer_myself'));
     // GIJ
     $renderer->setAttribute('is_detail', true);
     $renderer->setAttribute('mod_config', @$GLOBALS['xoopsModuleConfig']);
     $cat_handler =& plzXoo::getHandler('category');
     $cat_obj =& $cat_handler->get($question->getVar('cid'));
     if (is_object($cat_obj)) {
         $renderer->setAttribute('category', $cat_obj->getStructure());
     } else {
         $renderer->setAttribute('category', array());
     }
     $renderer->setAttribute('xoops_pagetitle', $question_arr['subject']);
     return $renderer;
 }