PHP Classes

File: htdocs/install/include/createconfigform.php

Recommend this page to a friend!
  Classes of Michael Beck   Xoops 2.5   htdocs/install/include/createconfigform.php   Download  
File: htdocs/install/include/createconfigform.php
Role: Example script
Content type: text/plain
Description: Example script
Class: Xoops 2.5
Modular content management publication system
Author: By
Last change: non-canonical order

In docblock var tags, use "type variableName" more consistently
Date: 5 years ago
Size: 15,144 bytes
 

Contents

Class file image Download
<?php /** * See the enclosed file license.txt for licensing information. * If you did not receive this file, get it at http://www.gnu.org/licenses/gpl-2.0.html * * @copyright (c) 2000-2016 XOOPS Project (www.xoops.org) * @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html) * @package installer * @since 2.3.0 * @author Haruki Setoyama <[email protected]> * @author Kazumi Ono <[email protected]> * @author Skalpa Keo <[email protected]> * @author Taiwen Jiang <[email protected]> * @author DuGris (aka L. JEN) <[email protected]> **/ if (!defined('XOOPS_INSTALL')) { die('XOOPS Custom Installation die'); } include_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php'; include_once XOOPS_ROOT_PATH . '/class/xoopslists.php'; define('PREF_1', _MD_AM_GENERAL); define('PREF_2', _MD_AM_USERSETTINGS); define('PREF_3', _MD_AM_METAFOOTER); define('PREF_4', _MD_AM_CENSOR); define('PREF_5', _MD_AM_SEARCH); define('PREF_6', _MD_AM_MAILER); if (defined('_MD_AM_AUTHENTICATION')) { define('PREF_7', _MD_AM_AUTHENTICATION); } /** * @param $config * * @return array */ function createConfigform($config) { xoops_load('XoopsFormRendererBootstrap3'); XoopsFormRenderer::getInstance()->set(new XoopsFormRendererBootstrap3()); /* @var XoopsConfigHandler $config_handler */ $config_handler = xoops_getHandler('config'); $GLOBALS['xoopsConfig'] = $xoopsConfig = $config_handler->getConfigsByCat(XOOPS_CONF); $ret = array(); $confcount = count($config); for ($i = 0; $i < $confcount; ++$i) { $conf_catid = $config[$i]->getVar('conf_catid'); if (!isset($ret[$conf_catid])) { $form_title = constant('PREF_' . $conf_catid); $ret[$conf_catid] = new XoopsThemeForm($form_title, 'configs', 'index.php', 'post'); } $title = constant($config[$i]->getVar('conf_title')); switch ($config[$i]->getVar('conf_formtype')) { case 'textarea': $myts = MyTextSanitizer::getInstance(); if ($config[$i]->getVar('conf_valuetype') === 'array') { // this is exceptional.. only when value type is arrayneed a smarter way for this $ele = ($config[$i]->getVar('conf_value') != '') ? new XoopsFormTextArea($title, $config[$i]->getVar('conf_name'), $myts->htmlspecialchars(implode('|', $config[$i]->getConfValueForOutput())), 5, 50) : new XoopsFormTextArea($title, $config[$i]->getVar('conf_name'), '', 5, 50); } else { $ele = new XoopsFormTextArea($title, $config[$i]->getVar('conf_name'), $myts->htmlspecialchars($config[$i]->getConfValueForOutput()), 5, 100); } break; case 'select': $ele = new XoopsFormSelect($title, $config[$i]->getVar('conf_name'), $config[$i]->getConfValueForOutput()); $options = $config_handler->getConfigOptions(new Criteria('conf_id', $config[$i]->getVar('conf_id'))); $opcount = count($options); for ($j = 0; $j < $opcount; ++$j) { $optval = defined($options[$j]->getVar('confop_value')) ? constant($options[$j]->getVar('confop_value')) : $options[$j]->getVar('confop_value'); $optkey = defined($options[$j]->getVar('confop_name')) ? constant($options[$j]->getVar('confop_name')) : $options[$j]->getVar('confop_name'); $ele->addOption($optval, $optkey); } break; case 'select_multi': $ele = new XoopsFormSelect($title, $config[$i]->getVar('conf_name'), $config[$i]->getConfValueForOutput(), 5, true); $options = $config_handler->getConfigOptions(new Criteria('conf_id', $config[$i]->getVar('conf_id'))); $opcount = count($options); for ($j = 0; $j < $opcount; ++$j) { $optval = defined($options[$j]->getVar('confop_value')) ? constant($options[$j]->getVar('confop_value')) : $options[$j]->getVar('confop_value'); $optkey = defined($options[$j]->getVar('confop_name')) ? constant($options[$j]->getVar('confop_name')) : $options[$j]->getVar('confop_name'); $ele->addOption($optval, $optkey); } break; case 'yesno': $ele = new XoopsFormRadioYN($title, $config[$i]->getVar('conf_name'), $config[$i]->getConfValueForOutput(), _YES, _NO); break; case 'theme': case 'theme_multi': $ele = ($config[$i]->getVar('conf_formtype') !== 'theme_multi') ? new XoopsFormSelect($title, $config[$i]->getVar('conf_name'), $config[$i]->getConfValueForOutput()) : new XoopsFormSelect($title, $config[$i]->getVar('conf_name'), $config[$i]->getConfValueForOutput(), 5, true); require_once XOOPS_ROOT_PATH . '/class/xoopslists.php'; $dirlist = XoopsLists::getThemesList(); if (!empty($dirlist)) { asort($dirlist); $ele->addOptionArray($dirlist); } // old theme value is used to determine whether to update cache or not. kind of dirty way $form->addElement(new XoopsFormHidden('_old_theme', $config[$i]->getConfValueForOutput())); break; case 'tplset': $ele = new XoopsFormSelect($title, $config[$i]->getVar('conf_name'), $config[$i]->getConfValueForOutput()); $tplset_handler = xoops_getHandler('tplset'); $tplsetlist = $tplset_handler->getList(); asort($tplsetlist); foreach ($tplsetlist as $key => $name) { $ele->addOption($key, $name); } // old theme value is used to determine whether to update cache or not. kind of dirty way $form->addElement(new XoopsFormHidden('_old_theme', $config[$i]->getConfValueForOutput())); break; case 'timezone': $ele = new XoopsFormSelectTimezone($title, $config[$i]->getVar('conf_name'), $config[$i]->getConfValueForOutput()); break; case 'language': $ele = new XoopsFormSelectLang($title, $config[$i]->getVar('conf_name'), $config[$i]->getConfValueForOutput()); break; case 'startpage': $ele = new XoopsFormSelect($title, $config[$i]->getVar('conf_name'), $config[$i]->getConfValueForOutput()); /* @var XoopsModuleHandler $module_handler */ $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->addOptionArray($moduleslist); break; case 'group': $ele = new XoopsFormSelectGroup($title, $config[$i]->getVar('conf_name'), false, $config[$i]->getConfValueForOutput(), 1, false); break; case 'group_multi': $ele = new XoopsFormSelectGroup($title, $config[$i]->getVar('conf_name'), false, $config[$i]->getConfValueForOutput(), 5, true); break; // RMV-NOTIFY - added 'user' and 'user_multi' case 'user': $ele = new XoopsFormSelectUser($title, $config[$i]->getVar('conf_name'), false, $config[$i]->getConfValueForOutput(), 1, false); break; case 'user_multi': $ele = new XoopsFormSelectUser($title, $config[$i]->getVar('conf_name'), false, $config[$i]->getConfValueForOutput(), 5, true); break; case 'module_cache': /* @var XoopsModuleHandler $module_handler */ $module_handler = xoops_getHandler('module'); $modules = $module_handler->getObjects(new Criteria('hasmain', 1), true); $currrent_val = $config[$i]->getConfValueForOutput(); $cache_options = array( '0' => _NOCACHE, '30' => sprintf(_SECONDS, 30), '60' => _MINUTE, '300' => sprintf(_MINUTES, 5), '1800' => sprintf(_MINUTES, 30), '3600' => _HOUR, '18000' => sprintf(_HOURS, 5), '86400' => _DAY, '259200' => sprintf(_DAYS, 3), '604800' => _WEEK); if (count($modules) > 0) { $ele = new XoopsFormElementTray($title, '<br>'); foreach (array_keys($modules) as $mid) { $c_val = isset($currrent_val[$mid]) ? (int)$currrent_val[$mid] : null; $selform = new XoopsFormSelect($modules[$mid]->getVar('name'), $config[$i]->getVar('conf_name') . "[$mid]", $c_val); $selform->addOptionArray($cache_options); $ele->addElement($selform); unset($selform); } } else { $ele = new XoopsFormLabel($title, _MD_AM_NOMODULE); } break; case 'site_cache': $ele = new XoopsFormSelect($title, $config[$i]->getVar('conf_name'), $config[$i]->getConfValueForOutput()); $ele->addOptionArray(array( '0' => _NOCACHE, '30' => sprintf(_SECONDS, 30), '60' => _MINUTE, '300' => sprintf(_MINUTES, 5), '1800' => sprintf(_MINUTES, 30), '3600' => _HOUR, '18000' => sprintf(_HOURS, 5), '86400' => _DAY, '259200' => sprintf(_DAYS, 3), '604800' => _WEEK)); break; case 'password': $myts = MyTextSanitizer::getInstance(); $ele = new XoopsFormPassword($title, $config[$i]->getVar('conf_name'), 50, 255, $myts->htmlspecialchars($config[$i]->getConfValueForOutput())); break; case 'color': $myts = MyTextSanitizer::getInstance(); $ele = new XoopsFormColorPicker($title, $config[$i]->getVar('conf_name'), $myts->htmlspecialchars($config[$i]->getConfValueForOutput())); break; case 'hidden': $myts = MyTextSanitizer::getInstance(); $ele = new XoopsFormHidden($config[$i]->getVar('conf_name'), $myts->htmlspecialchars($config[$i]->getConfValueForOutput())); break; case 'textbox': default: $myts = MyTextSanitizer::getInstance(); $ele = new XoopsFormText($title, $config[$i]->getVar('conf_name'), 50, 255, $myts->htmlspecialchars($config[$i]->getConfValueForOutput())); break; } if (defined($config[$i]->getVar('conf_desc')) && constant($config[$i]->getVar('conf_desc')) != '') { $ele->setDescription(constant($config[$i]->getVar('conf_desc'))); } $ret[$conf_catid]->addElement($ele); $hidden = new XoopsFormHidden('conf_ids[]', $config[$i]->getVar('conf_id')); $ret[$conf_catid]->addElement($hidden); unset($ele, $hidden); } return $ret; } /** * @param $config * * @return array */ function createThemeform($config) { xoops_load('XoopsFormRendererBootstrap3'); XoopsFormRenderer::getInstance()->set(new XoopsFormRendererBootstrap3()); $title = (!defined($config->getVar('conf_desc')) || constant($config->getVar('conf_desc')) === '') ? constant($config->getVar('conf_title')) : constant($config->getVar('conf_title')) . '<br><br><span>' . constant($config->getVar('conf_desc')) . '</span>'; $form_theme_set = new XoopsFormSelect('', $config->getVar('conf_name'), $config->getConfValueForOutput(), 1, false); $dirlist = XoopsLists::getThemesList(); if (!empty($dirlist)) { asort($dirlist); $form_theme_set->addOptionArray($dirlist); } $label_content = ''; // read ini file for each theme foreach ($dirlist as $theme) { // set default value $theme_ini = array( 'Name' => $theme, 'Description' => '', 'Version' => '', 'Format' => '', 'Author' => '', 'Demo' => '', 'Url' => '', 'Download' => '', 'W3C' => '', 'Licence' => '', 'thumbnail' => 'screenshot.gif', 'screenshot' => 'screenshot.png'); if ($theme == $config->getConfValueForOutput()) { $label_content .= '<div class="theme_preview" id="'.$theme.'" style="display:block;">'; } else { $label_content .= '<div class="theme_preview" id="'.$theme.'" style="display:none;">'; } if (file_exists(XOOPS_ROOT_PATH . "/themes/$theme/theme.ini")) { $theme_ini = parse_ini_file(XOOPS_ROOT_PATH . "/themes/$theme/theme.ini"); if ($theme_ini['screenshot'] == '') { $theme_ini['screenshot'] = 'screenshot.png'; $theme_ini['thumbnail'] = 'thumbnail.png'; } } if ($theme_ini['screenshot'] !== '' && file_exists(XOOPS_ROOT_PATH . '/themes/' . $theme . '/' . $theme_ini['screenshot'])) { $label_content .= '<img class="img-responsive" src="' . XOOPS_URL . '/themes/' . $theme . '/' . $theme_ini['screenshot'] . '" alt="Screenshot" />'; } elseif ($theme_ini['thumbnail'] !== '' && file_exists(XOOPS_ROOT_PATH . '/themes/' . $theme .'/' . $theme_ini['thumbnail'])) { $label_content .= '<img class="img-responsive" src="' . XOOPS_URL . '/themes/' . $theme . '/' . $theme_ini['thumbnail'] . '" alt="$theme" />'; } else { $label_content .= THEME_NO_SCREENSHOT; } $label_content .= '</div>'; } // read ini file for each theme $form_theme_set->setExtra("onchange='showThemeSelected(this)'"); $form = new XoopsThemeForm($title, 'themes', 'index.php', 'post'); $form->addElement($form_theme_set); $form->addElement(new XoopsFormLabel('', "<div id='screenshot'>" . $label_content . '</div>')); $form->addElement(new XoopsFormHidden('conf_ids[]', $config->getVar('conf_id'))); return $ret = array($form); }