Пример #1
0
 /**
  * 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
 /**
  * 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
 /**
  * Constructor
  *
  * @param	object	$form	the form calling the editor selection
  * @param	string	$name	editor name
  * @param	string	$value	Pre-selected text value
  * @param	bool	$noHtml	dohtml disabled
  */
 function __construct(&$form, $name = "editor", $value = null, $nohtml = false, $allowed_editors = array())
 {
     parent::__construct(_SELECT);
     $this->allowed_editors = $allowed_editors;
     $this->form =& $form;
     $this->name = $name;
     $this->value = $value;
     $this->nohtml = $nohtml;
 }
Пример #4
0
 /**
  * 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);
 }
Пример #5
0
 /**
  * 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);
 }
Пример #6
0
 /**
  * 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
 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);
 }