コード例 #1
0
ファイル: User.php プロジェクト: trabisdementia/xuups
 /**
  * Constructor
  *
  * @param    string    $caption
  * @param    string    $name
  * @param    mixed    $value            Pre-selected value (or array of them).
  *                                    For an item with massive members, such as "Registered Users", "$value" should be used to store selected temporary users only instead of all members of that item
  * @param    bool    $include_anon    Include user "anonymous"?
  * @param    int        $size            Number or rows. "1" makes a drop-down-list.
  * @param    bool    $multiple       Allow multiple selections?
  */
 function __construct($caption, $name, $include_anon = false, $value = null, $size = 1, $multiple = false)
 {
     $limit = 200;
     $select_element = new Xmf_Form_Element_Select("", $name, $value, $size, $multiple);
     if ($include_anon) {
         $select_element->addOption(0, $GLOBALS["xoopsConfig"]['anonymous']);
     }
     $member_handler =& xoops_gethandler('member');
     $user_count = $member_handler->getUserCount();
     $value = is_array($value) ? $value : (empty($value) ? array() : array($value));
     if ($user_count > $limit && count($value) > 0) {
         $criteria = new CriteriaCompo(new Criteria("uid", "(" . implode(",", $value) . ")", "IN"));
     } else {
         $criteria = new CriteriaCompo();
         $criteria->setLimit($limit);
     }
     $criteria->setSort('uname');
     $criteria->setOrder('ASC');
     $users = $member_handler->getUserList($criteria);
     $select_element->addOptionArray($users);
     if ($user_count <= $limit) {
         parent::__construct($caption, "", $name);
         $this->addElement($select_element);
         return;
     }
     xoops_loadLanguage("findusers");
     $js_addusers = "<script type=\"text/javascript\">\r\n            function addusers(opts){\r\n                var num = opts.substring(0, opts.indexOf(\":\"));\r\n                opts = opts.substring(opts.indexOf(\":\")+1, opts.length);\r\n                var sel = xoopsGetElementById(\"" . $name . ($multiple ? "[]" : "") . "\");\r\n                var arr = new Array(num);\r\n                for (var n=0; n < num; n++) {\r\n                    var nm = opts.substring(0, opts.indexOf(\":\"));\r\n                    opts = opts.substring(opts.indexOf(\":\")+1, opts.length);\r\n                    var val = opts.substring(0, opts.indexOf(\":\"));\r\n                    opts = opts.substring(opts.indexOf(\":\")+1, opts.length);\r\n                    var txt = opts.substring(0, nm - val.length);\r\n                    opts = opts.substring(nm - val.length, opts.length);\r\n                    var added = false;\r\n                    for (var k = 0; k < sel.options.length; k++) {\r\n                        if(sel.options[k].value == val){\r\n                            added = true;\r\n                            break;\r\n                        }\r\n                    }\r\n                    if (added == false) {\r\n                        sel.options[k] = new Option(txt, val);\r\n                        sel.options[k].selected = true;\r\n                    }\r\n                }\r\n                return true;\r\n            }\r\n            </script>";
     $token = $GLOBALS['xoopsSecurity']->createToken();
     $action_tray = new Xmf_Form_Element_Tray("", " | ");
     $action_tray->addElement(new Xmf_Form_Element_Label('', "<a href='#' onclick='var sel = xoopsGetElementById(\"" . $name . ($multiple ? "[]" : "") . "\");for (var i = sel.options.length-1; i >= 0; i--) {if (!sel.options[i].selected) {sel.options[i] = null;}}; return false;'>" . _MA_USER_REMOVE . "</a>"));
     $action_tray->addElement(new Xmf_Form_Element_Label('', "<a href='#' onclick='openWithSelfMain(\"" . XOOPS_URL . "/include/findusers.php?target={$name}&amp;multiple={$multiple}&amp;token={$token}\", \"userselect\", 800, 600, null); return false;' >" . _MA_USER_MORE . "</a>" . $js_addusers));
     parent::__construct($caption, "<br /><br />", $name);
     $this->addElement($select_element);
     $this->addElement($action_tray);
 }
コード例 #2
0
ファイル: Richfile.php プロジェクト: trabisdementia/xuups
 /**
  * Get a config
  *
  * @param	string  $title   caption of the form element
  * @param	string  $key            key of the variable in the passed object
  * @param	object  $object         the passed object (target object) (@todo which object)
  */
 function __construct($title, $key, $object)
 {
     parent::__construct($title, '&nbsp;');
     if ($object->getVar('url') != '') {
         $caption = $object->getVar('caption') != '' ? $object->getVar('caption') : $object->getVar('url');
         $this->addElement(new Xmf_Form_Element_Label('', _FORM_XMF_CURRENT_FILE . "<a href='" . str_replace('{ICMS_URL}', ICMS_URL, $object->getVar('url')) . "' target='_blank' >" . $caption . "</a><br/><br/>"));
         //$this->addElement( new XoopsFormLabel( '', "<br/><a href = '".SMARTOBJECT_URL."admin/file.php?op=del&fileid=".$object->id()."'>"._FORM_XUUPS_DELETE_FILE."</a>"));
     }
     if ($object->isNew()) {
         $this->addElement(new Xmf_Object_Form_Element_Upload_File($object, $key));
         $this->addElement(new Xmf_Form_Element_Label('', '<br/><br/><small>' . _FORM_XMF_URL_FILE_DSC . '</small>'));
         $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_URL_FILE));
         $this->addElement(new Xmf_Object_Form_Element_Text($object, 'url_' . $key));
     }
     $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_CAPTION));
     $this->addElement(new Xmf_Object_Form_Element_Text($object, 'caption_' . $key));
     $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_DESC . '<br/>'));
     $this->addElement(new Xmf_Form_Element_Textarea('', 'desc_' . $key, $object->getVar('description')));
     if (!$object->isNew()) {
         $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_CHANGE_FILE));
         $this->addElement(new Xmf_Object_Form_Element_Upload_File($object, $key));
         $this->addElement(new Xmf_Form_Element_Label('', '<br/><br/><small>' . _FORM_XMF_URL_FILE_DSC . '</small>'));
         $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_URL_FILE));
         $this->addElement(new Xmf_Object_Form_Element_Text($object, 'url_' . $key));
     }
 }
コード例 #3
0
ファイル: Password.php プロジェクト: trabisdementia/xuups
 /**
  * Constructor
  * @param	object    $object   reference to targetobject (@link IcmsPersistableObject)
  * @param	string    $key      the form name
  */
 function __construct($object, $key)
 {
     $var = $object->vars[$key];
     $control = $object->controls[$key];
     parent::__construct($var['title'] . '<br />' . _US_TYPEPASSTWICE, ' ', $key . '_password_tray');
     $password_box1 = new Xmf_Form_Element_Password('', $key . '1', 10, 32);
     $this->addElement($password_box1);
     $password_box2 = new Xmf_Form_Element_Password('', $key . '2', 10, 32);
     $this->addElement($password_box2);
 }
コード例 #4
0
ファイル: Usersig.php プロジェクト: trabisdementia/xuups
 /**
  * Constructor
  * @param	object    $object   reference to targetobject (@link IcmsPersistableObject)
  * @param	string    $key      the form name
  */
 function __construct($object, $key)
 {
     $var = $object->vars[$key];
     $control = $object->controls[$key];
     parent::__construct($var['title'], '<br /><br />', $key . '_signature_tray');
     $signature_textarea = new Xmf_Form_Element_Textarea_Dhtml('', $key, $object->getVar($key, 'e'));
     $this->addElement($signature_textarea);
     $attach_checkbox = new Xmf_Form_Element_Checkbox('', 'attachsig', $object->getVar('attachsig', 'e'));
     $attach_checkbox->addOption(1, _US_SHOWSIG);
     $this->addElement($attach_checkbox);
 }
コード例 #5
0
ファイル: Editor.php プロジェクト: trabisdementia/xuups
    function render()
    {
        $editor_handler = Xmf_Form_Element_Editor_Handler::getInstance();
        $editor_handler->allowed_editors = $this->allowed_editors;
        $option_select = new Xmf_Form_Element_Select("", $this->name, $this->value);
        $extra = 'onchange="if(this.options[this.selectedIndex].value.length > 0 ){
			window.document.forms.' . $this->form->getName() . '.submit();
			}"';
        $option_select->setExtra($extra);
        $option_select->addOptionArray($editor_handler->getList($this->nohtml));
        $this->addElement($option_select);
        return parent::render();
    }
コード例 #6
0
ファイル: Urllink.php プロジェクト: trabisdementia/xuups
 /**
  * Constructor
  * @param   object    $title   the caption of the form
  * @param   string    $key            the key
  * @param   object    $object         reference to targetobject (@todo, which object will be passed here?)
  */
 function __construct($title, $key, $object)
 {
     parent::__construct($title, '&nbsp;');
     $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_URLLINK_URL));
     $this->addElement(new Xmf_Object_Form_Element_Text($object, 'url_' . $key));
     $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_CAPTION));
     $this->addElement(new Xmf_Object_Form_Element_Text($object, 'caption_' . $key));
     $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_DESC . '<br/>'));
     $this->addElement(new Xmf_Form_Element_Textarea('', 'desc_' . $key, $object->getVar('description')));
     $this->addElement(new Xmf_Form_Element_Label('', '<br/>' . _FORM_XMF_URLLINK_TARGET));
     $targ_val = $object->getVar('target');
     $targetRadio = new Xmf_Form_Element_Radio('', 'target_' . $key, $targ_val != '' ? $targ_val : '_blank');
     $control = $object->getControl('target');
     $targetRadio->addOptionArray($control['options']);
     $this->addElement($targetRadio);
 }
コード例 #7
0
ファイル: Datetime.php プロジェクト: trabisdementia/xuups
 function __construct($caption, $name, $size = 15, $value = 0)
 {
     parent::__construct($caption, '&nbsp;');
     $value = intval($value);
     $value = $value > 0 ? $value : time();
     $datetime = getDate($value);
     $this->addElement(new Xmf_Form_Element_Text_DateSelect('', $name . '[date]', $size, $value));
     $timearray = array();
     for ($i = 0; $i < 24; $i++) {
         for ($j = 0; $j < 60; $j = $j + 10) {
             $key = $i * 3600 + $j * 60;
             $timearray[$key] = $j != 0 ? $i . ':' . $j : $i . ':0' . $j;
         }
     }
     ksort($timearray);
     $timeselect = new Xmf_Form_Element_Select('', $name . '[time]', $datetime['hours'] * 3600 + 600 * ceil($datetime['minutes'] / 10));
     $timeselect->addOptionArray($timearray);
     $this->addElement($timeselect);
 }
コード例 #8
0
ファイル: Form.php プロジェクト: trabisdementia/xuups
 /**
  * Add an element to the form
  *
  * @param	string  $form_name              name of the form
  * @param	string  $title           caption of the form
  * @param	string  $submit_button_caption  caption of the button
  */
 function createButtons($form_name, $title, $submit_button_caption = false)
 {
     $button_tray = new Xmf_Form_Element_Tray('', '');
     $button_tray->addElement(new Xmf_Form_Element_Hidden('op', $form_name));
     if (!$submit_button_caption) {
         if ($this->targetObject->isNew()) {
             $butt_create = new Xmf_Form_Element_Button('', 'create_button', _FORM_XMF_CREATE, 'submit');
         } else {
             $butt_create = new Xmf_Form_Element_Button('', 'modify_button', _FORM_XMF_MODIFY, 'submit');
         }
     } else {
         $butt_create = new Xmf_Form_Element_Button('', 'modify_button', $submit_button_caption, 'submit');
     }
     $butt_create->setExtra('onclick="this.form.elements.op.value=\'' . $form_name . '\'"');
     $button_tray->addElement($butt_create);
     //creating custom buttons
     if ($this->_custom_button) {
         foreach ($this->_custom_button as $custom_button) {
             $butt_custom = new Xmf_Form_Element_Button('', $custom_button['name'], $custom_button['caption'], 'submit');
             if ($custom_button['onclick']) {
                 $butt_custom->setExtra('onclick="' . $custom_button['onclick'] . '"');
             }
             $button_tray->addElement($butt_custom);
             unset($butt_custom);
         }
     }
     // creating the "cancel" button
     $butt_cancel = new Xmf_Form_Element_Button('', 'cancel_button', _FORM_XMF_CANCEL, 'button');
     if ($this->_cancel_js_action) {
         $butt_cancel->setExtra('onclick="' . $this->_cancel_js_action . '"');
     } else {
         $butt_cancel->setExtra('onclick="history.go(-1)"');
     }
     $button_tray->addElement($butt_cancel);
     $this->addElement($button_tray);
 }
コード例 #9
0
ファイル: Groupperm.php プロジェクト: trabisdementia/xuups
 /**
  * Renders the form
  *
  * @return string
  * @access public
  */
 function render()
 {
     // load all child ids for javascript codes
     foreach (array_keys($this->_itemTree) as $item_id) {
         $this->_itemTree[$item_id]['allchild'] = array();
         $this->_loadAllChildItemIds($item_id, $this->_itemTree[$item_id]['allchild']);
     }
     $gperm_handler =& xoops_gethandler('groupperm');
     $member_handler =& xoops_gethandler('member');
     $glist = $member_handler->getGroupList();
     foreach (array_keys($glist) as $i) {
         if ($i == XOOPS_GROUP_ANONYMOUS && !$this->_showAnonymous) {
             continue;
         }
         // get selected item id(s) for each group
         $selected = $gperm_handler->getItemIds($this->_permName, $i, $this->_modid);
         $ele = new Xmf_Form_Element_Checkbox_Group($glist[$i], 'perms[' . $this->_permName . ']', $i, $selected);
         $ele->setOptionTree($this->_itemTree);
         $this->addElement($ele);
         unset($ele);
     }
     $tray = new Xmf_Form_Element_Tray('');
     $tray->addElement(new Xmf_Form_Element_Button('', 'submit', _SUBMIT, 'submit'));
     $tray->addElement(new Xmf_Form_Element_Button('', 'reset', _CANCEL, 'reset'));
     $this->addElement($tray);
     $ret = '<h4>' . $this->getTitle() . '</h4>';
     if ($this->_permDesc) {
         $ret .= $this->_permDesc . '<br /><br />';
     }
     $ret .= "<form name='" . $this->getName() . "' id='" . $this->getName() . "' action='" . $this->getAction() . "' method='" . $this->getMethod() . "'" . $this->getExtra() . ">\n<table width='100%' class='outer' cellspacing='1' valign='top'>\n";
     $elements = $this->getElements();
     $hidden = '';
     foreach (array_keys($elements) as $i) {
         if (!is_object($elements[$i])) {
             $ret .= $elements[$i];
         } elseif (!$elements[$i]->isHidden()) {
             $ret .= "<tr valign='top' align='left'><td class='head'>" . $elements[$i]->getCaption();
             if ($elements[$i]->getDescription() != '') {
                 $ret .= '<br /><br /><span style="font-weight: normal;">' . $elements[$i]->getDescription() . '</span>';
             }
             $ret .= "</td>\n<td class='even'>\n" . $elements[$i]->render() . "\n</td></tr>\n";
         } else {
             $hidden .= $elements[$i]->render();
         }
     }
     $ret .= "</table>{$hidden}</form>";
     $ret .= $this->renderValidationJS(true);
     return $ret;
 }