PHP Classes

File: htdocs/modules/system/admin/tplsets/main.php

Recommend this page to a friend!
  Classes of Michael Beck   Xoops 2.5   htdocs/modules/system/admin/tplsets/main.php   Download  
File: htdocs/modules/system/admin/tplsets/main.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: 24,266 bytes
 

Contents

Class file image Download
<?php /* * You may not change or alter any portion of this comment or credits * of supporting developers from this source code or any supporting source code * which is considered copyrighted (c) material of the original comment or credit authors. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ /** * @copyright XOOPS Project http://xoops.org/ * @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html) * @package * @since * @author XOOPS Development Team, Kazumi Ono (AKA onokazu) */ // Check users rights if (!is_object($GLOBALS['xoopsUser']) || !is_object($GLOBALS['xoopsModule']) || !$GLOBALS['xoopsUser']->isAdmin($GLOBALS['xoopsModule']->mid())) { exit(_NOPERM); } // Get Action type $op = system_CleanVars($_REQUEST, 'op', 'default', 'string'); // Define main template $GLOBALS['xoopsOption']['template_main'] = 'system_templates.tpl'; // Call Header xoops_cp_header(); // Define scripts $xoTheme->addScript('browse.php?Frameworks/jquery/jquery.js'); $xoTheme->addScript('browse.php?Frameworks/jquery/plugins/jquery.ui.js'); $xoTheme->addScript('modules/system/js/jquery.easing.js'); $xoTheme->addScript('modules/system/js/jqueryFileTree.js'); $xoTheme->addScript('modules/system/js/admin.js'); $xoTheme->addScript('modules/system/js/templates.js'); $xoTheme->addScript('modules/system/js/code_mirror/codemirror.js'); // Define Stylesheet $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css'); $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/code_mirror/docs.css'); // Define Breadcrumb and tips $xoBreadCrumb->addLink(_AM_SYSTEM_TEMPLATES_NAV_MAIN, system_adminVersion('tplsets', 'adminpath')); switch ($op) { //index default: // Assign Breadcrumb menu $xoBreadCrumb->addHelp(system_adminVersion('tplsets', 'help')); $xoBreadCrumb->addTips(_AM_SYSTEM_TEMPLATES_NAV_TIPS); $xoBreadCrumb->render(); $GLOBALS['xoopsTpl']->assign('index', true); $form = new XoopsThemeForm(_AM_SYSTEM_TEMPLATES_GENERATE, 'form', 'admin.php?fct=tplsets', 'post', true); $ele = new XoopsFormSelect(_AM_SYSTEM_TEMPLATES_SET, 'tplset', $GLOBALS['xoopsConfig']['template_set']); /* @var XoopsTplsetHandler $tplset_handler */ $tplset_handler = xoops_getHandler('tplset'); $tplsetlist = $tplset_handler->getList(); asort($tplsetlist); foreach ($tplsetlist as $key => $name) { $ele->addOption($key, $name); } $form->addElement($ele); $form->addElement(new XoopsFormSelectTheme(_AM_SYSTEM_TEMPLATES_SELECT_THEME, 'select_theme', 1, 5), true); $form->addElement(new XoopsFormRadioYN(_AM_SYSTEM_TEMPLATES_FORCE_GENERATED, 'force_generated', 0, _YES, _NO), true); $modules = new XoopsFormSelect(_AM_SYSTEM_TEMPLATES_SELECT_MODULES, 'select_modules'); /* @var XoopsModuleHandler $module_handler */ $module_handler = xoops_getHandler('module'); $criteria = new CriteriaCompo(new Criteria('isactive', 1)); $moduleslist = $module_handler->getList($criteria, true); $modules->addOption(0, _AM_SYSTEM_TEMPLATES_ALL_MODULES); $modules->addOptionArray($moduleslist); $form->addElement($modules, true); $form->addElement(new XoopsFormHidden('active_templates', '0')); $form->addElement(new XoopsFormHidden('active_modules', '0')); $form->addElement(new XoopsFormHidden('op', 'tpls_generate_surcharge')); $form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit')); $xoopsTpl->assign('form', $form->render()); break; //generate surcharge case 'tpls_generate_surcharge': if (!$GLOBALS['xoopsSecurity']->check()) { redirect_header('admin.php?fct=tplsets', 3, implode('<br>', $GLOBALS['xoopsSecurity']->getErrors())); } // Assign Breadcrumb menu $xoBreadCrumb->addHelp(system_adminVersion('tplsets', 'help') . '#override'); $xoBreadCrumb->addLink(_AM_SYSTEM_TEMPLATES_NAV_FILE_GENERATED); $xoBreadCrumb->render(); if ($_REQUEST['select_modules'] == '0' || $_REQUEST['active_modules'] == '1') { //Generate modules if (isset($_REQUEST['select_theme']) && isset($_REQUEST['force_generated'])) { //on verifie si le dossier module existe $theme_surcharge = XOOPS_THEME_PATH . '/' . $_REQUEST['select_theme'] . '/modules'; $indexFile = XOOPS_ROOT_PATH . '/modules/system/include/index.html'; $verif_write = false; $text = ''; if (!is_dir($theme_surcharge)) { //Creation du dossier modules if (!is_dir($theme_surcharge)) { mkdir($theme_surcharge, 0777); } chmod($theme_surcharge, 0777); copy($indexFile, $theme_surcharge . '/index.html'); } $tplset = system_CleanVars($POST, 'tplset', 'default', 'string'); //on crée uniquement les templates qui n'existent pas /* @var XoopsModuleHandler $module_handler */ $module_handler = xoops_getHandler('module'); /* @var XoopsTplsetHandler $tplset_handler */ $tplset_handler = xoops_getHandler('tplset'); /* @var XoopsTplfileHandler $tpltpl_handler */ $tpltpl_handler = xoops_getHandler('tplfile'); $criteria = new CriteriaCompo(); $criteria->add(new Criteria('tplset_name', $tplset)); $tplsets_arr = $tplset_handler->getObjects(); $tcount = $tplset_handler->getCount(); $tpltpl_handler = xoops_getHandler('tplfile'); $installed_mods = $tpltpl_handler->getModuleTplCount($tplset); //all templates or only one template if ($_REQUEST['active_templates'] == 0) { foreach (array_keys($tplsets_arr) as $i) { $tplsetname = $tplsets_arr[$i]->getVar('tplset_name'); $tplstats = $tpltpl_handler->getModuleTplCount($tplsetname); if (count($tplstats) > 0) { foreach ($tplstats as $moddir => $filecount) { $module = $module_handler->getByDirname($moddir); if (is_object($module)) { // create module folder if (!is_dir($theme_surcharge . '/' . $module->getVar('dirname'))) { mkdir($theme_surcharge . '/' . $module->getVar('dirname'), 0777); chmod($theme_surcharge . '/' . $module->getVar('dirname'), 0777); copy($indexFile, $theme_surcharge . '/' . $module->getVar('dirname') . '/index.html'); } // create block folder if (!is_dir($theme_surcharge . '/' . $module->getVar('dirname') . '/blocks')) { if (!is_dir($theme_surcharge . '/' . $module->getVar('dirname') . '/blocks')) { mkdir($theme_surcharge . '/' . $module->getVar('dirname') . '/blocks', 0777); } chmod($theme_surcharge . '/' . $module->getVar('dirname') . '/blocks', 0777); copy($indexFile, $theme_surcharge . '/' . $module->getVar('dirname') . '/blocks' . '/index.html'); } $class = 'odd'; $text .= '<table cellspacing="1" class="outer"><tr><th colspan="3" align="center">' . _AM_SYSTEM_TEMPLATES_MODULES . ucfirst($module->getVar('dirname')) . '</th></tr><tr><th align="center">' . _AM_SYSTEM_TEMPLATES_TYPES . '</th><th align="center">' . _AM_SYSTEM_TEMPLATES_FILES . '</th><th>' . _AM_SYSTEM_TEMPLATES_STATUS . '</th></tr>'; // create template $templates = $tpltpl_handler->find($tplsetname, 'module', null, $moddir); $templatesCount = count($templates); for ($j = 0; $j < $templatesCount; ++$j) { $filename = $templates[$j]->getVar('tpl_file'); if ($tplsetname == $tplset) { $physical_file = XOOPS_THEME_PATH . '/' . $_REQUEST['select_theme'] . '/modules/' . $moddir . '/' . $filename; $tplfile = $tpltpl_handler->get($templates[$j]->getVar('tpl_id'), true); if (is_object($tplfile)) { if (!file_exists($physical_file) || $_REQUEST['force_generated'] == 1) { $open = fopen('' . $physical_file . '', 'w+'); if (fwrite($open, '' . $tplfile->getVar('tpl_source', 'n'))) { $text .= '<tr class="' . $class . '"><td align="center">' . _AM_SYSTEM_TEMPLATES_TEMPLATES . '</td><td>' . $physical_file . '</td><td align="center">'; if (file_exists($physical_file)) { $text .= '<img width="16" src="' . system_AdminIcons('success.png') . '" /></td></tr>'; } else { $text .= '<img width="16" src="' . system_AdminIcons('cancel.png') . '" /></td></tr>'; } $verif_write = true; } fclose($open); $class = ($class === 'even') ? 'odd' : 'even'; } } } } // create block template $btemplates = $tpltpl_handler->find($tplsetname, 'block', null, $moddir); $btemplatesCount = count($btemplates); for ($k = 0; $k < $btemplatesCount; ++$k) { $filename = $btemplates[$k]->getVar('tpl_file'); if ($tplsetname == $tplset) { $physical_file = XOOPS_THEME_PATH . '/' . $_REQUEST['select_theme'] . '/modules/' . $moddir . '/blocks/' . $filename; $btplfile = $tpltpl_handler->get($btemplates[$k]->getVar('tpl_id'), true); if (is_object($btplfile)) { if (!file_exists($physical_file) || $_REQUEST['force_generated'] == 1) { $open = fopen($physical_file, 'w+'); if (fwrite($open, $btplfile->getVar('tpl_source', 'n'))) { $text .= '<tr class="' . $class . '"><td align="center">' . _AM_SYSTEM_TEMPLATES_BLOCKS . '</td><td>' . $physical_file . '</td><td align="center">'; if (file_exists($physical_file)) { $text .= '<img width="16" src="' . system_AdminIcons('success.png') . '" /></td></tr>'; } else { $text .= '<img width="16" src="' . system_AdminIcons('cancel.png') . '" /></td></tr>'; } $verif_write = true; } fclose($open); $class = ($class === 'even') ? 'odd' : 'even'; } } } } $text .= '</table>'; } } unset($module); } } } else { foreach (array_keys($tplsets_arr) as $i) { $tplsetname = $tplsets_arr[$i]->getVar('tplset_name'); $tplstats = $tpltpl_handler->getModuleTplCount($tplsetname); if (count($tplstats) > 0) { $moddir = $_REQUEST['select_modules']; $module = $module_handler->getByDirname($moddir); if (is_object($module)) { // create module folder if (!is_dir($theme_surcharge . '/' . $module->getVar('dirname'))) { mkdir($theme_surcharge . '/' . $module->getVar('dirname'), 0777); chmod($theme_surcharge . '/' . $module->getVar('dirname'), 0777); copy($indexFile, $theme_surcharge . '/' . $module->getVar('dirname') . '/index.html'); } // create block folder if (!is_dir($theme_surcharge . '/' . $module->getVar('dirname') . '/blocks')) { if (!is_dir($theme_surcharge . '/' . $module->getVar('dirname') . '/blocks')) { mkdir($theme_surcharge . '/' . $module->getVar('dirname') . '/blocks', 0777); } chmod($theme_surcharge . '/' . $module->getVar('dirname') . '/blocks', 0777); copy($indexFile, $theme_surcharge . '/' . $module->getVar('dirname') . '/blocks' . '/index.html'); } $class = 'odd'; $text .= '<table cellspacing="1" class="outer"><tr><th colspan="3" align="center">' . _AM_SYSTEM_TEMPLATES_MODULES . ucfirst($module->getVar('dirname')) . '</th></tr><tr><th align="center">' . _AM_SYSTEM_TEMPLATES_TYPES . '</th><th align="center">' . _AM_SYSTEM_TEMPLATES_FILES . '</th><th>' . _AM_SYSTEM_TEMPLATES_STATUS . '</th></tr>'; $select_templates_modules = $_REQUEST['select_templates_modules']; $tempCount = count($_REQUEST['select_templates_modules']); for ($l = 0; $l < $tempCount; ++$l) { // create template $templates = $tpltpl_handler->find($tplsetname, 'module', null, $moddir); $templatesCount = count($templates); for ($j = 0; $j < $templatesCount; ++$j) { $filename = $templates[$j]->getVar('tpl_file'); if ($tplsetname == $tplset) { $physical_file = XOOPS_THEME_PATH . '/' . $_REQUEST['select_theme'] . '/modules/' . $moddir . '/' . $filename; $tplfile = $tpltpl_handler->get($templates[$j]->getVar('tpl_id'), true); if (is_object($tplfile)) { if (!file_exists($physical_file) || $_REQUEST['force_generated'] == 1) { if ($select_templates_modules[$l] == $filename) { $open = fopen('' . $physical_file . '', 'w+'); if (fwrite($open, '' . $tplfile->getVar('tpl_source', 'n'))) { $text .= '<tr class="' . $class . '"><td align="center">' . _AM_SYSTEM_TEMPLATES_TEMPLATES . '</td><td>' . $physical_file . '</td><td align="center">'; if (file_exists($physical_file)) { $text .= '<img width="16" src="' . system_AdminIcons('success.png') . '" /></td></tr>'; } else { $text .= '<img width="16" src="' . system_AdminIcons('cancel.png') . '" /></td></tr>'; } $verif_write = true; } fclose($open); } $class = ($class === 'even') ? 'odd' : 'even'; } } } } // create block template $btemplates = $tpltpl_handler->find($tplsetname, 'block', null, $moddir); $btemplatesCount = count($btemplates); for ($k = 0; $k < $btemplatesCount; ++$k) { $filename = $btemplates[$k]->getVar('tpl_file'); if ($tplsetname == $tplset) { $physical_file = XOOPS_THEME_PATH . '/' . $_REQUEST['select_theme'] . '/modules/' . $moddir . '/blocks/' . $filename; $btplfile = $tpltpl_handler->get($btemplates[$k]->getVar('tpl_id'), true); if (is_object($btplfile)) { if (!file_exists($physical_file) || $_REQUEST['force_generated'] == 1) { if ($select_templates_modules[$l] == $filename) { $open = fopen('' . $physical_file . '', 'w+'); if (fwrite($open, '' . $btplfile->getVar('tpl_source', 'n') . '')) { $text .= '<tr class="' . $class . '"><td align="center">' . _AM_SYSTEM_TEMPLATES_BLOCKS . '</td><td>' . $physical_file . '</td><td align="center">'; if (file_exists($physical_file)) { $text .= '<img width="16" src="' . system_AdminIcons('success.png') . '" /></td></tr>'; } else { $text .= '<img width="16" src="' . system_AdminIcons('cancel.png') . '" /></td></tr>'; } $verif_write = true; } fclose($open); } $class = ($class === 'even') ? 'odd' : 'even'; } } } } } $text .= '</table>'; } unset($module); } } } $xoopsTpl->assign('infos', $text); $xoopsTpl->assign('verif', $verif_write); } else { redirect_header('admin.php?fct=tplsets', 2, _AM_SYSTEM_TEMPLATES_SAVE); } } else { // Generate one module $GLOBALS['xoopsTpl']->assign('index', true); $tplset = system_CleanVars($POST, 'tplset', 'default', 'string'); $form = new XoopsThemeForm(_AM_SYSTEM_TEMPLATES_SELECT_TEMPLATES, 'form', 'admin.php?fct=tplsets', 'post', true); $tpltpl_handler = xoops_getHandler('tplfile'); $templates_arr = $tpltpl_handler->find($tplset, '', null, $_REQUEST['select_modules']); $modules = new XoopsFormSelect(_AM_SYSTEM_TEMPLATES_SELECT_TEMPLATES, 'select_templates_modules', null, 10, true); foreach (array_keys($templates_arr) as $i) { $modules->addOption($templates_arr[$i]->getVar('tpl_file')); } $form->addElement($modules); $form->addElement(new XoopsFormHidden('active_templates', '1')); $form->addElement(new XoopsFormHidden('force_generated', $_REQUEST['force_generated'])); $form->addElement(new XoopsFormHidden('select_modules', $_REQUEST['select_modules'])); $form->addElement(new XoopsFormHidden('active_modules', '1')); $form->addElement(new XoopsFormHidden('select_theme', $_REQUEST['select_theme'])); $form->addElement(new XoopsFormHidden('op', 'tpls_generate_surcharge')); $form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit')); $xoopsTpl->assign('form', $form->render()); } break; // save case 'tpls_save': if (!$GLOBALS['xoopsSecurity']->check()) { redirect_header('admin.php?fct=tplsets', 2, implode('<br>', $GLOBALS['xoopsSecurity']->getErrors())); } XoopsLoad::load('XoopsRequest'); $clean_path_file = XoopsRequest::getString('path_file', ''); if (!empty($clean_path_file)) { $path_file = realpath(XOOPS_ROOT_PATH.'/themes'.trim($clean_path_file)); $path_file = str_replace('\\','/',$path_file); $pathInfo = pathinfo($path_file); if (!in_array($pathInfo['extension'], array('css', 'html', 'tpl'))) { redirect_header('admin.php?fct=tplsets', 2, _AM_SYSTEM_TEMPLATES_ERROR); exit; } // copy file $copy_file = $path_file . '.back'; copy($path_file, $copy_file); // Save modif if (isset($_REQUEST['templates'])) { $open = fopen('' . $path_file . '', 'w+'); if (!fwrite($open, utf8_encode(stripslashes($_REQUEST['templates'])))) { redirect_header('admin.php?fct=tplsets', 2, _AM_SYSTEM_TEMPLATES_ERROR); } fclose($open); } } redirect_header('admin.php?fct=tplsets', 2, _AM_SYSTEM_TEMPLATES_SAVE); break; } // Call Footer xoops_cp_footer();