Relocate folders

the old "www/layout/<admin/frontend>/<template name>/..." layout is
deprecated.

new layout:

www/layout/<admin|frontend>/<cache/css/images/javascript>/
The layout/<admin/frontend> is symlinked to www/<admin|frontend>/layout

templates and lang are moved to includes
www/includes/template/<admin/frontend>
www/includes/lang/<admin/frontend>

and no longer symlinked to any public facing folders

The language po files have already been moved to
4dev/lang/<admin|frontend>/
This commit is contained in:
Clemens Schwaighofer
2019-05-28 10:56:53 +09:00
parent 4b08a4d856
commit 593e8fa7b0
848 changed files with 291 additions and 145 deletions

View File

@@ -8,136 +8,240 @@
*********************************************************************/
// template path
if ($_SESSION['TEMPLATE']) {
$TEMPLATE = $_SESSION['TEMPLATE'];
} elseif ($LOCAL_TEMPLATE) {
$TEMPLATE = $LOCAL_TEMPLATE;
} else {
$TEMPLATE = DEFAULT_TEMPLATE;
}
$TEMPLATE_DIR = $TEMPLATE;
// master template
if (!$MASTER_TEMPLATE_NAME) {
$MASTER_TEMPLATE_NAME = MASTER_TEMPLATE_NAME;
}
// just emergency fallback for language
// set encoding
if ($_SESSION['DEFAULT_CHARSET']) {
$encoding = $_SESSION['DEFAULT_CHARSET'];
} elseif (!$encoding) {
$encoding = DEFAULT_ENCODING;
}
// just emergency fallback for language
if ($_SESSION['DEFAULT_LANG']) {
$lang = $_SESSION['DEFAULT_LANG'];
} elseif (!$lang) {
$lang = defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG;
}
// create the char lang encoding
$lang_short = substr($lang, 0, 2);
// set include & template names
$CONTENT_INCLUDE = str_replace(".php", ".tpl", $cms->page_name);
$FORM_NAME = !isset($FORM_NAME) || !$FORM_NAME ? str_replace(".php", "", $cms->page_name) : $FORM_NAME;
// set local page title
$L_TITLE = ucfirst(str_replace('_', ' ', $cms->getPageName(1))).' - '.$G_TITLE;
// strip tpl and replace it with inc
// php include file per page
$cms->INC_TEMPLATE_NAME = str_replace(".tpl", ".inc", $CONTENT_INCLUDE);
// javascript include per page
$cms->JS_TEMPLATE_NAME = str_replace(".tpl", ".js", $CONTENT_INCLUDE);
// css per page
$cms->CSS_TEMPLATE_NAME = str_replace(".tpl", ".css", $CONTENT_INCLUDE);
// special CSS file
$cms->CSS_SPECIAL_TEMPLATE_NAME = @$CSS_NAME;
// special JS file
$cms->JS_SPECIAL_TEMPLATE_NAME = @$JS_NAME;
// set basic template path (tmp)
$cms->template_path = LAYOUT.$TEMPLATE_DIR.TEMPLATES;
if ($smarty) {
$smarty->setTemplateDir($cms->template_path);
}
$cms->lang_dir = LAYOUT.$TEMPLATE_DIR.LANG; // no outside
$cms->includes = BASE.INCLUDES; // no longer in templates, only global
$cms->javascript = LAYOUT.$TEMPLATE_DIR.JS;
$cms->css = LAYOUT.$TEMPLATE_DIR.CSS;
$cms->pictures = LAYOUT.$TEMPLATE_DIR.IMAGES;
$cms->cache_pictures = LAYOUT.$TEMPLATE_DIR.CACHE;
$cms->cache_pictures_root = ROOT.$cms->cache_pictures;
if (!is_dir($cms->cache_pictures_root)) {
mkdir($cms->cache_pictures_root);
}
$template_set = $TEMPLATE;
// if we don't find the master template, set the template path back AND set the insert template as absolute path
if (!file_exists(ROOT.$smarty->getTemplateDir()[0].DS.MASTER_TEMPLATE_NAME)) {
if (file_exists(ROOT.$smarty->getTemplateDir()[0].DS.$TEMPLATE_NAME)) {
$TEMPLATE_NAME = ROOT.$smarty->getTemplateDir()[0].DS.$TEMPLATE_NAME;
}
$smarty->setTemplateDir(LAYOUT.DEFAULT_TEMPLATE.TEMPLATES);
$template_set = DEFAULT_TEMPLATE;
} elseif (!file_exists(ROOT.$smarty->getTemplateDir()[0].DS.$TEMPLATE_NAME)) {
// check if the template exists in the template path, if not, set path to to default
$smarty->setTemplateDir(LAYOUT.DEFAULT_TEMPLATE.TEMPLATES);
$template_set = DEFAULT_TEMPLATE;
}
// check if lang_dir folder exists in the template path, if not fall back to default
if (!is_dir($cms->lang_dir)) {
$cms->lang_dir = LAYOUT.DEFAULT_TEMPLATE.LANG;
}
// check if the javascript folder exists in the template path, if not fall back to default
if (!is_dir($cms->javascript)) {
$cms->javascript = LAYOUT.DEFAULT_TEMPLATE.JS;
}
// check if css folder exists in the template path, if not fall back to default
if (!is_dir($cms->css)) {
$cms->css = LAYOUT.DEFAULT_TEMPLATE.CSS;
}
if (!is_dir($cms->pictures)) {
$cms->pictures = LAYOUT.DEFAULT_TEMPLATE.PICTURES;
}
if (!is_dir($cms->cache_pictures)) {
$cms->cache_pictures = LAYOUT.DEFAULT_TEMPLATE.CACHE;
$cms->cache_pictures_root = ROOT.$cms->cache_pictures;
}
// if the template_dir is != DEFAULT_TEMPLATE, then try to make a lang switch
// if the default lang is not like the lang given, switch lang
if (false === strstr(LAYOUT.DEFAULT_TEMPLATE.LANG, $cms->lang_dir) ||
strcasecmp(defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG, $lang)
) {
$cms->debug('LANG', 'Orig: '.LAYOUT.DEFAULT_TEMPLATE.LANG.', New: '.$cms->lang_dir.' | Orig Lang: '.(defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG).', New Lang: '.$lang);
$cms->l->l10nReloadMOfile($lang, $cms->lang_dir);
// if we have login class
if ($login) {
$login->l->l10nReloadMOfile($lang, $cms->lang_dir);
}
// if we have smarty template class
if ($smarty) {
$smarty->l10n->l10nReloadMOfile($lang, $cms->lang_dir);
}
}
// javascrip translate data as template for auto translate
if (!$TEMPLATE_TRANSLATE) {
$TEMPLATE_TRANSLATE = 'jsTranslate_'.$lang.'.tpl';
$cms->debug('LANG', 'Load lang: '.$lang.', for page file '.$TEMPLATE_TRANSLATE);
} else {
// we assume we have some fixed set
// we must add _<$lang>
// if .tpl, put before .tpl
// if not .tpl, add _<$lang>.tpl
if (strpos($TEMPLATE_TRANSLATE, '.tpl')) {
$TEMPLATE_TRANSLATE = str_replace('.tpl', '_'.$lang.'.tpl', $TEMPLATE_TRANSLATE);
if (USE_DEPRECATED_TEMPLATE_FOLDERS === true) {
if ($_SESSION['TEMPLATE']) {
$TEMPLATE = $_SESSION['TEMPLATE'];
} elseif ($LOCAL_TEMPLATE) {
$TEMPLATE = $LOCAL_TEMPLATE;
} else {
$TEMPLATE_TRANSLATE .= '_'.$lang.'.tpl';
$TEMPLATE = DEFAULT_TEMPLATE;
}
$TEMPLATE_DIR = $TEMPLATE;
// master template
if (!$MASTER_TEMPLATE_NAME) {
$MASTER_TEMPLATE_NAME = MASTER_TEMPLATE_NAME;
}
// just emergency fallback for language
// set encoding
if ($_SESSION['DEFAULT_CHARSET']) {
$encoding = $_SESSION['DEFAULT_CHARSET'];
} elseif (!$encoding) {
$encoding = DEFAULT_ENCODING;
}
// just emergency fallback for language
if ($_SESSION['DEFAULT_LANG']) {
$lang = $_SESSION['DEFAULT_LANG'];
} elseif (!$lang) {
$lang = defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG;
}
// create the char lang encoding
$lang_short = substr($lang, 0, 2);
// set include & template names
$CONTENT_INCLUDE = str_replace(".php", ".tpl", $cms->page_name);
$FORM_NAME = !isset($FORM_NAME) || !$FORM_NAME ? str_replace(".php", "", $cms->page_name) : $FORM_NAME;
// set local page title
$L_TITLE = ucfirst(str_replace('_', ' ', $cms->getPageName(1))).' - '.$G_TITLE;
// strip tpl and replace it with inc
// php include file per page
$cms->INC_TEMPLATE_NAME = str_replace(".tpl", ".inc", $CONTENT_INCLUDE);
// javascript include per page
$cms->JS_TEMPLATE_NAME = str_replace(".tpl", ".js", $CONTENT_INCLUDE);
// css per page
$cms->CSS_TEMPLATE_NAME = str_replace(".tpl", ".css", $CONTENT_INCLUDE);
// special CSS file
$cms->CSS_SPECIAL_TEMPLATE_NAME = @$CSS_NAME;
// special JS file
$cms->JS_SPECIAL_TEMPLATE_NAME = @$JS_NAME;
// set basic template path (tmp)
$cms->template_path = LAYOUT.$TEMPLATE_DIR.TEMPLATES;
if ($smarty) {
$smarty->setTemplateDir($cms->template_path);
}
$cms->lang_dir = LAYOUT.$TEMPLATE_DIR.LANG; // no outside
$cms->includes = BASE.INCLUDES; // no longer in templates, only global
$cms->javascript = LAYOUT.$TEMPLATE_DIR.JS;
$cms->css = LAYOUT.$TEMPLATE_DIR.CSS;
$cms->pictures = LAYOUT.$TEMPLATE_DIR.IMAGES;
$cms->cache_pictures = LAYOUT.$TEMPLATE_DIR.CACHE;
$cms->cache_pictures_root = ROOT.$cms->cache_pictures;
if (!is_dir($cms->cache_pictures_root)) {
mkdir($cms->cache_pictures_root);
}
// if we don't find the master template, set the template path back AND set the insert template as absolute path
if (!file_exists(ROOT.$smarty->getTemplateDir()[0].DS.MASTER_TEMPLATE_NAME)) {
if (file_exists(ROOT.$smarty->getTemplateDir()[0].DS.$TEMPLATE_NAME)) {
$TEMPLATE_NAME = ROOT.$smarty->getTemplateDir()[0].DS.$TEMPLATE_NAME;
}
$smarty->setTemplateDir(LAYOUT.DEFAULT_TEMPLATE.TEMPLATES);
} elseif (!file_exists(ROOT.$smarty->getTemplateDir()[0].DS.$TEMPLATE_NAME)) {
// check if the template exists in the template path, if not, set path to to default
$smarty->setTemplateDir(LAYOUT.DEFAULT_TEMPLATE.TEMPLATES);
}
// check if lang_dir folder exists in the template path, if not fall back to default
if (!is_dir($cms->lang_dir)) {
$cms->lang_dir = LAYOUT.DEFAULT_TEMPLATE.LANG;
}
// check if the javascript folder exists in the template path, if not fall back to default
if (!is_dir($cms->javascript)) {
$cms->javascript = LAYOUT.DEFAULT_TEMPLATE.JS;
}
// check if css folder exists in the template path, if not fall back to default
if (!is_dir($cms->css)) {
$cms->css = LAYOUT.DEFAULT_TEMPLATE.CSS;
}
if (!is_dir($cms->pictures)) {
$cms->pictures = LAYOUT.DEFAULT_TEMPLATE.PICTURES;
}
if (!is_dir($cms->cache_pictures)) {
$cms->cache_pictures = LAYOUT.DEFAULT_TEMPLATE.CACHE;
$cms->cache_pictures_root = ROOT.$cms->cache_pictures;
}
// if the template_dir is != DEFAULT_TEMPLATE, then try to make a lang switch
// if the default lang is not like the lang given, switch lang
if (false === strstr(LAYOUT.DEFAULT_TEMPLATE.LANG, $cms->lang_dir) ||
strcasecmp(defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG, $lang)
) {
$cms->debug('LANG', 'Orig: '.LAYOUT.DEFAULT_TEMPLATE.LANG.', New: '.$cms->lang_dir.' | Orig Lang: '.(defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG).', New Lang: '.$lang);
$cms->l->l10nReloadMOfile($lang, $cms->lang_dir);
// if we have login class
if ($login) {
$login->l->l10nReloadMOfile($lang, $cms->lang_dir);
}
// if we have smarty template class
if ($smarty) {
$smarty->l10n->l10nReloadMOfile($lang, $cms->lang_dir);
}
}
// javascrip translate data as template for auto translate
if (!$TEMPLATE_TRANSLATE) {
$TEMPLATE_TRANSLATE = 'jsTranslate_'.$lang.'.tpl';
$cms->debug('LANG', 'Load lang: '.$lang.', for page file '.$TEMPLATE_TRANSLATE);
} else {
// we assume we have some fixed set
// we must add _<$lang>
// if .tpl, put before .tpl
// if not .tpl, add _<$lang>.tpl
if (strpos($TEMPLATE_TRANSLATE, '.tpl')) {
$TEMPLATE_TRANSLATE = str_replace('.tpl', '_'.$lang.'.tpl', $TEMPLATE_TRANSLATE);
} else {
$TEMPLATE_TRANSLATE .= '_'.$lang.'.tpl';
}
}
// if we can't find it, dump it
if (!file_exists($smarty->getTemplateDir()[0].DS.$TEMPLATE_TRANSLATE)) {
unset($TEMPLATE_TRANSLATE);
}
} else {
// master template
if (!isset($MASTER_TEMPLATE_NAME)) {
$MASTER_TEMPLATE_NAME = MASTER_TEMPLATE_NAME;
}
// just emergency fallback for language
// set encoding
if (isset($_SESSION['DEFAULT_CHARSET'])) {
$encoding = $_SESSION['DEFAULT_CHARSET'];
} elseif (!isset($encoding)) {
$encoding = DEFAULT_ENCODING;
}
// just emergency fallback for language
if (isset($_SESSION['DEFAULT_LANG'])) {
$lang = $_SESSION['DEFAULT_LANG'];
} elseif (!isset($lang)) {
$lang = defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG;
}
// create the char lang encoding
$lang_short = substr($lang, 0, 2);
// set include & template names
$CONTENT_INCLUDE = str_replace(".php", ".tpl", $cms->page_name);
$FORM_NAME = !isset($FORM_NAME) || !$FORM_NAME ? str_replace(".php", "", $cms->page_name) : $FORM_NAME;
// set local page title
$L_TITLE = ucfirst(str_replace('_', ' ', $cms->getPageName(1))).' - '.$G_TITLE;
// strip tpl and replace it with inc
// php include file per page
$cms->INC_TEMPLATE_NAME = str_replace(".tpl", ".inc", $CONTENT_INCLUDE);
// javascript include per page
$cms->JS_TEMPLATE_NAME = str_replace(".tpl", ".js", $CONTENT_INCLUDE);
// css per page
$cms->CSS_TEMPLATE_NAME = str_replace(".tpl", ".css", $CONTENT_INCLUDE);
// special CSS file
$cms->CSS_SPECIAL_TEMPLATE_NAME = $CSS_NAME;
// special JS file
$cms->JS_SPECIAL_TEMPLATE_NAME = $JS_NAME;
// set basic template path (tmp)
$cms->includes = BASE.INCLUDES; // no longer in templates, only global
$cms->template_path = BASE.INCLUDES.TEMPLATES.CONTENT_PATH;
if ($smarty) {
$smarty->setTemplateDir($cms->template_path);
}
if (isset($LANGUAGE_FOLDER)) {
$cms->kang_dir = $LANGUAGE_FOLDER;
} else {
$cms->lang_dir = BASE.INCLUDES.LANG.CONTENT_PATH; // no outside
}
$cms->javascript = LAYOUT.JS;
$cms->css = LAYOUT.CSS;
$cms->pictures = LAYOUT.IMAGES;
$cms->cache_pictures = LAYOUT.CACHE;
$cms->cache_pictures_root = ROOT.$cms->cache_pictures;
if (!is_dir($cms->cache_pictures_root)) {
mkdir($cms->cache_pictures_root);
}
// check if template names exist
if (!file_exists($smarty->getTemplateDir()[0].DS.$MASTER_TEMPLATE_NAME)) {
// abort if master template could not be found
exit('MASTER TEMPLATE: '.$MASTER_TEMPLATE_NAME.' could not be found');
}
if (isset($TEMPLATE_NAME) && !file_exists($smarty->getTemplateDir()[0].DS.$TEMPLATE_NAME)) {
exit('INCLUDE TEMPLATE: '.$TEMPLATE_NAME.' could not be found');
}
// if the lang folder is different to the default one
// if the default lang is not like the lang given, switch lang
if (false === strstr(BASE.INCLUDES.LANG.CONTENT_PATH, $cms->lang_dir) ||
strcasecmp(defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG, $lang)
) {
$cms->debug('LANG', 'Orig Lang: '.(defined('SITE_LANG') ? SITE_LANG : DEFAULT_LANG).', New Lang: '.$lang);
$cms->l->l10nReloadMOfile($lang, $cms->lang_dir);
// if we have login class
if ($login) {
$login->l->l10nReloadMOfile($lang, $cms->lang_dir);
}
// if we have smarty template class
if ($smarty) {
$smarty->l10n->l10nReloadMOfile($lang, $cms->lang_dir);
}
}
// javascrip translate data as template for auto translate
if (!$TEMPLATE_TRANSLATE) {
$TEMPLATE_TRANSLATE = 'jsTranslate_'.$lang.'.tpl';
$cms->debug('LANG', 'Load lang: '.$lang.', for page file '.$TEMPLATE_TRANSLATE);
} else {
// we assume we have some fixed set
// we must add _<$lang>
// if .tpl, put before .tpl
// if not .tpl, add _<$lang>.tpl
if (strpos($TEMPLATE_TRANSLATE, '.tpl')) {
$TEMPLATE_TRANSLATE = str_replace('.tpl', '_'.$lang.'.tpl', $TEMPLATE_TRANSLATE);
} else {
$TEMPLATE_TRANSLATE .= '_'.$lang.'.tpl';
}
}
// if we can't find it, dump it
if (!file_exists($smarty->getTemplateDir()[0].DS.$TEMPLATE_TRANSLATE)) {
unset($TEMPLATE_TRANSLATE);
}
}
// if we can't find it, dump it
if (!file_exists($smarty->getTemplateDir()[0].DS.$TEMPLATE_TRANSLATE)) {
unset($TEMPLATE_TRANSLATE);
}
// $cms->debug("LANGUAGE", "L: $lang | ".$cms->lang_dir." | MO File: ".$cms->l->mofile);

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,114 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2005/06/23
* DESCRIPTION:
* edit body part
* HISTORY:
********************************************************************
*}
<html>
<head>
<title>{$HTML_TITLE}</title>
<meta http-equiv="Content-Type" content="text/html; charset={$DEFAULT_ENCODING}">
{if $STYLESHEET}
<link rel=stylesheet type="text/css" href="{$css}{$STYLESHEET}">
{/if}
{if $JAVASCRIPT}
<script language="JavaScript" src="{$js}{$JAVASCRIPT}"></script>
{/if}
{if $DATE_JAVASCRIPT}
<script language="JavaScript" src="{$JS}{$DATE_JAVASCRIPT}"></script>
{/if}
</head>
<body>
<table width="{$table_width}" border="0" cellpadding="0" cellspacing="1">
<!-- ERROR MSG START //-->
{foreach from=$form_error_msg item=element key=key name=loop}
{include file="edit_error_msg.tpl"}
{/foreach}
<!-- ERROR MSG END //-->
<!-- TOP MENU START //-->
<tr>
<td width="{$table_width}" class="menu_bgcolor" valign="top">
<table width="100%" border="0" cellpadding="2" cellspacing="1">
<form method="post">
<tr>
<td bgcolor="{$HEADER_COLOR}" class="normal">
Hello <b>{$USER_NAME|upper}</b> [{$EUID}] from the group <b>{$GROUP_NAME}</b> with Access Level <b>{$GROUP_LEVEL}</b>
</td>
<td bgcolor="{$HEADER_COLOR}" class="normal" align="right">
<input type="submit" name="login_logout" value="Logout">
</td>
</tr>
</form>
</table>
<table width="100%" border="0" cellpadding="2" cellspacing="1">
<tr>
{* foreach menu *}
{foreach from=$menu_data item=menu_element}
{* if split factor is reached *}
{if $menu_element.splitfactor_in}
<td class="menu_fgcolor" class="small" valign="top">
{/if}
{if $menu_element.position}
<b><a href="{$menu_element.filename}">{$menu_element.pagename}</a></b><br>
{else}
{if !$menu_element.popup}
<a href="{$menu_element.filename}">{$menu_element.pagename}</a><br>
{else}
<a href="javascript:pop('{$menu_element.filename}','{$menu_element.rand}','status=no,scrollbars=yes,width={$menu_element.width},height={$menu_element.height}');">{$menu_element.pagename}</a><br>
{/if}
{/if}
{if $menu_element.splitfactor_out}
</td>
{/if}
{/foreach}
</tr>
</table>
<table width="100%" border="0" cellpadding="10" cellspacing="1">
<tr>
<td class="edit_fgcolor_alt" class="headline" align="center">
{$page_name}
</td>
</tr>
</table>
</td>
</tr>
<!-- TOP MENU END //-->
<tr>
<td width="{$table_width}" class="edit_bgcolor">
<form method="post" name="edit_form" style="margin-block-end: 0em;">
<table width="100%" border="0" cellpadding="2" cellspacing="1">
<!-- LOAD START //-->
{include file="edit_load.tpl"}
<!-- LOAD END //-->
<!-- NEW START //-->
{include file="edit_new.tpl"}
{* $form_create_new*}
<!-- NEW END //-->
{if $form_yes}
{include file="edit_save_delete.tpl"}
{if $form_my_page_name == "edit_pages" && $filename_exist}
<tr>
<td class="edit_fgcolor" class="normal">
Filename:
</td>
<td class="edit_fgcolor" class="normal">
{$filename}
<input type="hidden" name="filename" value="{$filename}">
</td>
</tr>
{/if}
{include file="edit_elements.tpl"}
{include file="edit_hidden.tpl"}
{include file="edit_save_delete.tpl"}
{/if}
</table>
</form>
</td>
</tr>
</table>
</body>
</html>

View File

@@ -0,0 +1,129 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2005/06/23
* DESCRIPTION:
* prints out the elements for the form in the edit interface
* HISTORY:
********************************************************************
*}
{foreach from=$elements item=element key=key name=loop}
<tr>
<td class="edit_fgcolor" class="normal" valign="top">
{$element.output_name}
</td>
<td class="{$element.color}" class="normal">
{* here is depending on type the content data *}
{if $element.type == 'view'}
{$element.data.value}
{/if}
{if $element.type == 'binary' || $element.type == 'radio_array'}
{html_radios values=$element.data.value output=$element.data.output name=$element.data.name selected=$element.data.checked separator=$element.data.separator}
{/if}
{if $element.type == 'checkbox'}
{html_checkboxes values=$element.data.value output=$element.data.output selected=$element.data.checked}
{/if}
{if $element.type == 'text'}
<input type="text" name="{$element.data.name}" value="{$element.data.value}"{if $element.data.size} size="{$element.data.size}"{/if}{if $element.data.length} maxlength="{$element.data.length}"{/if}>
{/if}
{if $element.type == 'password'}
Password: <input type="password" name="{$element.data.name}" {if $element.data.size} size="{$element.data.size}"{/if}{if $element.data.length} maxlength="{$element.data.length}"{/if}> {if $element.data.HIDDEN_value}{t}Password set{/t}{/if}<br>
Confirm: <input type="password" name="CONFIRM_{$element.data.name}" {if $element.data.size} size="{$element.data.size}"{/if}{if $element.data.length} maxlength="{$element.data.length}"{/if}>
<input type="hidden" name="HIDDEN_{$element.data.name}" value="{$element.data.HIDDEN_value}">
{/if}
{if $element.type == 'date'}
<input type="text" name="{$element.data.name}" value="{$element.data.value}" size="10" maxlength="10">
{/if}
{if $element.type == 'textarea'}
<textarea name="{$element.data.name}"{if $element.data.rows} rows="{$element.data.rows}"{/if}{if $element.data.cols} cols="{$element.data.cols}"{/if}>{$element.data.value}</textarea>
{/if}
{if $element.type == 'drop_down'}
{html_options name=$element.data.name values=$element.data.value output=$element.data.output selected=$element.data.selected}
{if $drop_down_input}
&nbsp;&nbsp;&nbsp;<input type="text" name="{$element.data.input_name}" value="{$element.data.input_value}"{if $element.data.input_size} size="{$element.data.input_size}"{/if}{if $element.data.input_length} maxlength="{$element.data.input_length}"{/if}>
{/if}
{/if}
{if $element.type == 'media'}
{* not yet implemented *}
{/if}
{if $element.type == 'order'}
{* <input type="button" name="order" value="{$element.data.output_name}" OnClick="pop('order.php?col_name={$element.data.col_name}&table_name={$element.data.table_name}&where={$element.data.query}','Order','status=no,scrollbars=yes,width=700,height=500');"> *}
<input type="button" name="order" value="{$element.data.output_name}" OnClick="pop('edit_order.php?table_name={$element.data.table_name}&where={$element.data.query}','Order','status=no,scrollbars=yes,width=700,height=500');">
<input type="hidden" name="{$element.data.name}" value="{$element.data.value}">
{/if}
{if $element.type == 'file'}
<input type="file" name="{$element.data.name}_file">
{if $element.data.content}
<br><a href="{$element.data.url}" target="_blank">{$element.data.output}</a>';
<br><input type="checkbox" name="{$element.data.name}_delete" value="1"> {t}delete this file{/t}
<input type="hidden" name="{$element.data.name}" value="{$element.data.value}">
{/if}
{/if}
{if $element.type == 'reference_table'}
<select name="{$element.data.name}[]" size="{$element.data.size}" multiple>
{html_options values=$element.data.value output=$element.data.output selected=$element.data.selected}
</select>
{/if}
{if $element.type == 'element_list'}
{* each row of data *}
<table width="100%" border="0">
{foreach from=$element.data.content item=line key=key}
<tr>
{* now each line of data *}
<td>
{$key}:
</td>
{foreach from=$line item=line_item key=line_key}
<td>
{* {$line_item} - {$line_key} [{$element.data.type.$line_key}] ||<br> *}
{* {$element.data.pos.$key} *}
{* {$element.data.delete_name} *}
{if $element.data.type.$line_key == 'string'}
{$line_item}
<input type="hidden" name="{$line_key}[]" value="{$line_item}">
{/if}
{if $element.data.type.$line_key == 'hidden'}
<input type="hidden" name="{$line_key}[]" value="{$line_item}">
{/if}
{if $element.data.type.$line_key == 'checkbox'}
{html_checkboxes name=$line_key values=$element.data.element_list.$line_key output=$element.data.output_name.$line_key selected=$line_item pos=$element.data.pos.$key}
{/if}
{if $element.data.type.$line_key == 'radio'}
{html_radios name=$line_key values=$element.data.element_list.$line_key output=$element.data.output_name.$line_key selected=$line_item}
{/if}
{if $element.data.type.$line_key == 'radio_group'}
{$element.data.output_name.$line_key} <input type="radio" name="{$line_key}" value="{$key}" {if $line_item}checked{/if}>
{/if}
{if $element.data.type.$line_key == 'text'}
{$element.data.output_name.$line_key}: <input type="text" name="{$line_key}[]" value="{$line_item}">
{/if}
{if $element.data.type.$line_key == 'drop_down_db'}
{assign var="_line_key" value="`$line_key`[]"}
{$element.data.output_name.$line_key}: {html_options name=$_line_key values=$element.data.element_list.$line_key output=$element.data.output_data.$line_key selected=$line_item}
{/if}
{* if there is a hidden key, set delete, but only if we have a delete string *}
{if $element.data.type.$line_key == 'hidden' && $line_item && $element.data.delete_name}
<input type="submit" name="remove_button" value="{t}Delete{/t}" onClick="document.edit_form.{$element.data.delete_name}.value={$line_item};document.edit_form.{$element.data.delete_name}_flag.value=confirm('{t}Do you want to remove this entry?{/t}');document.edit_form.submit();">
{/if}
{if $element.data.type.$line_key == 'hidden' && $element.data.enable_name && $element.data.delete && $element.data.output_name.$line_key}
<input type="checkbox" name="{$element.data.enable_name}[{$key}]" value="1" {if $line_item}checked{/if}> {$element.data.output_name.$line_key}
{/if}
</td>
{/foreach}
</tr>
{/foreach}
</table>
{if $element.data.delete_name}
<input type="hidden" value="" name="{$element.data.delete_name}">
<input type="hidden" value="" name="{$element.data.delete_name}_flag">
<input type="hidden" name="remove_name[]" value="{$element.data.delete_name}">
{/if}
{if $element.data.enable_name}
<input type="hidden" name="remove_name[]" value="{$element.data.enable_name}">
<input type="hidden" name="primary_key[]" value="{$element.data.enable_name}">
{/if}
<input type="hidden" name="element_list[]" value="{$element.data.table_name}">
{/if}
</td>
</tr>
{/foreach}

View File

@@ -0,0 +1,15 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2005/06/23
* DESCRIPTION:
* prints out error or warning message
* HISTORY:
********************************************************************
*}
<tr>
<td valign="top" align="center" class="{$element.class}">
{$element.msg}
</td>
</tr>

View File

@@ -0,0 +1,12 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2005/06/23
* DESCRIPTION:
* show hidden messages
* HISTORY:
********************************************************************
*}
{foreach from=$hidden item=element key=key name=loop}
<input type="hidden" name="{$element.key}" value="{$element.value}">
{/foreach}

View File

@@ -0,0 +1,22 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2005/06/23
* DESCRIPTION:
* load part of template
* HISTORY:
********************************************************************
*}
<tr>
<td class="edit_fgcolor_alt" class="normal">
Load:
</td>
<td class="edit_fgcolor_alt" class="normal">
<select name="{$load.t_pk_name}">
<option value="">{t}Please choose{/t}</option>
{html_options values=$load.pk_ids output=$load.pk_names selected=$load.pk_selected}
</select>&nbsp;
<input type="submit" name="archive" value="{t}Load{/t}">
</td>
</tr>

View File

@@ -0,0 +1,23 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2005/06/23
* DESCRIPTION:
* new part
* HISTORY:
********************************************************************
*}
<tr>
<td class="edit_fgcolor_alt" class="normal">
{t}Create new media:{/t}
</td>
<td class="edit_fgcolor_alt" class="normal">
{if $new.show_checkbox}
<input type="checkbox" name="really_new" value="yes">&nbsp;{t}really{/t}&nbsp;
{else}
<input type="hidden" name="really_new" value="yes">
{/if}
<input type="submit" name="new" value="{$new.new_name}">
</td>
</tr>

View File

@@ -0,0 +1,82 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2005/07/11
* DESCRIPTION:
* order page
* HISTORY:
********************************************************************
*}
<html>
<head>
<title>{$HTML_TITLE}</title>
<meta http-equiv="Content-Type" content="text/html; charset={$DEFAULT_ENCODING}">
{if $STYLESHEET}
<link rel=stylesheet type="text/css" href="{$css}{$STYLESHEET}">
{/if}
{if $JAVASCRIPT}
<script language="JavaScript" src="{$JS}{$JAVASCRIPT}"></script>
{/if}
{if $DATE_JAVASCRIPT}
<script language="JavaScript" src="{$JS}{$DATE_JAVASCRIPT}"></script>
{/if}
</head>
<body>
<table width="{$table_width}" border="0" cellpadding="0" cellspacing="1">
<!-- ERROR MSG START //-->
{foreach from=$form_error_msg item=element key=key name=loop}
{include file="edit_error_msg.tpl"}
{/foreach}
<!-- ERROR MSG END //-->
<!-- BODY START //-->
<tr>
<td class="edit_bgcolor">
<table width="100%" border="0" cellpadding="2" cellspacing="1">
<!-- ANFANG Neu //-->
<form method="post" enctype="multipart/form-data">
<tr>
<td class="edit_fgcolor_alt" class="normal" colspan="2">
Order
</td>
</tr>
<tr>
<td class="edit_fgcolor" class="normal" width="80%">
<select name="position[]" size="20" multiple>
{html_options values=$options_id output=$options_name selected=$options_selected}
</select>
<!-- verschiedene hiddens //-->
{foreach item=item from=$row_data_id key=key}
<input type="hidden" name="row_data_id[{$key}]" value="{$item}">
{/foreach}
{foreach item=item from=$row_data_order key=key}
<input type="hidden" name="row_data_order[{$key}]" value="{$item}">
{/foreach}
<!-- verschiedene hiddens //-->
</td>
<td class="edit_fgcolor" class="normal" width="20%">
<input type="submit" name="up" value="Up">
<p>
<hr>
<p>
<input type="submit" name="down" value="Down">
<!-- single hiddens //-->
<input type="hidden" name="table_name" value="{$table_name}">
<input type="hidden" name="where_string" value="{$where_string}">
<!-- single hiddens //-->
</td>
</tr>
<tr>
<td class="edit_fgcolor_alt" class="normal" colspan="2">
<input type="button" name="close" value="Close" OnClick="self.close();">
</td>
</tr>
</form>
<!-- ENDE FOOTER //-->
</table>
</td>
</tr>
<!-- BODY END //-->
</table>
</body>
</html>

View File

@@ -0,0 +1,32 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2005/06/23
* DESCRIPTION:
* save / delete part of edit window
* HISTORY:
********************************************************************
*}
<tr>
{if $save_delete.seclevel_okay}
<td class="edit_fgcolor_alt" class="normal">
<input type="submit" name="save" value="{$save_delete.save}">
{if $save_delete.old_school_hidden}
<input type="hidden" name="{$save_delete.pk_name}" value="{$save_delete.pk_value}">
{/if}
</td>
{/if}
{if $save_delete.show_delete}
<td class="edit_fgcolor_delete">
{if !$save_delete.hide_delete_checkbox}
<input type="checkbox" name="really_delete" value="yes">&nbsp;{t}really{/t}&nbsp;
{else}
<input type="hidden" name="really_delete" value="yes">
{/if}
<input type="submit" name="delete" value="{t}Delete{/t}">
{else}
<td class="edit_fgcolor_alt" class="normal">
&nbsp;
{/if}
</td>
</tr>

View File

@@ -0,0 +1,108 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2005/06/23
* DESCRIPTION:
* edit body part
* HISTORY:
********************************************************************
*}
<div style="position:relative; width: {$table_width}px; margin-top: 5px; margin-bottom: 5px; top: 0px; left: 0px;">
{* <div style="position: absolute; top: 0px; left: 0px; width: 240px; height: 100%; z-index: 1; overflow: auto; border: 1px solid blue;">
left
</div> *}
<div style="position: relative; top: 0px; left: 0px; width: 790px; z-index: 2; margin: 2px; padding: 2px;">
<div style="margin-bottom: 2px; padding: 2px; position: relative; border: 1px solid #e5ddba;">
<div style="margin-bottom: 2px; padding: 2px; font-size: 12px; font-weight: bold;">
Status
</div>
<div id="index_issues_data" style="margin-bottom: 2px; padding: 2px; border: 1px solid gray;">
<b>Shops</b><br>
Shops Flagged Delete: {$shop_delete_flagged}<br>
Shops Flagged Offline: {$shop_offline_flagged}<br>
Shops Flagged Online: {$shop_online_flagged}<br>
Shops without any categories: {$shop_no_category}<br>
<br>
<b>Products</b><br>
Products Flagged no image: {$products_no_image_flagged}<br>
Products Flagged offline: {$products_offline_flagged}<br>
Products Flagged online: {$products_online_flagged}<br>
Products without any color tags: {$products_no_color_tags}<br>
<br>
<b>Categories</b><br>
Categories without Products: {$categories_no_products}<br>
</div>
</div>
{ * shows shops to be uploaded *}
{if $queued_items}
<form method="post" name="{$form_name}">
<div style="margin-bottom: 2px; padding: 2px; position: relative; border: 2px solid #8a1113;">
<div style="margin-bottom: 2px; padding: 2px; position: relative; height: 30px;">
<div style="position: absolute; top: 2px; left: 2px; height: 20px; width: 140px; padding: 2px; font-size: 12px; font-weight: bold;">
Items to push live
</div>
<div style="position: absolute; top: 2px; right: 2px; height: 25px; width: 450px; padding: 2px; text-align: right;">
<input type="button" id="cancel_push_live" name="cancel_push_live" value="Delete from live Queue" OnClick="document.{$form_name}.action.value='cancel_push_live';document.{$form_name}.action_yes.value=confirm('Do you want to want to delete the selected items from the live queue?');if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 90}disabled{/if}>
<input type="button" id="push_live" name="push_live" value="Push data to live server" OnClick="document.{$form_name}.action.value='push_live';document.{$form_name}.action_yes.value=confirm('Do you want to push all the changes to the live server?');if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $locked || $page_acl < 90}disabled{/if}>
</div>
</div>
<div id="index_issues_data" style="margin-bottom: 2px; padding: 2px; border: 1px solid gray;">
<div style="clear: both;"></div>
<div style="float: left; width: 40px; text-align: right; font-weight: bold; padding-right: 2px; border-right: 1px solid gray; border-bottom: 1px solid gray;">del</div>
<div style="float: left; width: 30px; font-weight: bold; border-bottom: 1px solid gray; padding-left: 2px;">GK</div>
<div style="float: left; width: 140px; font-weight: bold; border-bottom: 1px solid gray;">Date</div>
<div style="float: left; width: 70px; font-weight: bold; border-bottom: 1px solid gray;">Type</div>
<div style="float: left; width: 50px; font-weight: bold; border-bottom: 1px solid gray;">Action</div>
<div style="float: left; width: 80px; font-weight: bold; border-bottom: 1px solid gray;">Target</div>
<div style="float: left; width: 80px; font-weight: bold; border-bottom: 1px solid gray;">Key</div>
<div style="float: left; width: 170px; font-weight: bold; border-bottom: 1px solid gray;">Key ID</div>
<div style="float: left; width: 30px; font-weight: bold; border-bottom: 1px solid gray;">Asc</div>
<div style="float: left; width: 50px; font-weight: bold; border-bottom: 1px solid gray;">Lock</div>
<div style="clear: both;"></div>
{foreach from=$queued_items key=key item=item}
<div style="float: left; width: 40px; text-align: right; padding-right: 2px; margin-right: 2px; border-right: 1px solid gray; background-color: {$item.color};">{if $item.checkbox}<input type="checkbox" name="group_key[]" value="{$item.group_key}" style="height: 9px;" {if $item.associate != '-'}disabled{/if}>{else}&nbsp;{/if}</div>
<div style="float: left; width: 30px; background-color: {$item.color};" {popup width="30" caption="ID" text="`$key`"}>{$item.group_key}</div>
<div style="float: left; width: 140px; background-color: {$item.color};">{$item.date_created}</div>
<div style="float: left; width: 70px; background-color: {$item.color}; font-weight: bold; color: {$item.type_color};" {popup width="450" caption="Data" text="`$item.data`"}>{$item.type}</div>
<div style="float: left; width: 50px; background-color: {$item.color};">{$item.action}</div>
<div style="float: left; width: 80px; background-color: {$item.color};">{$item.target}</div>
<div style="float: left; width: 80px; background-color: {$item.color};">{$item.key_name}</div>
<div style="float: left; width: 170px; background-color: {$item.color};" {popup width="250" caption="Key ID" text="`$item.key_value`"}>{$item.key_value}</div>
<div style="float: left; width: 30px; background-color: {$item.color};">{$item.associate}</div>
<div style="float: left; width: 50px; background-color: {$item.color}; font-weight: bold; color: red;">{$item.locked}</div>
<div style="clear: both;"></div>
{/foreach}
</div>
</div>
<input type="hidden" id="action" name="action" value="">
<input type="hidden" id="action_yes" name="action_yes" value="">
<input type="hidden" name="action_loaded" value="true">
</form>
{/if}
<div style="margin-bottom: 2px; padding: 2px; position: relative; border: 1px solid #e5ddba;">
<div style="margin-bottom: 2px; padding: 2px; font-size: 12px; font-weight: bold;">
Issues
</div>
<div id="index_issues_data" style="margin-bottom: 2px; padding: 2px; border: 1px solid gray;">
{$issue_data}
</div>
</div>
<div style="margin-bottom: 2px; padding: 2px; position: relative; border: 1px solid #e5ddba;">
<div style="margin-bottom: 2px; padding: 2px; position: relative; height: 26px;">
<div style="position: absolute; top: 2px; left: 2px; height: 20px; width: 250px; padding: 2px; font-size: 12px; font-weight: bold;">
Quick Search
</div>
<div style="position: absolute; top: 2px; right: 2px; height: 20px; width: 350px; padding: 2px; text-align: right;" {popup width="100" text="Search in Key, Name, Prefecture, Category"}>
<span id="search_status">Search for Key / String:</span> <input type="text" id="quick_search_shop" name="quick_search_shop" value="" onKeyup="QuickSearchInput(); return false;">
</div>
</div>
<div id="quick_search_results" style="margin-bottom: 2px; padding: 2px; position: relative; border: 1px solid gray;">
Enter something to search into the search field
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,143 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2005/06/23
* DESCRIPTION:
* edit body part
* HISTORY:
********************************************************************
*}
<html>
<head>
<title>{$HTML_TITLE}</title>
<meta http-equiv="Content-Type" content="text/html; charset={$ENCODING}">
{if $STYLESHEET}
<link rel=stylesheet type="text/css" href="{$css}{$STYLESHEET}">
{/if}
{if $CSS_INCLUDE}
<link rel=stylesheet type="text/css" href="{$CSS_INCLUDE}">
{/if}
{if $CSS_SPECIAL_INCLUDE}
<link rel=stylesheet type="text/css" href="{$CSS_SPECIAL_INCLUDE}">
{/if}
<script language="JavaScript">
<!--
var DEBUG = {$JS_DEBUG};
//-->
</script>
<script language="JavaScript" src="{$js}/firebug.js"></script>
<script language="JavaScript" src="{$js}/debug.js"></script>
{if $USE_JQUERY}
<!-- JQuery -->
<script type="text/javascript" src="{$js}/jquery.min.js"></script>
{/if}
{if $USE_PROTOTYPE}
<script src="{$js}/scriptaculous/prototype.js" type="text/javascript"></script>
{/if}
{if $USE_SCRIPTACULOUS}
<script src="{$js}/scriptaculous/scriptaculous.js" type="text/javascript"></script>
{/if}
{if $JAVASCRIPT}
<script language="JavaScript" src="{$js}{$JAVASCRIPT}"></script>
{/if}
{* declare prototype everywhere *}
{if $JS_INCLUDE}
<script language="JavaScript" src="{$JS_INCLUDE}"></script>
{/if}
{if $JS_SPECIAL_INCLUDE}
<script language="JavaScript" src="{$JS_SPECIAL_INCLUDE}"></script>
{/if}
{if $USE_TINY_MCE}
<!-- TinyMCE -->
<script type="text/javascript" src="{$js}/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
{literal}
tinyMCE.init({
{/literal}
mode : "specific_textareas",
language : "{$LANG_SHORT}",
theme : "advanced",
editor_selector : "mceEditor",
theme_advanced_toolbar_location : "top",
theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,|,undo,redo,|,cleanup,|,bullist,outdent,indent",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true
{literal}
});
{/literal}
{literal}
tinyMCE.init({
{/literal}
mode : "specific_textareas",
language : "{$LANG_SHORT}",
theme : "advanced",
editor_selector : "mceTable",
plugins : "table",
theme_advanced_toolbar_location : "top",
theme_advanced_buttons1 : "bold,italic,underline,|,justifyleft,justifycenter,justifyright,|,undo,redo,|,cleanup,|,tablecontrols",
theme_advanced_buttons2 : "",
theme_advanced_buttons3 : "",
theme_advanced_statusbar_location : "bottom",
theme_advanced_resizing : true
{literal}
});
{/literal}
</script>
<!-- /TinyMCE -->
{/if}
{popup_init src="`$js`/overlib/overlib.js"}
</head>
<body>
<div style="margin: 2px; width: {$table_width}px; margin-bottom: 10px;">
<div style="position: relative; height: 20px;" class="menu">
<div style="position: absolute; width: 200px;">{t 1=$USER_NAME|upper}Hello %1{/t}</div>
<div style="position: absolute; text-align: right; right: 0px; width: 120px;">
<a href="#" OnClick="loginLogout(); return false;">{t}Logout{/t}</a>
</div>
</div>
<div style="margin-bottom: 5px;" class="menu">
{* menu *}
{foreach key=key item=item from=$nav_menu}
{if $key != 0}
&middot;
{/if}
{if !$item.enabled}
{$item.name}
{elseif $item.selected}
<a href="{$item.url}" class="highlight">{$item.name}</a>
{elseif $item.popup}
{elseif $item.enabled}
<a href="{$item.url}">{$item.name}</a>
{/if}
{/foreach}
</div>
<div class="pagename">
{$page_name}
</div>
</div>
{* error/warning *}
{if $messages}
<div style="margin: 2px; width: {$table_width}px;">
{foreach from=$messages item=item key=key}
<div class="{$item.class}">{$item.msg}</div>
{/foreach}
</div>
{/if}
{include file="$TEMPLATE_NAME"}
{* debug info *}
{if $DEBUG}
<div style="width:{$table_width}px;" class="debug_message">
{$Id}<br>
<b>{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}</b><br>
{$debug_error_msg}
</div>
{/if}
</body>
</html>

View File

@@ -0,0 +1,113 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2007/10/18
* DESCRIPTION:
* content main part (buttons, load, etc)
* HISTORY:
********************************************************************
*}
<script language="JavaScript">
<!--
var form_name = '{$form_name}';
var load_id = '{if $primary_key}{$primary_key}{else}0{/if}';
var show_sort = {$show_sort};
//-->
</script>
<div style="position:relative; width: {$table_width}px; margin-top: 5px; margin-bottom: 5px; top: 0px; left: 0px;">
<div id="main_menu" style="position: absolute; top: 0px; left: 0px; width: 750px; height: 550px; z-index: 5; overflow: auto; padding: 2px; visibility: hidden;" class="sidemenu">
<div style="position: absolute; top: 2px; left: 2px;">
<input type="button" id="show_menu" name="show_menu" value="{t}Close Menu{/t}" OnClick="ShowHideMenu('hide', 'main_menu');"> {if $primary_key}<a href="#{$primary_key}">&darr;</a>{/if}&nbsp;<input type="text" id="search" name="search" value="{$search}" OnKeyup="QuickSearch(); return false;" {popup text="Search" width="150"}> <span id="search_status">{t}Enter Value{/t}</span>
<div id="search_found">{t 1=$menu_elements}Found: %1{/t}</div>
</div>
<div id="search_results" style="position: relative; top: 32px; left: 2px; padding: 2px; margin: 2px; width: 95%; height: 90%; overflow: auto; visibility: hidden; display: none; z-index: 3;">
</div>
<div id="element_list" style="position: relative; top: 32px; left: 2px; padding: 2px; margin: 2px; width: 95%; height: 90%; overflow: auto; z-index: 3;">
{foreach from=$table_menu key=key item=item}
{if $s_title != $item.title && $item.title}
{assign var='s_title' value=$item.title}
<div style="font-weight: bold;">{$item.title}</div>
{/if}
{if $show_sort}
{strip}
<span style="font-family: monospace;">[
{if $item.order_move == '-' || !$item.order_move}
&nbsp;
{/if}
{if $item.order_move == '+' || $item.order_move == '*'}
<a href="javascript:me({$item.id}, '+');" {popup text="Up" width="20"}>&uarr;</a>
{/if}
{if $item.order_move == '-' || $item.order_move == '*'}
<a href="javascript:me({$item.id}, '-');" {popup text="Down" width="20"}>&darr;</a>
{/if}
{if $item.order_move == '+' || !$item.order_move}
&nbsp;
{/if}
]</span>
{/strip}
{/if}
<a name="{$item.id}"></a>
{if $item.key}[{$item.key}] {/if}{if $item.status}[{$item.status}] {/if}<a href="javascript:le('{$item.id}');" class="{if $item.deleted == 't' && $primary_key == $item.id}item_loaded_deleted{elseif $item.deleted == 't'}item_deleted{elseif $primary_key == $item.id}item_loaded{/if}" {popup text="`$item.desc`" caption="Info" width="350"}>{$item.name}</a><br>
{/foreach}
</div>
<div style="position: absolute; bottom: 2px; left: 2px; z-index: 5;">
<input type="button" id="show_menu" name="show_menu" value="{t}Close Menu{/t}" OnClick="ShowHideMenu('hide', 'main_menu');">
</div>
</div>
<div style="position: relative; top: 0px; left: 0px; width: 790px; z-index: 0; margin: 2px; padding: 2px;">
<form method="post" name="{$form_name}" enctype="multipart/form-data">
{* menu button *}
{if !$hide_menu}
<div style="margin-bottom: 2px; padding: 2px; position: relative;">
<input type="button" id="show_menu" name="show_menu" value="{t}Show Menu{/t}" OnClick="ShowHideMenu('show', 'main_menu');" {if $page_acl < 20}disabled{/if}>
</div>
{/if}
{* save, delete commands *}
<div style="margin-bottom: 2px; padding: 2px; position: relative;" class="buttongroup">
<div style="margin-bottom: 2px; padding: 2px; position: relative; height: 20px;">
<input type="button" name="new" value="{t}New{/t}" OnClick="document.{$form_name}.action.value='new';document.{$form_name}.action_yes.value=confirm('{t}Do you want to create a new entry entry?{/t}');if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 60}disabled{/if}>
<input type="button" name="save" value="{t}Save{/t}" OnClick="document.{$form_name}.action.value='save';document.{$form_name}.submit();" {if $page_acl < 60}disabled{/if}>
{if $show_delete_button && !$show_undelete_button}
<input type="button" name="delete" value="{t}Delete{/t}" OnClick="document.{$form_name}.action.value='delete';document.{$form_name}.action_yes.value=confirm('{t}Do you want to delete this entry?{/t}');document.{$form_name}.action_id.value='{$primary_key}';if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 80}disabled{/if}>
{/if}
{if $show_delete_button && $show_undelete_button}
<input type="button" name="un_delete" value="{t}Un-Delete{/t}" OnClick="document.{$form_name}.action.value='undelete';document.{$form_name}.action_yes.value=confirm('{t}Do you want to undelete this entry?{/t}');document.{$form_name}.action_id.value='{$primary_key}';if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 80}disabled{/if}>
{/if}
</div>
</div>
{* status messages *}
<div id="status_message" style="margin-bottom: 2px; padding: 2px; text-align: center; position: relative; visibility: hidden;">
</div>
{* main grouping *}
<div style="margin-bottom: 5px; padding: 2px; position: relative; min-height: 400px;" class="{$status_color}">
{include file=$CONTENT_INCLUDE}
</div>
{* save, delete commands *}
<div style="margin-bottom: 2px; padding: 2px; position: relative;" class="buttongroup">
<div style="margin-bottom: 2px; padding: 2px; position: relative; height: 20px;">
<input type="button" name="new" value="{t}New{/t}" OnClick="document.{$form_name}.action.value='new';document.{$form_name}.action_yes.value=confirm('{t}Do you want to create a new entry entry?{/t}');if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 60}disabled{/if}>
<input type="button" name="save" value="{t}Save{/t}" OnClick="document.{$form_name}.action.value='save';document.{$form_name}.submit();" {if $page_acl < 60}disabled{/if}>
{if $show_delete_button && !$show_undelete_button}
<input type="button" name="delete" value="{t}Delete{/t}" OnClick="document.{$form_name}.action.value='delete';document.{$form_name}.action_yes.value=confirm('{t}Do you want to delete this entry?{/t}');document.{$form_name}.action_id.value='{$primary_key}';if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 80}disabled{/if}>
{/if}
{if $show_delete_button && $show_undelete_button}
<input type="button" name="un_delete" value="{t}Un-Delete{/t}" OnClick="document.{$form_name}.action.value='undelete';document.{$form_name}.action_yes.value=confirm('{t}Do you want to undelete this entry?{/t}');document.{$form_name}.action_id.value='{$primary_key}';if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 80}disabled{/if}>
{/if}
</div>
</div>
{* hidden group *}
<input type="hidden" id="primary_key" name="primary_key" value="{$primary_key}">
{* action var set *}
<input type="hidden" id="action" name="action" value="">
<input type="hidden" id="action_flag" name="action_flag" value="">
<input type="hidden" id="action_yes" name="action_yes" value="">
<input type="hidden" id="action_id" name="action_id" value="">
<input type="hidden" id="action_value" name="action_value" value="">
<input type="hidden" id="action_menu" name="action_menu" value="">
<input type="hidden" id="action_error" name="action_error" value="">
<input type="hidden" name="action_loaded" value="true">
</form>
</div>
</div>

View File

@@ -0,0 +1,42 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2007/10/18
* DESCRIPTION:
* content main part (buttons, load, etc)
* HISTORY:
********************************************************************
*}
<script language="JavaScript">
<!--
var form_name = '{$form_name}';
var load_id = '{if $primary_key}{$primary_key}{/if}';
var show_sort = {if $show_sort}{$show_sort}{else}0{/if};
//-->
</script>
<div style="width: {$table_width}px; margin-top: 5px; margin-bottom: 5px;">
<form method="post" name="{$form_name}" enctype="multipart/form-data">
{* save, delete commands *}
<div style="margin-bottom: 2px; padding: 2px;" class="buttongroup">
{include file=cms_buttons.tpl}
</div>
{include file=$CONTENT_INCLUDE}
{* save, delete commands *}
<div style="margin-bottom: 2px; padding: 2px;" class="buttongroup">
{include file=cms_buttons.tpl}
</div> <!-- button close //-->
{* hidden group *}
<input type="hidden" id="primary_key" name="primary_key" value="{$primary_key}">
{* action var set *}
<input type="hidden" id="action" name="action" value="">
<input type="hidden" id="action_flag" name="action_flag" value="">
<input type="hidden" id="action_yes" name="action_yes" value="">
<input type="hidden" id="action_id" name="action_id" value="">
<input type="hidden" id="action_value" name="action_value" value="">
<input type="hidden" id="action_menu" name="action_menu" value="">
<input type="hidden" id="action_error" name="action_error" value="">
<input type="hidden" name="action_loaded" value="true">
</form>
</div>

View File

@@ -0,0 +1,19 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2007/10/18
* DESCRIPTION:
* content main part (buttons, load, etc)
* HISTORY:
********************************************************************
*}
<script language="JavaScript">
<!--
var form_name = '{$form_name}';
var load_id = {if $primary_key}{$primary_key}{else}0{/if};
var show_sort = {if $show_sort}{$show_sort}{else}0{/if};
//-->
</script>
{include file=$CONTENT_INCLUDE}

View File

@@ -0,0 +1,91 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2008/04/11
* DESCRIPTION:
* special content main part (buttons, load, etc)
* HISTORY:
********************************************************************
*}
<script language="JavaScript">
<!--
var form_name = '{$form_name}';
var load_id = {if $primary_key}{$primary_key}{else}0{/if};
//-->
</script>
<div style="position:relative; width: {$table_width}px; margin-top: 5px; margin-bottom: 5px; top: 0px; left: 0px;">
<div style="position: relative; top: 0px; left: 0px; width: 790px; z-index: 0; margin: 2px; padding: 2px;">
<form method="post" name="{$form_name}">
{* save, delete commands *}
<div style="margin: 2px; padding: 2px; position: relative;" class="buttongroup">
<div style="padding: 2px; position: relative; height: 20px;">
<input type="button" name="new" value="{t}New{/t}" OnClick="document.{$form_name}.action.value='new';document.{$form_name}.action_yes.value=confirm('{t}Do you want to create a new entry entry?{/t}');if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 60}disabled{/if}>
<input type="button" name="save" value="{t}Save{/t}" OnClick="document.{$form_name}.action.value='save';document.{$form_name}.submit();" {if $page_acl < 60}disabled{/if}>
{if $show_delete_button && !$show_undelete_button}
<input type="button" name="delete" value="{t}Delete{/t}" OnClick="document.{$form_name}.action.value='delete';document.{$form_name}.action_yes.value=confirm('{t}Do you want to delete this entry?{/t}');document.{$form_name}.action_id.value={$primary_key};if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 80}disabled{/if}>
{/if}
{if $show_delete_button && $show_undelete_button}
<input type="button" name="un_delete" value="{t}Un-Delete{/t}" OnClick="document.{$form_name}.action.value='undelete';document.{$form_name}.action_yes.value=confirm('{t}Do you want to undelete this entry?{/t}');document.{$form_name}.action_id.value={$primary_key};if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 80}disabled{/if}>
{/if}
</div>
</div>
{* status messages *}
<div id="status_message" style="margin-bottom: 2px; padding: 2px; text-align: center; position: relative; visibility: hidden; display: none;">
</div>
{* main grouping *}
<div>
<div class="spacer"></div>
<div id="main_menu" style="float: left; position: relative; width: 200px; height: 450px; z-index: 5; overflow: auto; padding: 2px; margin: 2px;" class="sidemenu">
<div style="position: absolute; top: 2px; left: 2px;">
{if $primary_key}<a href="#{$primary_key}">&darr;</a>{/if}&nbsp;<input type="text" id="search" name="search" size="15" value="{$search}" OnKeyup="QuickSearch(); return false;" {popup text="Search" width="150"}> <span id="search_status">{t}Search{/t}</span>
<div id="search_found">{t}Found:{/t} {$menu_elements}</div>
</div>
<div id="search_results" style="position: relative; top: 32px; left: 2px; padding: 2px; margin: 2px; width: 95%; height: 90%; overflow: auto; visibility: hidden; display: none;">
</div>
<div id="element_list" style="position: relative; top: 32px; left: 2px; padding: 2px; margin: 2px; width: 95%; height: 90%; overflow: auto;">
{foreach from=$table_menu key=key item=item}
<a name="{$item.id}"></a>
{if $item.key}[{$item.key}] {/if}{if $item.status}[{$item.status}] {/if}<a href="javascript:le({$item.id});" class="{if $item.deleted == 't' && $primary_key == $item.id}item_loaded_deleted{elseif $item.deleted == 't'}item_deleted{elseif $primary_key == $item.id}item_loaded{/if}">{$item.name}</a><br>
{/foreach}
</div>
</div>
<div style="float: left; margin: 2px; padding: 2px; position: relative; width: 570px; min-height: 450px;" class="{$status_color}">
{* START CONTENT *}
{include file="$CONTENT_INCLUDE"}
{* END CONTENT *}
</div>
<div class="spacer"></div>
{* END MENU / CONTENT BLOCK *}
</div>
{* save, delete commands *}
<div style="margin: 2px; padding: 2px; position: relative;" class="buttongroup">
<div style="padding: 2px; position: relative; height: 20px;">
<input type="button" name="new" value="{t}New{/t}" OnClick="document.{$form_name}.action.value='new';document.{$form_name}.action_yes.value=confirm('{t}Do you want to create a new entry entry?{/t}');if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 60}disabled{/if}>
<input type="button" name="save" value="{t}Save{/t}" OnClick="document.{$form_name}.action.value='save';document.{$form_name}.submit();" {if $page_acl < 60}disabled{/if}>
{if $show_delete_button && !$show_undelete_button}
<input type="button" name="delete" value="{t}Delete{/t}" OnClick="document.{$form_name}.action.value='delete';document.{$form_name}.action_yes.value=confirm('{t}Do you want to delete this entry?{/t}');document.{$form_name}.action_id.value={$primary_key};if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 80}disabled{/if}>
{/if}
{if $show_delete_button && $show_undelete_button}
<input type="button" name="un_delete" value="{t}Un-Delete{/t}" OnClick="document.{$form_name}.action.value='undelete';document.{$form_name}.action_yes.value=confirm('{t}Do you want to undelete this entry?{/t}');document.{$form_name}.action_id.value={$primary_key};if (document.{$form_name}.action_yes.value == 'true') document.{$form_name}.submit();" {if $page_acl < 80}disabled{/if}>
{/if}
</div>
</div>
{* hidden group *}
<input type="hidden" id="primary_key" name="primary_key" value="{$primary_key}">
{* action var set *}
<input type="hidden" id="action" name="action" value="">
<input type="hidden" id="action_flag" name="action_flag" value="">
<input type="hidden" id="action_yes" name="action_yes" value="">
<input type="hidden" id="action_id" name="action_id" value="">
<input type="hidden" id="action_value" name="action_value" value="">
<input type="hidden" id="action_menu" name="action_menu" value="">
<input type="hidden" id="action_error" name="action_error" value="">
<input type="hidden" name="action_loaded" value="true">
</form>
</div>
</div>

View File

@@ -0,0 +1,21 @@
<div>
{$SMARTY_TEST}
</div>
<div>
<select id="drop_down_test" name="drop_down_test">
{html_options options=$drop_down_test selected=$drop_down_test_selected}
</select>
</div>
<div class="jq-container">
<div id="jq-test" class="jp-test">
<div id="test-div" class="test-div">
Some content ehre or asdfasdfasf
</div>
</div>
</div>
{* progresss indicator *}
<div id="indicator"></div>
{* the action confirm box *}
<div id="actionBox" class="actionBoxElement"></div>
{* The Overlay box *}
<div id="overlayBox" class="overlayBoxElement"></div>

View File

@@ -0,0 +1,58 @@
<script type="text/template" id="qq-template-s3">
<div class="qq-uploader-selector qq-uploader" qq-drop-area-text="{t}Drop files here{/t}">
<!-- <div class="qq-total-progress-bar-container-selector qq-total-progress-bar-container">
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-total-progress-bar-selector qq-progress-bar qq-total-progress-bar"></div>
</div> -->
<div class="qq-upload-drop-area-selector qq-upload-drop-area" qq-hide-dropzone>
<span class="qq-upload-drop-area-text-selector"></span>
</div>
<div class="qq-upload-button-selector qq-upload-button">
<div>{t}Upload a file{/t}</div>
</div>
<span class="qq-drop-processing-selector qq-drop-processing">
<span>{t}Processing dropped files...{/t}</span>
<span class="qq-drop-processing-spinner-selector qq-drop-processing-spinner"></span>
</span>
<ul class="qq-upload-list-selector qq-upload-list" aria-live="polite" aria-relevant="additions removals">
<li>
<div class="qq-progress-bar-container-selector">
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-progress-bar-selector qq-progress-bar"></div>
</div>
<span class="qq-upload-spinner-selector qq-upload-spinner"></span>
<img class="qq-thumbnail-selector" qq-max-size="100" qq-server-scale>
<span class="qq-upload-file-selector qq-upload-file"></span>
<span class="qq-edit-filename-icon-selector qq-edit-filename-icon" aria-label="{t}Edit filename{/t}"></span>
<input class="qq-edit-filename-selector qq-edit-filename" tabindex="0" type="text">
<span class="qq-upload-size-selector qq-upload-size"></span>
<button type="button" class="qq-btn qq-upload-cancel-selector qq-upload-cancel">{t}Cancel{/t}</button>
<button type="button" class="qq-btn qq-upload-retry-selector qq-upload-retry">{t}Retry{/t}</button>
<button type="button" class="qq-btn qq-upload-delete-selector qq-upload-delete">{t}Delete{/t}</button>
<span role="status" class="qq-upload-status-text-selector qq-upload-status-text"></span>
</li>
</ul>
<dialog class="qq-alert-dialog-selector">
<div class="qq-dialog-message-selector"></div>
<div class="qq-dialog-buttons">
<button type="button" class="qq-cancel-button-selector">{t}Close{/t}</button>
</div>
</dialog>
<dialog class="qq-confirm-dialog-selector">
<div class="qq-dialog-message-selector"></div>
<div class="qq-dialog-buttons">
<button type="button" class="qq-cancel-button-selector">{t}No{/t}</button>
<button type="button" class="qq-ok-button-selector">{t}Yes{/t}</button>
</div>
</dialog>
<dialog class="qq-prompt-dialog-selector">
<div class="qq-dialog-message-selector"></div>
<input type="text">
<div class="qq-dialog-buttons">
<button type="button" class="qq-cancel-button-selector">{t}Cancel{/t}</button>
<button type="button" class="qq-ok-button-selector">{t}Ok{/t}</button>
</div>
</dialog>
</div>
</script>

View File

@@ -0,0 +1,58 @@
<script type="text/template" id="qq-template">
<div class="qq-uploader-selector qq-uploader" qq-drop-area-text="{t}Drop files here{/t}">
<!-- <div class="qq-total-progress-bar-container-selector qq-total-progress-bar-container">
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-total-progress-bar-selector qq-progress-bar qq-total-progress-bar"></div>
</div> -->
<div class="qq-upload-drop-area-selector qq-upload-drop-area" qq-hide-dropzone>
<span class="qq-upload-drop-area-text-selector"></span>
</div>
<div class="qq-upload-button-selector qq-upload-button">
<div>{t}Upload a file{/t}</div>
</div>
<span class="qq-drop-processing-selector qq-drop-processing">
<span>{t}Processing dropped files...{/t}</span>
<span class="qq-drop-processing-spinner-selector qq-drop-processing-spinner"></span>
</span>
<ul class="qq-upload-list-selector qq-upload-list" aria-live="polite" aria-relevant="additions removals">
<li>
<div class="qq-progress-bar-container-selector">
<div role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" class="qq-progress-bar-selector qq-progress-bar"></div>
</div>
<span class="qq-upload-spinner-selector qq-upload-spinner"></span>
<img class="qq-thumbnail-selector" qq-max-size="100" qq-server-scale>
<span class="qq-upload-file-selector qq-upload-file"></span>
<span class="qq-edit-filename-icon-selector qq-edit-filename-icon" aria-label="{t}Edit filename{/t}"></span>
<input class="qq-edit-filename-selector qq-edit-filename" tabindex="0" type="text">
<span class="qq-upload-size-selector qq-upload-size"></span>
<button type="button" class="qq-btn qq-upload-cancel-selector qq-upload-cancel">{t}Cancel{/t}</button>
<button type="button" class="qq-btn qq-upload-retry-selector qq-upload-retry">{t}Retry{/t}</button>
<button type="button" class="qq-btn qq-upload-delete-selector qq-upload-delete">{t}Delete{/t}</button>
<span role="status" class="qq-upload-status-text-selector qq-upload-status-text"></span>
</li>
</ul>
<dialog class="qq-alert-dialog-selector">
<div class="qq-dialog-message-selector"></div>
<div class="qq-dialog-buttons">
<button type="button" class="qq-cancel-button-selector">{t}Close{/t}</button>
</div>
</dialog>
<dialog class="qq-confirm-dialog-selector">
<div class="qq-dialog-message-selector"></div>
<div class="qq-dialog-buttons">
<button type="button" class="qq-cancel-button-selector">{t}No{/t}</button>
<button type="button" class="qq-ok-button-selector">{t}Yes{/t}</button>
</div>
</dialog>
<dialog class="qq-prompt-dialog-selector">
<div class="qq-dialog-message-selector"></div>
<input type="text">
<div class="qq-dialog-buttons">
<button type="button" class="qq-cancel-button-selector">{t}Cancel{/t}</button>
<button type="button" class="qq-ok-button-selector">{t}Ok{/t}</button>
</div>
</dialog>
</div>
</script>

View File

@@ -0,0 +1,62 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2008/12/24
* DESCRIPTION:
* main body
* HISTORY:
********************************************************************
*}
<html>
<head>
<title>{$HTML_TITLE}</title>
<meta http-equiv="Content-Type" content="text/html; charset={$DEFAULT_ENCODING}">
{if $STYLESHEET}
<link rel=stylesheet type="text/css" href="{$CSS}{$STYLESHEET}">
{/if}
<script language="JavaScript">
<!--
var DEBUG = {$JS_DEBUG};
//-->
</script>
<script language="JavaScript" src="{$js}/firebug.js"></script>
<script language="JavaScript" src="{$js}/debug.js"></script>
{if $JAVASCRIPT}
<script language="JavaScript" src="{$JS}{$JAVASCRIPT}"></script>
{/if}
{if $ajax_javascript}
<script language="JavaScript">
{$ajax_javascript}
</script>
{/if}
{if $JS_INCLUDE}
<script language="JavaScript" src="{$JS_INCLUDE}"></script>
{/if}
{* for including datepickr *}
{if $JS_DATEPICKR}
<link rel=stylesheet type="text/css" href="{$js}/datepickr/datepickr.min.css">
<script language="JavaScript" src="{$js}/datepickr/datepickr.min.js"></script>
{/if}
{* {popup_init src="`$js`/overlib/overlib.js"} *}
</head>
<body>
<form name="product_search" method="get">
<div style="border: 1px solid black; margin: 15px; padding: 5px;">
{include file="top_menu.tpl"}
</div>
<div>
{include file="$INCLUDE_TEMPLATE"}
</div>
</form>
{* debug info *}
{if $DEBUG}
<div style="width:{$table_width}px;" class="debug_message">
{$Id}<br>
<b>{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}</b><br>
{$debug_error_msg}
</div>
{/if}
</body>
</html>

View File

@@ -0,0 +1,52 @@
{*
********************************************************************
* AUTHOR: Clemens Schwaighofer
* DATE: 2005/06/23
* DESCRIPTION:
* edit body part
* HISTORY:
********************************************************************
*}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>{$HTML_TITLE}</title>
<meta http-equiv="Content-Type" content="text/html; charset={$DEFAULT_ENCODING}">
{if $STYLESHEET}
<link rel=stylesheet type="text/css" href="{$css}{$STYLESHEET}">
{/if}
{if $CSS_INCLUDE}
<link rel=stylesheet type="text/css" href="{$CSS_INCLUDE}">
{/if}
{if $CSS_SPECIAL_INCLUDE}
<link rel=stylesheet type="text/css" href="{$CSS_SPECIAL_INCLUDE}">
{/if}
<script language="JavaScript" src="{$js}/firebug.js"></script>
{if $JAVASCRIPT}
<script language="JavaScript" src="{$js}{$JAVASCRIPT}"></script>
{/if}
{* declare prototype everywhere *}
<script src="{$js}/scriptaculous/prototype.js" type="text/javascript"></script>
{if $USE_SCRIPTACULOUS}
<script src="{$js}/scriptaculous/scriptaculous.js" type="text/javascript"></script>
{/if}
{if $JS_INCLUDE}
<script language="JavaScript" src="{$JS_INCLUDE}"></script>
{/if}
{if $JS_SPECIAL_INCLUDE}
<script language="JavaScript" src="{$JS_SPECIAL_INCLUDE}"></script>
{/if}
{* for including datepickr *}
{if $JS_DATEPICKR}
<link rel=stylesheet type="text/css" href="{$js}/datepickr/datepickr.min.css">
<script language="JavaScript" src="{$js}/datepickr/datepickr.min.js"></script>
{/if}
{if $USE_OVERLIB}
{popup_init src="`$js`/overlib/overlib.js"}
{/if}
</head>
<body>
{include file="$TEMPLATE_NAME"}
</body>
</html>