Page MenuHomeIn-Portal Phabricator

in-portal
No OneTemporary

File Metadata

Created
Mon, Sep 22, 7:10 PM

in-portal

Index: branches/unlabeled/unlabeled-1.17.2/admin/editor/cmseditor/editor/dialog/fck_link/fck_link.js
===================================================================
--- branches/unlabeled/unlabeled-1.17.2/admin/editor/cmseditor/editor/dialog/fck_link/fck_link.js (revision 6694)
+++ branches/unlabeled/unlabeled-1.17.2/admin/editor/cmseditor/editor/dialog/fck_link/fck_link.js (revision 6695)
@@ -1,708 +1,723 @@
/*
* FCKeditor - The text editor for internet
* Copyright (C) 2003-2004 Frederico Caldeira Knabben
- *
+ *
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
- *
+ *
* For further information visit:
* http://www.fckeditor.net/
- *
+ *
* File Name: fck_link.js
* Scripts related to the Link dialog window (see fck_link.html).
- *
+ *
* Version: 2.0 RC3
* Modified: 2005-02-09 13:53:13
- *
+ *
* File Authors:
* Frederico Caldeira Knabben (fredck@fckeditor.net)
*/
var oEditor = window.parent.InnerDialogLoaded() ;
var FCK = oEditor.FCK ;
var FCKLang = oEditor.FCKLang ;
var ServerPath = '';
var from = '';
var anchor_ = '';
var links_path = new Array()
//#### Dialog Tabs
// Set the dialog tabs.
//window.parent.AddTab( 'Info', FCKLang.DlgLnkInfoTab ) ;
//window.parent.AddTab( 'Target', FCKLang.DlgLnkTargetTab, true ) ;
// TODO : Enable File Upload (1/3).
//window.parent.AddTab( 'Upload', 'Upload', true ) ;
//window.parent.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ;
// Function called when a dialog tag is selected.
function OnDialogTabChange( tabCode )
{
// ShowE('divInfo' , ( tabCode == 'Info' ) ) ;
// ShowE('divTarget' , ( tabCode == 'Target' ) ) ;
// TODO : Enable File Upload (2/3).
// ShowE('divUpload' , ( tabCode == 'Upload' ) ) ;
// ShowE('divAttribs' , ( tabCode == 'Advanced' ) ) ;
}
//#### Regular Expressions library.
var oRegex = new Object() ;
oRegex.UriProtocol = new RegExp('') ;
oRegex.UriProtocol.compile( '^(((http|https|ftp|news):\/\/)|mailto:)', 'gi' ) ;
oRegex.UrlOnChangeProtocol = new RegExp('') ;
oRegex.UrlOnChangeProtocol.compile( '^(http|https|ftp|news)://(?=.)', 'gi' ) ;
oRegex.UrlOnChangeTestOther = new RegExp('') ;
oRegex.UrlOnChangeTestOther.compile( '^(javascript:|#|/)', 'gi' ) ;
oRegex.ReserveTarget = new RegExp('') ;
oRegex.ReserveTarget.compile( '^_(blank|self|top|parent)$', 'i' ) ;
oRegex.PopupUri = new RegExp('') ;
//oRegex.PopupUri.compile( "^javascript:void\\(\\s*window.open\\(\\s*'([^']+)'\\s*,\\s*(?:'([^']*)'|null)\\s*,\\s*'([^']*)'\\s*\\)\\s*\\)\\s*$" ) ;
oRegex.PopupUri.compile( "^javascript:openwincms\\(\\s*'([^']+)'\\s*,\\s*(?:'([^']*)'|null)\\s*,\\s*([^']*)\\s*,\\s*([^']*)\\s*\\)$" ) ;
oRegex.PopupFeatures = new RegExp('') ;
oRegex.PopupFeatures.compile( '(?:^|,)([^=]+)=(\\d+|yes|no)', 'gi' ) ;
//#### Parser Functions
var oParser = new Object() ;
oParser.ParseEMailUrl = function( emailUrl )
{
// Initializes the EMailInfo object.
var oEMailInfo = new Object() ;
oEMailInfo.Address = '' ;
oEMailInfo.Subject = '' ;
oEMailInfo.Body = '' ;
var oParts = emailUrl.match( /^([^\?]+)\??(.+)?/ ) ;
if ( oParts )
{
// Set the e-mail address.
oEMailInfo.Address = oParts[1] ;
// Look for the optional e-mail parameters.
if ( oParts[2] )
{
var oMatch = oParts[2].match( /(^|&)subject=([^&]+)/i ) ;
if ( oMatch ) oEMailInfo.Subject = unescape( oMatch[2] ) ;
oMatch = oParts[2].match( /(^|&)body=([^&]+)/i ) ;
if ( oMatch ) oEMailInfo.Body = unescape( oMatch[2] ) ;
}
}
return oEMailInfo ;
}
oParser.CreateEMailUri = function( address, subject, body )
{
var sBaseUri = 'mailto:' + address ;
var sParams = '' ;
if ( subject.length > 0 )
sParams = '?subject=' + escape( subject ) ;
if ( body.length > 0 )
{
sParams += ( sParams.length == 0 ? '?' : '&' ) ;
sParams += 'body=' + escape( body ) ;
}
return sBaseUri + sParams ;
}
//#### Initialization Code
// oLink: The actual selected link in the editor.
var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ;
if ( oLink ) {
FCK.Selection.MoveToNode( oLink ) ;
- //show_props(oLink.attributes, 'LINK: ')
+ //show_props(oLink.attributes, 'LINK: ')
}
function OnDialogTabChange( tabCode )
{
if (tabCode == 'Info') {
updateDataArray();
window.parent.document.getElementById('TitleArea').innerHTML = oEditor.FCKLang.DlgImgTitle;
}
}
function updateDataArray()
{
window.parent.parentData['linkTxtUrl'] = BuildUrlByType();
if (window.parent.parentData['linkTxtUrl'].length > 2) {
if (GetE('txtAlt')) {
window.parent.parentData['linkTxtAlt'] = GetE('txtAlt').value;
window.parent.parentData['linkTxtTitle'] = GetE('txtAlt').value;
}
window.parent.parentData['linkCmbTarget'] = GetE('cmbTarget').value;
window.parent.parentData['linkType'] = GetE('cmbLinkType').value;
window.location.href='dialog/fck_image.html?from';
}
}
window.onload = function()
{
CreateLinkTypes();
oEditor.FCKLanguageManager.TranslatePage(document) ;
LoadSelection() ;
GetE('divInfo').style.display = '' ;
window.parent.SetOkButton( true ) ;
}
var bHasAnchors ;
function CreateLinkTypes()
{
if (InternalLinksEsists() === true)
oEditor.FCKTools.AddSelectOption( document, GetE('cmbLinkType'), 'Internal Web Page', 'internal');
oEditor.FCKTools.AddSelectOption( document, GetE('cmbLinkType'), 'External Web Page', 'external');
oEditor.FCKTools.AddSelectOption( document, GetE('cmbLinkType'), 'E-mail', 'email');
oEditor.FCKTools.AddSelectOption( document, GetE('cmbLinkType'), 'File', 'Doc');
}
function InternalLinksEsists()
{
- if (typeof(oEditor.FCKConfig.InternalLinksEsists) != 'undefined')
+ if (typeof(oEditor.FCKConfig.InternalLinksEsists) != 'undefined')
{
- if (oEditor.FCKConfig.InternalLinksEsists != 'Off')
+ if (oEditor.FCKConfig.InternalLinksEsists != 'Off')
return true;
- } else
+ } else
return true;
}
function LoadAnchorNamesAndIds()
{
count_real_anchors = 0;
if (GetE('cmbLinkType').value != 'internal') {
ShowE( 'divNoAnchor' , 0 ) ;
return;
}
var aAnchors = window.frames["frmInternal"].document.anchors ;
if (aAnchors) {
bHasAnchors = ( aAnchors.length > 0) ;
if (GetE('cmbAnchorName').options.length > 0) {
GetE('cmbAnchorName').options.length = 0;
- }
-
+ }
+
oEditor.FCKTools.AddSelectOption( document, GetE('cmbAnchorName'), '', '' ) ;
for ( var i = 0 ; i < aAnchors.length ; i++ )
{
var sName = aAnchors[i].name ;
if ( sName && sName.length > 0 ) {
count_real_anchors++;
oEditor.FCKTools.AddSelectOption( document, GetE('cmbAnchorName'), sName, sName ) ;
}
}
if (count_real_anchors > 0) bHasAnchors = true;
else bHasAnchors = false ;
ShowE( 'divSelAnchor' , bHasAnchors ) ;
ShowE( 'divNoAnchor' , !bHasAnchors ) ;
- for ( var i = 0 ; i < GetE('cmbAnchorName').length ; i++ )
+ for ( var i = 0 ; i < GetE('cmbAnchorName').length ; i++ )
{
if (anchor_ == GetE('cmbAnchorName').options[i].value)
GetE('cmbAnchorName').options[i].selected=1;
}
- }
+ }
}
function LoadSelection()
{
var sHRef = '';
var sType = '';
if (window.parent.parentData['linkTxtUrl'])
{
sHRef = window.parent.parentData['linkTxtUrl'];
if (window.parent.parentData['linkTxtAlt'])
GetE('txtAlt').value = window.parent.parentData['linkTxtAlt'];
sType = GetE('cmbLinkType').value = window.parent.parentData['linkType'];
var sTarget = window.parent.parentData['linkCmbTarget'];
//alert('href: ' + sHRef + '\n'+'txtAlt: '+ GetE('txtAlt').value+'\n'+'sType: ' + sType+'\n'+'sTarget: ' + sTarget);
} else if ( !oLink ) {
if (InternalLinksEsists() === true)
SetLinkType('internal');
- else
+ else
SetLinkType('external');
return ;
}
- if (sHRef.length == 0)
+ if (sHRef.length == 0)
{
// Get the actual Link href.
var sHRef = oLink.getAttribute('href',2) + '' ;
if (oLink.getAttribute('alt',2)) {
if(oLink.getAttribute('alt',2).length > 0)
GetE('txtAlt').value = oLink.getAttribute('alt',2) + '' ;
else
GetE('txtAlt').value = '';
}
// Look for a popup javascript link.
}
var oPopupMatch = oRegex.PopupUri.exec( sHRef ) ;
if( oPopupMatch )
{
GetE('cmbTarget').value = 'popup' ;
sHRef = oPopupMatch[1] ;
GetE('txtPopupWidth').value = oPopupMatch[3];
GetE('txtPopupHeight').value = oPopupMatch[4];
SetTarget('popup');
}
// Search for the protocol.
var sProtocol = oRegex.UriProtocol.exec( sHRef ) ;
if ( sProtocol )
{
sProtocol = sProtocol[0].toLowerCase() ;
GetE('cmbLinkProtocol').value = sProtocol ;
// Remove the protocol and get the remainig URL.
var sUrl = sHRef.replace( oRegex.UriProtocol, '' ) ;
-
+
if ( sProtocol == 'mailto:' ) // It is an e-mail link.
{
sType = 'email' ;
var oEMailInfo = oParser.ParseEMailUrl( sUrl ) ;
GetE('txtEMailAddress').value = oEMailInfo.Address ;
GetE('txtEMailSubject').value = oEMailInfo.Subject ;
GetE('txtEMailBody').value = oEMailInfo.Body ;
}
else // It is a normal link.
GetE('txtUrl').value = sUrl ;
}
else // It is another type of link.
{
GetE('cmbLinkProtocol').value = '' ;
GetE('txtUrl').value = sHRef ;
}
-
+
if (oLink) {
//if (!window.location.search)
if (sType.length == 0)
sType = GetAttribute( oLink, 'label', '' );
if (sType.length == 0)
sType = 'external';
}
if (sType == 'Doc' && sHRef.length > 2) {
GetE('fileUrl').value = sHRef ;
}
-
-
+
+
if (sType == 'internal' && sHRef.length > 2 && sHRef.indexOf('#') > 0) {
anchor_ = sHRef.slice(sHRef.lastIndexOf('#')+1);
sHRef = sHRef.slice(0,sHRef.lastIndexOf('#'));
GetE('txtUrl').value = sHRef ;
}
-
+
if ( !oPopupMatch )
{
// Get the target.
if (oLink)
var sTarget = oLink.target;
else if (window.parent.parentData['linkCmbTarget'])
var sTarget = window.parent.parentData['linkCmbTarget'];
-
+
if ( sTarget && sTarget.length > 0 )
{
if ( oRegex.ReserveTarget.test( sTarget ) )
{
sTarget = sTarget.toLowerCase() ;
GetE('cmbTarget').value = sTarget ;
}
- else
+ else
GetE('cmbTarget').value = '' ;
}
}
GetE('cmbLinkType').value = sType ;
SetLinkType( sType );
}
//#### Link type selection.
function SetLinkType( linkType )
{
if (linkType == 'email') {
ShowE('divNoMail1',0);
ShowE('divNoMail2',0);
ShowE('divNoMail3',0);
} else {
ShowE('divNoMail1',1);
ShowE('divNoMail2',1);
ShowE('divNoMail3',1);
}
if (linkType != 'internal')
ShowE( 'divNoAnchor' , 0 ) ;
ShowE('divLinkTypeInternal' , (linkType == 'internal') ) ;
ShowE('divLinkTypeExternal' , (linkType == 'external') ) ;
ShowE('divLinkTypeEMail' , (linkType == 'email') ) ;
ShowE('divLinkTypeFile' , (linkType == 'Doc') ) ;
-
+
if(GetE('cmbTarget')) {
if (GetE('cmbTarget').value == 'popup' ) {
ShowE('divPopupSize',1);
- } else
+ } else
ShowE('divPopupSize',0);
- } else
+ } else
ShowE('divPopupSize',0);
-
+
if ( linkType == 'internal' )
LoadResources();
-
+
if ( linkType == 'email')
window.parent.SetAutoSize( true ) ;
}
function LoadResources()
{
var oXML = new FCKXml() ;
var sConnUrl = 'filemanager/browser/default/connectors/php/connector.php?Command=GetCmsTree';
sConnUrl = window.location.href.replace( /dialog.*$/, '' ) + sConnUrl ;
oXML.LoadUrl(sConnUrl, GetCmsTreeCallBack ) ; // Asynchronous load.
}
function GetCmsTreeCallBack( fckXml )
{
- //alert(show_props(fckXml, 'oNodes'));
+// alert(show_props(fckXml, 'oNodes'));
var oNodes = fckXml.SelectNodes( 'Connector/CmsPages/CmsPage' ) ;
-
+
for ( var i = 0 ; i < oNodes.length ; i++ )
{
var sCmsPage = oNodes[i].attributes.getNamedItem('path').value ;
var sCmsId = oNodes[i].attributes.getNamedItem('st_id').value ;
var sTitle = oNodes[i].attributes.getNamedItem('title').value ;
ServerPath = oNodes[i].attributes.getNamedItem('serverpath').value;
if (LinkTypeID()) {
links_path[i] = sCmsPage;
GetE('cmbImternalPagName').options[i] = new Option(sTitle, SetIDtag(sCmsId));
}
else
- GetE('cmbImternalPagName').options[i] = new Option(sTitle, sCmsPage);
-
+ GetE('cmbImternalPagName').options[i] = new Option(sTitle, sCmsPage);
+
if (GetE('txtUrl')) {
tmpUrl = GetE('txtUrl').value;
if (tmpUrl.length == 0 && i == 0) {
window.frames["frmInternal"].document.location.href = ServerPath + sCmsPage+GetAdmin();
}
//alert(tmpUrl+' === '+sCmsPage);
if (LinkTypeID())
{
if (EncodeHrefTag(tmpUrl) == SetIDtagEncode(sCmsId)) {
GetE('cmbImternalPagName').options[i].selected=1;
//alert(ServerPath+sCmsPage+GetAdmin());
window.frames["frmInternal"].document.location.href = ServerPath+sCmsPage+GetAdmin();
}
} else {
if (tmpUrl.match(sCmsPage+'$')) {
GetE('cmbImternalPagName').options[i].selected=1;
//alert(tmpUrl+GetAdmin());
window.frames["frmInternal"].document.location.href = tmpUrl+GetAdmin();
}
}
- }
+ }
}
}
function LinkTypeID()
{
- if (typeof(oEditor.FCKConfig.LocalLinkType) != 'undefined')
+ if (typeof(oEditor.FCKConfig.LocalLinkType) != 'undefined')
{
- if (oEditor.FCKConfig.LocalLinkType == 'ID')
+ if (oEditor.FCKConfig.LocalLinkType == 'ID')
return true;
- }
+ }
return false;
}
function SetIDtagEncode(id)
{
return "<%cms:GetBlockData id='"+id+"' field='href'%>";
}
function SetIDtagNoLtQt(id)
{
return "<%cms:GetBlockData id='"+id+"' field='href'%>";
}
function SetIDtag(id)
{
return "&lt;%cms:GetBlockData id='"+id+"' field='href'%&gt;";
}
function SetIDtagAMP(id)
{
return "&amp;lt;%cms:GetBlockData id='"+id+"' field='href'%&amp;gt;";
}
function ChangeInternalUrl(url,obj)
{
+// alert('ChangeInternalUrl '+ServerPath + url+GetAdmin());
if(LinkTypeID()) {
+// alert('by Link ID')
for (var i=0; i < obj.options.length; i++) {
if (obj.options[i].value == url) {
url=links_path[i];
window.frames["frmInternal"].document.location.href = ServerPath + url + GetAdmin();
return;
- }
+ }
}
- } else
+ } else {
+// alert('no link ID');
window.frames["frmInternal"].document.location.href = ServerPath + url+GetAdmin();
+ }
}
function EncodeHrefTag(text)
{
if ( typeof( text ) != "string" )
text = text.toString() ;
//alert(text);
text = text.replace(/&amp;lt;/g, "<");
text = text.replace(/&lt;/g, "<");
text = text.replace(/&amp;gt;/g, ">");
text = text.replace(/&gt;/g, ">");
- text = text.replace(/%27/g, "\'") ;
+ text = text.replace(/%27/g, "\'") ;
text = text.replace(/%3C/g, "<") ;
text = text.replace(/%3E/g, ">") ;
text = text.replace(/%&39/g, "\"") ;
//text = text.replace(/-/g, "&#45;") ;
text = text.replace(/%20/g, " ") ;
return text ;
}
function GetAdmin()
-{
- if (oEditor.FCKConfig.Admin != 'undefined') {
+{
+ if (typeof(oEditor.FCKConfig.K4) && oEditor.FCKConfig.K4 ) {
+ return '?admin=1';
+ }
+ if (typeof(oEditor.FCKConfig.Admin) != 'undefined' && oEditor.FCKConfig.Admin == 1) {
add_admin = '&admin=1&cmseditor=1';
- if (oEditor.FCKConfig.AdminSid != 'undefined')
+ if (typeof(oEditor.FCKConfig.AdminSid) != 'undefined') {
add_admin+='&sid='+oEditor.FCKConfig.AdminSid;
- if (oEditor.FCKConfig.Admin == 1) return add_admin;
- else return '';
- } else return '';
+ }
+ if (oEditor.FCKConfig.Admin == 1) {
+ return add_admin;
+ }
+ else {
+ return '';
+ }
+ }
+ else {
+ return '';
+ }
}
function show_props(obj, objName) {
var result = "";
for (var i in obj) {
alert( objName + "." + i + " = " + obj[i] + " \n" );
}
}
//#### Target type selection.
function SetTarget( targetType )
{
switch ( targetType )
{
case "_blank" :
case "_self" :
case "_parent" :
case "_top" :
GetE('cmbTarget').value = targetType ;
break ;
case "" :
GetE('cmbTarget').value = '' ;
break ;
}
- if ( targetType == 'popup' )
+ if ( targetType == 'popup' )
{
ShowE('divPopupSize',1);
window.parent.SetAutoSize( true ) ;
if (!GetE('txtPopupWidth').value)
GetE('txtPopupWidth').value = 800;
if (!GetE('txtPopupHeight').value)
GetE('txtPopupHeight').value = 600;
- } else
+ } else
ShowE('divPopupSize',0);
}
//#### Called while the user types the URL.
function OnUrlChange()
{
//alert("OnUrlChange "+ sUrl);
var sUrl = GetE('txtUrl').value ;
var sProtocol = oRegex.UrlOnChangeProtocol.exec( sUrl ) ;
if ( sProtocol )
{
sUrl = sUrl.substr( sProtocol[0].length ) ;
GetE('txtUrl').value = sUrl ;
GetE('cmbLinkProtocol').value = sProtocol[0].toLowerCase() ;
}
else if ( oRegex.UrlOnChangeTestOther.test( sUrl ) )
{
GetE('cmbLinkProtocol').value = '' ;
}
}
//#### Called while the user types the target name.
function OnTargetNameChange()
{
}
//#### Builds the javascript URI to open a popup to the specified URI.
function BuildPopupUri( uri )
{
var ret = "javascript:openwincms('"+uri+"','popup',"+GetE('txtPopupWidth').value+","+GetE('txtPopupHeight').value+")";
return ret; //void(window.open('" + uri + "'," + sWindowName + ",'" + sFeatures + "'))" ) ;
}
//#### The OK button was hit.
function BuildUrlByType()
{
switch ( GetE('cmbLinkType').value )
{
-
+
case 'internal' :
if (LinkTypeID())
sUri = GetE('cmbImternalPagName').value
else
- sUri = ServerPath+GetE('cmbImternalPagName').value;
+ sUri = ServerPath+GetE('cmbImternalPagName').value;
//sUri = GetE('cmbLinkProtocol').value + sUri ;
//alert(sUri);
var cmbAnchorName = GetE('cmbAnchorName').value
if (cmbAnchorName.length > 0)
- sUri = sUri+'#'+cmbAnchorName
-
+ sUri = sUri+'#'+cmbAnchorName
+
if( GetE('cmbTarget').value == 'popup' )
sUri = BuildPopupUri( sUri ) ;
break ;
case 'Doc' :
sUri = GetE('fileUrl').value ;
if ( sUri.length == 0 )
{
alert( FCKLang.DlnLnkMsgNoUrl ) ;
return false ;
}
//sUri = sUri ;
if( GetE('cmbTarget').value == 'popup' )
sUri = BuildPopupUri( sUri ) ;
break ;
case 'external' :
sUri = GetE('txtUrl').value ;
if ( sUri.length == 0 )
{
alert( FCKLang.DlnLnkMsgNoUrl ) ;
return false ;
}
sUri = GetE('cmbLinkProtocol').value + sUri ;
if( GetE('cmbTarget').value == 'popup' )
sUri = BuildPopupUri( sUri ) ;
break ;
-
+
case 'email' :
sUri = GetE('txtEMailAddress').value ;
if ( sUri.length == 0 )
{
alert( FCKLang.DlnLnkMsgNoEMail ) ;
return false ;
}
sUri = oParser.CreateEMailUri(
sUri,
GetE('txtEMailSubject').value,
GetE('txtEMailBody').value ) ;
break ;
}
return sUri;
}
function Ok()
{
var sUri = BuildUrlByType();
if (sUri == false)
return false;
-
+
if (window.location.search.substr(1) == 'from') {
updateDataArray();
window.location.href='dialog/fck_image.html?create';
return ;
}
-
- if ( oLink )
+
+ if ( oLink )
oLink.href = sUri ;
- else
+ else
{
oLink = oEditor.FCK.CreateLink( sUri ) ;
if ( ! oLink )
return true ;
}
if( GetE('cmbTarget').value != 'popup' )
SetAttribute( oLink, 'target', GetE('cmbTarget').value ) ;
else
SetAttribute( oLink, 'target', null ) ;
if (GetE('txtAlt')) {
SetAttribute( oLink, 'alt', GetE('txtAlt').value) ;
SetAttribute( oLink, 'title', GetE('txtAlt').value) ;
}
SetAttribute( oLink, 'label', GetE('cmbLinkType').value)
/*
if ( oEditor.FCKBrowserInfo.IsIE )
oLink.style.cssText = GetE('txtAttStyle').value ;
else
SetAttribute( oLink, 'style', GetE('txtAttStyle').value ) ;
*/
return true ;
}
function show_props(obj, objName) {
var result = "";
for (var i in obj) {
result = objName + "." + i + " = " + obj[i] + " \n";
alert(result);
}
//return result;
}
function BrowseServer(field)
{
// Set the browser window feature
urlField = field;
var iWidth = oEditor.FCKConfig.ImageBrowserWindowWidth ;
var iHeight = oEditor.FCKConfig.ImageBrowserWindowHeight ;
var iLeft = (screen.width - iWidth) / 2 ;
var iTop = (screen.height - iHeight) / 2 ;
var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes" ;
sOptions += ",width=" + iWidth ;
sOptions += ",height=" + iHeight ;
sOptions += ",left=" + iLeft ;
sOptions += ",top=" + iTop ;
// Open the browser window.
var oWindow = window.open( oEditor.FCKConfig.FilesBrowserURL, "FCKBrowseWindow", sOptions ) ;
}
function SetUrl( url, width, height, alt, fsize )
{
GetE(urlField).value = url ;
if ( alt )
GetE('txtAlt').value = alt;
}
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.17.2/admin/editor/cmseditor/editor/dialog/fck_link/fck_link.js
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.17
\ No newline at end of property
+1.17.2.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.43.2/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/commands.php
===================================================================
--- branches/unlabeled/unlabeled-1.43.2/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/commands.php (revision 6694)
+++ branches/unlabeled/unlabeled-1.43.2/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/commands.php (revision 6695)
@@ -1,581 +1,583 @@
<?php
/*
* FCKeditor - The text editor for internet
* Copyright (C) 2003-2004 Frederico Caldeira Knabben
*
* Licensed under the terms of the GNU Lesser General Public License:
* http://www.opensource.org/licenses/lgpl-license.php
*
* For further information visit:
* http://www.fckeditor.net/
*
* File Name: commands.php
* This is the File Manager Connector for ASP.
*
* Version: 2.0 RC3
* Modified: 2005-02-19 16:02:38
*
* File Authors:
* Frederico Caldeira Knabben (fredck@fckeditor.net)
*/
function GetFolders( $resourceType, $currentFolder )
{
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
// Open the "Folders" node.
$aFolders = array();
echo "<Folders>" ;
$oCurrentFolder = opendir( $sServerDir ) ;
while ( $sFile = readdir( $oCurrentFolder ) )
{
if ( $sFile != '.' && $sFile != '..' && $sFile != 'CVS' && is_dir( $sServerDir . $sFile ) )
$aFolders[] = $sFile;
//echo '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
}
if (count($aFolders) > 0) {
natcasesort($aFolders);
foreach($aFolders AS $k=>$v) {
echo '<Folder name="' . ConvertToXmlAttribute($v) . '" />' ;
}
}
closedir( $oCurrentFolder ) ;
// Close the "Folders" node.
echo "</Folders>" ;
}
function ValidateAdminSid()
{
$conn = GetADODbConnection();
$session_time = GetConfigValue('ses_timeout')+0;
$sid = ($_COOKIE['admin_sid'])?$_COOKIE['admin_sid']:$_COOKIE['sid'];
$sql = "SELECT count( sd.sid )
FROM session_data AS sd
LEFT JOIN sessions AS s ON s.sid = sd.sid
WHERE sd.`name` = 'admin_mode'
AND sd.`value` = '1'
AND sd.sid = '".$sid."'
AND s.expire + '".$session_time."' > unix_timestamp()";
if ($conn->GetOne($sql) > 0) {
return true;
}
function ValidateUserSid()
{
$conn = GetADODbConnection();
$session_time = GetConfigValue('ses_timeout')+0;
$sid = $_COOKIE['sid'];
$sql = "SELECT count( sd.sid )
FROM sessions
sid = '".$sid."'
AND expire + '".$session_time."' > unix_timestamp()";
}
if ($conn->GetOne($sql) > 0)
return true;
}
function ValidateSID()
{ global $Config;
if (isset($Config['K4Mode']))
return true;
else {
if ($Config['validate_type'] == 'user')
return ValidateUserSid();
elseif ($Config['validate_type'] == 'admin')
return ValidateAdminSid();
else
echo "SESSION Validation FALSE";
}
return false;
}
function GetCmsTree()
{
global $Config;
$ret = "<CmsPages>";
if (isset($Config['K4Mode'])) {
$ret.= K4ReadCmsTree(0);
}
else {
$ret.= ReadCmsTree(0);
}
$ret.= "</CmsPages>";
echo $ret;
}
function K4ReadCmsTree($cat_id, $level = 0)
{
$application =& kApplication::Instance();
$application->Init();
- $query = 'SELECT PageId, Path, Title FROM '.TABLE_PREFIX.'Pages ORDER By Title';
+ $lang = $application->GetVar('m_lang');
+
+ $query = 'SELECT PageId, Path, l'.$lang.'_Title AS Title FROM '.TABLE_PREFIX.'Pages ORDER By l'.$lang.'_Title';
$pages = $application->Conn->Query($query);
$res = '';
foreach ($pages as $page) {
$page_path = $page['Path'].'.html';
$title = $page['Title'].' ('.$page_path.')';
- $res .= '<CmsPage path="'.$page_path.'" title="'.$prefix.htmlspecialchars($title,ENT_QUOTES).'" st_id="'.$rs->fields['PageId'].'" serverpath="'.BASE_PATH.'" />';
+ $res .= '<CmsPage path="'.$page_path.'" title="'.$prefix.htmlspecialchars($title,ENT_QUOTES).'" st_id="'.$rs->fields['PageId'].'" serverpath="'.BASE_PATH.'/" />';
}
return $res;
}
function ReadCmsTree($st_id, $level = 0)
{
$conn = GetADODbConnection();
$query = "SELECT value FROM config WHERE name = 'default_lang_prefix'";
$rs = $conn->Execute($query);
if ($rs && !$rs->EOF)
{
$default_lang_prefix = $rs->fields['value'];
}
$query = "SELECT value FROM config WHERE name = 'cms_direct_mode'";
$rs = $conn->Execute($query);
if ($rs && !$rs->EOF)
{
$cms_mode = $rs->fields['value'];
}
$query = "SELECT value FROM config WHERE name = 'email_templates_folder_id'";
$rs = $conn->Execute($query);
if ($rs && !$rs->EOF)
{
$email_templates_folder_id = $rs->fields['value'];
}
/*
$query = "SELECT value FROM config WHERE name = 'custom_cms'";
$rs = $conn->Execute($query);
if ($rs && !$rs->EOF)
{
$custom_cms = $rs->fields['value'];
}
*/
if (GetConfigValue('custom_cms')) {
$filter = 'AND st.st_name NOT IN (' . GetConfigValue('custom_cms') . ')';
}
else {
$filter = '';
}
if ( $email_templates_folder_id == "" ) $email_templates_folder_id = 0;
$system_tpl_ids = GetConfigValue('system_tpl_ids');
if (!$system_tpl_ids)
$system_tpl_ids = '0';
if ( $cms_mode == 1 ) {
//$lang_prefix = $this->Application->GetVar('lang_prefix');
$query = "
SELECT st.*,
IF(lb.".$default_lang_prefix."_content='' OR lb.".$default_lang_prefix."_content IS NULL,
st.st_path,
lb.".$default_lang_prefix."_content
) AS page_title
FROM
structure_templates AS st
LEFT JOIN
live_blocks AS lb
ON
(st.st_id = lb.template_id) AND (lb.block_type = 3)
WHERE st.st_parent_id = ".$st_id."
AND st_id != ".$email_templates_folder_id."
AND st.st_id NOT IN ($system_tpl_ids)
AND st_path != '/cms'" . $filter . "
ORDER BY st.st_order";
}
else {
$query = "
SELECT st.*,
IF(wb.".$default_lang_prefix."_content='' OR wb.".$default_lang_prefix."_content IS NULL,
st.st_path,
wb.".$default_lang_prefix."_content
) AS page_title
FROM
structure_templates AS st
LEFT JOIN
working_blocks AS wb
ON
(st.st_id = wb.template_id) AND (wb.block_type = 3)
WHERE st.st_parent_id = ".$st_id."
AND st_id != ".$email_templates_folder_id."
AND st.st_id NOT IN ($system_tpl_ids)
AND st_path != '/cms%'" . $filter . "
ORDER BY st.st_order";
}
// echo $query."<br>";
$rs = $conn->Execute($query);
if ($rs && !$rs->EOF)
{
while ($rs && !$rs->EOF)
{
$page_path = ltrim($rs->fields['st_path'], '/');
//$page_path = SERVER_NAME.BASE_PATH.'/index.php?t='.$page_path;
//$page_path = $page_path;
$prefix='';
for ($i = 0; $i < $level; $i++)
$prefix .= '--';
if ($level > 0)
$prefix=$prefix.'- ';
/*
$page = ereg_replace("&","&amp;",$rs->fields['page_title']);
$page = ereg_replace("\"","&quot;",$page);
$page = ereg_replace("'","&#039;",$page);
$page = ereg_replace("<","&lt;",$page);
$page = ereg_replace(">","&gt;",$page);
// echo $page." <br>";
//$page = htmlentities($rs->fields['page_title'],ENT_QUOTES);
$page = $rs->fields['page_title'];
$page = ereg_replace("&atilde;","a",$page);
*/
$page = $rs->fields['page_title'];
$page = @html_entity_decode($page,ENT_NOQUOTES,'UTF-8');
$page = @htmlspecialchars($page);
//$page = ereg_replace("&atilde;","a",$page);
$res .= '<CmsPage path="'.$page_path.'" title="'.$prefix.$page.'" st_id="'.$rs->fields['st_id'].'" serverpath="'.BASE_PATH.'/index.php?t=" />';
$res .= ReadCmsTree($rs->fields['st_id'], $level+1);
$rs->MoveNext();
}
return $res;
}
}
/*
$res .= '<CmsPage>
<path><![CDATA['.$page_path.']]></path>
<title><![CDATA['.$prefix.$page.']]></title>
<st_id><![CDATA['.$rs->fields['st_id'].']]></st_id>
<serverpath><![CDATA['.BASE_PATH.'/index.php?t=.]]></serverpath>
</CmsPage>';
*/
function GetConfigValue($var)
{
$conn = GetADODbConnection();
$query = "SELECT `value` FROM config WHERE `name` = '".$var."'";
return $conn->GetOne($query);
}
function GetFoldersAndFiles( $resourceType, $currentFolder, $aParams = array('name','asc'))
{
global $Config ;
// Map the virtual path to the local server path.
if (isset($Config['K4Mode']))
$date_format = "m/d/Y h:i A";
else
$date_format = GetConfigValue('date_format').' '.GetConfigValue('time_format');
$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
// Initialize the output buffers for "Folders" and "Files".
$aFolders = array();
$aFiles = array();
$aFileSizes = array();
$sFolders = '<Folders>' ;
$sFiles = '<Files>' ;
$oCurrentFolder = opendir( $sServerDir ) ;
while ( $sFile = readdir( $oCurrentFolder ) )
{
if ( $sFile != '.' && $sFile != '..' && $sFile != 'CVS')
{
if ( is_dir( $sServerDir . $sFile ) )
$aFolders[]=$sFile;
else
{
$iFileSize = filesize( $sServerDir . $sFile ) ;
//$iFileSize[] = filesize( $sServerDir . $sFile ) ;
if ( $iFileSize > 0 )
{
$size = round( $iFileSize / 1024 );
$aFileSizes[] = ($size < 1)? 1:$size;// round( $iFileSize / 1024 ) ;
} else
$aFileSizes[] = $iFileSize;
$aFiles[] = $sFile;
$aFileDate[] = filectime($sServerDir.$sFile);
//$sFiles .= '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
}
}
}
if (count($aFolders) > 0) {
natcasesort($aFolders);
switch ($aParams[1])
{
case 'desc' :
$aFolders = array_reverse($aFolders, true);
break ;
}
foreach($aFolders AS $k=>$v) {
$sFolders .= '<Folder name="' . ConvertToXmlAttribute($v) . '" />' ;
}
}
if (count($aFiles) > 0) {
if ($aParams[0] == 'name')
{
natcasesort($aFiles);
if ($aParams[1] == 'desc')
{
$aFiles = array_reverse($aFiles, true);
}
foreach($aFiles AS $fk=>$fv) {
$sFiles .= '<File name="' . ConvertToXmlAttribute( $fv ) . '" size="' . $aFileSizes[$fk] . '" date="' . date($date_format,$aFileDate[$fk]) . '" />' ;
}
}elseif ($aParams[0] == 'size') {
natcasesort($aFileSizes);
if ($aParams[1] == 'desc')
{
$aFileSizes = array_reverse($aFileSizes, true);
}
foreach($aFileSizes AS $fk=>$fv) {
$sFiles .= '<File name="' . ConvertToXmlAttribute( $aFiles[$fk] ) . '" size="' . $fv . '" date="' . date($date_format,$aFileDate[$fk]) . '" />' ;
}
} elseif ($aParams[0] == 'date') {
natcasesort($aFileDate);
if ($aParams[1] == 'desc')
{
$aFileDate = array_reverse($aFileDate, true);
}
foreach($aFileDate AS $fk=>$fv) {
$sFiles .= '<File name="' . ConvertToXmlAttribute( $aFiles[$fk] ) . '" size="' . $aFileSizes[$fk] . '" date="' . date($date_format,$fv) . '" />' ;
}
}
}
/* while ( $sFile = readdir( $oCurrentFolder ) )
{
if ( $sFile != '.' && $sFile != '..' && $sFile != 'CVS')
{
if ( is_dir( $sServerDir . $sFile ) )
//$sFolders .= '<Folder name="' . ConvertToXmlAttribute( $sFile ) . '" />' ;
else
{
$iFileSize = filesize( $sServerDir . $sFile ) ;
if ( $iFileSize > 0 )
{
$iFileSize = round( $iFileSize / 1024 ) ;
if ( $iFileSize < 1 ) $iFileSize = 1 ;
}
$sFiles .= '<File name="' . ConvertToXmlAttribute( $sFile ) . '" size="' . $iFileSize . '" />' ;
}
}
*/
if ($aParams[1] == "desc")
{
echo $sFiles ;
echo '</Files>' ;
echo $sFolders ;
echo '</Folders>' ;
} else {
echo $sFolders ;
echo '</Folders>' ;
echo $sFiles ;
echo '</Files>' ;
}
}
function CreateFolder( $resourceType, $currentFolder )
{
$sErrorNumber = '0' ;
$sErrorMsg = '' ;
if ( isset( $_GET['NewFolderName'] ) )
{
$sNewFolderName = $_GET['NewFolderName'] ;
// Map the virtual path to the local server path of the current folder.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
if ( is_writable( $sServerDir ) )
{
$sServerDir .= $sNewFolderName ;
$sErrorMsg = CreateServerFolder( $sServerDir ) ;
switch ( $sErrorMsg )
{
case '' :
$sErrorNumber = '0' ;
break ;
case 'Invalid argument' :
case 'No such file or directory' :
$sErrorNumber = '102' ; // Path too long.
break ;
default :
$sErrorNumber = '110' ;
break ;
}
}
else
$sErrorNumber = '103' ;
}
else
$sErrorNumber = '102' ;
// Create the "Error" node.
echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ;
}
function UpdateCmsBlocksK3($resourceType,$currentFolder,$file_from,$file_to)
{ global $Config ;
$Config['UserFilesPathNoBase'];
$original_str = $Config['UserFilesPathNoBase'].$resourceType.$currentFolder.addslashes($file_from);
$new_str = $Config['UserFilesPathNoBase'].$resourceType.$currentFolder.addslashes($file_to);
$conn = GetADODbConnection();
if ( GetConfigValue('multilingual_mode') == 1) {
$query="SELECT lang_prefix FROM lang ORDER BY lang_id";
$rs = $conn->Execute($query);
while ($rs && !$rs->EOF) {
$sql = "UPDATE live_blocks SET ".$rs->fields['lang_prefix']."_content = replace(".$rs->fields['lang_prefix']."_content,'".$original_str."','".$new_str."')";
$conn->Execute($sql);
$rs->MoveNext();
}
} else {
$lang_prefix = GetConfigValue('default_lang_prefix');
$sql = "UPDATE live_blocks SET ".$lang_prefix."_content = replace(".$lang_prefix."_content,'".$original_str."','".$new_str."')";
$conn->Execute($sql);
}
}
function RenameFile( $resourceType, $currentFolder , $aFilenames = array())
{ global $Config ;
if (count($aFilenames) == 2)
{
$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
$sExtension = substr( $aFilenames[1], ( strrpos($aFilenames[1], '.') + 1 ) ) ;
$arAllowed = $Config['AllowedExtensions'][$resourceType] ;
$arDenied = $Config['DeniedExtensions'][$resourceType] ;
if (file_exists($sServerDir.$aFilenames[1]) && is_file($sServerDir.$aFilenames[1]))
{
$sErrorNumber = '204' ;
} else {
if ( ( count($arAllowed) == 0 || in_array( strtolower($sExtension), $arAllowed ) ) && ( count($arDenied) == 0 || !in_array( strtoupper($sExtension), $arDenied ) ) )
{
if (rename($sServerDir.$aFilenames[0],$sServerDir.$aFilenames[1])) {
if (isset($Config['K4Mode'])) {
// Update CMS Blocks
} else
UpdateCmsBlocksK3($resourceType,$currentFolder,$aFilenames[0],$aFilenames[1]);
$sErrorNumber = "0";
} else
$sErrorNumber = '205' ;
} else
$sErrorNumber = '203' ;
}
$sErrorMsg = '';
echo '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute( $sErrorMsg ) . '" />' ;
}
}
function FileUpload( $resourceType, $currentFolder )
{
$sErrorNumber = '0' ;
$sFileName = '' ;
if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) )
{
$oFile = $_FILES['NewFile'] ;
// Map the virtual path to the local server path.
$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
// Get the uploaded file name.
$sFileName = $oFile['name'] ;
$sOriginalFileName = $sFileName ;
$sExtension = strtolower(substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) );
global $Config ;
$arAllowed = $Config['AllowedExtensions'][$resourceType] ;
$arDenied = $Config['DeniedExtensions'][$resourceType] ;
if ( ( count($arAllowed) == 0 || in_array( $sExtension, $arAllowed ) ) && ( count($arDenied) == 0 || !in_array( $sExtension, $arDenied ) ) )
{
$iCounter = 0 ;
while ( true )
{
$sFilePath = $sServerDir . $sFileName ;
if ( is_file( $sFilePath ) )
{
$iCounter++ ;
$sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ;
$sErrorNumber = '201' ;
}
else
{
move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ;
if ( is_file( $sFilePath ) )
{
$oldumask = umask(0) ;
chmod( $sFilePath, 0666 ) ;
umask( $oldumask ) ;
}
break ;
}
}
}
else
$sErrorNumber = '202' ;
}
else
$sErrorNumber = '202' ;
echo '<script type="text/javascript">' ;
echo 'window.parent.frames["frmUpload"].OnUploadCompleted(' . $sErrorNumber . ',"' . str_replace( '"', '\\"', $sFileName ) . '") ;' ;
echo '</script>' ;
exit ;
}
function DeleteConfirmedFiles($resourceType, $currentFolder, $aFiles)
{ global $Config;
$sServerDir = ServerMapFolder( $resourceType, $currentFolder ) ;
foreach ($aFiles AS $k=>$v) {
@unlink($sServerDir.$v);
}
}
function DeleteFiles($resourceType, $currentFolder, $files = '', $confirm=0)
{ global $Config ;
if ($files == '')
return;
//$files = rtrim("|",$files);
$aFiles=explode("|",$files);
if (count($aFiles) == 0)
return;
$conn = GetADODbConnection();
$aLangs = array();
$multilang = GetConfigValue('multilingual_mode');
$def_lang_prefix = GetConfigValue('default_lang_prefix');
if ($multilang)
{
$query="SELECT lang_prefix FROM lang ORDER BY lang_id";
$rs = $conn->Execute($query);
while ($rs && !$rs->EOF) {
$aLangs[] = $rs->fields['lang_prefix'];
$rs->MoveNext();
}
} else
$aLangs[] = $def_lang_prefix;
$sErrorNumber = 230;
if ($confirm == 1) {
DeleteConfirmedFiles($resourceType, $currentFolder, $aFiles);
echo '<Error number="100" originalDescription="" />' ;
}
if (!$confirm) {
foreach ($aFiles AS $k=>$v) {
$add_sql = '';
if ($v == '')
continue;
$deleted_file = $Config['UserFilesPathNoBase'].$resourceType.$currentFolder.addslashes($v);
for($i=0; $i<count($aLangs); $i++)
$add_sql.= " lb1.".$aLangs[$i]."_content LIKE '%".$deleted_file."%' OR";
if (strlen($add_sql) > 0) {
$add_sql = rtrim($add_sql," OR");
$sql = "SELECT lb1.template_id, lb2.".$def_lang_prefix."_content FROM live_blocks AS lb1
LEFT JOIN live_blocks AS lb2 ON lb2.template_id = lb1.template_id AND lb2.block_num = 20
WHERE".$add_sql;
$rs = $conn->Execute($sql);
while ($rs && !$rs->EOF) {
$used = 1;
$page = $rs->fields[$def_lang_prefix.'_content'];
$page = @html_entity_decode($page,ENT_NOQUOTES,'UTF-8');
$page = @htmlspecialchars($page);
$ret_xml.= '<Error number="' . $sErrorNumber . '" originalDescription="' . ConvertToXmlAttribute("File '".$v."'; Template: '".$page."'") . '" />' ;
$rs->MoveNext();
}
}
}
if ($ret_xml && !$confirm)
echo $ret_xml;
if (!$ret_xml && !$confirm) {
DeleteConfirmedFiles($resourceType, $currentFolder, $aFiles);
echo '<Error number="100" originalDescription="" />' ;
}
}
}
?>
Property changes on: branches/unlabeled/unlabeled-1.43.2/admin/editor/cmseditor/editor/filemanager/browser/default/connectors/php/commands.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.43
\ No newline at end of property
+1.43.2.1
\ No newline at end of property
Index: branches/unlabeled/unlabeled-1.25.2/kernel/units/admin/admin_tag_processor.php
===================================================================
--- branches/unlabeled/unlabeled-1.25.2/kernel/units/admin/admin_tag_processor.php (revision 6694)
+++ branches/unlabeled/unlabeled-1.25.2/kernel/units/admin/admin_tag_processor.php (revision 6695)
@@ -1,492 +1,493 @@
<?php
class AdminTagProcessor extends kDBTagProcessor {
function SetConst($params)
{
$name = $this->SelectParam($params, 'name,const');
safeDefine($name, $params['value']);
}
/**
* Allows to execute js script after the page is fully loaded
*
* @param Array $params
* @return string
*/
function AfterScript($params)
{
$after_script = $this->Application->GetVar('after_script');
if ($after_script) {
return '<script type="text/javascript">'.$after_script.'</script>';
}
return '';
}
/**
* Returns section title with #section# keyword replaced with current section
*
* @param Array $params
* @return string
*/
function GetSectionTitle($params)
{
$params['name'] = replaceModuleSection($params['phrase']);
return $this->Application->ProcessParsedTag('m', 'Phrase', $params);
}
/**
* Returns section icon with #section# keyword replaced with current section
*
* @param Array $params
* @return string
*/
function GetSectionIcon($params)
{
return replaceModuleSection($params['icon']);
}
/**
* Allows to detect if current template is one of listed ones
*
* @param Array $params
* @return int
*/
function TemplateMatches($params)
{
$templates = explode(',' ,$params['templates']);
$t = $this->Application->GetVar('t');
return in_array($t, $templates) ? 1 : 0;
}
/**
* Save return script in cases, when old sections are opened from new sections
*
* @param Array $params
*/
function SaveReturnScript($params)
{
// admin/save_redirect.php?do=
$url = str_replace($this->Application->BaseURL(), '', $this->Application->ProcessParsedTag('m', 'Link', $params) );
$url = explode('?', $url, 2);
$url = 'save_redirect.php?'.$url[1].'&do='.$url[0];
$this->Application->StoreVar('ReturnScript', $url);
}
/**
* Redirects to correct next import step template based on import script data
*
* @param Array $params
*/
function ImportRedirect($params)
{
$import_id = $this->Application->GetVar('import_id');
if ($import_id) {
// redirect forward to step3 (import parameters coosing)
$this->Application->StoreVar('ImportScriptID', $import_id);
$sql = 'SELECT *
FROM '.TABLE_PREFIX.'ImportScripts
WHERE is_id = '.$import_id;
$db =& $this->Application->GetADODBConnection();
$is_params = $db->GetRow($sql);
if ($is_params['is_type'] == 'db') {
$this->Application->Redirect('', null, '', 'import/step3.php');
}
elseif ($is_params['is_type'] == 'csv') {
$module = strtolower($is_params['is_Module']);
$template = $module.'/import';
$module_info = $this->Application->findModule('Name', $module);
$item_prefix = $module_info['Var'];
$pass_params = Array('m_opener' => 'd', $item_prefix.'.import_id' => 0, $item_prefix.'.import_event' => 'OnNew', 'pass' => 'm,'.$item_prefix.'.import', 'm_cat_id' => $module_info['RootCat']);
$this->Application->Redirect($template, $pass_params);
}
}
else {
// redirect back to step2 (import type choosing)
$this->Application->Redirect('', null, '', 'import/step2.php');
}
}
/**
* Returns version of module by name
*
* @param Array $params
* @return string
*/
function ModuleVersion($params)
{
return $this->Application->findModule('Name', $params['module'], 'Version');
}
/**
* Used in table form section drawing
*
* @param Array $params
* @return string
*/
function DrawTree($params)
{
static $deep_level = 0;
// when processings, then sort children by priority (key of children array)
$ret = '';
$section_name = $params['section_name'];
$params['name'] = $this->SelectParam($params, 'name,render_as,block');
$sections_helper =& $this->Application->recallObject('SectionsHelper');
$section_data =& $sections_helper->getSectionData($section_name);
$params['children_count'] = isset($section_data['children']) ? count($section_data['children']) : 0;
$params['deep_level'] = $deep_level++;
$template = $section_data['url']['t'];
unset($section_data['url']['t']);
$section_data['section_url'] = $this->Application->HREF($template, '', $section_data['url']);
$ret .= $this->Application->ParseBlock( array_merge_recursive2($params, $section_data) );
if (!isset($section_data['children'])) {
return $ret;
}
ksort($section_data['children'], SORT_NUMERIC);
foreach ($section_data['children'] as $section_name) {
$params['section_name'] = $section_name;
$ret .= $this->DrawTree($params);
$deep_level--;
}
return $ret;
}
function PrintSection($params)
{
$section_name = $params['section_name'];
if ($section_name == '#session#') {
$section_name = $this->Application->RecallVar('section');
}
$sections_helper =& $this->Application->recallObject('SectionsHelper');
$section_data =& $sections_helper->getSectionData($section_name);
$params['name'] = $this->SelectParam($params, 'name,render_as,block');
$params['section_name'] = $section_name;
$template = $section_data['url']['t'];
unset($section_data['url']['t']);
$section_data['section_url'] = $this->Application->HREF($template, '', $section_data['url']);
$ret = $this->Application->ParseBlock( array_merge_recursive2($params, $section_data) );
return $ret;
}
/**
* Used in XML drawing for tree
*
* @param Array $params
* @return string
*/
function PrintSections($params)
{
// when processings, then sort children by priority (key of children array)
$ret = '';
$section_name = $params['section_name'];
if ($section_name == '#session#') {
$section_name = $this->Application->RecallVar('section');
}
$sections_helper =& $this->Application->recallObject('SectionsHelper');
$section_data =& $sections_helper->getSectionData($section_name);
$params['name'] = $this->SelectParam($params, 'name,render_as,block');
if (!isset($section_data['children'])) {
return '';
}
ksort($section_data['children'], SORT_NUMERIC);
foreach ($section_data['children'] as $section_name) {
$params['section_name'] = $section_name;
$section_data =& $sections_helper->getSectionData($section_name);
if (isset($section_data['tabs_only']) && $section_data['tabs_only']) {
$perm_status = false;
$folder_label = $section_data['label'];
ksort($section_data['children'], SORT_NUMERIC);
foreach ($section_data['children'] as $priority => $section_name) {
$perm_status = $this->Application->CheckPermission($section_name.'.view', 1);
if ($perm_status) {
break;
}
}
if (!$perm_status) {
// no permission for all tabs -> don't display tree node either
continue;
}
$params['section_name'] = $section_name;
$section_data =& $sections_helper->getSectionData($section_name);
$section_data['label'] = $folder_label; // use folder label in tree
$section_data['is_tab'] = 1;
}
elseif (!$this->Application->CheckPermission($section_name.'.view', 1)) {
continue;
}
$params['children_count'] = isset($section_data['children']) ? count($section_data['children']) : 0;
$template = $section_data['url']['t'];
unset($section_data['url']['t']);
$section_data['section_url'] = $this->Application->HREF($template, '', $section_data['url']);
$late_load = getArrayValue($section_data, 'late_load');
if ($late_load) {
$t = $late_load['t'];
unset($late_load['t']);
$section_data['late_load'] = $this->Application->HREF($t, '', $late_load);
$params['children_count'] = 99;
}
else {
$section_data['late_load'] = '';
}
$ret .= $this->Application->ParseBlock( array_merge_recursive2($params, $section_data) );
$params['section_name'] = $section_name;
}
return preg_replace("/\r\n|\n/", '', $ret);
}
function ListSectionPermissions($params)
{
$section_name = isset($params['section_name']) ? $params['section_name'] : $this->Application->GetVar('section_name');
$sections_helper =& $this->Application->recallObject('SectionsHelper');
$section_data =& $sections_helper->getSectionData($section_name);
$block_params = array_merge_recursive2($section_data, Array('name' => $params['render_as'], 'section_name' => $section_name));
$ret = '';
foreach ($section_data['permissions'] as $perm_name) {
if (preg_match('/^advanced:(.*)/', $perm_name) != $params['type']) continue;
$block_params['perm_name'] = $perm_name;
$ret .= $this->Application->ParseBlock($block_params);
}
return $ret;
}
function ModuleInclude($params)
{
foreach ($params as $param_name => $param_value) {
$params[$param_name] = replaceModuleSection($param_value);
}
return $this->Application->ProcessParsedTag('m', 'ModuleInclude', $params);
}
function TodayDate($params)
{
return date($params['format']);
}
function TreeEditWarrning($params)
{
$ret = $this->Application->Phrase($params['label']);
$ret = str_replace(Array('&lt;', '&gt;', 'br/', 'br /', "\n", "\r"), Array('<', '>', 'br', 'br', '', ''), $ret);
if (getArrayValue($params, 'escape')) {
$ret = addslashes($ret);
}
$ret = str_replace('<br>', '\n', $ret);
return $ret;
}
/**
* Draws section tabs using block name passed
*
* @param Array $params
*/
function ListTabs($params)
{
$sections_helper =& $this->Application->recallObject('SectionsHelper');
$section_data =& $sections_helper->getSectionData($params['section_name']);
$ret = '';
$block_params = Array('name' => $params['render_as']);
ksort($section_data['children'], SORT_NUMERIC);
foreach ($section_data['children'] as $priority => $section_name) {
if (!$this->Application->CheckPermission($section_name.'.view', 1)) continue;
$tab_data =& $sections_helper->getSectionData($section_name);
$block_params['t'] = $tab_data['url']['t'];
$block_params['title'] = $tab_data['label'];
$block_params['main_prefix'] = $section_data['SectionPrefix'];
$ret .= $this->Application->ParseBlock($block_params);
}
return $ret;
}
/**
* Returns list of module item tabs that have view permission in current category
*
* @param Array $params
*/
function ListCatalogTabs($params)
{
$ret = '';
$special = isset($params['special']) ? $params['special'] : '';
$replace_main = isset($params['replace_m']) && $params['replace_m'];
$skip_prefixes = isset($params['skip_prefixes']) ? explode(',', $params['skip_prefixes']) : Array();
$block_params = Array('name' => $params['render_as']);
foreach ($this->Application->ModuleInfo as $module_name => $module_info) {
$prefix = $module_info['Var'];
if (in_array($prefix, $skip_prefixes) || !$this->Application->getUnitOption($prefix, 'CatalogItem')) continue;
if ($prefix == 'm' && $replace_main) $prefix = 'c';
$label = $this->Application->getUnitOption($prefix, $params['title_property']);
$block_params['title'] = $label;
$block_params['prefix'] = $prefix;
$ret .= $this->Application->ParseBlock($block_params);
}
return $ret;
}
function FCKEditor($params)
{
include_once(FULL_PATH.'/admin/editor/cmseditor/fckeditor.php');
$oFCKeditor = new FCKeditor($params['name']);
$oFCKeditor->BasePath = BASE_PATH.'/admin/editor/cmseditor/';
$oFCKeditor->Width = $params['width'] ;
$oFCKeditor->Height = $params['height'] ;
$oFCKeditor->ToolbarSet = 'Advanced' ;
$oFCKeditor->Value = '' ;
$oFCKeditor->Config = Array(
//'UserFilesPath' => $pathtoroot.'kernel/user_files',
'ProjectPath' => BASE_PATH.'/',
'CustomConfigurationsPath' => $this->Application->BaseURL().'admin/editor/inp_fckconfig.js',
'EditorAreaCSS' => $this->Application->BaseURL().'/themes/inportal_site/inc/inportal.css', //GetThemeCSS(),
//'StylesXmlPath' => '../../inp_styles.xml',
// 'Debug' => 1,
'Admin' => 1,
+ 'K4' => 1,
);
return $oFCKeditor->CreateHtml();
}
/**
* Allows to construct link for opening any type of catalog item selector
*
* @param Array $params
* @return string
*/
function SelectorLink($params)
{
$mode = 'catalog';
if (isset($params['mode'])) { // {catalog, advanced_view}
$mode = $params['mode'];
unset($params['mode']);
}
$params['t'] = 'item_selector/item_selector_'.$mode;
$default_params = Array('no_amp' => 1, 'pass' => 'all,'.$params['prefix']);
unset($params['prefix']);
$pass_through = Array();
if (isset($params['tabs_dependant'])) { // {yes, no}
$pass_through['td'] = $params['tabs_dependant'];
unset($params['tabs_dependant']);
}
if (isset($params['selection_mode'])) { // {single, multi}
$pass_through['tm'] = $params['selection_mode'];
unset($params['selection_mode']);
}
if (isset($params['tab_prefixes'])) { // {all, none, <comma separated prefix list}
$pass_through['tp'] = $params['tab_prefixes'];
unset($params['tab_prefixes']);
}
if ($pass_through) {
// add pass_through to selector url if any
$params['pass_through'] = implode(',', array_keys($pass_through));
$params = array_merge_recursive2($params, $pass_through);
}
// user can override default parameters (except pass_through of course)
$params = array_merge_recursive2($default_params, $params);
return $this->Application->ProcessParsedTag('m', 't', $params);
}
function TimeFrame($params)
{
$w = adodb_date('w');
$m = adodb_date('m');
$y = adodb_date('Y');
//FirstDayOfWeek is 0 for Sunday and 1 for Monday
$fdow = $this->Application->ConfigValue('FirstDayOfWeek');
if ($fdow && $w == 0) $w = 7;
$today_start = adodb_mktime(0,0,0,adodb_date('m'),adodb_date('d'),$y);
$first_day_of_this_week = $today_start - ($w - $fdow)*86400;
$first_day_of_this_month = adodb_mktime(0,0,0,$m,1,$y);
$this_quater = ceil($m/3);
$this_quater_start = adodb_mktime(0,0,0,$this_quater*3-2,1,$y);
switch ($params['type']) {
case 'last_week_start':
$timestamp = $first_day_of_this_week - 86400*7;
break;
case 'last_week_end':
$timestamp = $first_day_of_this_week - 1;
break;
case 'last_month_start':
$timestamp = $m == 1 ? adodb_mktime(0,0,0,12,1,$y-1) : adodb_mktime(0,0,0,$m-1,1,$y);
break;
case 'last_month_end':
$timestamp = $first_day_of_this_month = adodb_mktime(0,0,0,$m,1,$y) - 1;
break;
case 'last_quater_start':
$timestamp = $this_quater == 1 ? adodb_mktime(0,0,0,10,1,$y-1) : adodb_mktime(0,0,0,($this_quater-1)*3-2,1,$y);
break;
case 'last_quater_end':
$timestamp = $this_quater_start - 1;
break;
case 'last_6_months_start':
$timestamp = $m <= 6 ? adodb_mktime(0,0,0,$m+6,1,$y-1) : adodb_mktime(0,0,0,$m-6,1,$y);
break;
case 'last_year_start':
$timestamp = adodb_mktime(0,0,0,1,1,$y-1);
break;
case 'last_year_end':
$timestamp = adodb_mktime(23,59,59,12,31,$y-1);
break;
}
if (isset($params['format'])) {
$format = $params['format'];
if(preg_match("/_regional_(.*)/", $format, $regs))
{
$lang =& $this->Application->recallObject('lang.current');
$format = $lang->GetDBField($regs[1]);
}
return adodb_date($format, $timestamp);
}
return $timestamp;
}
}
?>
\ No newline at end of file
Property changes on: branches/unlabeled/unlabeled-1.25.2/kernel/units/admin/admin_tag_processor.php
___________________________________________________________________
Modified: cvs2svn:cvs-rev
## -1 +1 ##
-1.25.2.2
\ No newline at end of property
+1.25.2.3
\ No newline at end of property

Event Timeline