Bug #25011 » rtehtmlarea_cleanup_17554.patch
typo3/sysext/rtehtmlarea/ext_conf_template.txt (copie de travail) | ||
---|---|---|
# cat=basic/enable/140; type=boolean; label=Enable links accessibility icons: If set, accessibility icons will be added in front of links.
|
||
enableAccessibilityIcons = 0
|
||
# cat=basic/enable/130; type=boolean; label=Enable the DAM media browser: If set and if the DAM extension is installed, the DAM media browser will be used. DEPRECATED for DAM 1.1+. Use DAM EM setting instead.
|
||
enableDAMBrowser = 0
|
||
# cat=basic/enable/170; type=boolean; label=Force Aspell command mode: If set, the spellchecker will use the Aspell command interface. Presumably. PHP is compiled with pspell, but with an old version of Aspell. If set, PHP safe mode should NOT be enabled.
|
||
forceCommandMode = 0
|
||
typo3/sysext/rtehtmlarea/ext_localconf.php (copie de travail) | ||
---|---|---|
$TYPO3_CONF_VARS['EXTCONF'][$_EXTKEY]['enableCompressedScripts'] = 0;
|
||
}
|
||
// Integrating with DAM
|
||
// DAM browser may be enabled here only for DAM version lower than 1.1
|
||
// If DAM 1.1+ is installed, the setting must be unset, DAM own EM setting should be used
|
||
$TYPO3_CONF_VARS['EXTCONF'][$_EXTKEY]['enableDAMBrowser'] = 0;
|
||
if (t3lib_extMgm::isLoaded('dam')) {
|
||
$saveExtKey = $_EXTKEY;
|
||
$_EXTKEY = 'dam';
|
||
require(t3lib_extMgm::extPath('dam') . 'ext_emconf.php');
|
||
$_EXTKEY = $saveExtKey;
|
||
if (t3lib_div::int_from_ver($EM_CONF['dam']['version']) < 1001000) {
|
||
// Register DAM element browser rendering
|
||
$TYPO3_CONF_VARS['EXTCONF'][$_EXTKEY]['enableDAMBrowser'] = $_EXTCONF['enableDAMBrowser'] ? $_EXTCONF['enableDAMBrowser'] : 0;
|
||
if ($TYPO3_CONF_VARS['EXTCONF'][$_EXTKEY]['enableDAMBrowser']) {
|
||
$TYPO3_CONF_VARS['SC_OPTIONS']['typo3/browse_links.php']['browserRendering'][] = 'EXT:'.$_EXTKEY.'/mod4/class.tx_rtehtmlarea_dam_browse_media.php:&tx_rtehtmlarea_dam_browse_media';
|
||
$TYPO3_CONF_VARS['SC_OPTIONS']['typo3/browse_links.php']['browserRendering'][] = 'EXT:'.$_EXTKEY.'/mod3/class.tx_rtehtmlarea_dam_browse_links.php:&tx_rtehtmlarea_dam_browse_links';
|
||
}
|
||
}
|
||
}
|
||
// Configure Lorem Ipsum hook to insert nonsense in wysiwyg mode
|
||
if (t3lib_extMgm::isLoaded('lorem_ipsum') && (TYPO3_MODE == 'BE')) {
|
||
$TYPO3_CONF_VARS['EXTCONF']['lorem_ipsum']['RTE_insert'][] = 'tx_rtehtmlarea_base->loremIpsumInsert';
|
||
}
|
||
// Initialize plugin registration array
|
||
$TYPO3_CONF_VARS['EXTCONF'][$_EXTKEY]['plugins'] = array();
|
||
// Editor Mode configuration
|
typo3/sysext/rtehtmlarea/mod3/class.tx_rtehtmlarea_dam_browse_links.php (copie de travail) | ||
---|---|---|
<?php
|
||
/***************************************************************
|
||
* Copyright notice
|
||
*
|
||
* (c) 1999-2011 Kasper Skårhøj (kasperYYYY@typo3.com)
|
||
* (c) 2005-2011 Stanislas Rolland <typo3(arobas)sjbr.ca>
|
||
* 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!
|
||
***************************************************************/
|
||
/**
|
||
* Displays the page/file tree for browsing database records or files.
|
||
* Used from TCEFORMS an other elements
|
||
* In other words: This is the ELEMENT BROWSER!
|
||
*
|
||
* Adapted for htmlArea RTE by Stanislas Rolland
|
||
*
|
||
* TYPO3 SVN ID: $Id$
|
||
*
|
||
* @author Kasper Skårhøj <kasperYYYY@typo3.com>
|
||
* @author Stanislas Rolland <typo3(arobas)sjbr.ca>
|
||
*/
|
||
require_once(t3lib_extMgm::extPath('dam').'class.tx_dam_browse_media.php');
|
||
/**
|
||
* Script class for the Element Browser window.
|
||
*
|
||
* @author Kasper Skårhøj <kasperYYYY@typo3.com>
|
||
* @package TYPO3
|
||
* @subpackage core
|
||
*/
|
||
class tx_rtehtmlarea_dam_browse_links extends tx_dam_browse_media {
|
||
// Internal, static:
|
||
var $setTarget; // Target (RTE specific)
|
||
var $setClass; // Class (RTE specific)
|
||
var $setTitle; // Title (RTE specific)
|
||
var $contentTypo3Language;
|
||
var $contentTypo3Charset;
|
||
var $editorNo;
|
||
var $buttonConfig = array();
|
||
protected $classesAnchorDefault = array();
|
||
protected $classesAnchorDefaultTitle = array();
|
||
protected $classesAnchorDefaultTarget = array();
|
||
protected $classesAnchorJSOptions = array();
|
||
public $allowedItems;
|
||
/**
|
||
* Check if this object should be rendered.
|
||
*
|
||
* @param string $type Type: "file", ...
|
||
* @param object $pObj Parent object.
|
||
* @return boolean
|
||
* @see SC_browse_links::main()
|
||
*/
|
||
function isValid($type, $pObj) {
|
||
$isValid = false;
|
||
$pArr = explode('|', t3lib_div::_GP('bparams'));
|
||
if ($type=='rte' && $pObj->button == 'link') {
|
||
$isValid = true;
|
||
}
|
||
return $isValid;
|
||
}
|
||
/**
|
||
* Rendering
|
||
* Called in SC_browse_links::main() when isValid() returns true;
|
||
*
|
||
* @param string $type Type: "file", ...
|
||
* @param object $pObj Parent object.
|
||
* @return string Rendered content
|
||
* @see SC_browse_links::main()
|
||
*/
|
||
function render($type, $pObj) {
|
||
global $LANG, $BE_USER, $BACK_PATH;
|
||
$this->pObj = $pObj;
|
||
// init class browse_links
|
||
$this->init();
|
||
switch((string)$this->mode) {
|
||
case 'rte':
|
||
$content = $this->main_rte();
|
||
break;
|
||
default:
|
||
$content = '';
|
||
break;
|
||
}
|
||
return $content;
|
||
}
|
||
/**
|
||
* Constructor:
|
||
* Initializes a lot of variables, setting JavaScript functions in header etc.
|
||
*
|
||
* @return void
|
||
*/
|
||
function init() {
|
||
global $BE_USER,$BACK_PATH,$LANG,$TYPO3_CONF_VARS;
|
||
// Main GPvars:
|
||
$this->siteUrl = t3lib_div::getIndpEnv('TYPO3_SITE_URL');
|
||
$this->act = t3lib_div::_GP('act');
|
||
$this->expandPage = t3lib_div::_GP('expandPage');
|
||
$this->expandFolder = t3lib_div::_GP('expandFolder');
|
||
$this->pointer = t3lib_div::_GP('pointer');
|
||
$this->P = t3lib_div::_GP('P');
|
||
$this->PM = t3lib_div::_GP('PM');
|
||
// Find RTE parameters
|
||
$this->bparams = t3lib_div::_GP('bparams');
|
||
$this->contentTypo3Language = t3lib_div::_GP('contentTypo3Language');
|
||
$this->contentTypo3Charset = t3lib_div::_GP('contentTypo3Charset');
|
||
$this->editorNo = t3lib_div::_GP('editorNo');
|
||
$this->RTEtsConfigParams = t3lib_div::_GP('RTEtsConfigParams');
|
||
$pArr = explode('|', $this->bparams);
|
||
$pRteArr = explode(':', $pArr[1]);
|
||
$this->editorNo = $this->editorNo ? $this->editorNo : $pRteArr[0];
|
||
$this->contentTypo3Language = $this->contentTypo3Language ? $this->contentTypo3Language : $pRteArr[1];
|
||
$this->contentTypo3Charset = $this->contentTypo3Charset ? $this->contentTypo3Charset : $pRteArr[2];
|
||
$this->RTEtsConfigParams = $this->RTEtsConfigParams ? $this->RTEtsConfigParams : $pArr[2];
|
||
// Find "mode"
|
||
$this->mode=t3lib_div::_GP('mode');
|
||
if (!$this->mode) {
|
||
$this->mode='rte';
|
||
}
|
||
// init fileProcessor
|
||
$this->fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
|
||
$this->fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
|
||
// init hook objects:
|
||
$this->hookObjects = array();
|
||
if (is_array($TYPO3_CONF_VARS['SC_OPTIONS']['typo3/class.browse_links.php']['browseLinksHook'])) {
|
||
foreach($TYPO3_CONF_VARS['SC_OPTIONS']['typo3/class.browse_links.php']['browseLinksHook'] as $classData) {
|
||
$processObject = t3lib_div::getUserObj($classData);
|
||
if(!($processObject instanceof t3lib_browseLinksHook)) {
|
||
throw new UnexpectedValueException('$processObject must implement interface t3lib_browseLinksHook', 1195115652);
|
||
}
|
||
$parameters = array();
|
||
$processObject->init($this, $parameters);
|
||
$this->hookObjects[] = $processObject;
|
||
}
|
||
}
|
||
// Site URL
|
||
$this->siteURL = t3lib_div::getIndpEnv('TYPO3_SITE_URL'); // Current site url
|
||
// the script to link to
|
||
$this->thisScript = t3lib_div::getIndpEnv('SCRIPT_NAME');
|
||
// CurrentUrl - the current link url must be passed around if it exists
|
||
if ($this->mode=='wizard') {
|
||
$currentLinkParts = t3lib_div::trimExplode(' ',$this->P['currentValue']);
|
||
$this->curUrlArray = array(
|
||
'target' => $currentLinkParts[1]
|
||
);
|
||
$this->curUrlInfo=$this->parseCurUrl($this->siteURL.'?id='.$currentLinkParts[0],$this->siteURL);
|
||
} else {
|
||
$this->curUrlArray = t3lib_div::_GP('curUrl');
|
||
if ($this->curUrlArray['all']) {
|
||
$this->curUrlArray=t3lib_div::get_tag_attributes($this->curUrlArray['all']);
|
||
}
|
||
$this->curUrlInfo=$this->parseCurUrl($this->curUrlArray['href'],$this->siteURL);
|
||
}
|
||
// Determine nature of current url:
|
||
$this->act=t3lib_div::_GP('act');
|
||
if (!$this->act) {
|
||
$this->act=$this->curUrlInfo['act'];
|
||
}
|
||
// Initializing the titlevalue
|
||
$this->setTitle = $LANG->csConvObj->conv($this->curUrlArray['title'], 'utf-8', $LANG->charSet);
|
||
// Rich Text Editor specific configuration:
|
||
$addPassOnParams='';
|
||
$classSelected = array();
|
||
if ((string)$this->mode=='rte') {
|
||
$RTEtsConfigParts = explode(':',$this->RTEtsConfigParams);
|
||
$addPassOnParams .= '&RTEtsConfigParams='.rawurlencode($this->RTEtsConfigParams);
|
||
$addPassOnParams .= ($this->contentTypo3Language ? '&contentTypo3Language=' . rawurlencode($this->contentTypo3Language) : '');
|
||
$addPassOnParams .= ($this->contentTypo3Charset ? '&contentTypo3Charset=' . rawurlencode($this->contentTypo3Charset) : '');
|
||
$RTEsetup = $BE_USER->getTSConfig('RTE',t3lib_BEfunc::getPagesTSconfig($RTEtsConfigParts[5]));
|
||
$this->thisConfig = t3lib_BEfunc::RTEsetup($RTEsetup['properties'],$RTEtsConfigParts[0],$RTEtsConfigParts[2],$RTEtsConfigParts[4]);
|
||
if (is_array($this->thisConfig['buttons.']) && is_array($this->thisConfig['buttons.']['link.'])) {
|
||
$this->buttonConfig = $this->thisConfig['buttons.']['link.'];
|
||
}
|
||
if ($this->thisConfig['classesAnchor'] || $this->thisConfig['classesLinks']) {
|
||
$this->setClass = $this->curUrlArray['class'];
|
||
if ($this->thisConfig['classesAnchor']) {
|
||
$classesAnchorArray = t3lib_div::trimExplode(',',$this->thisConfig['classesAnchor'], 1);
|
||
} else {
|
||
$classesAnchorArray = t3lib_div::trimExplode(',',$this->thisConfig['classesLinks'], 1);
|
||
}
|
||
$anchorTypes = array( 'page', 'url', 'file', 'mail', 'spec');
|
||
$classesAnchor = array();
|
||
$classesAnchor['all'] = array();
|
||
if (is_array($RTEsetup['properties']['classesAnchor.'])) {
|
||
foreach ($RTEsetup['properties']['classesAnchor.'] as $label => $conf) {
|
||
if (in_array($conf['class'], $classesAnchorArray)) {
|
||
$classesAnchor['all'][] = $conf['class'];
|
||
if (in_array($conf['type'], $anchorTypes)) {
|
||
$classesAnchor[$conf['type']][] = $conf['class'];
|
||
if (is_array($this->thisConfig['classesAnchor.']) && is_array($this->thisConfig['classesAnchor.']['default.']) && $this->thisConfig['classesAnchor.']['default.'][$conf['type']] == $conf['class']) {
|
||
$this->classesAnchorDefault[$conf['type']] = $conf['class'];
|
||
if ($conf['titleText']) {
|
||
$this->classesAnchorDefaultTitle[$conf['type']] = $this->getLLContent(trim($conf['titleText']));
|
||
}
|
||
if ($conf['target']) {
|
||
$this->classesAnchorDefaultTarget[$conf['type']] = trim($conf['target']);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
foreach ($anchorTypes as $anchorType) {
|
||
foreach ($classesAnchorArray as $class) {
|
||
if (!in_array($class, $classesAnchor['all']) || (in_array($class, $classesAnchor['all']) && is_array($classesAnchor[$anchorType]) && in_array($class, $classesAnchor[$anchorType]))) {
|
||
$selected = '';
|
||
if ($this->setClass == $class || (!$this->setClass && $this->classesAnchorDefault[$anchorType] == $class)) {
|
||
$selected = 'selected="selected"';
|
||
$classSelected[$anchorType] = true;
|
||
}
|
||
$classLabel = (is_array($RTEsetup['properties']['classes.']) && is_array($RTEsetup['properties']['classes.'][$class.'.']) && $RTEsetup['properties']['classes.'][$class.'.']['name']) ? $this->getPageConfigLabel($RTEsetup['properties']['classes.'][$class.'.']['name'], 0) : $class;
|
||
$classStyle = (is_array($RTEsetup['properties']['classes.']) && is_array($RTEsetup['properties']['classes.'][$class.'.']) && $RTEsetup['properties']['classes.'][$class.'.']['value']) ? $RTEsetup['properties']['classes.'][$class.'.']['value'] : '';
|
||
$this->classesAnchorJSOptions[$anchorType] .= '<option ' . $selected . ' value="' .$class . '"' . ($classStyle?' style="'.$classStyle.'"':'') . '>' . $classLabel . '</option>';
|
||
}
|
||
}
|
||
if ($this->classesAnchorJSOptions[$anchorType]) {
|
||
$selected = '';
|
||
if (!$this->setClass && !$this->classesAnchorDefault[$anchorType]) $selected = 'selected="selected"';
|
||
$this->classesAnchorJSOptions[$anchorType] = '<option ' . $selected . ' value=""></option>' . $this->classesAnchorJSOptions[$anchorType];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
// Initializing the target value (RTE)
|
||
// Unset the target if it is set to a value different than default and if no class is selected and the target field is not displayed
|
||
// In other words, do not forward the target if we changed tab and the target field is not displayed
|
||
$this->setTarget = (isset($this->curUrlArray['target'])
|
||
&& !(
|
||
($this->curUrlArray['target'] != $this->thisConfig['defaultLinkTarget'])
|
||
&& !$classSelected[$this->act]
|
||
&& is_array($this->buttonConfig['targetSelector.']) && $this->buttonConfig['targetSelector.']['disabled'] && is_array($this->buttonConfig['popupSelector.']) && $this->buttonConfig['popupSelector.']['disabled'])
|
||
) ? $this->curUrlArray['target'] : '';
|
||
if ($this->thisConfig['defaultLinkTarget'] && !isset($this->curUrlArray['target'])) {
|
||
$this->setTarget=$this->thisConfig['defaultLinkTarget'];
|
||
}
|
||
// init the DAM object
|
||
$this->initDAM();
|
||
$this->getModSettings();
|
||
$this->processParams();
|
||
// Creating backend template object:
|
||
$this->doc = t3lib_div::makeInstance('template');
|
||
$this->doc->backPath = $BACK_PATH;
|
||
}
|
||
function reinitParams() {
|
||
if ($this->editorNo) {
|
||
$pArr = explode('|', $this->bparams);
|
||
$pArr[1] = implode(':', array($this->editorNo, $this->contentTypo3Language, $this->contentTypo3Charset));
|
||
$pArr[2] = $this->RTEtsConfigParams;
|
||
$this->bparams = implode('|', $pArr);
|
||
}
|
||
parent::reinitParams();
|
||
}
|
||
/**
|
||
* [Describe function...]
|
||
*
|
||
* @return [type] ...
|
||
*/
|
||
function getJSCode() {
|
||
global $LANG,$BACK_PATH,$TYPO3_CONF_VARS;
|
||
// BEGIN accumulation of header JavaScript:
|
||
$JScode = '';
|
||
$JScode.= '
|
||
var plugin = window.parent.RTEarea["' . $this->editorNo . '"].editor.getPlugin("TYPO3Link");
|
||
var HTMLArea = window.parent.HTMLArea;
|
||
// This JavaScript is primarily for RTE/Link. jumpToUrl is used in the other cases as well...
|
||
var add_href="'.($this->curUrlArray['href']?'&curUrl[href]='.rawurlencode($this->curUrlArray['href']):'').'";
|
||
var add_target="'.($this->setTarget?'&curUrl[target]='.rawurlencode($this->setTarget):'').'";
|
||
var add_class="'.($this->setClass?'&curUrl[class]='.rawurlencode($this->setClass):'').'";
|
||
var add_title="'.($this->setTitle?'&curUrl[title]='.rawurlencode($this->setTitle):'').'";
|
||
var add_params="'.($this->bparams?'&bparams='.rawurlencode($this->bparams):'').'";
|
||
var cur_href="'.($this->curUrlArray['href']?$this->curUrlArray['href']:'').'";
|
||
var cur_target="'.($this->setTarget?$this->setTarget:'').'";
|
||
var cur_class="'.($this->setClass?$this->setClass:'').'";
|
||
var cur_title="'.($this->setTitle?$this->setTitle:'').'";
|
||
function setTarget(value) {
|
||
cur_target=value;
|
||
add_target="&curUrl[target]="+encodeURIComponent(value);
|
||
}
|
||
function setClass(value) {
|
||
cur_class=value;
|
||
add_class="&curUrl[class]="+encodeURIComponent(value);
|
||
}
|
||
function setTitle(value) {
|
||
cur_title=value;
|
||
add_title="&curUrl[title]="+encodeURIComponent(value);
|
||
}
|
||
function setValue(value) {
|
||
cur_href=value;
|
||
add_href="&curUrl[href]="+value;
|
||
}';
|
||
// Functions used, if the link selector is in RTE mode:
|
||
$JScode.='
|
||
function link_typo3Page(id,anchor) {
|
||
var theLink = \''.$this->siteURL.'?id=\'+id+(anchor?anchor:"");
|
||
if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value);
|
||
if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value);
|
||
if (document.ltargetform.ltarget) setTarget(document.ltargetform.ltarget.value);
|
||
plugin.createLink(theLink,cur_target,cur_class,cur_title);
|
||
return false;
|
||
}
|
||
function link_folder(folder) { //
|
||
var theLink = \''.$this->siteURL.'\'+folder;
|
||
if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value);
|
||
if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value);
|
||
if (document.ltargetform.ltarget) setTarget(document.ltargetform.ltarget.value);
|
||
plugin.createLink(theLink,cur_target,cur_class,cur_title);
|
||
return false;
|
||
}
|
||
function link_spec(theLink) { //
|
||
if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value);
|
||
if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value);
|
||
if (document.ltargetform.ltarget) setTarget(document.ltargetform.ltarget.value);
|
||
plugin.createLink(theLink,cur_target,cur_class,cur_title);
|
||
return false;
|
||
}
|
||
function link_current() { //
|
||
if (document.ltargetform.anchor_title) setTitle(document.ltargetform.anchor_title.value);
|
||
if (document.ltargetform.anchor_class) setClass(document.ltargetform.anchor_class.value);
|
||
if (document.ltargetform.ltarget) setTarget(document.ltargetform.ltarget.value);
|
||
if (cur_href!="http://" && cur_href!="mailto:") {
|
||
plugin.createLink(cur_href,cur_target,cur_class,cur_title);
|
||
}
|
||
return false;
|
||
}
|
||
';
|
||
// General "jumpToUrl" function:
|
||
$JScode.='
|
||
function jumpToUrl(URL,anchor) { //
|
||
var add_editorNo = URL.indexOf("editorNo=")==-1 ? "&editorNo='.$this->editorNo.'" : "";
|
||
var add_contentTypo3Language = URL.indexOf("contentTypo3Language=")==-1 ? "&contentTypo3Language='.$this->contentTypo3Language.'" : "";
|
||
var add_contentTypo3Charset = URL.indexOf("contentTypo3Charset=")==-1 ? "&contentTypo3Charset='.$this->contentTypo3Charset.'" : "";
|
||
var add_act = URL.indexOf("act=")==-1 ? "&act='.$this->act.'" : "";
|
||
var add_mode = URL.indexOf("mode=")==-1 ? "&mode='.$this->mode.'" : "";
|
||
var theLocation = URL+add_act+add_editorNo+add_contentTypo3Language+add_contentTypo3Charset+add_mode+add_href+add_target+add_class+add_title+add_params'.($addPassOnParams?'+"'.$addPassOnParams.'"':'').'+(anchor?anchor:"");
|
||
window.location.href = theLocation;
|
||
return false
|
||
}
|
||
';
|
||
// This is JavaScript especially for the TBE Element Browser!
|
||
$pArr = explode('|',$this->bparams);
|
||
$formFieldName = 'data['.$pArr[0].']['.$pArr[1].']['.$pArr[2].']';
|
||
$JScode.='
|
||
var elRef="";
|
||
var targetDoc="";
|
||
function launchView(url) { //
|
||
var thePreviewWindow="";
|
||
thePreviewWindow = window.open("' . $BACK_PATH . 'show_item.php?table="+url,"ShowItem","height=300,width=410,status=0,menubar=0,resizable=0,location=0,directories=0,scrollbars=1,toolbar=0");
|
||
if (thePreviewWindow && thePreviewWindow.focus) {
|
||
thePreviewWindow.focus();
|
||
}
|
||
}
|
||
function setReferences() { //
|
||
if (parent.window.opener
|
||
&& parent.window.opener.content
|
||
&& parent.window.opener.content.document.editform
|
||
&& parent.window.opener.content.document.editform["'.$formFieldName.'"]
|
||
) {
|
||
targetDoc = parent.window.opener.content.document;
|
||
elRef = targetDoc.editform["'.$formFieldName.'"];
|
||
return true;
|
||
} else {
|
||
return false;
|
||
}
|
||
}
|
||
function insertElement(table, uid, type, filename, fp, filetype, imagefile, action, close) { //
|
||
link_folder(fp.substring('.strlen(PATH_site).'));
|
||
return false;
|
||
}
|
||
function addElement(elName,elValue,altElValue,close) { //
|
||
if (parent.window.opener && parent.window.opener.setFormValueFromBrowseWin) {
|
||
parent.window.opener.setFormValueFromBrowseWin("'.$pArr[0].'",altElValue?altElValue:elValue,elName);
|
||
if (close) {
|
||
parent.window.opener.focus();
|
||
parent.close();
|
||
}
|
||
} else {
|
||
alert("Error - reference to main window is not set properly!");
|
||
parent.close();
|
||
}
|
||
}
|
||
';
|
||
// Finally, add the accumulated JavaScript to the template object:
|
||
$this->doc->JScodeArray['rtehtmlarea'] = $JScode;
|
||
}
|
||
/**
|
||
* Return true or false whether thumbs should be displayed or not
|
||
*
|
||
* @return boolean
|
||
*/
|
||
function displayThumbs() {
|
||
global $BE_USER;
|
||
return parent::displayThumbs() && !$BE_USER->getTSConfigVal('options.noThumbsInRTEimageSelect') && ($this->act != 'dragdrop');
|
||
}
|
||
/**
|
||
* Create HTML checkbox to enable/disable thumbnail display
|
||
*
|
||
* @return string HTML code
|
||
*/
|
||
function addDisplayOptions() {
|
||
global $BE_USER;
|
||
// Getting flag for showing/not showing thumbnails:
|
||
$noThumbs = $BE_USER->getTSConfigVal('options.noThumbsInEB') || ($this->mode == 'rte' && $BE_USER->getTSConfigVal('options.noThumbsInRTEimageSelect')) || ($this->act == 'dragdrop');
|
||
if ($noThumbs) {
|
||
$thumbNailCheckbox = '';
|
||
} else {
|
||
$thumbNailCheckbox = t3lib_BEfunc::getFuncCheck('', 'SET[displayThumbs]',$this->displayThumbs(), $this->thisScript, t3lib_div::implodeArrayForUrl('',$this->addParams));
|
||
$description = $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_mod_file_list.xml:displayThumbs',1);
|
||
$id = 'l'.uniqid('tx_dam_scbase');
|
||
$idAttr = ' id="'.$id.'"';
|
||
$thumbNailCheckbox = str_replace('<input', '<input'.$idAttr, $thumbNailCheckbox);
|
||
$thumbNailCheckbox .= ' <label for="'.$id.'">'.$description.'</label>';
|
||
$this->damSC->addOption('html', 'thumbnailCheckbox', $thumbNailCheckbox);
|
||
}
|
||
$this->damSC->addOption('funcCheck', 'extendedInfo', $GLOBALS['LANG']->getLL('displayExtendedInfo',1));
|
||
}
|
||
/******************************************************************
|
||
*
|
||
* Main functions
|
||
*
|
||
******************************************************************/
|
||
/**
|
||
* Rich Text Editor (RTE) link selector (MAIN function)
|
||
* Generates the link selector for the Rich Text Editor.
|
||
* Can also be used to select links for the TCEforms (see $wiz)
|
||
*
|
||
* @param boolean If set, the "remove link" is not shown in the menu: Used for the "Select link" wizard which is used by the TCEforms
|
||
* @return string Modified content variable.
|
||
*/
|
||
function main_rte($wiz=0) {
|
||
global $LANG, $BE_USER, $BACK_PATH;
|
||
// Starting content:
|
||
$content=$this->doc->startPage($LANG->getLL('Insert/Modify Link',1));
|
||
$this->reinitParams();
|
||
// Initializing the action value, possibly removing blinded values etc:
|
||
$this->allowedItems = explode(',','page,file,url,mail,spec,upload');
|
||
// Remove upload tab if filemount is readonly
|
||
if ($this->isReadOnlyFolder(tx_dam::path_makeAbsolute($this->damSC->path))) {
|
||
$this->allowedItems = array_diff($this->allowedItems, array('upload'));
|
||
}
|
||
//call hook for extra options
|
||
foreach($this->hookObjects as $hookObject) {
|
||
$this->allowedItems = $hookObject->addAllowedItems($this->allowedItems);
|
||
}
|
||
if (is_array($this->buttonConfig['options.']) && $this->buttonConfig['options.']['removeItems']) {
|
||
$this->allowedItems = array_diff($this->allowedItems,t3lib_div::trimExplode(',',$this->buttonConfig['options.']['removeItems'],1));
|
||
} else {
|
||
$this->allowedItems = array_diff($this->allowedItems,t3lib_div::trimExplode(',',$this->thisConfig['blindLinkOptions'],1));
|
||
}
|
||
reset($this->allowedItems);
|
||
if (!in_array($this->act,$this->allowedItems)) {
|
||
$this->act = current($this->allowedItems);
|
||
}
|
||
// Making menu in top:
|
||
$menuDef = array();
|
||
if (!$wiz && $this->curUrlArray['href']) {
|
||
$menuDef['removeLink']['isActive'] = $this->act=='removeLink';
|
||
$menuDef['removeLink']['label'] = $LANG->getLL('removeLink',1);
|
||
$menuDef['removeLink']['url'] = '#';
|
||
$menuDef['removeLink']['addParams'] = 'onclick="plugin.unLink();return false;"';
|
||
}
|
||
if (in_array('page',$this->allowedItems)) {
|
||
$menuDef['page']['isActive'] = $this->act=='page';
|
||
$menuDef['page']['label'] = $LANG->getLL('page',1);
|
||
$menuDef['page']['url'] = '#';
|
||
$menuDef['page']['addParams'] = 'onclick="jumpToUrl(\''.htmlspecialchars('?act=page&mode='.$this->mode.'&bparams='.$this->bparams).'\');return false;"';
|
||
}
|
||
if (in_array('file',$this->allowedItems)){
|
||
$menuDef['file']['isActive'] = $this->act=='file';
|
||
$menuDef['file']['label'] = $LANG->sL('LLL:EXT:dam/mod_main/locallang_mod.xml:mlang_tabs_tab',1);
|
||
$menuDef['file']['url'] = '#';
|
||
$menuDef['file']['addParams'] = 'onclick="jumpToUrl(\''.htmlspecialchars('?act=file&mode='.$this->mode.'&bparams='.$this->bparams).'\');return false;"';
|
||
}
|
||
if (in_array('url',$this->allowedItems)) {
|
||
$menuDef['url']['isActive'] = $this->act=='url';
|
||
$menuDef['url']['label'] = $LANG->getLL('extUrl',1);
|
||
$menuDef['url']['url'] = '#';
|
||
$menuDef['url']['addParams'] = 'onclick="jumpToUrl(\''.htmlspecialchars('?act=url&mode='.$this->mode.'&bparams='.$this->bparams).'\');return false;"';
|
||
}
|
||
if (in_array('mail',$this->allowedItems)) {
|
||
$menuDef['mail']['isActive'] = $this->act=='mail';
|
||
$menuDef['mail']['label'] = $LANG->getLL('email',1);
|
||
$menuDef['mail']['url'] = '#';
|
||
$menuDef['mail']['addParams'] = 'onclick="jumpToUrl(\''.htmlspecialchars('?act=mail&mode='.$this->mode.'&bparams='.$this->bparams).'\');return false;"';
|
||
}
|
||
if (is_array($this->thisConfig['userLinks.']) && in_array('spec',$this->allowedItems)) {
|
||
$menuDef['spec']['isActive'] = $this->act=='spec';
|
||
$menuDef['spec']['label'] = $LANG->getLL('special',1);
|
||
$menuDef['spec']['url'] = '#';
|
||
$menuDef['spec']['addParams'] = 'onclick="jumpToUrl(\''.htmlspecialchars('?act=spec&mode='.$this->mode.'&bparams='.$this->bparams).'\');return false;"';
|
||
}
|
||
if (in_array('upload', $this->allowedItems)) {
|
||
$menuDef['upload']['isActive'] = ($this->act === 'upload');
|
||
$menuDef['upload']['label'] = $LANG->getLL('tx_dam_file_upload.title',1);
|
||
$menuDef['upload']['url'] = '#';
|
||
$menuDef['upload']['addParams'] = 'onclick="jumpToUrl(\''.htmlspecialchars('?act=upload&mode='.$this->mode.'&bparams='.$this->bparams).'\');return false;"';
|
||
}
|
||
// call hook for extra options
|
||
foreach($this->hookObjects as $hookObject) {
|
||
$menuDef = $hookObject->modifyMenuDefinition($menuDef);
|
||
}
|
||
$content .= $this->doc->getTabMenuRaw($menuDef);
|
||
// Adding the menu and header to the top of page:
|
||
$content.=$this->printCurrentUrl($this->curUrlInfo['info']).'<br />';
|
||
// Depending on the current action we will create the actual module content for selecting a link:
|
||
switch($this->act) {
|
||
case 'mail':
|
||
$extUrl='
|
||
<!--
|
||
Enter mail address:
|
||
-->
|
||
<form action="" name="lurlform" id="lurlform">
|
||
<table border="0" cellpadding="2" cellspacing="1" id="typo3-linkMail">
|
||
<tr>
|
||
<td>'.$LANG->getLL('emailAddress',1).':</td>
|
||
<td><input type="text" name="lemail"'.$this->doc->formWidth(20).' value="'.htmlspecialchars($this->curUrlInfo['act']=='mail'?$this->curUrlInfo['info']:'').'" /> '.
|
||
'<input type="submit" value="'.$LANG->getLL('setLink',1).'" onclick="setTarget(\'\');setValue(\'mailto:\'+document.lurlform.lemail.value); return link_current();" /></td>
|
||
</tr>
|
||
</table>
|
||
</form>';
|
||
$content.=$extUrl;
|
||
$content.=$this->addAttributesForm();
|
||
break;
|
||
case 'url':
|
||
$extUrl='
|
||
<!--
|
||
Enter External URL:
|
||
-->
|
||
<form action="" name="lurlform" id="lurlform">
|
||
<table border="0" cellpadding="2" cellspacing="1" id="typo3-linkURL">
|
||
<tr>
|
||
<td>URL:</td>
|
||
<td><input type="text" name="lurl"'.$this->doc->formWidth(20).' value="'.htmlspecialchars($this->curUrlInfo['act']=='url'?$this->curUrlInfo['info']:'http://').'" /> '.
|
||
'<input type="submit" value="'.$LANG->getLL('setLink',1).'" onclick="if (/^[A-Za-z0-9_+]{1,8}:/i.test(document.lurlform.lurl.value)) { setValue(document.lurlform.lurl.value); } else { setValue(\'http://\'+document.lurlform.lurl.value); }; return link_current();" /></td>
|
||
</tr>
|
||
</table>
|
||
</form>';
|
||
$content.=$extUrl;
|
||
$content.=$this->addAttributesForm();
|
||
break;
|
||
case 'file':
|
||
$this->addDisplayOptions();
|
||
$content.=$this->addAttributesForm();
|
||
$content.= $this->dam_select($this->allowedFileTypes, $this->disallowedFileTypes);
|
||
$content.= $this->damSC->getOptions();
|
||
break;
|
||
case 'spec':
|
||
if (is_array($this->thisConfig['userLinks.'])) {
|
||
$subcats=array();
|
||
$v=$this->thisConfig['userLinks.'];
|
||
foreach ($v as $k2 => $dummyValue) {
|
||
$k2i = intval($k2);
|
||
if (substr($k2,-1)=='.' && is_array($v[$k2i.'.'])) {
|
||
// Title:
|
||
$title = trim($v[$k2i]);
|
||
if (!$title) {
|
||
$title=$v[$k2i.'.']['url'];
|
||
} else {
|
||
$title=$LANG->sL($title);
|
||
}
|
||
// Description:
|
||
$description=$v[$k2i.'.']['description'] ? $LANG->sL($v[$k2i.'.']['description'],1).'<br />' : '';
|
||
// URL + onclick event:
|
||
$onClickEvent='';
|
||
if (isset($v[$k2i.'.']['target'])) $onClickEvent.="setTarget('".$v[$k2i.'.']['target']."');";
|
||
$v[$k2i.'.']['url'] = str_replace('###_URL###',$this->siteURL,$v[$k2i.'.']['url']);
|
||
if (substr($v[$k2i.'.']['url'],0,7)=="http://" || substr($v[$k2i.'.']['url'],0,7)=='mailto:') {
|
||
$onClickEvent.="cur_href=unescape('".rawurlencode($v[$k2i.'.']['url'])."');link_current();";
|
||
} else {
|
||
$onClickEvent.="link_spec(unescape('".$this->siteURL.rawurlencode($v[$k2i.'.']['url'])."'));";
|
||
}
|
||
// Link:
|
||
$A=array('<a href="#" onclick="'.htmlspecialchars($onClickEvent).'return false;">','</a>');
|
||
// Adding link to menu of user defined links:
|
||
$subcats[$k2i]='
|
||
<tr>
|
||
<td class="bgColor4">'.$A[0].'<strong>'.htmlspecialchars($title).($this->curUrlInfo['info']==$v[$k2i.'.']['url']?'<img'.t3lib_iconWorks::skinImg($BACK_PATH,'gfx/blinkarrow_right.gif','width="5" height="9"').' class="c-blinkArrowR" alt="" />':'').'</strong><br />'.$description.$A[1].'</td>
|
||
</tr>';
|
||
}
|
||
}
|
||
// Sort by keys:
|
||
ksort($subcats);
|
||
// Add menu to content:
|
||
$content.= '
|
||
<!--
|
||
Special userdefined menu:
|
||
-->
|
||
<table border="0" cellpadding="1" cellspacing="1" id="typo3-linkSpecial">
|
||
<tr>
|
||
<td class="bgColor5" class="c-wCell" valign="top"><strong>'.$LANG->getLL('special',1).'</strong></td>
|
||
</tr>
|
||
'.implode('',$subcats).'
|
||
</table>
|
||
';
|
||
}
|
||
break;
|
||
case 'page':
|
||
$content.=$this->addAttributesForm();
|
||
$pagetree = t3lib_div::makeInstance('tx_rtehtmlarea_pageTree');
|
||
$pagetree->ext_showNavTitle = $GLOBALS['BE_USER']->getTSConfigVal('options.pageTree.showNavTitle');
|
||
$pagetree->addField('nav_title');
|
||
$tree=$pagetree->getBrowsableTree();
|
||
$cElements = $this->expandPage();
|
||
$content.= '
|
||
<!--
|
||
Wrapper table for page tree / record list:
|
||
-->
|
||
<table border="0" cellpadding="0" cellspacing="0" id="typo3-linkPages">
|
||
<tr>
|
||
<td class="c-wCell" valign="top">'.$this->barheader($LANG->getLL('pageTree').':').$tree.'</td>
|
||
<td class="c-wCell" valign="top">'.$cElements.'</td>
|
||
</tr>
|
||
</table>
|
||
';
|
||
break;
|
||
case 'upload':
|
||
$content.= $this->dam_upload($this->allowedFileTypes, $this->disallowedFileTypes);
|
||
$content.= $this->damSC->getOptions();
|
||
$content.='<br /><br />';
|
||
if ($BE_USER->isAdmin() || $BE_USER->getTSConfigVal('options.createFoldersInEB')) {
|
||
$content.= $this->createFolder(tx_dam::path_makeAbsolute($this->damSC->path));
|
||
}
|
||
break;
|
||
default:
|
||
// call hook
|
||
foreach($this->hookObjects as $hookObject) {
|
||
$content .= $hookObject->getTab($this->act);
|
||
}
|
||
break;
|
||
}
|
||
// End page, return content:
|
||
$content.= $this->doc->endPage();
|
||
$this->getJSCode();
|
||
$content = $this->damSC->doc->insertStylesAndJS($content);
|
||
return $content;
|
||
}
|
||
function addAttributesForm() {
|
||
$ltargetForm = '';
|
||
// Add page id, target, class selector box and title field:
|
||
$lpageId = $this->addPageIdSelector();
|
||
$ltarget = $this->addTargetSelector();
|
||
$lclass = $this->addClassSelector();
|
||
$ltitle = $this->addTitleSelector();
|
||
if ($lpageId || $ltarget || $lclass || $ltitle) {
|
||
$ltargetForm = $this->wrapInForm($lpageId.$ltarget.$lclass.$ltitle);
|
||
}
|
||
return $ltargetForm;
|
||
}
|
||
function wrapInForm($string) {
|
||
global $LANG;
|
||
$form = '
|
||
<!--
|
||
Selecting target for link:
|
||
-->
|
||
<form action="" name="ltargetform" id="ltargetform">
|
||
<table border="0" cellpadding="2" cellspacing="1" id="typo3-linkTarget">'. $string;
|
||
if ((($this->act == 'page' && $this->curUrlInfo['act']=='page') || ($this->act == 'file' && $this->curUrlInfo['act']=='file') || ($this->act == 'url' && $this->curUrlInfo['act']!='page')) && $this->curUrlArray['href']) {
|
||
$form .='
|
||
<tr>
|
||
<td>
|
||
</td>
|
||
<td colspan="3">
|
||
<input type="submit" value="'.$LANG->getLL('update',1).'" onclick="return link_current();" />
|
||
</td>
|
||
</tr>';
|
||
}
|
||
$form .= '
|
||
</table>
|
||
</form>';
|
||
return $form;
|
||
}
|
||
function addPageIdSelector() {
|
||
global $LANG;
|
||
return ($this->act == 'page' && $this->buttonConfig && is_array($this->buttonConfig['pageIdSelector.']) && $this->buttonConfig['pageIdSelector.']['enabled'])?'
|
||
<tr>
|
||
<td>'.$LANG->getLL('page_id',1).':</td>
|
||
<td colspan="3">
|
||
<input type="text" size="6" name="luid" /> <input type="submit" value="'.$LANG->getLL('setLink',1).'" onclick="return link_typo3Page(document.ltargetform.luid.value);" />
|
||
</td>
|
||
</tr>':'';
|
||
}
|
||
function addTargetSelector() {
|
||
global $LANG;
|
||
$targetSelectorConfig = array();
|
||
$popupSelectorConfig = array();
|
||
if (is_array($this->buttonConfig['targetSelector.'])) {
|
||
$targetSelectorConfig = $this->buttonConfig['targetSelector.'];
|
||
}
|
||
if (is_array($this->buttonConfig['popupSelector.'])) {
|
||
$popupSelectorConfig = $this->buttonConfig['popupSelector.'];
|
||
}
|
||
$ltarget = '';
|
||
if ($this->act != 'mail') {
|
||
$ltarget .= '
|
||
<tr id="ltargetrow"'. (($targetSelectorConfig['disabled'] && $popupSelectorConfig['disabled']) ? ' style="display: none;"' : '') . '>
|
||
<td>'.$LANG->getLL('target',1).':</td>
|
||
<td><input type="text" name="ltarget" onchange="setTarget(this.value);" value="'.htmlspecialchars($this->setTarget?$this->setTarget:(($this->setClass || !$this->classesAnchorDefault[$this->act])?'':$this->classesAnchorDefaultTarget[$this->act])).'"'.$this->doc->formWidth(10).' /></td>';
|
||
$ltarget .= '
|
||
<td colspan="2">';
|
||
if (!$targetSelectorConfig['disabled']) {
|
||
$ltarget .= '
|
||
<select name="ltarget_type" onchange="setTarget(this.options[this.selectedIndex].value);document.ltargetform.ltarget.value=this.options[this.selectedIndex].value;this.selectedIndex=0;">
|
||
<option></option>
|
||
<option value="_top">'.$LANG->getLL('top',1).'</option>
|
||
<option value="_blank">'.$LANG->getLL('newWindow',1).'</option>
|
||
</select>';
|
||
}
|
||
$ltarget .= '
|
||
</td>
|
||
</tr>';
|
||
if (!$popupSelectorConfig['disabled']) {
|
||
$selectJS = 'if (document.ltargetform.popup_width.options[document.ltargetform.popup_width.selectedIndex].value>0 && document.ltargetform.popup_height.options[document.ltargetform.popup_height.selectedIndex].value>0) {
|
||
document.ltargetform.ltarget.value = document.ltargetform.popup_width.options[document.ltargetform.popup_width.selectedIndex].value+\'x\'+document.ltargetform.popup_height.options[document.ltargetform.popup_height.selectedIndex].value;
|
||
setTarget(document.ltargetform.ltarget.value);
|
||
document.ltargetform.popup_width.selectedIndex=0;
|
||
document.ltargetform.popup_height.selectedIndex=0;
|
||
}';
|
||
$ltarget.='
|
||
<tr>
|
||
<td>'.$LANG->getLL('target_popUpWindow',1).':</td>
|
||
<td colspan="3">
|
||
<select name="popup_width" onchange="'.$selectJS.'">
|
||
<option value="0">'.$LANG->getLL('target_popUpWindow_width',1).'</option>
|
||
<option value="300">300</option>
|
||
<option value="400">400</option>
|
||
<option value="500">500</option>
|
||
<option value="600">600</option>
|
||
<option value="700">700</option>
|
||
<option value="800">800</option>
|
||
</select>
|
||
x
|
||
<select name="popup_height" onchange="'.$selectJS.'">
|
||
<option value="0">'.$LANG->getLL('target_popUpWindow_height',1).'</option>
|
||
<option value="200">200</option>
|
||
<option value="300">300</option>
|
||
<option value="400">400</option>
|
||
<option value="500">500</option>
|
||
<option value="600">600</option>
|
||
</select>
|
||
</td>
|
||
</tr>';
|
||
}
|
||
}
|
||
return $ltarget;
|
||
}
|
||
function addClassSelector() {
|
||
global $LANG;
|
||
$selectClass = '';
|
||
if ($this->classesAnchorJSOptions[$this->act]) {
|
||
$selectClassJS = '
|
||
if (document.ltargetform.anchor_class) {
|
||
document.ltargetform.anchor_class.value = document.ltargetform.anchor_class.options[document.ltargetform.anchor_class.selectedIndex].value;
|
||
if (document.ltargetform.anchor_class.value && HTMLArea.classesAnchorSetup) {
|
||
for (var i = HTMLArea.classesAnchorSetup.length; --i >= 0;) {
|
||
var anchorClass = HTMLArea.classesAnchorSetup[i];
|
||
if (anchorClass[\'name\'] == document.ltargetform.anchor_class.value) {
|
||
if (anchorClass[\'titleText\'] && document.ltargetform.anchor_title) {
|
||
document.ltargetform.anchor_title.value = anchorClass[\'titleText\'];
|
||
setTitle(anchorClass[\'titleText\']);
|
||
}
|
||
if (anchorClass[\'target\']) {
|
||
if (document.ltargetform.ltarget) {
|
||
document.ltargetform.ltarget.value = anchorClass[\'target\'];
|
||
}
|
||
setTarget(anchorClass[\'target\']);
|
||
} else if (document.ltargetform.ltarget && document.getElementById(\'ltargetrow\').style.display == \'none\') {
|
||
// Reset target to default if field is not displayed and class has no configured target
|
||
document.ltargetform.ltarget.value = \''. ($this->thisConfig['defaultLinkTarget']?$this->thisConfig['defaultLinkTarget']:'') .'\';
|
||
setTarget(document.ltargetform.ltarget.value);
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
setClass(document.ltargetform.anchor_class.value);
|
||
}
|
||
';
|
||
$selectClass ='
|
||
<tr>
|
||
<td>'.$LANG->getLL('anchor_class',1).':</td>
|
||
<td colspan="3">
|
||
<select name="anchor_class" onchange="'.$selectClassJS.'">
|
||
' . $this->classesAnchorJSOptions[$this->act] . '
|
||
</select>
|
||
</td>
|
||
</tr>';
|
||
}
|
||
return $selectClass;
|
||
}
|
||
function addTitleSelector() {
|
||
global $LANG;
|
||
return '
|
||
<tr>
|
||
<td>'.$LANG->getLL('anchor_title',1).':</td>
|
||
<td colspan="3">
|
||
<input type="text" name="anchor_title" value="' . ($this->setTitle?$this->setTitle:(($this->setClass || !$this->classesAnchorDefault[$this->act])?'':$this->classesAnchorDefaultTitle[$this->act])) . '" ' . $this->doc->formWidth(30) . ' />
|
||
</td>
|
||
</tr>';
|
||
}
|
||
/**
|
||
* Localize a string using the language of the content element rather than the language of the BE interface
|
||
*
|
||
* @param string $string: the label to be localized
|
||
* @return string Localized string.
|
||
*/
|
||
public function getLLContent($string) {
|
||
global $LANG;
|
||
$BE_lang = $LANG->lang;
|
||
$BE_origCharSet = $LANG->origCharSet;
|
||
$BE_charSet = $LANG->charSet;
|
||
$LANG->lang = $this->contentTypo3Language;
|
||
$LANG->origCharSet = $LANG->csConvObj->charSetArray[$this->contentTypo3Language];
|
||
$LANG->origCharSet = $LANG->origCharSet ? $LANG->origCharSet : 'iso-8859-1';
|
||
$LANG->charSet = $this->contentTypo3Charset;
|
||
$LLString = $LANG->sL($string);
|
||
$LANG->lang = $BE_lang;
|
||
$LANG->origCharSet = $BE_origCharSet;
|
||
$LANG->charSet = $BE_charSet;
|
||
return $LLString;
|
||
}
|
||
/**
|
||
* Localize a label obtained from Page TSConfig
|
||
*
|
||
* @param string string: the label to be localized
|
||
* @return string Localized string.
|
||
*/
|
||
public function getPageConfigLabel($string,$JScharCode=1) {
|
||
global $LANG;
|
||
if (strcmp(substr($string,0,4),'LLL:')) {
|
||
$label = $string;
|
||
} else {
|
||
$label = $LANG->sL(trim($string));
|
||
}
|
||
$label = str_replace('"', '\"', str_replace('\\\'', '\'', $label));
|
||
$label = $JScharCode ? $LANG->JScharCode($label): $label;
|
||
return $label;
|
||
}
|
||
}
|
||
if (defined('TYPO3_MODE') && isset($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod3/class.tx_rtehtmlarea_dam_browse_links.php'])) {
|
||
include_once($GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['XCLASS']['ext/rtehtmlarea/mod3/class.tx_rtehtmlarea_dam_browse_links.php']);
|
||
}
|
||
?>
|
typo3/sysext/rtehtmlarea/mod4/class.tx_rtehtmlarea_dam_browse_media.php (copie de travail) | ||
---|---|---|
<?php
|
||
/***************************************************************
|
||
* Copyright notice
|
||
*
|
||
* (c) 1999-2011 Kasper Skårhøj (kasper@typo3.com)
|
||
* (c) 2004-2011 Stanislas Rolland <typo3(arobas)sjbr.ca>
|
||
* 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!
|
||
***************************************************************/
|
||
/**
|
||
* Displays image selector for the RTE
|
||
*
|
||
* @author Kasper Skårhøj <kasper@typo3.com>
|
||
*
|
||
* $Id$ *
|
||
*/
|
||
require_once(t3lib_extMgm::extPath('dam').'class.tx_dam_browse_media.php');
|
||
/**
|
||
* Script Class
|
||
*
|
||
* @author Kasper Skårhøj <kasper@typo3.com>
|
||
* @package TYPO3
|
||
* @subpackage tx_rte
|
||
*/
|
||
class tx_rtehtmlarea_dam_browse_media extends tx_dam_browse_media {
|
||
var $extKey = 'rtehtmlarea';
|
||
var $content;
|
||
var $act;
|
||
var $allowedItems;
|
||
var $removedProperties = array();
|
||
var $defaultClass;
|
||
var $plainMaxWidth;
|
||
var $plainMaxHeight;
|
||
var $lockPlainWidth = 'false';
|
||
var $lockPlainHeight = 'false';
|
||
var $magicMaxWidth;
|
||
var $magicMaxHeight;
|
||
var $imgPath;
|
||
var $imgTitleDAMColumn = '';
|
||
var $classesImageJSOptions;
|
||
var $editorNo;
|
||
var $sys_language_content;
|
||
var $thisConfig;
|
||
var $buttonConfig = array();
|
||
/**
|
||
* Check if this object should be rendered.
|
||
*
|
||
* @param string $type Type: "file", ...
|
||
* @param object $pObj Parent object.
|
||
* @return boolean
|
||
* @see SC_browse_links::main()
|
||
*/
|
||
function isValid($type, $pObj) {
|
||
$isValid = false;
|
||
$pArr = explode('|', t3lib_div::_GP('bparams'));
|
||
if ($type=='rte' && $pObj->button == 'image') {
|
||
$isValid = true;
|
||
}
|
||
return $isValid;
|
||
}
|
||
/**
|
||
* Rendering
|
||
* Called in SC_browse_links::main() when isValid() returns true;
|
||
*
|
||
* @param string $type Type: "file", ...
|
||
* @param object $pObj Parent object.
|
||
* @return string Rendered content
|
||
* @see SC_browse_links::main()
|
||
*/
|
||
function render($type, $pObj) {
|
||
global $LANG, $BE_USER, $BACK_PATH;
|
||
$this->pObj = $pObj;
|
||
// init class browse_links
|
||
$this->init();
|
||
switch((string)$this->mode) {
|
||
case 'rte':
|
||
$content = $this->main_rte();
|
||
break;
|
||
// case 'wizard':
|
||
// $content = $this->main_rte(1);
|
||
// break;
|
||
default:
|
||
$content = '';
|
||
break;
|
||
}
|
||
return $content;
|
||
}
|
||
/**
|
||
* Initialisation
|
||
*
|
||
* @return [type] ...
|
||
*/
|
||
function init() {
|
||
global $BE_USER,$BACK_PATH,$TYPO3_CONF_VARS;
|
||
// Main GPvars:
|
||
$this->siteUrl = t3lib_div::getIndpEnv('TYPO3_SITE_URL');
|
||
$this->act = t3lib_div::_GP('act');
|
||
$this->expandPage = t3lib_div::_GP('expandPage');
|
||
$this->expandFolder = t3lib_div::_GP('expandFolder');
|
||
// Find RTE parameters
|
||
$this->bparams = t3lib_div::_GP('bparams');
|
||
$this->editorNo = t3lib_div::_GP('editorNo');
|
||
$this->sys_language_content = t3lib_div::_GP('sys_language_content');
|
||
$this->RTEtsConfigParams = t3lib_div::_GP('RTEtsConfigParams');
|
||
if (!$this->editorNo) {
|
||
$pArr = explode('|', $this->bparams);
|
||
$pRteArr = explode(':', $pArr[1]);
|
||
$this->editorNo = $pRteArr[0];
|
||
$this->sys_language_content = $pRteArr[1];
|
||
$this->RTEtsConfigParams = $pArr[2];
|
||
}
|
||
// Find "mode"
|
||
$this->mode = t3lib_div::_GP('mode');
|
||
if (!$this->mode) {
|
||
$this->mode='rte';
|
||
}
|
||
// Site URL
|
||
$this->siteURL = t3lib_div::getIndpEnv('TYPO3_SITE_URL'); // Current site url
|
||
// the script to link to
|
||
$this->thisScript = t3lib_div::getIndpEnv('SCRIPT_NAME');
|
||
if (!$this->act) {
|
||
$this->act='magic';
|
||
}
|
||
// init fileProcessor
|
||
$this->fileProcessor = t3lib_div::makeInstance('t3lib_basicFileFunctions');
|
||
$this->fileProcessor->init($GLOBALS['FILEMOUNTS'], $GLOBALS['TYPO3_CONF_VARS']['BE']['fileExtensions']);
|
||
$RTEtsConfigParts = explode(':', $this->RTEtsConfigParams);
|
||
$RTEsetup = $BE_USER->getTSConfig('RTE',t3lib_BEfunc::getPagesTSconfig($RTEtsConfigParts[5]));
|
||
$this->thisConfig = t3lib_BEfunc::RTEsetup($RTEsetup['properties'],$RTEtsConfigParts[0],$RTEtsConfigParts[2],$RTEtsConfigParts[4]);
|
||
$this->imgPath = $RTEtsConfigParts[6];
|
||
if (is_array($this->thisConfig['buttons.']) && is_array($this->thisConfig['buttons.']['image.'])) {
|
||
$this->buttonConfig = $this->thisConfig['buttons.']['image.'];
|
||
t3lib_div::loadTCA('tx_dam');
|
||
if (is_array($this->buttonConfig['title.']) && is_array($TCA['tx_dam']['columns'][$this->buttonConfig['title.']['useDAMColumn']])) {
|
||
$this->imgTitleDAMColumn = $this->buttonConfig['title.']['useDAMColumn'];
|
||
}
|
||
if (is_array($this->buttonConfig['properties.'])) {
|
||
if ($this->buttonConfig['properties.']['removeItems']) {
|
||
$this->removedProperties = t3lib_div::trimExplode(',',$this->buttonConfig['properties.']['removeItems'],1);
|
||
}
|
||
if (is_array($this->buttonConfig['properties.']['class.']) && trim($this->buttonConfig['properties.']['class.']['default'])) {
|
||
$this->defaultClass = trim($this->buttonConfig['properties.']['class.']['default']);
|
||
}
|
||
}
|
||
}
|
||
if (is_array($this->thisConfig['proc.']) && $this->thisConfig['proc.']['plainImageMode']) {
|
||
$plainImageMode = $this->thisConfig['proc.']['plainImageMode'];
|
||
$this->lockPlainWidth = ($plainImageMode == 'lockDimensions')?'true':'false';
|
||
$this->lockPlainHeight = ($this->lockPlainWidth || $plainImageMode == 'lockRatio' || ($plainImageMode == 'lockRatioWhenSmaller'))?'true':'false';
|
||
}
|
||
if (!$this->imgTitleDAMColumn) {
|
||
$this->imgTitleDAMColumn = 'caption';
|
||
}
|
||
$this->allowedItems = explode(',','magic,plain,image,upload');
|
||
$clientInfo = t3lib_div::clientInfo();
|
||
if ($clientInfo['BROWSER'] !== 'opera') {
|
||
$this->allowedItems[] = 'dragdrop';
|
||
}
|
||
if (is_array($this->buttonConfig['options.']) && $this->buttonConfig['options.']['removeItems']) {
|
||
$this->allowedItems = array_diff($this->allowedItems,t3lib_div::trimExplode(',',$this->buttonConfig['options.']['removeItems'],1));
|
||
} else {
|
||
$this->allowedItems = array_diff($this->allowedItems,t3lib_div::trimExplode(',',$this->thisConfig['blindImageOptions'],1));
|
||
}
|
||
reset($this->allowedItems);
|
||
if (!in_array($this->act,$this->allowedItems)) {
|
||
$this->act = current($this->allowedItems);
|
||
}
|
||
if ($this->act == 'magic') {
|
||
if (is_array($this->buttonConfig['options.']) && is_array($this->buttonConfig['options.']['magic.'])) {
|
||
if ($this->buttonConfig['options.']['magic.']['maxWidth']) $this->magicMaxWidth = $this->buttonConfig['options.']['magic.']['maxWidth'];
|
||
if ($this->buttonConfig['options.']['magic.']['maxHeight']) $this->magicMaxHeight = $this->buttonConfig['options.']['magic.']['maxHeight'];
|
||
}
|
||
// These defaults allow images to be based on their width - to a certain degree - by setting a high height. Then we're almost certain the image will be based on the width
|
||
if (!$this->magicMaxWidth) $this->magicMaxWidth = 300;
|
||
if (!$this->magicMaxHeight) $this->magicMaxHeight = 1000;
|
||
} elseif ($this->act == 'plain') {
|
||
if (is_array($this->buttonConfig['options.']) && is_array($this->buttonConfig['options.']['plain.'])) {
|
||
if ($this->buttonConfig['options.']['plain.']['maxWidth']) $this->plainMaxWidth = $this->buttonConfig['options.']['plain.']['maxWidth'];
|
||
if ($this->buttonConfig['options.']['plain.']['maxHeight']) $this->plainMaxHeight = $this->buttonConfig['options.']['plain.']['maxHeight'];
|
||
}
|
||
if (!$this->plainMaxWidth) $this->plainMaxWidth = 640;
|
||
if (!$this->plainMaxHeight) $this->plainMaxHeight = 680;
|
||
}
|
||
if ($this->thisConfig['classesImage']) {
|
||
$classesImageArray = t3lib_div::trimExplode(',',$this->thisConfig['classesImage'],1);
|
||
$this->classesImageJSOptions = '<option value=""></option>';
|
||
foreach ($classesImageArray as $class) {
|
||
$this->classesImageJSOptions .= '<option value="' .$class . '">' . $class . '</option>';
|
||
}
|
||
}
|
||
// init the DAM object
|
||
$this->initDAM();
|
||
$this->getModSettings();
|
||
$this->processParams();
|
||
// Insert the image if we are done
|
||
$this->imageInsert();
|
||
// Creating backend template object:
|
||
$this->doc = t3lib_div::makeInstance('template');
|
||
$this->doc->backPath = $BACK_PATH;
|
||
}
|
||
/**
|
||
* [Describe function...]
|
||
*
|
||
* @return [type] ...
|
||
*/
|
||
function rteImageStorageDir() {
|
||
$dir = $this->imgPath ? $this->imgPath : $GLOBALS['TYPO3_CONF_VARS']['BE']['RTE_imageStorageDir'];;
|
||
return $dir;
|
||
}
|
||
/**
|
||
* [Describe function...]
|
||
*
|
||
* @return [type] ...
|
||
*/
|
||
function imageInsert() {
|
||
global $TCA,$TYPO3_CONF_VARS;
|
||
if (t3lib_div::_GP('insertImage')) {
|
||
$filepath = t3lib_div::_GP('insertImage');
|
||
$imgObj = t3lib_div::makeInstance('t3lib_stdGraphic');
|
||
$imgObj->init();
|
||
$imgObj->mayScaleUp=0;
|
||
$imgObj->tempPath=PATH_site.$imgObj->tempPath;
|
||
$imgInfo = $imgObj->getImageDimensions($filepath);
|
||
$imgMetaData = tx_dam::meta_getDataForFile($filepath,'uid,pid,alt_text,hpixels,vpixels,'.$this->imgTitleDAMColumn.','.$TCA['tx_dam']['ctrl']['languageField']);
|
||
$imgMetaData = $this->getRecordOverlay('tx_dam',$imgMetaData,$this->sys_language_content);
|
||
switch ($this->act) {
|
||
case 'magic':
|
||
if (is_array($imgInfo) && count($imgInfo)==4 && $this->rteImageStorageDir() && is_array($imgMetaData)) {
|
||
$fI=pathinfo($imgInfo[3]);
|
||
$fileFunc = t3lib_div::makeInstance('t3lib_basicFileFunctions');
|
||
$basename = $fileFunc->cleanFileName('RTEmagicP_'.$fI['basename']);
|
||
$destPath =PATH_site.$this->rteImageStorageDir();
|
||
if (@is_dir($destPath)) {
|
||
$destName = $fileFunc->getUniqueName($basename,$destPath);
|
||
@copy($imgInfo[3],$destName);
|
||
t3lib_div::fixPermissions($destName);
|
||
$cWidth = t3lib_div::intInRange(t3lib_div::_GP('cWidth'),0,$this->magicMaxWidth);
|
||
$cHeight = t3lib_div::intInRange(t3lib_div::_GP('cHeight'),0,$this->magicMaxHeight);
|
||
if (!$cWidth) $cWidth = $this->magicMaxWidth;
|
||
if (!$cHeight) $cHeight = $this->magicMaxHeight;
|
||
$imgI = $imgObj->imageMagickConvert($filepath,'WEB',$cWidth.'m',$cHeight.'m'); // ($imagefile,$newExt,$w,$h,$params,$frame,$options,$mustCreate=0)
|
||
if ($imgI[3]) {
|
||
$fI=pathinfo($imgI[3]);
|
||
$mainBase='RTEmagicC_'.substr(basename($destName),10).'.'.$fI['extension'];
|
||
$destName = $fileFunc->getUniqueName($mainBase,$destPath);
|
||
@copy($imgI[3],$destName);
|
||
t3lib_div::fixPermissions($destName);
|
||
$iurl = $this->siteUrl.substr($destName,strlen(PATH_site));
|
||
$this->imageInsertJS($iurl,$imgI[0],$imgI[1],$imgMetaData['alt_text'],$imgMetaData[$this->imgTitleDAMColumn],substr($imgInfo[3],strlen(PATH_site)));
|
||
}
|
||
}
|
||
}
|
||
exit;
|
||
break;
|
||
case 'plain':
|
||
if (is_array($imgInfo) && count($imgInfo)==4 && is_array($imgMetaData)) {
|
||
$iurl = $this->siteUrl.substr($imgInfo[3],strlen(PATH_site));
|
||
$this->imageInsertJS($iurl,$imgMetaData['hpixels'],$imgMetaData['vpixels'],$imgMetaData['alt_text'],$imgMetaData[$this->imgTitleDAMColumn],substr($imgInfo[3],strlen(PATH_site)));
|
||
}
|
||
exit;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
function imageInsertJS($url,$width,$height,$altText,$titleText,$origFile) {
|
||
global $TYPO3_CONF_VARS;
|
||
echo'
|
||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||
<html>
|
||
<head>
|
||
<title>Untitled</title>
|
||
</head>
|
||
<script type="text/javascript">
|
||
/*<![CDATA[*/
|
||
var plugin = window.parent.RTEarea["' . $this->editorNo . '"].editor.getPlugin("TYPO3Image");
|
||
function insertImage(file,width,height,alt,title) {
|
||
plugin.insertImage(\'<img src="\'+file+\'"' . ($this->defaultClass?(' class="'.$this->defaultClass.'"'):'') . ' alt="\'+alt+\'" title="\'+title+\'" width="\'+parseInt(width)+\'" height="\'+parseInt(height)+\'" />\');
|
||
}
|
||
/*]]>*/
|
||
</script>
|
||
<body>
|
||
<script type="text/javascript">
|
||
/*<![CDATA[*/
|
||
insertImage('.t3lib_div::quoteJSvalue($url,1).','.$width.','.$height.','.t3lib_div::quoteJSvalue($altText,1).','.t3lib_div::quoteJSvalue($titleText,1).');
|
||
/*]]>*/
|
||
</script>
|
||
</body>
|
||
</html>';
|
||
}
|
||
/**
|
||
* [Describe function...]
|
||
*
|
||
* @return [type] ...
|
||
*/
|
||
function getJSCode() {
|
||
global $LANG,$BACK_PATH,$TYPO3_CONF_VARS;
|
||
$JScode='
|
||
var plugin = window.parent.RTEarea["' . $editorNo . '"].editor.getPlugin("TYPO3Image");
|
||
var HTMLArea = window.parent.HTMLArea;
|
||
var Ext = window.parent.Ext;
|
||
if (Ext.isWebKit) {
|
||
plugin.dialog.mon(Ext.get(plugin.dialog.getComponent("content-iframe").getEl().dom.contentWindow.document.documentElement), "dragend", plugin.onDrop, plugin, {single: true});
|
||
}
|
||
function insertElement(table, uid, type, filename,fp,filetype,imagefile,action, close) {
|
||
return jumpToUrl(\''.$this->thisScript.'?act='.$this->act.'&mode='.$this->mode.'&bparams='.$this->bparams.'&insertImage='.'\'+fp);
|
||
}
|
||
function jumpToUrl(URL,anchor) {
|
||
var add_act = URL.indexOf("act=")==-1 ? "&act='.$this->act.'" : "";
|
||
var add_editorNo = URL.indexOf("editorNo=")==-1 ? "&editorNo='.$this->editorNo.'" : "";
|
||
var add_sys_language_content = URL.indexOf("sys_language_content=")==-1 ? "&sys_language_content='.$this->sys_language_content.'" : "";
|
||
var RTEtsConfigParams = "&RTEtsConfigParams='.rawurlencode(t3lib_div::_GP('RTEtsConfigParams')).'";
|
||
var cur_width = selectedImageRef ? "&cWidth="+selectedImageRef.style.width : "";
|
||
var cur_height = selectedImageRef ? "&cHeight="+selectedImageRef.style.height : "";
|
||
var theLocation = URL+add_act+add_editorNo+add_sys_language_content+RTEtsConfigParams+cur_width+cur_height+(anchor?anchor:"");
|
||
window.location.href = theLocation;
|
||
return false;
|
||
}
|
||
function launchView(url) {
|
||
var thePreviewWindow="";
|
||
thePreviewWindow = window.open("'.$this->siteUrl.TYPO3_mainDir.'show_item.php?table="+url,"ShowItem","height=300,width=410,status=0,menubar=0,resizable=0,location=0,directories=0,scrollbars=1,toolbar=0");
|
||
if (thePreviewWindow && thePreviewWindow.focus) {
|
||
thePreviewWindow.focus();
|
||
}
|
||
}
|
||
function getCurrentImageRef() {
|
||
if (plugin.image) {
|
||
return plugin.image;
|
||
} else {
|
||
return null;
|
||
}
|
||
}
|
||
function printCurrentImageOptions() {
|
||
var classesImage = ' . ($this->thisConfig['classesImage']?'true':'false') . ';
|
||
if (classesImage) var styleSelector=\'<select id="iClass" name="iClass" style="width:140px;">' . $this->classesImageJSOptions . '</select>\';
|
||
var floatSelector=\'<select id="iFloat" name="iFloat"><option value="">' . $LANG->getLL('notSet') . '</option><option value="none">' . $LANG->getLL('nonFloating') . '</option><option value="left">' . $LANG->getLL('left') . '</option><option value="right">' . $LANG->getLL('right') . '</option></select>\';
|
||
var bgColor=\' class="bgColor4"\';
|
||
var sz="";
|
||
sz+=\'<table border="0" cellpadding="1" cellspacing="1"><form action="" name="imageData">\';
|
||
'.(in_array('class', $this->removedProperties)?'':'
|
||
if(classesImage) {
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iClass">'.$LANG->getLL('class').': </label></td><td>\'+styleSelector+\'</td></tr>\';
|
||
}')
|
||
.(in_array('width', $this->removedProperties)?'':'
|
||
if (!(selectedImageRef && selectedImageRef.src.indexOf("RTEmagic") == -1 && '. $this->lockPlainWidth .')) {
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iWidth">'.$LANG->getLL('width').': </label></td><td><input type="text" id="iWidth" name="iWidth" value=""'.$GLOBALS['TBE_TEMPLATE']->formWidth(4).' /></td></tr>\';
|
||
}')
|
||
.(in_array('height', $this->removedProperties)?'':'
|
||
if (!(selectedImageRef && selectedImageRef.src.indexOf("RTEmagic") == -1 && '. $this->lockPlainHeight .')) {
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iHeight">'.$LANG->getLL('height').': </label></td><td><input type="text" id="iHeight" name="iHeight" value=""'.$GLOBALS['TBE_TEMPLATE']->formWidth(4).' /></td></tr>\';
|
||
}')
|
||
.(in_array('border', $this->removedProperties)?'':'
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iBorder">'.$LANG->getLL('border').': </label></td><td><input type="checkbox" id="iBorder" name="iBorder" value="1" /></td></tr>\';')
|
||
.(in_array('float', $this->removedProperties)?'':'
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iFloat">'.$LANG->getLL('float').': </label></td><td>\'+floatSelector+\'</td></tr>\';')
|
||
.(in_array('paddingTop', $this->removedProperties)?'':'
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iPaddingTop">'.$LANG->getLL('padding_top').': </label></td><td><input type="text" id="iPaddingTop" name="iPaddingTop" value=""'.$GLOBALS['TBE_TEMPLATE']->formWidth(4).'></td></tr>\';')
|
||
.(in_array('paddingRight', $this->removedProperties)?'':'
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iPaddingRight">'.$LANG->getLL('padding_right').': </label></td><td><input type="text" id="iPaddingRight" name="iPaddingRight" value=""'.$GLOBALS['TBE_TEMPLATE']->formWidth(4).' /></td></tr>\';')
|
||
.(in_array('paddingBottom', $this->removedProperties)?'':'
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iPaddingBottom">'.$LANG->getLL('padding_bottom').': </label></td><td><input type="text" id="iPaddingBottom" name="iPaddingBottom" value=""'.$GLOBALS['TBE_TEMPLATE']->formWidth(4).' /></td></tr>\';')
|
||
.(in_array('paddingLeft', $this->removedProperties)?'':'
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iPaddingLeft">'.$LANG->getLL('padding_left').': </label></td><td><input type="text" id="iPaddingLeft" name="iPaddingLeft" value=""'.$GLOBALS['TBE_TEMPLATE']->formWidth(4).' /></td></tr>\';')
|
||
.(in_array('title', $this->removedProperties)?'':'
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iTitle">'.$LANG->getLL('title').': </label></td><td><input type="text" id="iTitle" name="iTitle"'.$GLOBALS['TBE_TEMPLATE']->formWidth(20).' /></td></tr>\';')
|
||
.(in_array('alt', $this->removedProperties)?'':'
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iAlt">'.$LANG->getLL('alt').': </label></td><td><input type="text" id="iAlt" name="iAlt"'.$GLOBALS['TBE_TEMPLATE']->formWidth(20).' /></td></tr>\';')
|
||
.((!$TYPO3_CONF_VARS['EXTCONF'][$this->extKey]['enableClickEnlarge'] || in_array('clickenlarge', $this->removedProperties))?'':'
|
||
sz+=\'<tr><td\'+bgColor+\'><label for="iClickEnlarge">'.$LANG->sL('LLL:EXT:cms/locallang_ttc.php:image_zoom',1).' </label></td><td><input type="checkbox" name="iClickEnlarge" id="iClickEnlarge" value="0" /></td></tr>\';').'
|
||
sz+=\'<tr><td><input type="submit" value="'.$LANG->getLL('update').'" onClick="return setImageProperties();"></td></tr>\';
|
||
sz+=\'</form></table>\';
|
||
return sz;
|
||
}
|
||
function setImageProperties() {
|
||
var classesImage = ' . ($this->thisConfig['classesImage']?'true':'false') . ';
|
||
if (selectedImageRef) {
|
||
if (document.imageData.iWidth) {
|
||
if (document.imageData.iWidth.value && parseInt(document.imageData.iWidth.value)) {
|
||
selectedImageRef.style.width = "";
|
||
selectedImageRef.width = parseInt(document.imageData.iWidth.value);
|
||
}
|
||
}
|
||
if (document.imageData.iHeight) {
|
||
if (document.imageData.iHeight.value && parseInt(document.imageData.iHeight.value)) {
|
||
selectedImageRef.style.height = "";
|
||
selectedImageRef.height = parseInt(document.imageData.iHeight.value);
|
||
}
|
||
}
|
||
if (document.imageData.iPaddingTop) {
|
||
if (document.imageData.iPaddingTop.value != "" && !isNaN(parseInt(document.imageData.iPaddingTop.value))) {
|
||
selectedImageRef.style.paddingTop = parseInt(document.imageData.iPaddingTop.value) + "px";
|
||
} else {
|
||
selectedImageRef.style.paddingTop = "";
|
||
}
|
||
}
|
||
if (document.imageData.iPaddingRight) {
|
||
if (document.imageData.iPaddingRight.value != "" && !isNaN(parseInt(document.imageData.iPaddingRight.value))) {
|
||
selectedImageRef.style.paddingRight = parseInt(document.imageData.iPaddingRight.value) + "px";
|
||
} else {
|
||
selectedImageRef.style.paddingRight = "";
|
||
}
|
||
}
|
||
if (document.imageData.iPaddingBottom) {
|
||
if (document.imageData.iPaddingBottom.value != "" && !isNaN(parseInt(document.imageData.iPaddingBottom.value))) {
|
||
selectedImageRef.style.paddingBottom = parseInt(document.imageData.iPaddingBottom.value) + "px";
|
||
} else {
|
||
selectedImageRef.style.paddingBottom = "";
|
||
}
|
||
}
|
||
if (document.imageData.iPaddingLeft) {
|
||
if (document.imageData.iPaddingLeft.value != "" && !isNaN(parseInt(document.imageData.iPaddingLeft.value))) {
|
||
selectedImageRef.style.paddingLeft = parseInt(document.imageData.iPaddingLeft.value) + "px";
|
||
} else {
|
||
selectedImageRef.style.paddingLeft = "";
|
||
}
|
||
}
|
||
if (document.imageData.iTitle) {
|
||
selectedImageRef.title=document.imageData.iTitle.value;
|
||
}
|
||
if (document.imageData.iAlt) {
|
||
selectedImageRef.alt=document.imageData.iAlt.value;
|
||
}
|
||
if (document.imageData.iBorder) {
|
||
selectedImageRef.style.borderStyle = "";
|
||
selectedImageRef.style.borderWidth = "";
|
||
selectedImageRef.style.border = ""; // this statement ignored by Mozilla 1.3.1
|
||
selectedImageRef.style.borderTopStyle = "";
|
||
selectedImageRef.style.borderRightStyle = "";
|
||
selectedImageRef.style.borderBottomStyle = "";
|
||
selectedImageRef.style.borderLeftStyle = "";
|
||
selectedImageRef.style.borderTopWidth = "";
|
||
selectedImageRef.style.borderRightWidth = "";
|
||
selectedImageRef.style.borderBottomWidth = "";
|
||
selectedImageRef.style.borderLeftWidth = "";
|
||
if(document.imageData.iBorder.checked) {
|