Commit c715875d authored by Thomas Maroschik's avatar Thomas Maroschik
Browse files

[TASK] Merge submodule version into core

parents 61c9b626 fdfc219d
[submodule "typo3/sysext/version"]
path = typo3/sysext/version
url = git://git.typo3.org/TYPO3v4/CoreProjects/workspaces/version.git
version @ 10994a57
Subproject commit 10994a5704cef2fc9094c68ab14109edd54b7b04
<?php
/***************************************************************
* Copyright notice
*
* (c) 2004-2009 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 Skrhj <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 && $uid>0 && $BE_USER->check('modules','web_txversionM1')) {
// Returns directly, because the clicked item was not from the pages table
if (in_array('versioning', $backRef->disabledItems) || !$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']->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
);
// "Send to review" element added:
$url = t3lib_extMgm::extRelPath('version').'cm1/index.php?id='.($table=='pages'?$uid:$backRef->rec['pid']).'&table='.rawurlencode($table).'&uid='.$uid.'&sendToReview=1';
$localItems[] = $backRef->linkItem(
$GLOBALS['LANG']->getLLL('title_review',$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']);
}
?>
\ No newline at end of file
<?php
// DO NOT REMOVE OR CHANGE THESE 3 LINES:
define('TYPO3_MOD_PATH', 'sysext/version/cm1/');
$BACK_PATH = '../../../';
$MCONF['name'] = 'web_txversionM1';
$MLANG['default']['tabs_images']['tab'] = 'cm_icon.gif';
$MLANG['default']['ll_ref'] = 'LLL:EXT:version/locallang.xml';
$MCONF['script'] = 'index.php';
$MCONF['access'] = 'user,group';
?>
\ No newline at end of file
This diff is collapsed.
<?php
########################################################################
# Extension Manager/Repository config file for ext "version".
#
# Auto generated 21-10-2009 11:27
#
# Manual updates:
# Only the data in the array - everything else is removed by next
# writing. "version" and "dependencies" must not be touched!
########################################################################
$EM_CONF[$_EXTKEY] = array(
'title' => 'Versioning Management',
'description' => 'Backend Interface for management of the versioning API.',
'category' => 'be',
'author' => 'Kasper Skaarhoj',
'author_email' => 'kasperYYYY@typo3.com',
'shy' => '',
'dependencies' => '',
'conflicts' => '',
'priority' => '',
'module' => 'cm1',
'doNotLoadInFE' => 0,
'state' => 'beta',
'internal' => '',
'uploadfolder' => 0,
'createDirs' => '',
'modify_tables' => '',
'clearCacheOnLoad' => 0,
'lockType' => '',
'author_company' => '',
'version' => '1.2.0',
'_md5_values_when_last_written' => 'a:9:{s:24:"class.tx_version_cm1.php";s:4:"0bc1";s:12:"ext_icon.gif";s:4:"3ca2";s:14:"ext_tables.php";s:4:"46e8";s:13:"locallang.xml";s:4:"cc5e";s:7:"tca.php";s:4:"fbe7";s:13:"cm1/clear.gif";s:4:"cc11";s:15:"cm1/cm_icon.gif";s:4:"f35b";s:12:"cm1/conf.php";s:4:"6ed8";s:13:"cm1/index.php";s:4:"8921";}',
'constraints' => array(
'depends' => array(
),
'conflicts' => array(
),
'suggests' => array(
),
),
'suggests' => array(
),
);
?>
\ No newline at end of file
<?php
if (!defined ('TYPO3_MODE')) die ('Access denied.');
if (TYPO3_MODE=='BE') {
$GLOBALS['TBE_MODULES_EXT']['xMOD_alt_clickmenu']['extendCMclasses'][]=array(
'name' => 'tx_version_cm1',
'path' => t3lib_extMgm::extPath($_EXTKEY).'class.tx_version_cm1.php'
);
t3lib_extMgm::addModule('web','txversionM1','',t3lib_extMgm::extPath($_EXTKEY).'cm1/');
}
/**
* Table "sys_workspace":
*/
$TCA['sys_workspace'] = array(
'ctrl' => array(
'label' => 'title',
'tstamp' => 'tstamp',
'title' => 'LLL:EXT:lang/locallang_tca.php:sys_workspace',
'adminOnly' => 1,
'rootLevel' => 1,
'delete' => 'deleted',
'iconfile' => 'sys_workspace.png',
'dynamicConfigFile' => t3lib_extMgm::extPath($_EXTKEY) . 'tca.php',
'versioningWS_alwaysAllowLiveEdit' => true,
'dividers2tabs' => true
)
);
?>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3locallang>
<meta type="array">
<description>Module labels</description>
<type>module</type>
</meta>
<data type="array">
<languageKey index="default" type="array">
<label index="title">Versioning</label>
<label index="title_review">Send to review/pub</label>
<label index="mlang_labels_tablabel">Page and content versioning and workspace management for pages.</label>
<label index="mlang_labels_tabdescr">The Web&gt;Versioning module provides access to versioning features for the page tree.</label>
<label index="mlang_tabs_tab">Versioning</label>
<label index="clickAPage_header">Web&gt;Versioning module</label>
<label index="clickAPage_content">Please click a page in the pagetree frame to see the versioning module.</label>
<label index="filter_drafts">Drafts</label>
<label index="filter_archive">Archive</label>
<label index="filter_all">All</label>
<label index="diffing">DIFFING</label>
<label index="fieldname">Fieldname</label>
<label index="coloredDiffView">Colored diff-view</label>
<label index="recordsMatchesCompletely">Records matches completely on all editable fields!</label>
<label index="errorRecordsNotFound">ERROR: Records could strangely not be found!</label>
<label index="errorDiffSources">ERROR: You didn't select two sources for diffing!</label>
<label index="tblHeader_title">Title</label>
<label index="tblHeader_uid">UID</label>
<label index="tblHeader_t3ver_oid">oid</label>
<label index="tblHeader_t3ver_id">id</label>
<label index="tblHeader_t3ver_wsid">wsid</label>
<label index="tblHeader_t3ver_state">state</label>
<label index="tblHeader_t3ver_stage">stage</label>
<label index="tblHeader_t3ver_count">count</label>
<label index="tblHeader_pid">pid</label>
<label index="tblHeader_t3ver_label">Label</label>
<label index="tblHeaderDesc_title">Header of element</label>
<label index="tblHeaderDesc_uid">Unique ID of element</label>
<label index="tblHeaderDesc_t3ver_oid">t3ver_oid - Reference to live version UID</label>
<label index="tblHeaderDesc_t3ver_id">t3ver_id - Version number, incremental integer</label>
<label index="tblHeaderDesc_t3ver_wsid">t3ver_wsid - Workspace ID. There can be only one version of an element per ID (except ID zero).</label>
<label index="tblHeaderDesc_t3ver_state">t3ver_state - Special states of a version: 1=Placeholder for &quot;New&quot;. 2=Marked deleted.</label>
<label index="tblHeaderDesc_t3ver_stage">t3ver_stage - Publishing stage: Editing (0), review (1), publish (10), rejected (-1).</label>
<label index="tblHeaderDesc_t3ver_count">t3ver_count - Life cycle counter. Incremented each time element is unpublished.</label>
<label index="tblHeaderDesc_pid">Page ID</label>
<label index="tblHeaderDesc_t3ver_label">Label</label>
<label index="diff">Diff</label>
<label index="swapWithCurrent">SWAP with current</label>
<label index="currentOnlineVersion">CURRENT ONLINE VERSION!</label>
<label index="cmdPid0">Page: Page + content</label>
<label index="cmdPid100">Branch: All subpages</label>
<label index="cmdPid1">Element: Just record</label>
<label index="createNewVersion">Create new version</label>
<label index="previewLink">Preview Link</label>
<label index="publishPage">Publish Page</label>
<label index="swapPage">Swap page</label>
<label index="publishPageQuestion">Are you sure you want to publish all content %sfrom this page?</label>
<label index="swapPageQuestion">Are you sure you want to publish (swap) all content %sfrom this page?</label>
<label index="publishPageQuestionStage">in &quot;Publish&quot; stage </label>
<label index="previewUrl">Preview Url:</label>
<label index="previewInstruction">You can preview this page from the workspace using this link for the next %s hours (does not require backend login):</label>
<label index="versionDetails">Details for version</label>
<label index="wsManagement">Workspace management</label>
<label index="showDiffView">Show difference view</label>
<label index="liveVersion">Live Version:</label>
<label index="wsVersions">Workspace Versions:</label>
<label index="controls">Controls:</label>
<label index="goBack">Click here to go back</label>
<label index="showAllInformation">Show all information</label>
<label index="newElement">New element</label>
<label index="deletedElement">Deleted element</label>
<label index="moveToPlaceholder">Move-to placeholder (destination)</label>
<label index="moveToPointer">Move-to pointer (source)</label>
<label index="notAvailable">N/A</label>
<label index="change">change:</label>
<label index="element"> [Element]</label>
<label index="page"> [Page]</label>
<label index="branch"> [Branch]</label>
<label index="otherVersions">Other version(s) in workspace </label>
<label index="multipleVersions">Multiple versions in same workspace!</label>
<label index="versionInVersion">Version inside version!</label>
<label index="lifecycle">Lifecycle</label>
<label index="workspace">Workspace</label>
<label index="diffToLiveElement">Difference to live element:</label>
<label index="commentForReviewer">Comment for Reviewer:</label>
<label index="commentForPublisher">Comment for Publisher:</label>
<label index="sendItemsToReview">Sending %s item(s) to review. </label>
<label index="sendAllToReview">Send all to Review</label>
<label index="approveToPublish">Approving %s item(s) to publishing. </label>
<label index="approveAllToPublish">Approve all for Publishing</label>
<label index="offline">[Offline]</label>
<label index="draft">Draft</label>
<label index="archive">Archive</label>
<label index="publishedXTimes">Published %s times</label>
<label index="stage.sentToReview">sent element to &quot;Review&quot;</label>
<label index="stage.approvedForPublish">approved for &quot;Publish&quot;</label>
<label index="stage.rejectedElement">rejected element!</label>
<label index="stage.resetToEdit">reset to &quot;Editing&quot;</label>
<label index="stage.undefined">[undefined]</label>
<label index="userComment">User Comment</label>
<label index="subElementsClick">[Sub elements, click for details]</label>
<label index="subElements">[Sub elements]</label>
<label index="completeMatch">Complete match on editable fields.</label>
<label index="editing">Editing</label>
<label index="sendToReview">Send to Review</label>
<label index="review">Review</label>
<label index="swap">Swap</label>
<label index="approveForPublishing">Approve for Publishing</label>
<label index="publish">Publish</label>
<label index="rejected">Rejected</label>
<label index="comment">Comment:</label>
<label index="resetStage">Reset stage</label>
<label index="undefined">Undefined</label>
<label index="rejectExplain">Please explain why you reject:</label>
<label index="removeFromWorkspace">Remove from workspace</label>
<label index="showLog">Show Log</label>
<label index="liveWorkspace">[Live workspace]</label>
<label index="draftWorkspaces">Draft Workspaces</label>
<label index="defaultDraft">[Default Draft]</label>
<label index="errors">Errors:</label>
<label index="refresh">Refresh</label>
<label index="allowPreviewOfWholeWorkspace">Allow preview of whole workspace</label>
</languageKey>
</data>
</T3locallang>
\ No newline at end of file
<?php
/**
* System workspaces - Defines the offline workspaces available to users in TYPO3.
*/
$TCA['sys_workspace'] = array(
'ctrl' => $TCA['sys_workspace']['ctrl'],
'columns' => array(
'title' => array(
'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.title',
'config' => array(
'type' => 'input',
'size' => '20',
'max' => '30',
'eval' => 'required,trim,unique'
)
),
'description' => array(
'label' => 'LLL:EXT:lang/locallang_general.xml:LGL.description',
'config' => array(
'type' => 'text',
'rows' => 5,
'cols' => 30
)
),
'adminusers' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.adminusers',
'config' => array(
'type' => 'group',
'internal_type' => 'db',
'allowed' => 'be_users',
'size' => '3',
'maxitems' => '10',
'autoSizeMax' => 10,
'show_thumbs' => '1',
'wizards' => array(
'suggest' => array(
'type' => 'suggest',
)
)
)
),
'members' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.members',
'config' => array(
'type' => 'group',
'internal_type' => 'db',
'allowed' => 'be_users,be_groups',
'prepend_tname' => 1,
'size' => '3',
'maxitems' => '100',
'autoSizeMax' => 10,
'show_thumbs' => '1',
'wizards' => array(
'suggest' => array(
'type' => 'suggest',
)
)
)
),
'reviewers' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.reviewers',
'config' => array(
'type' => 'group',
'internal_type' => 'db',
'allowed' => 'be_users,be_groups',
'prepend_tname' => 1,
'size' => '3',
'maxitems' => '100',
'autoSizeMax' => 10,
'show_thumbs' => '1',
'wizards' => array(
'suggest' => array(
'type' => 'suggest',
)
)
)
),
'db_mountpoints' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:db_mountpoints',
'config' => array(
'type' => 'group',
'internal_type' => 'db',
'allowed' => 'pages',
'size' => '3',
'maxitems' => '10',
'autoSizeMax' => 10,
'show_thumbs' => '1',
'wizards' => array(
'suggest' => array(
'type' => 'suggest',
)
)
)
),
'file_mountpoints' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:file_mountpoints',
'config' => array(
'type' => 'select',
'foreign_table' => 'sys_filemounts',
'foreign_table_where' => ' AND sys_filemounts.pid=0 ORDER BY sys_filemounts.title',
'size' => '3',
'maxitems' => '10',
'autoSizeMax' => 10,
'renderMode' => $GLOBALS['TYPO3_CONF_VARS']['BE']['accessListRenderMode'],
'iconsInOptionTags' => 1,
)
),
'publish_time' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.publish_time',
'config' => array(
'type' => 'input',
'size' => '8',
'max' => '20',
'eval' => 'datetime',
'default' => '0',
'checkbox' => '0'
)
),
'unpublish_time' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.unpublish_time',
'config' => array(
'type' => 'input',
'size' => '8',
'max' => '20',
'eval' => 'datetime',
'checkbox' => '0',
'default' => '0',
'range' => array(
'upper' => mktime(0,0,0,12,31,2020),
)
)
),
'freeze' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.freeze',
'config' => array(
'type' => 'check',
'default' => '0'
)
),
'live_edit' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.live_edit',
'config' => array(
'type' => 'check',
'default' => '0'
)
),
'review_stage_edit' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.review_stage_edit',
'config' => array(
'type' => 'check',
'default' => '0'
)
),
'disable_autocreate' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.disable_autocreate',
'config' => array(
'type' => 'check',
'default' => '0'
)
),
'swap_modes' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.swap_modes',
'config' => array(
'type' => 'select',
'items' => array(
array('', 0),
array('Swap-Into-Workspace on Auto-publish', 1),
array('Disable Swap-Into-Workspace', 2)
),
)
),
'vtypes' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.vtypes',
'config' => array(
'type' => 'check',
'items' => array(
array('Element', 0),
array('Page', 0),
array('Branch', 0)
),
)
),
'publish_access' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.publish_access',
'config' => array(
'type' => 'check',
'items' => array(
array('Publish only content in publish stage', 0),
array('Only workspace owner can publish', 0),
),
)
),
'stagechg_notification' => array(
'label' => 'LLL:EXT:lang/locallang_tca.xml:sys_workspace.stagechg_notification',
'config' => array(
'type' => 'select',
'items' => array(
array('', 0),
array('Notify users on next stage only', 1),
array('Notify all users on any change', 10)
),
)
),
),
'types' => array(
'0' => array('showitem' => 'title,description,
--div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.users,adminusers,members,reviewers,stagechg_notification,
--div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.mountpoints,db_mountpoints,file_mountpoints,
--div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.publishing,publish_time,unpublish_time,
--div--;LLL:EXT:lang/locallang_tca.xml:sys_filemounts.tabs.other,freeze,live_edit,review_stage_edit,disable_autocreate,swap_modes,vtypes,publish_access'
)
)
);
?>
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment