<?php
/***************************************************************
-* Copyright notice
-*
-* (c) 1999-2010 Kasper Skårhøj (kasperYYYY@typo3.com)
-* All rights reserved
-*
-* This script is part of the TYPO3 project. The TYPO3 project is
-* free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* The GNU General Public License can be found at
-* http://www.gnu.org/copyleft/gpl.html.
-* A copy is found in the textfile GPL.txt and important notices to the license
-* from the author is found in LICENSE.txt distributed with these scripts.
-*
-*
-* This script 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. See the
-* GNU General Public License for more details.
-*
-* This copyright notice MUST APPEAR in all copies of the script!
-***************************************************************/
+ * Copyright notice
+ *
+ * (c) 1999-2010 Kasper Skårhøj (kasperYYYY@typo3.com)
+ * All rights reserved
+ *
+ * This script is part of the TYPO3 project. The TYPO3 project is
+ * free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * The GNU General Public License can be found at
+ * http://www.gnu.org/copyleft/gpl.html.
+ * A copy is found in the textfile GPL.txt and important notices to the license
+ * from the author is found in LICENSE.txt distributed with these scripts.
+ *
+ *
+ * This script 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. See the
+ * GNU General Public License for more details.
+ *
+ * This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
/**
* Manage storing and restoring of $GLOBALS['SOBE']->MOD_SETTINGS settings.
* Provides a presets box for BE modules.
*
* 125: class t3lib_modSettings
*
- * SECTION: Init / setup
- * 181: function init($prefix='', $storeList='')
- * 197: function setSessionType($type='ses')
+ * SECTION: Init / setup
+ * 181: function init($prefix='', $storeList='')
+ * 197: function setSessionType($type='ses')
*
- * SECTION: Store list - which values should be stored
- * 218: function setStoreList($storeList)
- * 231: function addToStoreList($storeList)
- * 245: function addToStoreListFromPrefix($prefix='')
+ * SECTION: Store list - which values should be stored
+ * 218: function setStoreList($storeList)
+ * 231: function addToStoreList($storeList)
+ * 245: function addToStoreListFromPrefix($prefix='')
*
- * SECTION: Process storage array
- * 279: function initStorage()
- * 294: function cleanupStorageArray($storedSettings)
- * 316: function compileEntry($data)
- * 343: function getStoredData($storeIndex, $writeArray=array())
- * 360: function processStoreControl($mconfName='')
- * 442: function writeStoredSetting($writeArray=array(), $mconfName='')
+ * SECTION: Process storage array
+ * 279: function initStorage()
+ * 294: function cleanupStorageArray($storedSettings)
+ * 316: function compileEntry($data)
+ * 343: function getStoredData($storeIndex, $writeArray=array())
+ * 360: function processStoreControl($mconfName='')
+ * 442: function writeStoredSetting($writeArray=array(), $mconfName='')
*
- * SECTION: GUI
- * 474: function getStoreControl($showElements='load,remove,save', $useOwnForm=TRUE)
+ * SECTION: GUI
+ * 474: function getStoreControl($showElements='load,remove,save', $useOwnForm=TRUE)
*
- * SECTION: Misc
- * 576: function processEntry($storageArr)
+ * SECTION: Misc
+ * 576: function processEntry($storageArr)
*
* TOTAL FUNCTIONS: 13
* (This index is automatically created/updated by the extension "extdeveval")
*/
-
-
/**
* usage inside of scbase class
*
* ....
*
* $this->MOD_MENU = array(
- * 'function' => array(
- * 'xxx ...
- * ),
- * 'tx_dam_select_storedSettings' => '',
+ * 'function' => array(
+ * 'xxx ...
+ * ),
+ * 'tx_dam_select_storedSettings' => '',
*
* ....
*
* function main() {
- * // reStore settings
+ * // reStore settings
* $store = t3lib_div::makeInstance('t3lib_modSettings');
* $store->init('tx_dam_select');
* $store->setStoreList('tx_dam_select');
* $store->processStoreControl();
*
- * // show control panel
+ * // show control panel
* $this->content.= $this->doc->section('Settings',$store->getStoreControl(),0,1);
*
*
var $formName = 'storeControl';
-
- var $writeDevLog = 0; // write messages into the devlog?
-
-
+ var $writeDevLog = 0; // write messages into the devlog?
/********************************
********************************/
-
/**
* Initializes the object
*
* @param array additional names of keys of the MOD_SETTING array which should be stored (array or comma list)
* @return void
*/
- function init($prefix='', $storeList='') {
+ function init($prefix = '', $storeList = '') {
$this->prefix = $prefix;
$this->setStoreList($storeList);
$this->type = 'perm';
// enable dev logging if set
- if ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_modSettings.php']['writeDevLog']) $this->writeDevLog = TRUE;
- if (TYPO3_DLOG) $this->writeDevLog = TRUE;
+ if ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_modSettings.php']['writeDevLog']) {
+ $this->writeDevLog = TRUE;
+ }
+ if (TYPO3_DLOG) {
+ $this->writeDevLog = TRUE;
+ }
}
/**
* @param string Default is 'ses'
* @return void
*/
- function setSessionType($type='ses') {
+ function setSessionType($type = 'ses') {
$this->type = $type;
}
-
-
/********************************
*
* Store list - which values should be stored
********************************/
-
/**
* Set MOD_SETTINGS keys which should be stored
*
* @param mixed array or string (,) - set additional names of keys of the MOD_SETTING array which should be stored
* @return void
*/
- function setStoreList($storeList) {
- $this->storeList = is_array($storeList) ? $storeList : t3lib_div::trimExplode(',',$storeList,1);
+ function setStoreList($storeList) {
+ $this->storeList = is_array($storeList) ? $storeList : t3lib_div::trimExplode(',', $storeList, 1);
- if ($this->writeDevLog) t3lib_div::devLog('Store list:'.implode(',',$this->storeList), 't3lib_modSettings', 0);
+ if ($this->writeDevLog) {
+ t3lib_div::devLog('Store list:' . implode(',', $this->storeList), 't3lib_modSettings', 0);
+ }
}
* @param mixed array or string (,) - add names of keys of the MOD_SETTING array which should be stored
* @return void
*/
- function addToStoreList($storeList) {
- $storeList = is_array($storeList) ? $storeList : t3lib_div::trimExplode(',',$storeList,1);
+ function addToStoreList($storeList) {
+ $storeList = is_array($storeList) ? $storeList : t3lib_div::trimExplode(',', $storeList, 1);
$this->storeList = array_merge($this->storeList, $storeList);
- if ($this->writeDevLog) t3lib_div::devLog('Store list:'.implode(',',$this->storeList), 't3lib_modSettings', 0);
+ if ($this->writeDevLog) {
+ t3lib_div::devLog('Store list:' . implode(',', $this->storeList), 't3lib_modSettings', 0);
+ }
}
* @param string prefix of MOD_SETTING array keys that should be stored
* @return void
*/
- function addToStoreListFromPrefix($prefix='') {
+ function addToStoreListFromPrefix($prefix = '') {
global $SOBE;
$prefix = $prefix ? $prefix : $this->prefix;
foreach ($SOBE->MOD_SETTINGS as $key => $value) {
- if (preg_match('/^'.$prefix.'/',$key)) {
- $this->storeList[$key]=$key;
+ if (preg_match('/^' . $prefix . '/', $key)) {
+ $this->storeList[$key] = $key;
}
}
- unset($this->storeList[$this->prefix.'_storedSettings']);
+ unset($this->storeList[$this->prefix . '_storedSettings']);
- if ($this->writeDevLog) t3lib_div::devLog('Store list:'.implode(',',$this->storeList), 't3lib_modSettings', 0);
+ if ($this->writeDevLog) {
+ t3lib_div::devLog('Store list:' . implode(',', $this->storeList), 't3lib_modSettings', 0);
+ }
}
-
-
-
/********************************
*
* Process storage array
********************************/
-
/**
* Get the stored settings from MOD_SETTINGS and set them in $this->storedSettings
*
* @return void
*/
- function initStorage() {
+ function initStorage() {
global $SOBE;
- $storedSettings = unserialize($SOBE->MOD_SETTINGS[$this->prefix.'_storedSettings']);
+ $storedSettings = unserialize($SOBE->MOD_SETTINGS[$this->prefix . '_storedSettings']);
$this->storedSettings = $this->cleanupStorageArray($storedSettings);
}
-
/**
* Remove corrupted data entries from the stored settings array
*
* @param array $storedSettings
* @return array $storedSettings
*/
- function cleanupStorageArray($storedSettings) {
+ function cleanupStorageArray($storedSettings) {
$storedSettings = is_array($storedSettings) ? $storedSettings : array();
// clean up the array
- foreach($storedSettings as $id => $sdArr) {
- if (!is_array($sdArr)) unset($storedSettings[$id]);
- if (!is_array($sdArr['data'])) unset($storedSettings[$id]);
- if (!trim($sdArr['title'])) $storedSettings[$id]['title'] = '[no title]';
+ foreach ($storedSettings as $id => $sdArr) {
+ if (!is_array($sdArr)) {
+ unset($storedSettings[$id]);
+ }
+ if (!is_array($sdArr['data'])) {
+ unset($storedSettings[$id]);
+ }
+ if (!trim($sdArr['title'])) {
+ $storedSettings[$id]['title'] = '[no title]';
+ }
}
return $storedSettings;
* @param array Should work with data from _GP('storeControl'). This is ['title']: Title for the entry. ['desc']: A description text. Currently not used by this class
* @return array $storageArr: entry for the stored settings array
*/
- function compileEntry($data) {
+ function compileEntry($data) {
global $SOBE;
$storageData = array();
- foreach($this->storeList as $MS_key) {
+ foreach ($this->storeList as $MS_key) {
$storageData[$MS_key] = $SOBE->MOD_SETTINGS[$MS_key];
}
- $storageArr = array (
- 'title' => $data['title'],
- 'desc' => (string)$data['desc'],
- 'data' => $storageData,
- 'user' => NULL,
- 'tstamp' => $GLOBALS['EXEC_TIME'],
- );
+ $storageArr = array(
+ 'title' => $data['title'],
+ 'desc' => (string) $data['desc'],
+ 'data' => $storageData,
+ 'user' => NULL,
+ 'tstamp' => $GLOBALS['EXEC_TIME'],
+ );
$storageArr = $this->processEntry($storageArr);
return $storageArr;
* @param array Preset data array. Will be overwritten by copied values.
* @return array Data array
*/
- function getStoredData($storeIndex, $writeArray=array()) {
- if ($this->storedSettings[$storeIndex]) {
- foreach($this->storeList as $k) {
+ function getStoredData($storeIndex, $writeArray = array()) {
+ if ($this->storedSettings[$storeIndex]) {
+ foreach ($this->storeList as $k) {
$writeArray[$k] = $this->storedSettings[$storeIndex]['data'][$k];
}
}
}
-
/**
* Processing of the storage command LOAD, SAVE, REMOVE
*
* @param string Name of the module to store the settings for. Default: $GLOBALS['SOBE']->MCONF['name'] (current module)
* @return string Storage message. Also set in $this->msg
*/
- function processStoreControl($mconfName='') {
+ function processStoreControl($mconfName = '') {
$this->initStorage();
if (is_array($storeControl)) {
if ($this->writeDevLog) {
- t3lib_div::devLog('Store command: '.t3lib_div::arrayToLogString($storeControl), 't3lib_modSettings', 0);
+ t3lib_div::devLog('Store command: ' . t3lib_div::arrayToLogString($storeControl), 't3lib_modSettings', 0);
}
- //
- // processing LOAD
- //
+ //
+ // processing LOAD
+ //
- if ($storeControl['LOAD'] AND $storeIndex) {
- $writeArray = $this->getStoredData($storeIndex, $writeArray);
- $saveSettings = TRUE;
- $msg = "'".$this->storedSettings[$storeIndex]['title']."' preset loaded!";
+ if ($storeControl['LOAD'] AND $storeIndex) {
+ $writeArray = $this->getStoredData($storeIndex, $writeArray);
+ $saveSettings = TRUE;
+ $msg = "'" . $this->storedSettings[$storeIndex]['title'] . "' preset loaded!";
- //
- // processing SAVE
- //
+ //
+ // processing SAVE
+ //
- } elseif ($storeControl['SAVE']) {
+ } elseif ($storeControl['SAVE']) {
if (trim($storeControl['title'])) {
// get the data to store
$this->storedSettings[$storeIndex] = $newEntry;
$saveSettings = TRUE;
- $msg = "'".$newEntry['title']."' preset saved!";
+ $msg = "'" . $newEntry['title'] . "' preset saved!";
} else {
$msg = 'Please enter a name for the preset!';
}
- //
- // processing REMOVE
- //
+ //
+ // processing REMOVE
+ //
- } elseif ($storeControl['REMOVE'] AND $storeIndex) {
+ } elseif ($storeControl['REMOVE'] AND $storeIndex) {
// Removing entry
- $msg = "'".$this->storedSettings[$storeIndex]['title']."' preset entry removed!";
+ $msg = "'" . $this->storedSettings[$storeIndex]['title'] . "' preset entry removed!";
unset($this->storedSettings[$storeIndex]);
$saveSettings = TRUE;
$this->msg = $msg;
- if ($saveSettings) {
+ if ($saveSettings) {
$this->writeStoredSetting($writeArray, $mconfName);
}
* @param string Name of the module to store the settings for. Default: $GLOBALS['SOBE']->MCONF['name'] (current module)
* @return void
*/
- function writeStoredSetting($writeArray=array(), $mconfName='') {
+ function writeStoredSetting($writeArray = array(), $mconfName = '') {
global $SOBE;
// for debugging: just removes all module data from user settings
- # $GLOBALS['BE_USER']->pushModuleData($SOBE->MCONF['name'],array());
+ // $GLOBALS['BE_USER']->pushModuleData($SOBE->MCONF['name'],array());
- unset($this->storedSettings[0]); // making sure, index 0 is not set!
+ unset($this->storedSettings[0]); // making sure, index 0 is not set!
$this->storedSettings = $this->cleanupStorageArray($this->storedSettings);
- $writeArray[$this->prefix.'_storedSettings'] = serialize($this->storedSettings);
+ $writeArray[$this->prefix . '_storedSettings'] = serialize($this->storedSettings);
- $SOBE->MOD_SETTINGS = t3lib_BEfunc::getModuleData($SOBE->MOD_MENU, $writeArray, ($mconfName?$mconfName:$SOBE->MCONF['name']), $this->type);
+ $SOBE->MOD_SETTINGS = t3lib_BEfunc::getModuleData($SOBE->MOD_MENU, $writeArray, ($mconfName ? $mconfName : $SOBE->MCONF['name']), $this->type);
- if ($this->writeDevLog) t3lib_div::devLog('Settings stored:'.$this->msg, 't3lib_modSettings', 0);
+ if ($this->writeDevLog) {
+ t3lib_div::devLog('Settings stored:' . $this->msg, 't3lib_modSettings', 0);
+ }
}
-
/********************************
*
* GUI
********************************/
-
/**
* Returns the storage control box
*
* @param boolean If set the box is wrapped with own form tag
* @return string HTML code
*/
- function getStoreControl($showElements='load,remove,save', $useOwnForm=TRUE) {
+ function getStoreControl($showElements = 'load,remove,save', $useOwnForm = TRUE) {
global $TYPO3_CONF_VARS;
$showElements = t3lib_div::trimExplode(',', $showElements, 1);
$this->initStorage();
// Preset selector
- $opt=array();
+ $opt = array();
$opt[] = '<option value="0"> </option>';
- foreach($this->storedSettings as $id => $v) {
- $opt[] = '<option value="'.$id.'">'.htmlspecialchars($v['title']).'</option>';
+ foreach ($this->storedSettings as $id => $v) {
+ $opt[] = '<option value="' . $id . '">' . htmlspecialchars($v['title']) . '</option>';
}
- $storedEntries = count($opt)>1;
-
+ $storedEntries = count($opt) > 1;
$codeTD = array();
// LOAD, REMOVE, but also show selector so you can overwrite an entry with SAVE
- if($storedEntries AND (count($showElements))) {
+ if ($storedEntries AND (count($showElements))) {
// selector box
- $onChange = 'document.forms[\''.$this->formName.'\'][\'storeControl[title]\'].value= this.options[this.selectedIndex].value!=0 ? this.options[this.selectedIndex].text : \'\';';
+ $onChange = 'document.forms[\'' . $this->formName . '\'][\'storeControl[title]\'].value= this.options[this.selectedIndex].value!=0 ? this.options[this.selectedIndex].text : \'\';';
$code = '
- <select name="storeControl[STORE]" onChange="'.htmlspecialchars($onChange).'">
- '.implode('
- ', $opt).'
+ <select name="storeControl[STORE]" onChange="' . htmlspecialchars($onChange) . '">
+ ' . implode('
+ ', $opt) . '
</select>';
// load button
- if(in_array('load', $showElements)) {
- $code.= '
+ if (in_array('load', $showElements)) {
+ $code .= '
<input type="submit" name="storeControl[LOAD]" value="Load" /> ';
}
// remove button
- if(in_array('remove', $showElements)) {
- $code.= '
+ if (in_array('remove', $showElements)) {
+ $code .= '
<input type="submit" name="storeControl[REMOVE]" value="Remove" /> ';
}
$codeTD[] = '<td width="1%">Preset:</td>';
- $codeTD[] = '<td nowrap="nowrap">'.$code.' </td>';
+ $codeTD[] = '<td nowrap="nowrap">' . $code . ' </td>';
}
// SAVE
- if(in_array('save', $showElements)) {
- $onClick = (!$storedEntries) ? '' : 'if (document.forms[\''.$this->formName.'\'][\'storeControl[STORE]\'].options[document.forms[\''.$this->formName.'\'][\'storeControl[STORE]\'].selectedIndex].value<0) return confirm(\'Are you sure you want to overwrite the existing entry?\');';
+ if (in_array('save', $showElements)) {
+ $onClick = (!$storedEntries) ? '' : 'if (document.forms[\'' . $this->formName . '\'][\'storeControl[STORE]\'].options[document.forms[\'' . $this->formName . '\'][\'storeControl[STORE]\'].selectedIndex].value<0) return confirm(\'Are you sure you want to overwrite the existing entry?\');';
$code = '<input name="storeControl[title]" value="" type="text" max="80" width="25"> ';
- $code.= '<input type="submit" name="storeControl[SAVE]" value="Save" onClick="'.htmlspecialchars($onClick).'" />';
- $codeTD[] = '<td nowrap="nowrap">'.$code.'</td>';
+ $code .= '<input type="submit" name="storeControl[SAVE]" value="Save" onClick="' . htmlspecialchars($onClick) . '" />';
+ $codeTD[] = '<td nowrap="nowrap">' . $code . '</td>';
}
- $codeTD = implode ('
+ $codeTD = implode('
', $codeTD);
if (trim($code)) {
-->
<table border="0" cellpadding="3" cellspacing="0" width="100%">
<tr class="bgColor4">
- '.$codeTD.'
+ ' . $codeTD . '
</tr>
</table>
';
}
- if ($this->msg) {
- $code.= '
- <div><strong>'.htmlspecialchars($this->msg).'</strong></div>';
+ if ($this->msg) {
+ $code .= '
+ <div><strong>' . htmlspecialchars($this->msg) . '</strong></div>';
}
-#TODO need to add parameters
+ #TODO need to add parameters
if ($useOwnForm AND trim($code)) {
$code = '
<form action="' . t3lib_div::getIndpEnv('SCRIPT_NAME') . '" method="post" name="' . $this->formName . '" enctype="' . $TYPO3_CONF_VARS['SYS']['form_enctype'] . '">' . $code . '</form>';
}
-
-
/********************************
*
* Misc
}
}
-if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_modSettings.php']) {
+if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_modSettings.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_modSettings.php']);
}