* @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.6 * * {@internal * created 2004-07-14 * modified 2008-06-27, Frederic Schneider, add security fix * modified 2008-08-14, Timo Trautmann, Bilal Arslan - Functions for versionning and storing file meta data added * * $Id$: * }} * */ if (!defined('CON_FRAMEWORK')) { die('Illegal call'); } cInclude("external", "edit_area/class.edit_area.php"); cInclude("includes", "functions.file.php"); $sFileType = "html"; $sActionCreate = 'htmltpl_create'; $sActionEdit = 'htmltpl_edit'; $page = new cPage; $tpl->reset(); if (!$perm->have_perm_area_action($area, $action)) { $notification->displayNotification("error", i18n("Permission denied")); } else if (!(int) $client > 0) { #if there is no client selected, display empty page $page->render(); } else { $path = $cfgClient[$client]["tpl"]["path"]; $sTempFilename = stripslashes($_REQUEST['tmp_file']); $sOrigFileName = $sTempFilename; if (getFileType($_REQUEST['file']) != $sFileType AND strlen(stripslashes(trim($_REQUEST['file']))) > 0) { $sFilename .= stripslashes($_REQUEST['file']) . ".$sFileType"; } else { $sFilename .= stripslashes($_REQUEST['file']); } if (stripslashes($_REQUEST['file'])) { $sReloadScript = ""; } else { $sReloadScript = ""; } // Content Type is template $sTypeContent = "templates"; $aFileInfo = getFileInformation($client, $sTempFilename, $sTypeContent, $db); # create new file if ($_REQUEST['action'] == $sActionCreate AND $_REQUEST['status'] == 'send') { $sTempFilename = $sFilename; createFile($sFilename, $path); $bEdit = fileEdit($sFilename, $_REQUEST['code'], $path); $sReloadScript .= ""; updateFileInformation($client, $sFilename, 'templates', $auth->auth['uid'], $_REQUEST['description'], $db); } # edit selected file if ($_REQUEST['action'] == $sActionEdit AND $_REQUEST['status'] == 'send') { if ($sFilename != $sTempFilename) { $sTempFilename = renameFile($sTempFilename, $sFilename, $path); $sReloadScript .= ""; } else { $sTempFilename = $sFilename; } updateFileInformation($client, $sOrigFileName, 'templates', $auth->auth['uid'], $_REQUEST['description'], $db, $sFilename); /** * START TRACK VERSION * */ $sTypeContent = "templates"; if ((count($aFileInfo) == 0) || ((int) $aFileInfo["idsfi"] == 0)) { $aFileInfo = getFileInformation($client, $sTempFilename, $sTypeContent, $db); $aFileInfo['description'] = ''; } if ((count($aFileInfo) > 0) && ($aFileInfo["idsfi"] != "")) { $oVersion = new VersionFile($aFileInfo["idsfi"], $aFileInfo, $sFilename, $sTypeContent, $cfg, $cfgClient, $db, $client, $area, $frame, $sOrigFileName); // Create new Layout Version in cms/version/css/ folder $oVersion->createNewVersion(); } /** * END TRACK VERSION * */ $bEdit = fileEdit($sFilename, $_REQUEST['code'], $path); } # generate edit form if (isset($_REQUEST['action'])) { $sAction = ($bEdit) ? $sActionEdit : $_REQUEST['action']; if ($_REQUEST['action'] == $sActionEdit) { $sCode = getFileContent($sFilename, $path); } else { $sCode = empty($_REQUEST['code'])?'':$_REQUEST['code']; } /* Try to validate html */ if (getEffectiveSetting("layout", "htmlvalidator", "true") == "true" && $sCode !== "") { $v = new cHTMLValidator; $v->validate($sCode); $msg = ""; foreach ($v->missingNodes as $value) { $idqualifier = ""; $attr = array(); if ($value["name"] != "") { $attr["name"] = "name '" . $value["name"] . "'"; } if ($value["id"] != "") { $attr["id"] = "id '" . $value["id"] . "'"; } $idqualifier = implode(", ", $attr); if ($idqualifier != "") { $idqualifier = "($idqualifier)"; } $msg .= sprintf(i18n("Tag '%s' %s has no end tag (start tag is on line %s char %s)"), $value["tag"], $idqualifier, $value["line"], $value["char"]) . "
"; } if ($msg != "") { $notis = $notification->returnNotification("warning", $msg) . "
"; } } $aFileInfo = getFileInformation($client, $sTempFilename, $sTypeContent, $db); if(!empty($aFileInfo["description"])) { $sDescription = clHtmlSpecialChars($aFileInfo["description"]); } else { $sDescription = ''; } $form = new UI_Table_Form("file_editor"); $form->addHeader(i18n("Edit file")); $form->setWidth("100%"); $form->setVar("area", $area); $form->setVar("action", $sAction); $form->setVar("frame", $frame); $form->setVar("status", 'send'); $form->setVar("tmp_file", $sTempFilename); $tb_name = new cHTMLTextbox("file", $sFilename, 60); $ta_code = new cHTMLTextarea("code", clHtmlSpecialChars($sCode), 100, 35, "code"); $descr = new cHTMLTextarea("description", $sDescription, 100, 5); $ta_code->setStyle("font-family: monospace;width: 100%;"); $descr->setStyle("font-family: monospace;width: 100%;"); $ta_code->updateAttributes(array("wrap" => getEffectiveSetting('html_editor', 'wrap', 'off'))); $form->add(i18n("Name"), $tb_name); $form->add(i18n("Description"), $descr->render()); $form->add(i18n("Code"), $ta_code); $page->setContent($notis . $form->render()); $oEditArea = new EditArea('code', 'html', substr(strtolower($belang), 0, 2), true, $cfg); $page->addScript('editarea', $oEditArea->renderScript()); $page->addScript('reload', $sReloadScript); $page->render(); } } ?>