237 Zeilen
Kein EOL
9,5 KiB
PHP
237 Zeilen
Kein EOL
9,5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Project:
|
|
* Contenido Content Management System
|
|
*
|
|
* Description:
|
|
* Class for outputting some content for Ajax use
|
|
*
|
|
* Requirements:
|
|
* @con_php_req 5.0
|
|
*
|
|
*
|
|
* @package Contenido Content Types
|
|
* @version 1.0.0
|
|
* @author Timo Trautmann
|
|
* @copyright four for business AG <www.4fb.de>
|
|
* @license http://www.contenido.org/license/LIZENZ.txt
|
|
* @link http://www.4fb.de
|
|
* @link http://www.contenido.org
|
|
* @since file available since contenido release 4.8.12
|
|
*
|
|
* {@internal
|
|
* created 2009-04-08
|
|
*
|
|
* $Id$:
|
|
* }}
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* Class for outputting some content for Ajax use
|
|
*
|
|
*/
|
|
class Ajax {
|
|
|
|
/**
|
|
* Constructor of class
|
|
*
|
|
* @access public
|
|
*/
|
|
function __construct() {
|
|
|
|
}
|
|
|
|
/**
|
|
* Function for handling requested ajax data
|
|
*
|
|
* @param string $sAction - name of requested ajax action
|
|
* @access public
|
|
*/
|
|
public function handle($sAction) {
|
|
$sString = '';
|
|
switch ($sAction) {
|
|
//case to get an article select box param name value and idcat were neded (name= name of select box value=selected item)
|
|
case 'artsel':
|
|
$sName = (string) $_REQUEST['name'];
|
|
$iValue = (int) $_REQUEST['value'];
|
|
$iIdCat = (int) $_REQUEST['idcat'];
|
|
$sString = buildArticleSelect($sName, $iIdCat, $iValue);
|
|
break;
|
|
|
|
case 'dirlist':
|
|
global $cfg, $client, $lang, $cfgClient;
|
|
|
|
$sDirName = (string) $_REQUEST['dir'];
|
|
$iFileListId = (int) $_REQUEST['id'];
|
|
$iIdArtLang = (int) $_REQUEST['idartlang'];
|
|
|
|
$oArt = new Article(null, null, null, $iIdArtLang);
|
|
$sArtReturn = $oArt->getContent('CMS_FILELIST', $iFileListId);
|
|
$oFileList = new Cms_FileList($sArtReturn, $iFileListId, 0, '', $cfg, null, '', $client, $lang, $cfgClient, null);
|
|
|
|
$sString = $oFileList->getDirectoryList($oFileList->buildDirectoryList($cfgClient[$client]['upl']['path'] . $sDirName));
|
|
break;
|
|
|
|
case 'filelist':
|
|
global $cfg, $client, $lang, $cfgClient;
|
|
|
|
$sDirName = (string) $_REQUEST['dir'];
|
|
$iFileListId = (int) $_REQUEST['id'];
|
|
$iIdArtLang = (int) $_REQUEST['idartlang'];
|
|
|
|
$oArt = new Article(null, null, null, $iIdArtLang);
|
|
$sArtReturn = $oArt->getContent('CMS_FILELIST', $iFileListId);
|
|
$oFileList = new Cms_FileList($sArtReturn, $iFileListId, 0, '', $cfg, null, '', $client, $lang, $cfgClient, null);
|
|
|
|
$sString = $oFileList->getFileSelect($sDirName);
|
|
break;
|
|
|
|
case 'inused_layout':
|
|
//list of used templates for a layout
|
|
global $cfg;
|
|
$oLayout = new Layout();
|
|
if ((int) $_REQUEST['id'] > 0 && $oLayout->layoutInUse((int) $_REQUEST['id'], true)) {
|
|
$oTpl = new Template();
|
|
$aUsedTpl = $oLayout->getUsedTemplates();
|
|
if (count($aUsedTpl) > 0) {
|
|
$sResponse = '<br />';
|
|
foreach ($aUsedTpl as $i => $aTpl) {
|
|
$oTpl->set('d', 'NAME', $aTpl['tpl_name']);
|
|
$oTpl->next();
|
|
}
|
|
|
|
$oTpl->set('s', 'HEAD_NAME', i18n('Template name'));
|
|
$sString = '<div class="inuse_info" >' .
|
|
$oTpl->generate($cfg['path']['contenido'] . $cfg['path']['templates'] .
|
|
$cfg['templates']['inuse_lay_mod'], true) .
|
|
'</div>';
|
|
} else {
|
|
$sString = i18n("No data found!");
|
|
}
|
|
}
|
|
break;
|
|
|
|
case 'inused_module':
|
|
//list of used templates for a module
|
|
global $cfg;
|
|
$oModule = new cApiModule();
|
|
if ((int) $_REQUEST['id'] > 0 && $oModule->moduleInUse((int) $_REQUEST['id'], true)) {
|
|
$oTpl = new Template();
|
|
$aUsedTpl = $oModule->getUsedTemplates();
|
|
if (count($aUsedTpl) > 0) {
|
|
foreach ($aUsedTpl as $i => $aTpl) {
|
|
$oTpl->set('d', 'NAME', $aTpl['tpl_name']);
|
|
$oTpl->next();
|
|
}
|
|
|
|
$oTpl->set('s', 'HEAD_NAME', i18n('Template name'));
|
|
$sString = '<div class="inuse_info" >' .
|
|
$oTpl->generate($cfg['path']['contenido'] . $cfg['path']['templates'] .
|
|
$cfg['templates']['inuse_lay_mod'], true) .
|
|
'</div>';
|
|
} else {
|
|
$sString = i18n("No data found!");
|
|
}
|
|
}
|
|
|
|
break;
|
|
|
|
case 'inused_template':
|
|
// list of used category and art
|
|
|
|
global $cfg;
|
|
cInclude('backend', 'includes/functions.tpl.php');
|
|
|
|
if ((int) $_REQUEST['id'] > 0) {
|
|
$oTpl = new Template();
|
|
$oTpl->reset();
|
|
$aUsedData = tplGetInUsedData((int) $_REQUEST['id']);
|
|
|
|
if (isset($aUsedData['cat'])) {
|
|
$oTpl->set('s', 'HEAD_TYPE', i18n('Category'));
|
|
foreach ($aUsedData['cat'] as $i => $aCat) {
|
|
$oTpl->set('d', 'ID', $aCat['idcat']);
|
|
$oTpl->set('d', 'LANG', $aCat['lang']);
|
|
$oTpl->set('d', 'NAME', $aCat['name']);
|
|
$oTpl->next();
|
|
}
|
|
$oTpl->set('s', 'HEAD_ID', i18n('idcat'));
|
|
$oTpl->set('s', 'HEAD_LANG', i18n('idlang'));
|
|
$oTpl->set('s', 'HEAD_NAME', i18n('Name'));
|
|
$sResponse = $oTpl->generate($cfg['path']['contenido'] . $cfg['path']['templates'] . $cfg['templates']['inuse_tpl'], true);
|
|
}
|
|
|
|
|
|
$oTpl->reset();
|
|
|
|
if (isset($aUsedData['art'])) {
|
|
$oTpl->set('s', 'HEAD_TYPE', i18n('Article'));
|
|
foreach ($aUsedData['art'] as $i => $aArt) {
|
|
$oTpl->set('d', 'ID', $aArt['idart']);
|
|
$oTpl->set('d', 'LANG', $aArt['lang']);
|
|
$oTpl->set('d', 'NAME', $aArt['title']);
|
|
$oTpl->next();
|
|
}
|
|
$oTpl->set('s', 'HEAD_ID', i18n('idart'));
|
|
$oTpl->set('s', 'HEAD_LANG', i18n('idlang'));
|
|
$oTpl->set('s', 'HEAD_NAME', i18n('Name'));
|
|
$sResponse .= $oTpl->generate($cfg['path']['contenido'] . $cfg['path']['templates'] . $cfg['templates']['inuse_tpl'], true);
|
|
}
|
|
|
|
$sString = '<div class="inuse_info" >' . $sResponse . '</div>';
|
|
} else {
|
|
$sString = i18n("No data found!");
|
|
}
|
|
|
|
break;
|
|
case 'plugin_request':
|
|
if (class_exists("pimPlugin")) {
|
|
if ($_REQUEST['plugin'] === "pluginmanager") {
|
|
$oPlugin = new pimPluginDummy();
|
|
} else {
|
|
$oPlugin = new pimPlugin();
|
|
$oPlugin->loadBy("folder", $_REQUEST['plugin']);
|
|
}
|
|
if ($oPlugin->isLoaded()) {
|
|
$bActive = ($oPlugin->get("active")) ? TRUE : FALSE;
|
|
$sPluginFolder = $oPlugin->get("folder");
|
|
$sPluginPath = cRegistry::getBackendPath()
|
|
. cRegistry::getConfigValue("path", "plugins")
|
|
. $sPluginFolder . DIRECTORY_SEPARATOR;
|
|
$sAjaxClassFile = $sPluginPath
|
|
. "classes" . DIRECTORY_SEPARATOR
|
|
. "class." . $sPluginFolder . ".ajax.php";
|
|
$sAjaxIncludeFile = $sPluginPath
|
|
. "includes" . DIRECTORY_SEPARATOR
|
|
. "include." . $sPluginFolder . "_ajax.php";
|
|
if ($bActive && file_exists($sAjaxClassFile)) {
|
|
$sClassName = ucfirst($sPluginFolder) . "Ajax";
|
|
$oPluginAjax = new $sClassName();
|
|
$sString = $oPluginAjax->handle($_REQUEST['plugin_ajax_action']);
|
|
if (!empty($sString)) {
|
|
break;
|
|
}
|
|
} else if ($bActive && file_exists($sAjaxIncludeFile)) {
|
|
$sAjaxFuncName = "ajax_" . $sPluginFolder . "_" . $_REQUEST['plugin_ajax_action'];
|
|
@include_once $sAjaxIncludeFile;
|
|
if (function_exists($sAjaxFuncName)) {
|
|
$sString = $sAjaxFuncName();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//if action is unknown generate error message
|
|
default:
|
|
$sString = "Unknown Ajax Action";
|
|
break;
|
|
}
|
|
|
|
return $sString;
|
|
}
|
|
|
|
}
|
|
|
|
?>
|