/** * @desc Muestra el formulario para creación de Foros * @param int $edit Determina si se esta editando un foro existente */ function bx_show_form($edit = 0) { global $xoopsModule, $xoopsConfig; if ($edit) { $id = rmc_server_var($_REQUEST, 'id', 0); if ($id <= 0) { redirectMsg('forums.php', __('Provided ID is not valid!', 'bxpress'), 1); die; } $forum = new bXForum($id); if ($forum->isNew()) { redirectMsg('forums.php', __('Specified forum does not exists!', 'bxpress'), 1); die; } } bXFunctions::menu_bar(); RMTemplate::get()->set_help('http://www.redmexico.com.mx/docs/bxpress-forums/foros/standalone/1/#crear-foro'); RMTemplate::get()->add_style('admin.css', 'bxpress'); xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> » " . ($edit ? __('Edit Forum', 'bxpress') : __('New Forum', 'bxpress'))); xoops_cp_header(); $bcHand = new bXCategoryHandler(); $bfHand = new bXForumHandler(); $form = new RMForm($edit ? __('Edit Forum', 'bxpress') : __('New Forum', 'bxpress'), 'frmForum', 'forums.php'); // Categorias $ele = new RMFormSelect(__('Category', 'bxpress'), 'cat', 0, $edit ? array($forum->category()) : null); $ele->addOption(0, __('Select category...', 'bxpress'), $edit ? 0 : 1); $ele->addOptionsArray($bcHand->getForSelect()); $form->addElement($ele, true, 'noselect:0'); // NOmbre $form->addElement(new RMFormText(__('Forum name', 'bxpress'), 'name', 50, 150, $edit ? $forum->name() : ''), true); // Descripcion $form->addElement(new RMFormEditor(__('Forum description', 'bxpress'), 'desc', '90%', '300px', $edit ? $forum->description() : '')); // Activo $form->addElement(new RMFormYesNo(__('Activate forum', 'bxpress'), 'active', $edit ? $forum->active() : 1)); // Firmas $form->addElement(new RMFormYesNo(__('Allow signatures in the posts', 'bxpress'), 'sig', $edit ? $forum->signature() : 1)); // Temas Populares $form->addElement(new RMFormText(__('Answers to match a topic as popular', 'bxpress'), 'hot_threshold', 10, 5, $edit ? $forum->hotThreshold() : 10), true, 'bigger:1'); // Orden en la lista $form->addElement(new RMFormText(__('Order in the list', 'bxpress'), 'order', 10, 5, $edit ? $forum->order() : 0), false, 'bigger:-1'); // Adjuntos $form->addElement(new RMFormYesNo(__('Allow attachments', 'bxpress'), 'attachments', $edit ? $forum->attachments() : 1)); $ele = new RMFormText(__('Maximum attachments file size', 'bxpress'), 'attach_maxkb', 10, 20, $edit ? $forum->maxSize() : 50); $ele->setDescription(__('Specify this value in Kilobytes', 'bxpress')); $form->addElement($ele, false, 'bigger:0'); $ele = new RMFormText(__('Allowed file types', 'bxpress'), 'attach_ext', 50, 0, $edit ? implode("|", $forum->extensions()) : 'zip|tar|jpg|gif|png|gz'); $ele->setDescription(__('Specified the extensions of allowed file types separating each one with "|" and without the dot.', 'bxpress')); $form->addElement($ele); // Grupos con permiso if ($edit) { $grupos = $forum->permissions(); } $form->addElement(new RMFormGroups(__('Can view the forum', 'bxpress'), 'perm_view', 1, 1, 5, $edit ? $grupos['view'] : array(0))); $form->addElement(new RMFormGroups(__('Can start new topics', 'bxpress'), 'perm_topic', 1, 1, 5, $edit ? $grupos['topic'] : array(1, 2))); $form->addElement(new RMFormGroups(__('Can answer', 'bxpress'), 'perm_reply', 1, 1, 5, $edit ? $grupos['reply'] : array(1, 2))); $form->addElement(new RMFormGroups(__('Can edit their posts', 'bxpress'), 'perm_edit', 1, 1, 5, $edit ? $grupos['edit'] : array(1, 2))); $form->addElement(new RMFormGroups(__('Can delete', 'bxpress'), 'perm_delete', 1, 1, 5, $edit ? $grupos['delete'] : array(1))); $form->addElement(new RMFormGroups(__('Can vote', 'bxpress'), 'perm_vote', 1, 1, 5, $edit ? $grupos['vote'] : array(1, 2))); $form->addElement(new RMFormGroups(__('Can attach', 'bxpress'), 'perm_attach', 1, 1, 5, $edit ? $grupos['attach'] : array(1, 2))); $form->addElement(new RMFormGroups(__('Can send without approval', 'bxpress'), 'perm_approve', 1, 1, 5, $edit ? $grupos['approve'] : array(1, 2))); $ele = new RMFormButtonGroup(); $ele->addButton('sbt', $edit ? __('Save Changes', 'bxpress') : __('Create Forum', 'bxpress'), 'submit', '', 1); $ele->addButton('cancel', __('Cancel', 'bxpress'), 'button', 'onclick="window.location=\'forums.php\';"'); $form->addElement($ele); $form->addElement(new RMFormHidden('action', $edit ? 'saveedit' : 'save')); if ($edit) { $form->addElement(new RMFormHidden('id', $forum->id())); } $form->display(); xoops_cp_footer(); }
/** * @desc Muestra el formulario para creación de Foros * @param int $edit Determina si se esta editando un foro existente */ function bx_show_form($edit = 0) { global $xoopsModule, $xoopsConfig; if (!RMfunctions::plugin_installed('advform')) { RMUris::redirect_with_message(sprintf(__('<a href="%s">AdvancedForms</a> must be installed before to create any forum. Please download and install it.', 'bxpress'), 'https://github.com/bitcero/advform'), 'forums.php', RMMSG_ERROR); } if ($edit) { $id = RMHttpRequest::request('id', 'integer', 0); if ($id <= 0) { RMUris::redirect_with_message(__('Provided ID is not valid!', 'bxpress'), 'forums.php', RMMSG_WARN); die; } $forum = new bXForum($id); if ($forum->isNew()) { RMUris::redirect_with_message(__('Specified forum does not exists!', 'bxpress'), 'forums.php', RMMSG_ERROR); die; } } RMTemplate::get()->add_style('admin.css', 'bxpress'); xoops_cp_location("<a href='./'>" . $xoopsModule->name() . "</a> » " . ($edit ? __('Edit Forum', 'bxpress') : __('New Forum', 'bxpress'))); xoops_cp_header(); $bcHand = new bXCategoryHandler(); $bfHand = new bXForumHandler(); $form = new RMForm($edit ? __('Edit Forum', 'bxpress') : __('New Forum', 'bxpress'), 'frmForum', 'forums.php'); // Categorias $ele = new RMFormSelect(__('Category', 'bxpress'), 'cat', 0, $edit ? array($forum->category()) : null); $ele->addOption(0, __('Select category...', 'bxpress'), $edit ? 0 : 1); $ele->addOptionsArray($bcHand->getForSelect()); $form->addElement($ele, true, 'noselect:0'); // NOmbre $form->addElement(new RMFormText(__('Forum name', 'bxpress'), 'name', 50, 150, $edit ? $forum->name() : ''), true); // Descripcion $form->addElement(new RMFormEditor(__('Forum description', 'bxpress'), 'desc', '90%', '300px', $edit ? $forum->getVar('desc', 'e') : '')); $form->addElement(new RMFormImageUrl(__('Forum image', 'bxpress'), 'image', $edit ? $forum->image : '')); // Activo $form->addElement(new RMFormYesNo(__('Activate forum', 'bxpress'), 'active', $edit ? $forum->active() : 1)); // Firmas $form->addElement(new RMFormYesNo(__('Allow signatures in the posts', 'bxpress'), 'sig', $edit ? $forum->signature() : 1)); // Temas Populares $form->addElement(new RMFormText(__('Answers to match a topic as popular', 'bxpress'), 'hot_threshold', 10, 5, $edit ? $forum->hotThreshold() : 10), true, 'bigger:1'); // Orden en la lista $form->addElement(new RMFormText(__('Order in the list', 'bxpress'), 'order', 10, 5, $edit ? $forum->order() : 0), false, 'bigger:-1'); // Adjuntos $form->addElement(new RMFormYesNo(__('Allow attachments', 'bxpress'), 'attachments', $edit ? $forum->attachments() : 1)); $ele = new RMFormText(__('Maximum attachments file size', 'bxpress'), 'attach_maxkb', 10, 20, $edit ? $forum->maxSize() : 50); $ele->setDescription(__('Specify this value in Kilobytes', 'bxpress')); $form->addElement($ele, false, 'bigger:0'); $ele = new RMFormText(__('Allowed file types', 'bxpress'), 'attach_ext', 50, 0, $edit ? implode("|", $forum->extensions()) : 'zip|tar|jpg|gif|png|gz'); $ele->setDescription(__('Specified the extensions of allowed file types separating each one with "|" and without the dot.', 'bxpress')); $form->addElement($ele); // Grupos con permiso if ($edit) { $grupos = $forum->permissions(); } $form->addElement(new RMFormGroups(__('Can view the forum', 'bxpress'), 'perm_view', 1, 1, 5, $edit ? $grupos['view'] : array(0))); $form->addElement(new RMFormGroups(__('Can start new topics', 'bxpress'), 'perm_topic', 1, 1, 5, $edit ? $grupos['topic'] : array(1, 2))); $form->addElement(new RMFormGroups(__('Can answer', 'bxpress'), 'perm_reply', 1, 1, 5, $edit ? $grupos['reply'] : array(1, 2))); $form->addElement(new RMFormGroups(__('Can edit their posts', 'bxpress'), 'perm_edit', 1, 1, 5, $edit ? $grupos['edit'] : array(1, 2))); $form->addElement(new RMFormGroups(__('Can delete', 'bxpress'), 'perm_delete', 1, 1, 5, $edit ? $grupos['delete'] : array(1))); $form->addElement(new RMFormGroups(__('Can vote', 'bxpress'), 'perm_vote', 1, 1, 5, $edit ? $grupos['vote'] : array(1, 2))); $form->addElement(new RMFormGroups(__('Can attach', 'bxpress'), 'perm_attach', 1, 1, 5, $edit ? $grupos['attach'] : array(1, 2))); $form->addElement(new RMFormGroups(__('Can send without approval', 'bxpress'), 'perm_approve', 1, 1, 5, $edit ? $grupos['approve'] : array(1, 2))); $ele = new RMFormButtonGroup(); $ele->addButton('sbt', $edit ? __('Save Changes', 'bxpress') : __('Create Forum', 'bxpress'), 'submit', '', 1); $ele->addButton('cancel', __('Cancel', 'bxpress'), 'button', 'onclick="window.location=\'forums.php\';"'); $form->addElement($ele); $form->addElement(new RMFormHidden('action', $edit ? 'saveedit' : 'save')); if ($edit) { $form->addElement(new RMFormHidden('id', $forum->id())); } $form->display(); xoops_cp_footer(); }
/** * Prepares the form field that will be shown on settings form * and returns the HTML code. * <br><br> * <p><strong>Usage:</strong></p> * <code>echo RMSettings::render_field( string 'field_id', array $field );</code> * * @param stdClass $field <p>An object with all field values, including caption, id, description, type, value, etc.</p> * @return string */ public static function render_field($field) { if (empty($field)) { return null; } $tc = TextCleaner::getInstance(); switch ($field->field) { case 'textarea': if ($field->type == 'array') { // this is exceptional.. only when value type is arrayneed a smarter way for this $ele = $field->value != '' ? new RMFormTextArea($field->caption, $field->name, 4, 45, $tc->specialchars(implode('|', $field->value))) : new RMFormTextArea($field->title, $field->name, 4, 45); } else { $ele = new RMFormTextArea($field->caption, $field->name, 4, 50, $tc->specialchars($field->value)); } break; case 'select': $ele = new RMFormSelect($field->caption, $field->name, 0, array($field->value)); foreach ($field->options as $caption => $value) { $ele->addOption($value, defined($caption) ? constant($caption) : $caption); } break; case 'select_multi': $ele = new RMFormSelect($field->caption, $field->name, 1, array($field->value)); $options = $field->options; foreach ($options as $value => $caption) { $value = defined($value) ? constant($value) : $value; $caption = defined($caption) ? constant($caption) : $caption; $ele->addOption($value, $caption); } break; case 'yesno': $ele = new RMFormYesNo($field->caption, $field->name, $field->value); break; case 'theme': case 'theme_multi': $ele = new RMFormTheme($field->caption, $field->name, $field->field == 'theme_multi' ? 1 : 0, 0, $field->value); break; case 'cu-theme': case 'cu-theme-multi': $ele = new RMFormTheme($field->caption, $field->name, $field->field == 'cu-theme-multi' ? 1 : 0, 0, $field->value, 1, 'GUI'); break; case 'tplset': $ele = new RMFormSelect($field->caption, $field->name, 0, array($field->value)); $tplset_handler =& xoops_gethandler('tplset'); $tplsetlist = $tplset_handler->getList(); asort($tplsetlist); foreach ($tplsetlist as $key => $name) { $ele->addOption($key, $name); } break; case 'cpanel': $ele = new RMFormSelect($field->caption, $field->name, 0, array($field->value)); xoops_load("cpanel", "system"); $list = XoopsSystemCpanel::getGuis(); $ele->addOptionArray($list); break; case 'timezone': $ele = new RMFormTimeZoneField($field->caption, $field->name, 0, 0, $field->value); break; case 'language': case 'language_multi': $langs = XoopsLists::getLangList(); $ele = new RMFormSelect($field->caption, $field->name, $field->field == 'language_multi' ? 1 : 0, $field->value); foreach ($langs as $caption => $value) { $ele->addOption($value, $caption); } break; case 'cu-language': case 'cu-language-multi': $ele = new RMFormLanguageField($field->caption, $field->name, $field->field == 'cu-language-multi' ? 1 : 0, 0, $field->value); break; case 'startpage': $ele = new RMFormSelect($field->caption, $field->name, 0, array($field->value)); $module_handler =& xoops_gethandler('module'); $criteria = new CriteriaCompo(new Criteria('hasmain', 1)); $criteria->add(new Criteria('isactive', 1)); $moduleslist = $module_handler->getList($criteria, true); $moduleslist['--'] = _MD_AM_NONE; $ele->addOptionsArray($moduleslist); break; case 'group': case 'group_multi': $ele = new RMFormGroups($field->caption, $field->name, $field->field == 'group_multi' ? 1 : 0, 0, 1, $field->value); break; case 'user': case 'user_multi': $ele = new RMFormUser($field->caption, $field->name, $field->field == 'user_multi' ? 1 : 0, $field->value); break; case 'module_cache': $ele = new RMFormCacheModuleField($field->caption, $field->name, $field->value); break; case 'site_cache': $ele = new RMFormSelect($field->caption, $field->name, 0, $field->value); $ele->addOptionArray(array('0' => __('No cache', 'rmcommon'), '30' => sprintf(__('%u seconds', 'rmcommon'), 30), '60' => __('1 minute', 'rmcommon'), '300' => sprintf(__('%u minutes', 'rmcommon'), 5), '1800' => sprintf(__('%u minutes', 'rmcommon'), 30), '3600' => __('One hour', 'rmcommon'), '18000' => sprintf(__('%u hours', 'rmcommon'), 5), '86400' => __('One day', 'rmcommon'), '259200' => sprintf(__('%u days', 'rmcommon'), 3), '604800' => __('One week', 'rmcommon'))); break; case 'password': $ele = new RMFormText($field->caption, $field->name, 50, 255, $field->value, true); break; case 'hidden': $ele = new RMFormHidden($field->name, $field->value); break; case 'modules-rewrite': $ele = new RMFormRewrite($field->caption, $field->name, $field->value); break; case 'textbox': default: $ele = new RMFormText($field->caption, $field->name, 50, 255, $tc->specialchars($field->value)); break; } /** * Allow to plugins and other modules create new form * elements types in settings form */ $ele = RMEvents::get()->trigger('rmcommon.load.form.field', $ele, $field); $ele->set('id', $field->id); $ele->add('class', 'form-control'); return $ele->render(); }