Project

General

Profile

Bug #16013 ยป class.tx_version_cm1.php

Administrator Admin, 2006-04-14 00:01

 
<?php
/***************************************************************
* Copyright notice
*
* (c) 2004-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.
*
* 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!
***************************************************************/
/**
* Addition of the versioning item to the clickmenu
*
* @author Kasper Sk?rh?j <kasperYYYY@typo3.com>
*/
/**
* [CLASS/FUNCTION INDEX of SCRIPT]
*
*
*
* 54: class tx_version_cm1
* 65: function main(&$backRef,$menuItems,$table,$uid)
* 111: function includeLL()
*
* TOTAL FUNCTIONS: 2
* (This index is automatically created/updated by the extension "extdeveval")
*
*/





/**
* "Versioning" item added to click menu of elements.
*
* @author Kasper Skaarhoj <kasperYYYY@typo3.com>
* @package TYPO3
* @subpackage core
*/
class tx_version_cm1 {

/**
* Main function, adding the item to input menuItems array
*
* @param object References to parent clickmenu objects.
* @param array Array of existing menu items accumulated. New element added to this.
* @param string Table name of the element
* @param integer Record UID of the element
* @return array Modified menuItems array
*/
function main(&$backRef,$menuItems,$table,$uid) {
global $BE_USER,$TCA,$LANG;

$localItems = Array();
if (!$backRef->cmLevel) {

// Returns directly, because the clicked item was not from the pages table
if (!$TCA[$table] || !$TCA[$table]['ctrl']['versioningWS']) return $menuItems;

// Adds the regular item
$LL = $this->includeLL();

// "Versioning" element added:
$url = t3lib_extMgm::extRelPath('version').'cm1/index.php?table='.rawurlencode($table).'&uid='.$uid;
$localItems[] = $backRef->linkItem(
$GLOBALS['LANG']->makeEntities($GLOBALS['LANG']->getLLL('title',$LL)),
$backRef->excludeIcon('<img src="'.$backRef->backPath.t3lib_extMgm::extRelPath('version').'cm1/cm_icon.gif" width="15" height="12" border="0" align="top" alt="" />'),
$backRef->urlRefForCM($url),
1
);

// Find position of "delete" element:
reset($menuItems);
$c=0;
while(list($k)=each($menuItems)) {
$c++;
if (!strcmp($k,'delete')) break;
}
// .. subtract two (delete item + divider line)
$c-=2;
// ... and insert the items just before the delete element.
array_splice(
$menuItems,
$c,
0,
$localItems
);
}
return $menuItems;
}

/**
* Includes the [extDir]/locallang.php and returns the $LOCAL_LANG array found in that file.
*
* @return array Local lang array
*/
function includeLL() {
global $LANG;

return $LANG->includeLLFile('EXT:version/locallang.xml',FALSE);
}
}



if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/version/class.tx_version_cm1.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/version/class.tx_version_cm1.php']);
}
?>
    (1-1/1)