Initial commit

This commit is contained in:
2026-02-18 22:57:00 +05:00
parent 5e45a82c10
commit 69751b8590
15 changed files with 1051 additions and 2 deletions

View File

@@ -1,3 +1,21 @@
# banner
### media
Модуль Баннер Только для AVE.CMS ALT
## Модуль Баннер v2.26.0
### Модуль позволяет:
* Организовать удобное управление показами рекламных баннеров на вашем сайте.
* Для того, чтобы отобразить рекламный баннер, разместите системный тег [mod_banner:XXX] в нужном месте вашего шаблона сайта или содержимом документа.
* Идентификаторы системных тегов указаны в разделе - Управление категориями.
* Допустимые форматы рекламных баннеров: jpg, jpeg, png, gif, swf.
### Changelog:
04.09.2019 - версия 2.26.0 - адаптация для версии ave.cms 3.26
25.09.2016 - Исправления (css + html) вывода пагинации страниц.
03.06.2016 - Исправлен баг с неправильным формированием пути к изображению баннера, при размещении его на странице с сылкой типа site.ru/folder/link/
03.06.2016 - добавлен атрибут style="width:100%" для изображения баннера, при использовании в адаптивной верстке.

447
class/banner.php Normal file
View File

@@ -0,0 +1,447 @@
<?php
/**
* Класс работы с баннерами
*
* @package AVE.cms
* @subpackage module_Banner
* @filesource
*/
class ModulBanner {
/**
* СВОЙСТВА
*/
var $_limit = 15;
var $_allowed_files =
array(
'image/jpg',
'image/jpeg',
'image/pjpeg',
'image/x-png',
'image/png',
'image/gif',
'application/x-shockwave-flash'
);
/**
* ВНЕШНИЕ МЕТОДЫ
*/
function displayBanner($id) {
global $AVE_DB;
mt_rand();
$banner_id = '';
$output = '';
$cur_hour = date('G');
$and_time = "AND ((ZStart = '0' AND ZEnde = '0') OR (ZStart <= '$cur_hour' AND ZEnde > '$cur_hour') OR (ZStart > ZEnde AND (ZStart BETWEEN ZStart AND '$cur_hour' OR ZEnde BETWEEN '$cur_hour' AND ZEnde)))";
$and_category = (!empty($id) && is_numeric($id)) ? "AND KatId = '" . $id . "'" : '';
$num = $AVE_DB->Query("
SELECT Id
FROM " . PREFIX . "_modul_banners
WHERE Aktiv = '1'
AND (MaxKlicks = '0' OR (Klicks < MaxKlicks AND MaxKlicks != '0'))
AND (MaxViews = '0' OR (Views < MaxViews AND MaxViews != '0'))
" . $and_time . "
" . $and_category . "
")->NumRows();
$zufall = ($num) ? rand(1,3) : 3;
$sql = $AVE_DB->Query("
SELECT
Id,
Bannertags,
Target,
Bannername,
BildAlt,
Width,
Height
FROM " . PREFIX . "_modul_banners
WHERE Aktiv = '1'
AND (MaxKlicks = '0' OR (Klicks < MaxKlicks AND MaxKlicks != '0'))
AND (MaxViews = '0' OR (Views < MaxViews AND MaxViews != '0'))
" . $and_time . "
" . $and_category . "
AND Gewicht <= '" . $zufall . "'
");
$num = $sql->NumRows();
$banner_id = ($num == 1) ? 0 : rand(0, $num-1);
$sql->DataSeek($banner_id);
$banner = $sql->FetchAssocArray();
if(!empty($banner['Bannertags']))
{
if (stristr($banner['Bannertags'], '.swf') === false)
{
$output = '<a target="' . $banner['Target'] . '" href="index.php?module=' . BANNER_DIR . '&amp;id=' . $banner['Id'] . '"><img style="width:100%" src="'. ABS_PATH .'modules/' . BANNER_DIR . '/files/' . $banner['Bannertags'] . '" alt="' . $banner['Bannername'] . ': ' . $banner['BildAlt'] . '" border="0" /></a>';
}
else
{
$output = '<div style="position:relative;border:0px;width:' . $banner['Width'] . 'px;height:' . $banner['Height'] . 'px;"><a target="' . $banner['Target'] . '" href="index.php?module=' . BANNER_DIR . '&amp;id=' . $banner['Id'] . '" style="position:absolute;z-index:2;width:' . $banner['Width'] . 'px;height:' . $banner['Height'] . 'px;_background:red;_filter:alpha(opacity=0);"></a>';
$output .= ' <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="' . $banner['Width'] . '" height="' . $banner['Height'] . '" id="reklama" align="middle">';
$output .= ' <param name="allowScriptAccess" value="sameDomain" />';
$output .= ' <param name="movie" value="modules/' . BANNER_DIR . '/files/' . $banner['Bannertags'] . '" />';
$output .= ' <param name="quality" value="high" />';
$output .= ' <param name="wmode" value="opaque">';
$output .= ' <embed src="modules/' . BANNER_DIR . '/files/' . $banner['Bannertags'] . '" quality="high" wmode="opaque" width="' . $banner['Width'] . '" height="' . $banner['Height'] . '" name="reklama" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
$output .= ' </object>';
$output .= '</div>';
}
if(!empty($banner['Id']))
{
$AVE_DB->Query("
UPDATE " . PREFIX . "_modul_banners
SET Views = Views + 1
WHERE Id = '" . $banner['Id'] . "'
");
}
}
echo $output;
}
function fetch_addclick($id) {
global $AVE_DB;
switch($_REQUEST['action']) {
case '':
case 'addclick':
$sql = $AVE_DB->Query("
SELECT BannerUrl
FROM " . PREFIX . "_modul_banners
WHERE Id = '" . $id . "'
LIMIT 1
");
$banner_url = $sql->GetCell();
if(!empty($banner_url)) {
$AVE_DB->Query("
UPDATE " . PREFIX . "_modul_banners
SET Klicks = Klicks + 1
WHERE Id = '" . $id . "'
");
header('Location:' . $banner_url);
}
exit;
break;
}
}
function showBanner($tpl_dir) {
global $AVE_DB, $AVE_Template;
$limit = $this->_limit;
$sql = $AVE_DB->Query("SELECT Id FROM " . PREFIX . "_modul_banners");
$num = $sql->NumRows();
$seiten = ceil($num / $limit);
$start = get_current_page() * $limit - $limit;
$items = array();
$sql = $AVE_DB->Query("
SELECT *
FROM " . PREFIX . "_modul_banners
LIMIT " . $start . "," . $limit
);
while($row = $sql->FetchRow()) {
array_push($items, $row);
}
if($num > $limit)
{
$page_nav = ' <a class="pnav" href="index.php?do=modules&action=modedit&mod=' . BANNER_DIR . '&moduleaction=1&cp=' . SESSION . '&page={s}">{t}</a> ';
$page_nav = get_pagination($seiten, 'page', $page_nav);
$AVE_Template->assign('page_nav', $page_nav);
}
$AVE_Template->assign('items', $items);
$AVE_Template->assign('mod_path', BANNER_DIR);
$AVE_Template->assign('kategs', $this->_showKategs());
$AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'banners.tpl'));
}
function editBanner($tpl_dir,$id) {
global $AVE_DB, $AVE_Template;
$sql = $AVE_DB->Query("
SELECT *
FROM " . PREFIX . "_modul_banners
WHERE Id = '" . $id . "'
");
$row = $sql->FetchRow();
if (stristr(($row->Bannertags),'.swf') === false) $row->swf = false; else $row->swf = true;
if(@!is_writeable(BASE_DIR . '/modules/' . BANNER_DIR . '/files/')) {
$AVE_Template->assign('folder_protected', 1);
}
$AVE_Template->assign('item', $row);
$AVE_Template->assign('mod_path', BANNER_DIR);
$AVE_Template->assign('formaction', 'index.php?do=modules&action=modedit&mod=' . BANNER_DIR . '&moduleaction=quicksave&cp=' . SESSION . '&id=' . $_REQUEST['id'] . '&pop=1');
$AVE_Template->assign('kategs', $this->_showKategs());
$AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'form.tpl'));
}
function deleteBanner($id) {
global $AVE_DB;
$sql = $AVE_DB->Query("
SELECT
Bannertags,
Bannername
FROM " . PREFIX . "_modul_banners
WHERE Id = '" . $id . "'
");
$row = $sql->FetchRow();
@unlink(BASE_DIR . '/modules/' . BANNER_DIR . '/files/' . $row->Bannertags);
$AVE_DB->Query("
DELETE
FROM " . PREFIX . "_modul_banners
WHERE Id = '" . $id . "'
");
reportLog($_SESSION['user_name'] . ' - удалил баннер (' . $row->Bannername . ')', 2, 2);
header('Location:index.php?do=modules&action=modedit&mod=' . BANNER_DIR . '&moduleaction=1&cp=' . SESSION);
exit;
}
function quickSave($id) {
global $AVE_DB, $config_vars;
if(!empty($_POST['del'])) {
$sql = $AVE_DB->Query("
SELECT Bannertags
FROM " . PREFIX . "_modul_banners
WHERE Id = '" . $id . "'
");
$row = $sql->FetchRow();
$AVE_DB->Query("
UPDATE " . PREFIX . "_modul_banners
SET Bannertags = ''
WHERE Id = '" . $id . "'
");
@unlink(BASE_DIR . '/modules/' . BANNER_DIR . '/files/' . $row->Bannertags);
}
if(!empty($_POST['Bannername'])) {
$d_name = strtolower($_FILES['New']['name']);
$d_name = str_replace(' ','', $d_name);
$d_tmp = $_FILES['New']['tmp_name'];
if(!empty($_FILES['New']['type'])) {
if(in_array($_FILES['New']['type'], $this->_allowed_files)) {
$d_name = preg_replace('/[^ ._a-z0-9-]/', '_', $d_name);
if(file_exists(BASE_DIR . '/modules/' . BANNER_DIR . '/files/' . $d_name)) $d_name = $this->_Zufall() . '__' . $d_name;
if(@move_uploaded_file($d_tmp, BASE_DIR . '/modules/' . BANNER_DIR . '/files/' . $d_name)) {
@chmod(BASE_DIR . '/modules/' . BANNER_DIR . '/files/' . $d_name, 0777);
echo "<script>alert('" . $config_vars['BANNER_IS_UPLOADED'] . ': ' . $d_name . "');</script>";
$AVE_DB->Query("
UPDATE " . PREFIX . "_modul_banners
SET Bannertags = '" . $d_name . "'
WHERE Id = '" . $id . "'
");
reportLog($_SESSION['user_name'] . ' - заменил изображение баннера на (' . $d_name . ')', 2, 2);
} else {
echo "<script>alert('" . $config_vars['BANNER_NO_UPLOADED'] . ': ' . $d_name . "');</script>";
}
} else {
echo "<script>alert('" . $config_vars['BANNER_WRONG_TYPE'] . ': ' . $d_name . "');</script>";
}
}
$AVE_DB->Query("
UPDATE " . PREFIX . "_modul_banners
SET
Bannername = '" . $_REQUEST['Bannername'] . "',
BannerUrl = '" . $_REQUEST['BannerUrl'] . "',
Gewicht = '" . $_REQUEST['Gewicht'] . "',
Views = '" . $_REQUEST['Anzeigen'] . "',
Klicks = '" . $_REQUEST['Klicks'] . "',
BildAlt = '" . $_REQUEST['BildAlt'] . "',
KatId = '" . $_REQUEST['KatId'] . "',
MaxKlicks = '" . $_REQUEST['MaxKlicks'] . "',
MaxViews = '" . $_REQUEST['MaxViews'] . "',
ZStart = '" . $_REQUEST['ZStart'] . "',
ZEnde = '" . $_REQUEST['ZEnde'] . "',
Aktiv = '" . $_REQUEST['Aktiv'] . "',
Target = '" . $_REQUEST['Target'] . "',
Width = '" . $_REQUEST['Width'] . "',
Height = '" . $_REQUEST['Height'] . "'
WHERE
Id = '" . $id . "'
");
reportLog($_SESSION['user_name'] . ' - изменил параметры баннера (' . stripslashes($_REQUEST['Bannername']) . ')', 2, 2);
}
header('Location:index.php?do=modules&action=modedit&mod=' . BANNER_DIR . '&moduleaction=1&cp=' . SESSION);
exit;
}
function newBanner($tpl_dir) {
global $AVE_DB, $AVE_Template, $config_vars;
switch($_REQUEST['sub']) {
case '':
if(!@is_writeable(BASE_DIR . '/modules/' . BANNER_DIR . '/files/')) {
$AVE_Template->assign('folder_protected', 1);
}
$AVE_Template->assign('mod_path', BANNER_DIR);
$AVE_Template->assign('kategs', $this->_showKategs());
$AVE_Template->assign('formaction', 'index.php?do=modules&action=modedit&mod=' . BANNER_DIR . '&moduleaction=newbanner&sub=save&cp=' . SESSION . '&pop=1');
$AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'form.tpl'));
break;
case 'save':
if(!empty($_POST['Bannername'])) {
$file = '';
$d_name = strtolower($_FILES['New']['name']);
$d_name = str_replace(' ', '', $d_name);
$d_tmp = $_FILES['New']['tmp_name'];
if(!empty($_FILES['New']['type'])) {
if(in_array($_FILES['New']['type'], $this->_allowed_files)) {
$d_name = preg_replace('/[^ ._a-z0-9-]/', '_', $d_name);
if(file_exists(BASE_DIR . '/modules/' . BANNER_DIR . '/files/' . $d_name)) $d_name = $this->_Zufall() . '__' . $d_name;
if(@move_uploaded_file($d_tmp, BASE_DIR . '/modules/' . BANNER_DIR . '/files/' . $d_name)) {
@chmod(BASE_DIR . '/modules/' . BANNER_DIR . '/files/' . $d_name, 0777);
echo "<script>alert('" . $config_vars['BANNER_IS_UPLOADED'] . ': ' . $d_name . "');</script>";
reportLog($_SESSION['user_name'] . ' - добавил изображение баннера (' . $d_name . ')', 2, 2);
$file = $d_name;
} else {
echo "<script>alert('" . $config_vars['BANNER_NO_UPLOADED'] . ': ' . $d_name . "');</script>";
}
} else {
echo "<script>alert('" . $config_vars['BANNER_WRONG_TYPE'] . ': ' . $d_name . "');</script>";
}
}
$AVE_DB->Query("
INSERT
INTO " . PREFIX . "_modul_banners
SET
KatId = '" . $_REQUEST['KatId'] . "',
Bannertags = '" . $file . "',
BannerUrl = '" . $_REQUEST['BannerUrl'] . "',
Gewicht = '" . $_REQUEST['Gewicht'] . "',
Bannername = '" . $_REQUEST['Bannername'] . "',
BildAlt = '" . $_REQUEST['BildAlt'] . "',
MaxKlicks = '" . $_REQUEST['MaxKlicks'] . "',
MaxViews = '" . $_REQUEST['MaxViews'] . "',
ZStart = '" . $_REQUEST['ZStart'] . "',
ZEnde = '" . $_REQUEST['ZEnde'] . "',
Aktiv = '" . $_REQUEST['Aktiv'] . "',
Target = '" . $_REQUEST['Target'] . "',
Width = '" . $_REQUEST['Width'] . "',
Height = '" . $_REQUEST['Height'] . "'
");
reportLog($_SESSION['user_name'] . ' - добавил новый баннер (' . stripslashes($_REQUEST['Bannername']) . ')', 2, 2);
}
header('Location:index.php?do=modules&action=modedit&mod=' . BANNER_DIR . '&moduleaction=1&cp=' . SESSION);
exit;
}
}
function bannerKategs($tpl_dir) {
global $AVE_DB, $AVE_Template;
switch($_REQUEST['sub']) {
case '' :
$items = array();
$sql = $AVE_DB->Query("SELECT * FROM " . PREFIX . "_modul_banner_categories");
while($row = $sql->FetchRow()) {
array_push($items, $row);
}
$AVE_Template->assign('items', $items);
$AVE_Template->assign('mod_path', BANNER_DIR);
$AVE_Template->assign('kategs', $this->_showKategs());
$AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'kategs.tpl'));
break;
case 'save' :
foreach($_POST['KatName'] as $id => $kateg) {
if(!empty($kateg)) {
$AVE_DB->Query("
UPDATE " . PREFIX . "_modul_banner_categories
SET KatName = '" . $kateg . "'
WHERE Id = '" . $id . "'
");
}
}
foreach($_POST['del'] as $id => $kateg) {
$AVE_DB->Query("
DELETE
FROM " . PREFIX . "_modul_banners
WHERE KatId = '" . $id . "'
");
$AVE_DB->Query("
DELETE
FROM " . PREFIX . "_modul_banner_categories
WHERE Id = '" . $id . "'
");
reportLog($_SESSION['user_name'] . ' - удалил категорию баннеров (' . $id . ')', 2, 2);
}
header('Location:index.php?do=modules&action=modedit&mod=' . BANNER_DIR . '&moduleaction=kategs&cp=' . SESSION);
break;
case 'new' :
if(!empty($_REQUEST['KatName'])) {
$sql = $AVE_DB->Query("
INSERT
INTO " . PREFIX . "_modul_banner_categories
SET KatName = '" . $_REQUEST['KatName'] . "'
");
reportLog($_SESSION['user_name'] . ' - добавил новую категорию (' . stripslashes($_REQUEST['KatName']) . ')', 2, 2);
}
header('Location:index.php?do=modules&action=modedit&mod=' . BANNER_DIR . '&moduleaction=kategs&cp=' . SESSION);
break;
}
}
/**
* ВНУТРЕННИЕ МЕТОДЫ
*/
function _Zufall() {
$zufall = rand(1000, 99999);
return $zufall;
}
function _showKategs() {
global $AVE_DB;
$kategs = array();
$sql = $AVE_DB->Query("SELECT * FROM " . PREFIX . "_modul_banner_categories");
while($row = $sql->FetchRow()) {
array_push($kategs, $row);
}
return $kategs;
}
}
?>

4
files/index.php Normal file
View File

@@ -0,0 +1,4 @@
<?php
header('Location:/');
exit;
?>

BIN
files/media2_ave.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

BIN
files/media_gitget.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

4
index.php Normal file
View File

@@ -0,0 +1,4 @@
<?php
header('Location:/');
exit;
?>

20
info.php Normal file
View File

@@ -0,0 +1,20 @@
<?php
if (! defined('BASE_DIR'))
exit;
$module = array(
'ModuleSysName' => 'media',
'ModuleVersion' => '2.26.0',
'ModuleAutor' => 'AVE.cms Team',
'ModuleCopyright' => '&copy; 2007-' . date('Y') . ' AVE.cms',
'ModuleStatus' => 1,
'ModuleIsFunction' => 1,
'ModuleTemplate' => 0,
'ModuleAdminEdit' => 1,
'ModuleFunction' => 'mod_banner',
'ModuleTag' => '[mod_banner:XXX]',
'ModuleTagLink' => null,
'ModuleAveTag' => '#\\\[mod_banner:(\\\d+)]#',
'ModulePHPTag' => "<?php mod_banner(''$1''); ?>"
);
?>

4
lang/index.php Normal file
View File

@@ -0,0 +1,4 @@
<?php
header('Location:/');
exit;
?>

79
lang/ru.txt Normal file
View File

@@ -0,0 +1,79 @@
[name]
MODULE_NAME = "Баннер"
MODULE_DESCRIPTION = "Данный модуль позволяет организовать удобное управление показами рекламных баннеров на вашем сайте. Для того, чтобы отобразить рекламный баннер, разместите системный тег <strong>[mod_banner:XXX]</strong> в нужном месте вашего шаблона сайта или содержимом документа.<br>Допустимые форматы рекламных баннеров: jpg, jpeg, png, gif, swf"
[module]
BANNER_MODULE_NAME = "Управление модулем баннер"
MODULE_WELCOME = "Добро пожаловать в административный раздел модуля!"
MODULE_WELCOME_CAT = "Административный раздел управления категориями."
BANNER_SHOW_ALL = "Список баннеров"
BANNER_BANNER = "Баннер"
BANNER_NEW_LINK = "Добавить новый баннер"
BANNER_CATEG_LINK = "Управление категориями"
BANNER_NAME_TABLE = "Название баннера"
BANNER_FILE_TABLE = "Файл изображения"
BANNER_INCATEG_TABLE = "В категории"
BANNER_SHOW_TABLE = "Время показа"
BANNER_HITS_TABLE = "Переходов/Максимум"
BANNER_VIEWS_TABLE = "Показов/Максимум"
BANNER_ACTIONS = "Действия"
BANNER_NOT_ACTIVE = "Баннер неактивен. Возможно, значение количества показов/переходов достигло максимального значения."
BANNER_IS_ACTIVE = "Баннер активен"
BANNER_EDIT_LINK = "Редактировать параметры баннера"
BANNER_VIEW_LINK = "Просмотр баннера"
BANNER_DELETE_LINK = "Удалить данный баннер"
BANNER_DELETE_CONFIRM = "Вы уверены, что хотите удалить этот баннер?"
BANNER_CATEGORY_TAG = "Системный тег"
BANNER_CATEGORY_NAME = "Название категории"
BANNER_MARK_DELETE = "Отметить для удаления"
BANNER_BUTTON_SAVE = "Сохранить изменения"
BANNER_BUTTON_ADD = "Добавить категорию"
BANNER_CATEGORY_NEW = "Создание новой категории"
BANNER_CATEGORY = "Название категории:"
BANNER_ENTER_NAME = "Пожалуйста, укажите название категории"
BANNER_PLEASE_NAME = "Пожалуйста, укажите название баннера"
BANNER_NEW_CREATE = "Добавление нового баннера"
BANNER_EDIT = "Редактирование баннера"
BANNER_EDIT_INFO = "В данном разделе вы можете отредактировать параметры баннера, а также сменить текущее изображение на новое.<br>Допустимые форматы файлов: jpg, jpeg, png, gif, swf"
BANNER_NEW_INFO = "В данном разделе вы можете добавить новый баннер, установить количество и время показов баннера.<br>Допустимые форматы файлов: jpg, jpeg, png, gif, swf"
BANNER_STATUS = "Активировать баннер?"
BANNER_NAME_FORM = "Название баннера:"
BANNER_CATEGORY_FORM = "Относится к категории:"
BANNER_TARGET_URL = "Адрес для перехода (URL):"
BANNER_IMAGE_SELECT = "Выберите изображение баннера:"
BANNER_ALT_TEXT = "Текст подсказки при наведении:"
BANNER_PRIOR = "Приоритет показов:"
BANNER_PRIOR_DESC = "(более высокий приоритет, отображает баннер чаще остальных)"
BANNER_VIEWS_MAX = "Максимум показов:"
BANNER_VIEWS = "Количество показов:"
BANNER_VIEWS_INFO = "(укажите максимальное количество показов, после которых баннер станет неактивным)"
BANNER_CLICKS = "Максимум переходов:"
BANNER_CLICKS_INFO = "(укажите максимальное количество переходов, после которых баннер станет неактивным)"
BANNER_UNLIMIT = "0 - неограниченно"
BANNER_HOUR_START = "Начало показов:"
BANNER_START_INFO = "(укажите, с какого часа должен начаться показ баннера)"
BANNER_START_INFO2 = "0 - круглосуточно"
BANNER_HOUR_END = "Конец показов:"
BANNER_END_INFO = "(укажите, до какого часа должен быть показ баннера)"
BANNER_END_INFO2 = "0 - круглосуточно"
BANNER_NOT_WRITABLE = "<h2>Ошибка!</h2><br />Не возможно добавить баннер. Папка <strong>&quot;/modules/banner/banner/&quot;</strong> не имеет прав на запись. Пожалуйста, установите права CHMOD 777, используя Ваш FTP-клиент."
BANNER_NOT_WRITABLE2 = "Ошибка. Не возможно добавить баннер. Папка <strong>&quot;/modules/banner/banner/&quot;</strong> не имеет прав на запись. Пожалуйста, установите права CHMOD 777, используя ваш FTP-клиент."
BANNER_BUTTON_NEW = "Добавить баннер"
BANNER_OLD_IMAGE = "Текущее изображение баннера:"
BANNER_CHANGE_ONNEW = "Выберите новое изображение:"
BANNER_OLD_DELETE = "Удалить текущее изображение:"
BANNER_VIEW_RESET = "Текущее количество показов:"
BANNER_CLICK_RESET = "Текущее количество переходов:"
BANNER_IS_UPLOADED = "Баннер успешно добавлен"
BANNER_NO_UPLOADED = "Баннер не загружен"
BANNER_WRONG_TYPE = "Баннер не загружен. Данный тип файла запрещен."
BANNER_TARGET_TYPE = "Открывать в:"
BANNER_OPEN_IN_NEW = "В новом окне"
BANNER_OPEN_IN_THIS = "В текущем окне"
BANNER_WIDTH_SWF = "Ширина:"
BANNER_HEIGHT_SWF = "Высота:"
BANNER_FOR_SWF = "(для swf баннера)"
BANNER_MOD_ALLOWS = "Модуль позволяет:"
BANNER_MOD_ALLOWS_A = "Организовать удобное управление показами рекламных баннеров на вашем сайте."
BANNER_MOD_ALLOWS_B = "Для того, чтобы отобразить рекламный баннер, разместите системный тег [mod_banner:XXX] в нужном месте вашего шаблона сайта или содержимом документа. Идентификаторы тегов указаны в разделе - Управление категориями."
BANNER_MOD_ALLOWS_C = "Допустимые форматы рекламных баннеров: jpg, jpeg, png, gif, swf."

84
module.php Normal file
View File

@@ -0,0 +1,84 @@
<?php
/**
* AVE.cms - Модуль Баннеры
*
* @package AVE.cms
* @subpackage module_Banner
* @filesource
*/
if(!defined('BASE_DIR')) exit;
if(!defined('BANNER_DIR')) define('BANNER_DIR', 'media');
echo BANNER_DIR;
/**
* Обработка тэга модуля
*
* @param int $banner_id - идентификатор категории баннеров
*/
function mod_banner($banner_id)
{
require_once(BASE_DIR . '/modules/' . BANNER_DIR . '/class/banner.php');
$banner = new ModulBanner;
$banner->displayBanner(stripslashes($banner_id));
}
if (isset($_REQUEST['module']) && $_REQUEST['module'] == BANNER_DIR)
{
if (is_numeric($_REQUEST['id']))
{
require_once(BASE_DIR . '/modules/' . BANNER_DIR . '/class/banner.php');
$banner = new ModulBanner;
$banner->fetch_addclick($_REQUEST['id']);
}
}
if (defined('ACP') && !empty($_REQUEST['moduleaction']))
{
global $AVE_Template;
require_once(BASE_DIR . '/modules/' . BANNER_DIR . '/class/banner.php');
$tpl_dir = BASE_DIR . '/modules/' . BANNER_DIR . '/templates/';
$lang_file = BASE_DIR . '/modules/' . BANNER_DIR . '/lang/' . $_SESSION['user_language'] . '.txt';
$AVE_Template->config_load($lang_file, 'module');
$banner = new ModulBanner;
$AVE_Template->config_load($lang_file, 'module');
$config_vars = $AVE_Template->get_config_vars();
$AVE_Template->assign('config_vars', $config_vars);
switch($_REQUEST['moduleaction'])
{
case '1':
$banner->showBanner($tpl_dir);
break;
case 'quicksave':
$banner->quickSave($_REQUEST['id']);
break;
case 'kategs':
$banner->bannerKategs($tpl_dir);
break;
case 'editbanner':
$banner->editBanner($tpl_dir, $_REQUEST['id']);
break;
case 'new':
case 'newbanner':
$banner->newBanner($tpl_dir);
break;
case 'delbanner':
$banner->deleteBanner($_REQUEST['id']);
break;
}
}
?>

57
sql.php Normal file
View File

@@ -0,0 +1,57 @@
<?php
/**
* AVE.cms - Модуль Баннеры
*
* @package AVE.cms
* @subpackage module_Banner
* @filesource
*/
/**
* mySQL-запросы для установки, обновления и удаления модуля
*/
$module_sql_install = array();
$module_sql_deinstall = array();
$module_sql_update = array();
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_modul_banner_categories`;";
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_modul_banners`;";
$module_sql_install[] = "CREATE TABLE `%%PRFX%%_modul_banner_categories` (
`Id` mediumint(5) unsigned NOT NULL auto_increment,
`KatName` varchar(100) NOT NULL default '',
PRIMARY KEY (`Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
$module_sql_install[] = "CREATE TABLE `%%PRFX%%_modul_banners` (
`Id` int(10) unsigned NOT NULL auto_increment,
`KatId` mediumint(5) unsigned NOT NULL default '1',
`Bannertags` varchar(255) NOT NULL default '',
`BannerUrl` varchar(255) NOT NULL default '',
`Gewicht` tinyint(3) unsigned NOT NULL default '0',
`Bannername` varchar(100) NOT NULL default '',
`Views` int(10) unsigned NOT NULL default '0',
`Klicks` int(10) unsigned NOT NULL default '0',
`BildAlt` varchar(255) NOT NULL default '',
`MaxKlicks` int(10) unsigned NOT NULL default '0',
`MaxViews` int(10) unsigned NOT NULL default '0',
`ZStart` smallint(2) unsigned NOT NULL default '0',
`ZEnde` smallint(2) unsigned NOT NULL default '0',
`Aktiv` tinyint(1) unsigned NOT NULL default '1',
`Target` varchar(255) NOT NULL default '_blank',
`Width` int(10) unsigned NOT NULL default '0',
`Height` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`Id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;";
$module_sql_install[] = "INSERT INTO `%%PRFX%%_modul_banner_categories` VALUES ('1', 'Категория 1');";
$module_sql_install[] = "INSERT INTO `%%PRFX%%_modul_banner_categories` VALUES ('2', 'Категория 2');";
$module_sql_install[] = "INSERT INTO `%%PRFX%%_modul_banners` VALUES ('', '1', 'media_ave.jpg', 'http://ave-cms.ru', '1', 'AVE.CMS-Banner', '0', '0', 'AVE.CMS- это бесплатная многофункциональная система управления сайтом.', '0', '0', '0', '0', '1', '_self', '0', '0');";
$module_sql_install[] = "INSERT INTO `%%PRFX%%_modul_banners` VALUES ('', '1', 'media_gitget.jpg', 'https://gitget.ru', '1', 'GitGet-Banner', '0', '0', 'Репозитории сообщества AVE.CMS. Все от сборки до модуля.', '0', '0', '0', '0', '1', '_blank', '0', '0');";
$module_sql_update[] = "UPDATE %%PRFX%%_module SET ModuleAveTag = '" . $modul['ModuleAveTag'] . "', ModulePHPTag = '" . $modul['ModulePHPTag'] . "', ModuleVersion = '" . $modul['ModuleVersion'] . "' WHERE ModuleSysName = '" . BANNER_DIR . "' LIMIT 1;";
?>

80
templates/banners.tpl Normal file
View File

@@ -0,0 +1,80 @@
<div class="title">
<h5>{#BANNER_MODULE_NAME#}</h5>
</div>
<div class="widget">
<div class="body">
<strong>{#BANNER_MOD_ALLOWS#}</strong>
<ul style="list-style: square; margin-left:15px;">
<li>{#BANNER_MOD_ALLOWS_A#}</li>
<li>{#BANNER_MOD_ALLOWS_B#}</li>
<li>{#BANNER_MOD_ALLOWS_C#}</li>
</ul>
</div>
</div>
<div class="breadCrumbHolder module">
<div class="breadCrumb module">
<ul>
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
<li><a href="index.php?do=modules&amp;cp={$sess}">{#MODULES_SUB_TITLE#}</a></li>
<li><strong class="code">{#BANNER_BANNER#}</strong></li>
</ul>
</div>
</div>
<div class="widget">
<div class="head">
<h5>{#BANNER_SHOW_ALL#} |&nbsp;
<a href="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=newbanner&cp={$sess}&pop=1&onlycontent=1" data-height="650" data-width="950" data-modal="true" class="openDialog">{#BANNER_NEW_LINK#}</a> |&nbsp;
<a href="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=kategs&cp={$sess}">{#BANNER_CATEG_LINK#}</a></h5>
</div>
</div>
<table width="100%" border="0" cellpadding="8" cellspacing="1" class="tableStatic mainForm">
<tr class="tableheader">
<td width="10">&nbsp;</td>
<td>{#BANNER_NAME_TABLE#} </td>
<td>{#BANNER_FILE_TABLE#}</td>
<td>{#BANNER_INCATEG_TABLE#}</td>
<td>{#BANNER_SHOW_TABLE#}</td>
<td>{#BANNER_HITS_TABLE#}</td>
<td>{#BANNER_VIEWS_TABLE#}</td>
<td colspan="2">{#BANNER_ACTIONS#}</td>
</tr>
{foreach from=$items item=item}
{if ($item->Aktiv != 1) || ($item->Bannertags=='') || ($item->Klicks >= $item->MaxKlicks && $item->MaxKlicks != 0) || ($item->Views >= $item->MaxViews && $item->MaxViews != 0)}
{assign var=active value=0}
{else}
{assign var=active value=1}
{/if}
<tr id="table_rows">
<td width="10">
{if $active!=1}
<span class="toprightDir icon_sprite ico_lock" title="{#BANNER_NOT_ACTIVE#}">&nbsp;</span>
{else}
<span class="toprightDir icon_sprite ico_unlock" title="{#BANNER_IS_ACTIVE#}">&nbsp;</span>
{/if}
</td>
<td><a href="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=editbanner&cp={$sess}&id={$item->Id}&pop=1&onlycontent=1" data-height="650" data-width="950" data-modal="true" class="toprightDir openDialog" title="{#BANNER_EDIT_LINK#}">{$item->Bannername}</a></td>
<td><a class="toprightDir fancy preview" href="../modules/{$mod_path}/files/{$item->Bannertags}" title="{#BANNER_VIEW_LINK#}" target="_blank">{$item->Bannertags}</a></td>
<td>
{foreach from=$kategs item=k}
{if $k->Id==$item->KatId}{$k->KatName}{/if}
{/foreach}
</td>
<td align="center">{if $item->ZStart<10}0{/if}{$item->ZStart}:00 - {if $item->ZEnde<10}0{/if}{$item->ZEnde}:00</td>
<td align="center">{$item->Klicks} / {if $item->MaxKlicks==0}~{else}{$item->MaxKlicks}{/if}</td>
<td align="center">{$item->Views} / {if $item->MaxViews==0}~{else}{$item->MaxViews}{/if}</td>
<td width="1%" align="center">
<a class="topleftDir icon_sprite ico_edit openDialog" title="{#BANNER_EDIT_LINK#}" href="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=editbanner&cp={$sess}&id={$item->Id}&pop=1&onlycontent=1" data-height="650" data-width="950" data-modal="true">&nbsp;</a>
</td>
<td width="1%" align="center">
<a class="topleftDir icon_sprite ico_delete ConfirmDelete" title="{#BANNER_DELETE_LINK#}" dir="Удалить" name="{#BANNER_DELETE_CONFIRM#}" href="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=delbanner&cp={$sess}&id={$item->Id}">&nbsp;</a>
</td>
</tr>
{/foreach}
</table><br />
{if $page_nav}
<div class="pagination">
<ul class="pages">
{$page_nav}
</ul>
</div>
{/if}

167
templates/form.tpl Normal file
View File

@@ -0,0 +1,167 @@
<script type="text/javascript" language="JavaScript">
function check_name() {ldelim}
if (document.getElementById('Bannername').value == '') {ldelim}
alert("{#BANNER_PLEASE_NAME#}");
document.getElementById('Bannername').focus();
return false;
{rdelim}
return true;
{rdelim}
</script>
<div class="title">
<h5>{if $smarty.request.moduleaction!='newbanner'}{#BANNER_EDIT#}{else}{#BANNER_NEW_CREATE#}{/if}</h5>
</div>
<div class="widget">
<div class="body">
{if $smarty.request.moduleaction!='newbanner'}{#BANNER_EDIT_INFO#}{else}{#BANNER_NEW_INFO#}{/if}
</div>
</div>
{if $folder_protected==1 && $smarty.request.moduleaction=='newbanner'}
<br />{#BANNER_NOT_WRITABLE#}
{else}
<br /><br />
<form method="post" action="{$formaction}" enctype="multipart/form-data" onSubmit="return check_name();">
<table width="100%" border="0" cellpadding="8" cellspacing="1" class="tableStatic mainForm">
<tr class="tableheader">
<td colspan="2">&nbsp;</td>
</tr>
<tr>
<td class="first">{#BANNER_STATUS#}</td>
<td class="second"><input name="Aktiv" type="checkbox" id="Aktiv" value="1" {if $item->Aktiv==1}checked{/if} /></td>
</tr>
<tr>
<td width="300" class="first">{#BANNER_NAME_FORM#} </td>
<td class="second"><input style="width:300px" name="Bannername" id="Bannername" type="text" value="{$item->Bannername}" /></td>
</tr>
<tr>
<td width="300" class="first">{#BANNER_CATEGORY_FORM#}</td>
<td class="second">
<select name="KatId" id="KatId">
{foreach from=$kategs item=k}
<option value="{$k->Id}" {if $k->Id==$item->KatId}selected{/if}>{$k->KatName}</option>
{/foreach}
</select>
</td>
</tr>
<tr>
<td width="300" class="first">{#BANNER_TARGET_URL#}</td>
<td class="second"><input style="width:300px" name="BannerUrl" type="text" value="{$item->BannerUrl|default:'http://'}" /></td>
</tr>
<tr>
<td width="300" class="first">{#BANNER_TARGET_TYPE#}</td>
<td class="second">
<select name="Target">
<option value="_blank" {if $item->Target == '_blank'}selected{/if}>{#BANNER_OPEN_IN_NEW#}</option>
<option value="_self" {if $item->Target == '_self'}selected{/if}>{#BANNER_OPEN_IN_THIS#}</option>
</select>
</td>
</tr>
{if $smarty.request.moduleaction != 'newbanner'}
<tr>
<td width="300" class="first">{#BANNER_OLD_IMAGE#}</td>
<td class="second">
{if $item->Bannertags==''}-{else}
{if $item->swf == false}
<img src="../modules/{$mod_path}/files/{$item->Bannertags}" alt="" border="" />
{else}
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="{$item->Width}" height="{$item->Height}" id="reklama" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="../modules/{$mod_path}/files/{$item->Bannertags}" />
<param name="quality" value="high" />
<embed src="../modules/{$mod_path}/files/{$item->Bannertags}" quality="high" width="{$item->Width}" height="{$item->Height}" name="reklama" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="https://www.macromedia.com/go/getflashplayer" />
</object>
{/if}
{/if}
</td>
</tr>
{/if}
<tr>
<td width="300" class="first">
{if $smarty.request.moduleaction != 'newbanner'}
{#BANNER_CHANGE_ONNEW#}
{else}
{#BANNER_IMAGE_SELECT#}
{/if}
</td>
<td class="second">{if $folder_protected==1 && $smarty.request.moduleaction!='newbanner'} {#BANNER_NOT_WRITABLE2#} {else} <input name="New" type="file" size="55" />{/if}</td>
</tr>
{if $item->Bannertags!='' && $smarty.request.moduleaction!='newbanner'}
<tr>
<td width="300" class="first">{#BANNER_OLD_DELETE#}</td>
<td class="second"><input name="del" type="checkbox" id="del" value="1"></td>
</tr>
{/if}
<tr>
<td width="300" class="first">{#BANNER_ALT_TEXT#}</td>
<td class="second"><input style="width:300px" name="BildAlt" type="text" id="BildAlt" value="{$item->BildAlt}" /></td>
</tr>
<tr>
<td width="300" class="first">{#BANNER_PRIOR#}</td>
<td class="second">
<select style="width:50px" name="Gewicht" id="Gewicht">
<option value="1" {if $item->Gewicht==1}selected{/if}>1</option>
<option value="2" {if $item->Gewicht==2}selected{/if}>2</option>
<option value="3" {if $item->Gewicht==3}selected{/if}>3</option>
</select>
<small>{#BANNER_PRIOR_DESC#}</small>
</td>
</tr>
{if $smarty.request.moduleaction!='newbanner'}
<tr>
<td width="300" class="first">{#BANNER_VIEW_RESET#}</td>
<td class="second"><input name="Anzeigen" type="text" id="Anzeigen" value="{$item->Views}" size="6" /> </td>
</tr>
{/if}
<tr>
<td width="300" class="first">{#BANNER_VIEWS_MAX#}<br /><small>{#BANNER_VIEWS_INFO#}</small></td>
<td class="second"><input name="MaxViews" type="text" id="MaxViews" value="{$item->MaxViews|default:'0'}" size="6" /> <small>{#BANNER_UNLIMIT#}</small></td>
</tr>
{if $smarty.request.moduleaction!='newbanner'}
<tr>
<td width="300" class="first">{#BANNER_CLICK_RESET#}</td>
<td class="second"><input name="Klicks" type="text" id="Klicks" value="{$item->Klicks}" size="6" /></td>
</tr>
{/if}
<tr>
<td width="300" class="first">{#BANNER_CLICKS#}<br><small>{#BANNER_CLICKS_INFO#}</small></td>
<td class="second"><input name="MaxKlicks" type="text" id="MaxKlicks" value="{$item->MaxKlicks|default:'0'}" size="6" /> <small>{#BANNER_UNLIMIT#}</small></td>
</tr>
<tr>
<td class="first">{#BANNER_HOUR_START#}<br /><small>{#BANNER_START_INFO#}</small></td>
<td class="second">
<select style="width:50px" name="ZStart" id="ZStart">
{section name=s loop=25 start=1}
<option value="{$smarty.section.s.index-1}" {if $item->ZStart==$smarty.section.s.index-1}selected{/if}>{$smarty.section.s.index-1}</option>
{/section}
</select>
<small>{#BANNER_START_INFO2#}</small>
</td>
</tr>
<tr>
<td class="first">{#BANNER_HOUR_END#}<br /><small>{#BANNER_END_INFO#}</small></td>
<td class="second">
<select style="width:50px" name="ZEnde" id="ZEnde">
{section name=e loop=25 start=1}
<option value="{$smarty.section.e.index-1}" {if $item->ZEnde==$smarty.section.e.index-1}selected{/if}>{$smarty.section.e.index-1}</option>
{/section}
</select>
<small>{#BANNER_END_INFO2#}</small>
</td>
</tr>
<tr>
<td class="first">{#BANNER_WIDTH_SWF#}<br /><small>{#BANNER_FOR_SWF#}</small></td>
<td class="second"><input name="Width" type="text" id="Width" value="{$item->Width|default:'0'}" size="6" /></td>
</tr>
<tr>
<td class="first">{#BANNER_HEIGHT_SWF#}<br /><small>{#BANNER_FOR_SWF#}</small></td>
<td class="second"><input name="Height" type="text" id="Height" value="{$item->Height|default:'0'}" size="6" /></td>
</tr>
</table><br />
{if $smarty.request.moduleaction == 'newbanner'}
<input name="submit" type="submit" class="button basicBtn" value="{#BANNER_BUTTON_NEW#}" />
{else}
<input name="submit" type="submit" class="button basicBtn" value="{#BANNER_BUTTON_SAVE#}" />
{/if}
</form>
{/if}
<br />

4
templates/index.php Normal file
View File

@@ -0,0 +1,4 @@
<?php
header('Location:/');
exit;
?>

81
templates/kategs.tpl Normal file
View File

@@ -0,0 +1,81 @@
<script type="text/javascript" language="JavaScript">
function check_name() {ldelim}
if (document.getElementById('Name').value == '') {ldelim}
alert("{#BANNER_ENTER_NAME#}");
document.getElementById('Name').focus();
return false;
{rdelim}
return true;
{rdelim}
</script>
<div class="title">
<h5>{#BANNER_MODULE_NAME#}</h5>
</div>
<div class="widget">
<div class="body">
<strong>{#BANNER_MOD_ALLOWS#}</strong>
<ul style="list-style: square; margin-left:15px;">
<li>{#BANNER_MOD_ALLOWS_A#}</li>
<li>{#BANNER_MOD_ALLOWS_B#}</li>
<li>{#BANNER_MOD_ALLOWS_C#}</li>
</ul>
</div>
</div>
<div class="breadCrumbHolder module">
<div class="breadCrumb module">
<ul>
<li class="firstB"><a href="index.php" title="{#MAIN_PAGE#}">{#MAIN_PAGE#}</a></li>
<li><a href="index.php?do=modules&amp;cp={$sess}">{#MODULES_SUB_TITLE#}</a></li>
<li><a href="index.php?do=modules&action=modedit&mod=media&moduleaction=1&cp={$sess}">{#BANNER_SHOW_ALL#}</a>
<li><strong class="code">{#BANNER_CATEG_LINK#}</strong></li>
</ul>
</div>
</div>
<div class="widget">
<div class="head">
<h5><a href="index.php?do=modules&action=modedit&mod=media&moduleaction=1&cp={$sess}"><span style="color:#177BBB;">{#BANNER_SHOW_ALL#}</span></a> |&nbsp;
<a href="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=newbanner&cp={$sess}&pop=1&onlycontent=1" data-height="650" data-width="950" data-modal="true" class="openDialog">{#BANNER_NEW_LINK#}</a> |&nbsp;
<a href="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=kategs&cp={$sess}"><span style="color:#FFF;">{#BANNER_CATEG_LINK#}</span></a></h5>
</div>
</div>
<form method="post" action="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=kategs&cp={$sess}&sub=save" enctype="multipart/form-data">
<table width="100%" border="0" cellpadding="8" cellspacing="1" class="tableStatic mainForm">
<tr class="tableheader">
<td width="1%" align="center"><span class="icon_sprite ico_delete">&nbsp;</span></td>
<td width="100">{#BANNER_CATEGORY_TAG#}</td>
<td>{#BANNER_CATEGORY_NAME#}</td>
</tr>
{foreach from=$items item=item}
<tr id="table_rows">
<td width="1%">
<input title="{#BANNER_MARK_DELETE#}" name="del[{$item->Id}]" type="checkbox" id="del[{$item->Id}]" value="1" />
</td>
<td width="100">
<input name="textfield" type="text" value="[mod_banner:{$item->Id}]" readonly/>
</td>
<td>
<input name="KatName[{$item->Id}]" type="text" id="KatName[{$item->Id}]" value="{$item->KatName|escape:html|stripslashes}" size="60">
</td>
</tr>
{/foreach}
</table><br />
<input type="submit" style="margin-left:10px;" class="button basicBtn" value="{#BANNER_BUTTON_SAVE#}" />
</form>
<div class="widget">
<div class="head">
<h5>{#BANNER_CATEGORY_NEW#}</h5>
</div>
</div>
<form action="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=kategs&cp={$sess}&sub=new" method="post" onSubmit="return check_name();">
<table width="100%" border="0" cellpadding="8" cellspacing="1" class="tableStatic mainForm">
<tr>
<td class="tableheader">{#BANNER_CATEGORY#}</td>
</tr>
<tr>
<td class="second">
<input name="KatName" type="text" id="Name" size="60">&nbsp;
<input name="submit" type="submit" style="margin-left:-5px; margin-top:10px;" class="button basicBtn" value="{#BANNER_BUTTON_ADD#}" />
</td>
</tr>
</table>
</form>