function configure_rm_plugin() { $name = rmc_server_var($_GET, 'plugin', ''); if ($name == '') { redirectMsg('plugins.php', __('You must specify a existing plugin', 'rmcommon'), 1); die; } $plugin = new RMPlugin($name); if ($plugin->isNew()) { redirectMsg('plugins.php', __('Specified plugin is not installed yet!', 'rmcommon'), 1); die; } if (!$plugin->getVar('status')) { redirectMsg('plugins.php', __('Specified plugin is not active!', 'rmcommon'), 1); die; } $rmc_config = RMFunctions::configs(); $settings = RMFunctions::get()->plugin_settings($name, true); $form = new RMForm(sprintf(__('%s configuration', 'rmcommon'), $plugin->getVar('name')), 'frmconfig', 'plugins.php'); $form->addElement(new RMFormHidden('plugin', $plugin->getVar('dir'))); $form->addElement(new RMFormHidden('action', 'savesettings')); foreach ($plugin->options() as $config => $option) { if (isset($settings[$config])) { $option['value'] = $settings[$config]; } if (isset($option['separator']) && !empty($option['separator'])) { $form->addElement(new RMFormSubTitle($option['separator']['title'], 1, '', $option['separator']['desc'])); continue; } switch ($option['fieldtype']) { case 'checkbox_groups': case 'group_multi': $ele = new RMFormGroups($option['caption'], 'conf_' . $config, 1, 1, 3, $option['value']); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'radio_groups': $ele = new RMFormGroups($option['caption'], 'conf_' . $config, 0, 1, 3, $option['value']); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'group': case 'select_groups': $ele = new RMFormGroups($option['caption'], 'conf_' . $config, 0, 0, 3, $option['value']); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'select_groups_multi': $ele = new RMFormGroups($option['caption'], 'conf_' . $config, 1, 0, 3, $option['value']); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'editor': if ($rmc_config['editor_type'] == 'tiny') { $tiny = TinyEditor::getInstance(); $tiny->add_config('elements', 'conf_' . $config); } $ele = new RMFormEditor($option['caption'], 'conf_' . $config, is_numeric($option['size']) ? '90%' : $option['size'], '300px', $option['value'], '', 1, array('op')); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'theme': case 'select_theme': $ele = new RMFormTheme($option['caption'], 'conf_' . $config, 0, 0, $option['value'], 3); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'theme_multi': case 'select_theme_multi': $ele = new RMFormTheme($option['caption'], 'conf_' . $config, 0, 1, $option['value'], 3); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'checkbox_theme': $ele = new RMFormTheme($option['caption'], 'conf_' . $config, 1, 1, $option['value'], 4); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'select_theme_admin': $ele = new RMFormTheme($option['caption'], 'conf_' . $config, 0, 0, $option['value'], 3, 'GUI'); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'yesno': $ele = new RMFormYesNo($option['caption'], 'conf_' . $config, $option['value']); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'email': $ele = new RMFormText($option['caption'], 'conf_' . $config, $option['size'] > 0 ? $option['size'] : 50, null, $option['value']); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele, false, 'email'); break; case 'select': $ele = new RMFormSelect($option['caption'], 'conf_' . $config); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } foreach ($option['options'] as $op => $opvalue) { $ele->addOption($opvalue, $op, $opvalue == $option['value'] ? 1 : 0); } $form->addElement($ele); break; case 'select_multi': $ele = new RMFormSelect($option['caption'], 'conf_' . $config . '[]', 1, $option['value']); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } foreach ($option['options'] as $op => $opvalue) { $ele->addOption($opvalue, $op); } $form->addElement($ele); break; case 'language': case 'select_language': $ele = new RMFormLanguageField($option['caption'], 'conf_' . $config, 0, 0, $option['value'], 3); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'select_language_multi': $ele = new RMFormLanguageField($option['caption'], 'conf_' . $config, 1, 0, $option['value'], 3); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'checkbox_language': $ele = new RMFormLanguageField($option['caption'], 'conf_' . $config, 1, 1, $option['value'], 3); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'startpage': case 'select_modules': $ele = new RMFormModules($option['caption'], 'conf_' . $config, 0, 0, $option['value'], 3); $ele->setInserted(array('--' => __('None', 'rmcommon'))); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'select_modules_multi': $ele = new RMFormModules($option['caption'], 'conf_' . $config, 1, 0, $option['value'], 3); $ele->setInserted(array('--' => __('None', 'rmcommon'))); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'checkbox_modules': $ele = new RMFormModules($option['caption'], 'conf_' . $config, 1, 1, $option['value'], 3); $ele->setInserted(array('--' => __('None', 'rmcommon'))); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'radio_modules': $ele = new RMFormModules($option['caption'], 'conf_' . $config, 0, 1, $option['value'], 3); $ele->setInserted(array('--' => __('None', 'rmcommon'))); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'timezone': case 'select_timezone': $ele = new RMFormTimeZoneField($option['caption'], 'conf_' . $config, 0, 0, $option['value'], 3); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'select_timezone_multi': $ele = new RMFormTimeZoneField($option['caption'], 'conf_' . $config, 0, 1, $option['value'], 3); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'checkbox_timezone': $ele = new RMFormTimeZoneField($option['caption'], 'conf_' . $config, 1, 1, $option['value'], 3); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'radio_timezone': $ele = new RMFormTimeZoneField($option['caption'], 'conf_' . $config, 1, 0, $option['value'], 3); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'tplset': $ele = new RMFormSelect($option['caption'], 'conf_' . $config); $tplset_handler =& exm_gethandler('tplset'); $tplsetlist =& $tplset_handler->getList(); asort($tplsetlist); foreach ($tplsetlist as $key => $name) { $ele->addOption($key, $name, $option['value'] == $key ? 1 : 0); } $form->addElement($ele); break; case 'textarea': $ele = new RMFormTextArea($option['caption'], 'conf_' . $config, 5, $option['size'] > 0 ? $option['size'] : 50, $option['valuetype'] == 'array' ? $cleaner->htmlspecialchars(implode('|', $option['value'])) : $cleaner->htmlspecialchars($option['value'])); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'module_cache': $ele = new RMFormCacheModuleField($option['caption'], 'conf_' . $config, $option['value']); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'user_select': $ele = new RMFormUser($option['caption'], 'conf_' . $config, $form->getName(), $option['value'], 'select', $limit = '300', ''); $ele->setOnPage("document.forms[0].op.value='config';"); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele); break; case 'radio': $ele = new RMFormRadio($option['caption'], 'conf_' . $config, 1); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } foreach ($option['options'] as $op => $opvalue) { $ele->addOption($op, $opvalue, $opvalue == $option['value'] ? 1 : 0); } $form->addElement($ele); break; case 'font_select': $ele = new RMFormSelect($option['caption'], 'conf_' . $config, 0, array($option['value'])); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $fonts = EXMLists::getFileListAsArray(ABSPATH . '/rmcommon/fonts/'); foreach ($fonts as $font) { $info = pathinfo(ABSPATH . '/rmcommon/fonts/' . $font); if (strtoupper($info['extension']) != 'TTF') { continue; } $ele->addOption($font, $font); } $form->addElement($ele); break; case 'select_editor': $ele = new RMFormSelect($option['caption'], 'conf_' . $config, 0, array($option['value'])); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $ele->addOption('tiny', __('Visual Editor', 'rmcommon')); $ele->addOption('code', __('EXMCode Editor', 'rmcommon')); $ele->addOption('textarea', __('Simple Editor', 'rmcommon')); $ele->addOption('html', __('HTML Editor', 'rmcommon')); $form->addElement($ele); break; case 'textbox': case 'password': default: $ele = new RMFormText($option['caption'], 'conf_' . $config, $option['size'] > 0 ? $option['size'] : 50, null, $option['valuetype'] == 'array' ? implode('|', $option['value']) : $option['value'], $option['fieldtype'] == 'password' ? 1 : 0); if ($option['desc'] != '') { $ele->setDescription($option['desc']); } $form->addElement($ele, false, $option['valuetype'] == 'int' || $option['valuetype'] == 'float' ? 'num' : ''); break; } } $ele = new RMFormButtonGroup(); $ele->addButton('', __('Save Settings', 'rmcommon'), 'submit'); $ele->addButton('', __('Cancel', 'rmcommon'), 'button', 'onclick="history.go(-1);"'); $form->addElement($ele); // Other components can add items to database $form = RMEvents::get()->run_event("rmcommon.settings.form", $form, $plugin); RMFunctions::create_toolbar(); xoops_cp_header(); $form->display(); xoops_cp_footer(); }
/** * Muestra el formulario para la creación de una nueva página enlazada */ function newLinkForm($edit = 0) { global $db, $mc, $xoopsModule, $myts; foreach ($_REQUEST as $k => $v) { ${$k} = $v; } $pag = isset($page) ? $page : 1; if ($edit) { $id = isset($_REQUEST['id']) ? $_REQUEST['id'] : 0; if ($id <= 0) { redirectMsg("pages.php&cat={$cat}&page={$pag}", __('You must provide a page ID to edit', 'qpages'), 1); die; } $page = new QPPage($id); } xoops_cp_location('<a href="./">' . $xoopsModule->name() . '</a> » ' . ($edit ? __('Edit linked page', 'qpages') : __('New linked page', 'qpages'))); RMTemplate::get()->add_script('../include/js/forms_pages.js'); xoops_cp_header(); $form = new RMForm($edit ? __('Edit Linked Page', 'qpages') : __('New Linked Page', 'qpages'), 'frmNew', 'pages.php'); $form->addElement(new RMFormText(__('Page title', 'qpages'), 'titulo', 50, 255, $edit ? $page->getTitle() : ''), true); if ($edit) { $ele = new RMFormText(__('Friendly title', 'qpages'), 'titulo_amigo', 50, 255, $page->getFriendTitle()); $ele->setDescription(__('This title will be used in friendly url.', 'qpages')); $form->addElement($ele); $form->addElement(new RMFormHidden('id', $page->getID())); } $ele = new RMFormSelect(__('Category', 'qpages'), 'catego', 0); $categos = array(); qpArrayCategos($categos); $ele->addOption('0', _SELECT, $edit ? 0 : 1); foreach ($categos as $k) { $ele->addOption($k['id_cat'], str_repeat("-", $k['saltos']) . " " . $k['nombre'], $edit ? $k['id_cat'] == $page->getCategory() ? 1 : 0 : 0); } $form->addElement($ele, true, "Select:0"); $form->addElement(new RMFormTextArea(__('Introduction', 'qpages'), 'desc', 5, 60, $edit ? $page->getDescription() : '')); // URL $form->addElement(new RMFormText(__('Target URL', 'qpages'), 'url', 50, 255, $edit ? $page->url() : ''), true); // Grupos $ele = new RMFormGroups(__('Allowed groups', 'qpages'), 'grupos', 1, 1, 3, $edit ? $page->getGroups() : array(0)); $ele->setDescription(__('Only selected groups can access to this document.', 'qpages')); $form->addElement($ele); $ele = new RMFormRadio(__('Status', 'qpages'), 'acceso', 1); $ele->addOption(__('Public', 'qpages'), '1', $edit ? $page->getAccess() ? 1 : 0 : 0); $ele->addOption(__('Draft', 'qpages'), '0', $edit ? $page->getAccess() ? 0 : 1 : 1); $form->addElement($ele); $page_metas = $edit ? $page->get_meta() : array(); $available_metas = qp_get_metas(); include 'metas.php'; $form->addElement(new RMFormLabel('', $meta_data)); $ele = new RMFormButtonGroup(); $ele->addButton('save', $edit ? __('Update Page', 'qpages') : __('Save Page', 'qpages'), 'submit'); $ele->addButton('cancel', __('Cancel', 'qpages'), 'button', 'onclick="history.go(-1);"'); $form->addElement($ele); $form->addElement(new RMFormHidden('op', $edit ? 'saveedit' : 'save')); $form->addElement(new RMFormHidden('type', 1)); $form->addElement(new RMFormHidden('cat', $cat)); $form->addElement(new RMFormHidden('page', $pag)); $form->display(); xoops_cp_footer(); }
/** * @desc Formulario de Elementos **/ function formItems($edit = 0) { global $xoopsModule, $xoopsConfig, $xoopsModuleConfig, $rmc_config, $xoopsSecurity, $functions; define('RMCSUBLOCATION', 'newitem'); // Get layout data $id = intval(rmc_server_var($_REQUEST, 'id', 0)); $page = intval(rmc_server_var($_REQUEST, 'page', 0)); $search = rmc_server_var($_REQUEST, 'search', ''); $sort = rmc_server_var($_REQUEST, 'sort', 'id_soft'); $mode = intval(rmc_server_var($_REQUEST, 'mode', 0)); $catid = intval(rmc_server_var($_REQUEST, 'car', 0)); $type = rmc_server_var($_REQUEST, 'type', ''); $ev = RMEvents::get(); $params = '?page=' . $page . '&search=' . $search . '&sort=' . $sort . '&mode=' . $mode . '&cat=' . $catid . '&type=' . $type; if ($edit) { //Verificamos que el software sea válido if ($id <= 0) { redirectMsg('items.php' . $params, __('Download item has not been specified!', 'dtransport'), 1); die; } //Verificamos que el software exista if ($type == 'edit') { $sw = new DTSoftwareEdited($id); $location = __('Verifying edited item!', 'dtransport'); } else { $sw = new DTSoftware($id); $location = __('Editing download item', 'dtransport'); } if ($sw->isNew()) { redirectMsg('./items.php' . $params, __('Specified download item does not exists!', 'dtransport'), 1); die; } } else { $sw = new DTSoftware(); $location = __('New Download Item', 'dtransport'); } $form = new RMForm('', '', ''); $ed = new RMFormEditor('', 'desc', '99%', '300px', $edit ? $sw->getVar('desc', $rmc_config['editor_type'] != 'tiny' ? 'e' : 's') : '', $rmc_config['editor_type']); $ed->addClass('required'); $db = XoopsDatabaseFactory::getDatabaseConnection(); //Lista de categorías $categos = array(); $swcats = $sw->categories(); DTFunctions::getCategos($categos, 0, 0, array(), false); foreach ($categos as $row) { $cat = new DTCategory(); $cat->assignVars($row); $categories[] = array('id' => $cat->id(), 'name' => $cat->name(), 'parent' => $cat->parent(), 'active' => $cat->active(), 'description' => $cat->desc(), 'indent' => $row['jumps'], 'selected' => $edit ? in_array($cat->id(), $swcats) : ''); } unset($categos); // Licencias $sql = "SELECT * FROM " . $db->prefix('dtrans_licences'); $result = $db->queryF($sql); $lics = array(); $lics[] = array('id' => 0, 'name' => __('Other license', 'dtransport'), 'selected' => !$edit || in_array(0, $sw->licences()) ? 1 : 0); while ($row = $db->fetchArray($result)) { $lic = new DTLicense(); $lic->assignVars($row); $lics[] = array('id' => $lic->id(), 'name' => $lic->name(), 'selected' => $edit ? in_array($lic->id(), $sw->licences()) : ''); } unset($lic); // Plataformas $sql = "SELECT * FROM " . $db->prefix('dtrans_platforms'); $result = $db->queryF($sql); $oss = array(); $oss[] = array('id' => 0, 'name' => __('Other platform', 'dtransport'), 'selected' => !$edit || in_array(0, $sw->platforms()) ? 1 : 0); while ($row = $db->fetchArray($result)) { $os = new DTPlatform(); $os->assignVars($row); $oss[] = array('id' => $os->id(), 'name' => $os->name(), 'selected' => $edit ? in_array($os->id(), $sw->platforms()) : ''); } unset($os); // Allowed groups $field = new RMFormGroups('', 'groups', 1, 1, 1, $edit ? $sw->getVar('groups') : array(1, 2)); $groups = $field->render(); // Tags $ftags = $sw->tags(true); $tags = array(); foreach ($ftags as $tag) { $tags[] = $tag->getVar('tag'); } unset($ftags); RMTemplate::get()->add_style('admin.css', 'dtransport'); RMTemplate::get()->add_style('items.css', 'dtransport'); RMTemplate::get()->add_local_script('itemsform.js', 'dtransport'); RMTemplate::get()->add_local_script('jquery.validate.min.js', 'rmcommon', 'include'); include DT_PATH . '/include/js_strings.php'; DTFunctions::toolbar(); xoops_cp_location($location); xoops_cp_header(); include RMTemplate::get()->get_template('admin/dtrans_formitems.php', 'module', 'dtransport'); xoops_cp_footer(); }