⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 class.tx_lowlevel_cleaner.php

📁 Typo3, 开源里边最强大的
💻 PHP
字号:
<?php/****************************************************************  Copyright notice**  (c) 1999-2005 Kasper Skaarhoj (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!***************************************************************//** * Web > Functions module plugin for cleaning up. * * XHTML compliant * @author	Kasper Sk錼h鴍 <kasperYYYY@typo3.com> *//** * [CLASS/FUNCTION INDEX of SCRIPT] * * * *   65: class tx_lowlevel_cleaner extends t3lib_extobjbase *   74:     function modMenu() *  109:     function main() *  130:     function createMenu() *  145:     function moduleContent() * * TOTAL FUNCTIONS: 4 * (This index is automatically created/updated by the extension "extdeveval") * */require_once(PATH_t3lib.'class.t3lib_extobjbase.php');require_once(t3lib_extMgm::extPath('lowlevel').'class.tx_lowlevel_cleaner_core.php');require_once (PATH_t3lib.'class.t3lib_refindex.php');die('Not developed...');/** * Web > Functions module plugin for cleaning up. * * @author	Kasper Sk錼h鴍 <kasperYYYY@typo3.com> * @package TYPO3 * @subpackage tx_lowlevel */class tx_lowlevel_cleaner extends t3lib_extobjbase {	/**	 * Modifies parent objects internal MOD_MENU array, adding items this module needs.	 *	 * @return	array		Items merged with the parent objects.	 * @see t3lib_extobjbase::init()	 */	function modMenu()	{		global $LANG;		$modMenuAdd = array(			'tx_lowlevel_cleaner' => array(#				'delete_flush' => 'Flush "deleted" records',		// ID/depth related#				'delete_restore' => 'Restore "deleted" records',	// ID/depth related#				'versions_flush' => 'Flush published versions',	// ID/depth related#				'clean_flexform_xml' => 'Clean up FlexForm XML',	// ID/depth related			# tt_content element removal: templavoila plugin!		// ID/depth related			# Check for various: uid>0, pid>-1	, lost swapping operations,#				'l10n_duplicates' => 'Localization errors',# Find TCA/FlexForm fields which should probably have a soft reference parser attached!			# TemplaVoila plugs in to display mapping issues.			# Overview of http://  and emails 						// UPDATE index!				'missing_files' => 'Missing files',				// UPDATE index!				'missing_relations' => 'Missing relations',		// UPDATE index!#				'lost_records' => 'Orphan records',				'lost_files' => 'Orphan files (from uploads/)',	// UPDATE index!				'RTEmagic_files' => 'RTE Magic Images',			// UPDATE index!				'double_files' => 'Double file references', 		// UPDATE index!			)		);		return $modMenuAdd;	}	/**	 * Creation of the main content.	 *	 * @return	string		The content	 */	function main()	{		global $BE_USER;		$content = '';		if ($BE_USER->isAdmin())	{			$content.= $this->pObj->doc->spacer(5);			$content.= $this->createMenu().'<hr/>';			$content.= $this->moduleContent();			$content.= $this->quickDBlookUp();		} else {			$content.= $this->pObj->doc->spacer(5);			$content.= 'Only access for admin users, sorry.';		}		return $content;	}	/**	 * Creates HTML menu for the module.	 *	 * @return	string		HTML code for menu	 */	function createMenu()	{		if (is_array($this->pObj->MOD_MENU['tx_lowlevel_cleaner']))	{			$menu = '';			foreach($this->pObj->MOD_MENU['tx_lowlevel_cleaner'] as $key => $value)	{				$menu.='<a href="index.php?id='.intval(t3lib_div::_GP('id')).'&tx_lowlevel_cleaner='.$key.'">'.htmlspecialchars($value).'</a><br/>';			}			return $menu;		}	}	/**	 * Branching out to the specified module functionality.	 *	 * @return	string		HTML	 */	function moduleContent()	{		$cleanerObj = t3lib_div::makeInstance('tx_lowlevel_cleaner_core');		$silent = FALSE;		$filter = 0;		switch(t3lib_div::_GP('tx_lowlevel_cleaner'))	{			case 'lost_files':				$res = $cleanerObj->clean_lost_files_analyze();				$output = $cleanerObj->html_printInfo('clean_lost_files_analyze()',$res,$silent,$filter);			break;			case 'RTEmagic_files':				$res = $cleanerObj->RTEmagic_files_analyze();				$output = $cleanerObj->html_printInfo('RTEmagic_files_analyze()',$res,$silent,$filter);			break;			case 'double_files':				$res = $cleanerObj->double_files_analyze();				$output = $cleanerObj->html_printInfo('double_files_analyze()',$res,$silent,$filter);			break;			case 'missing_files':				$res = $cleanerObj->missing_files_analyze();				$output = $cleanerObj->html_printInfo('missing_files_analyze()',$res,$silent,$filter);			break;			case 'missing_relations':				$res = $cleanerObj->missing_relations_analyze();				$output = $cleanerObj->html_printInfo('missing_relations_analyze()',$res,$silent,$filter);			break;		}/*// TEST of how we can get the used Content Elements on a TemplaVoila page:require_once(t3lib_extMgm::extPath('templavoila').'class.tx_templavoila_api.php');$apiClassName = t3lib_div::makeInstanceClassName('tx_templavoila_api');$apiObj = new $apiClassName('pages');$contentTreeData = $apiObj->getContentTree('pages', t3lib_BEfunc::getRecordWSOL('pages',33),FALSE);debug($contentTreeData);*/		return $output;	}		function quickDBlookUp()	{		$output = 'Enter [table]:[uid]:[fieldlist (optional)] <input name="table_uid" value="'.htmlspecialchars(t3lib_div::_POST('table_uid')).'" />';		$output.='<input type="submit" name="_" value="REFRESH" /><br/>';					// Show record:		if (t3lib_div::_POST('table_uid'))	{			list($table,$uid,$fieldName) = t3lib_div::trimExplode(':',t3lib_div::_POST('table_uid'),1);			if ($GLOBALS['TCA'][$table])	{				$rec = t3lib_BEfunc::getRecordRaw($table,'uid='.intval($uid),$fieldName?$fieldName:'*');				if (count($rec))	{					if (t3lib_div::_POST('_EDIT'))	{						$output.='<hr/>Edit:<br/><br/>';						foreach($rec as $field => $value)	{							$output.= htmlspecialchars($field).'<br/><input name="record['.$table.']['.$uid.']['.$field.']" value="'.htmlspecialchars($value).'" /><br/>';						}						$output.='<input type="submit" name="_SAVE" value="SAVE" />';					} elseif (t3lib_div::_POST('_SAVE'))	{						$incomingData = t3lib_div::_POST('record');						$GLOBALS['TYPO3_DB']->exec_UPDATEquery($table,'uid='.intval($uid),$incomingData[$table][$uid]);						$output.='<br/>Updated '.$table.':'.$uid.'...';						$this->updateRefIndex($table,$uid);					} else if (t3lib_div::_POST('_DELETE'))	{						$GLOBALS['TYPO3_DB']->exec_DELETEquery($table,'uid='.intval($uid));						$output.='<br/>Deleted '.$table.':'.$uid.'...';						$this->updateRefIndex($table,$uid);					} else {						$output.='<input type="submit" name="_EDIT" value="EDIT" />';						$output.='<input type="submit" name="_DELETE" value="DELETE" onclick="return confirm(\'Are you sure you wish to delete?\');" />';						$output.=t3lib_div::view_array($rec);						$output.=md5(implode($rec));					}				} else {					$output.='No record existed!';				}			}		}						return $output;	}	/**	 * Update Reference Index (sys_refindex) for a record	 *	 * @param	string		Table name	 * @param	integer		Record UID	 * @return	void	 */	function updateRefIndex($table,$id)	{		$refIndexObj = t3lib_div::makeInstance('t3lib_refindex');		$result = $refIndexObj->updateRefIndexTable($table,$id);	}}if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/lowlevel/class.tx_lowlevel_cleaner.php'])	{	include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/lowlevel/class.tx_lowlevel_cleaner.php']);}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -