diff --git a/README.md b/README.md
index 17b48b0..3f45f7f 100644
--- a/README.md
+++ b/README.md
@@ -1,21 +1,30 @@
### media
-## Модуль Баннер v2.26.0
+## Модуль Баннер v3.31.0
-### Модуль позволяет:
+### для AVE.CMS ALT ≥ ≥ v3.31
+
+* Модуль позволяет:
* Организовать удобное управление показами рекламных баннеров на вашем сайте.
* Для того, чтобы отобразить рекламный баннер, разместите системный тег [mod_banner:XXX] в нужном месте вашего шаблона сайта или содержимом документа.
* Идентификаторы системных тегов указаны в разделе - Управление категориями.
- * Допустимые форматы рекламных баннеров: jpg, jpeg, png, gif, swf.
-
+ * Допустимые форматы рекламных баннеров: jpg, jpeg, png, gif, webp.
+* Установка:
+ * Скачайте архив с модулем banner-main.zip и положите его в папку modules, разархивируйте, после чего у вас появится папка media, ее оставляем архив banner-main.zip удаляем.
+ * Перейдите в раздел управления модулями вкладка Неустановленные модули, установите модуль Баннер.
+ * Перейдите к управлению модулем, в созданном при установке примере перейдите в раздел Управление категориями, скопируйте системный тег ```[mod_banner:1]``` принадлежащий Категории 1 и разместите его в документе или Основном шаблоне или в шаблоне Рубрики.
+* Шаблон вывода в публичной части сайта:
+ * Верстка публичной части модуля находится в шаблоне modules/media/templates/banner_viewer.tpl
### Changelog:
+28.03.2026 - обновление модуля - версия 3.32 - рефакторинг кода для работы в ave.cms ALT v3.31. Добавлен шаблон вывода в публичной части сайта.
+
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%" для изображения баннера, при использовании в адаптивной верстке.
\ No newline at end of file
+03.06.2016 - добавлен атрибут style="width:100%" для изображения баннера, при использовании в адаптивной верстке.
\ No newline at end of file
diff --git a/class/banner.php b/class/banner.php
index 1c9c2b4..993b8ba 100644
--- a/class/banner.php
+++ b/class/banner.php
@@ -7,441 +7,476 @@
* @subpackage module_Banner
* @filesource
*/
-class ModulBanner {
+class ModuleBanner {
/**
- * СВОЙСТВА
+ * СВОЙСТВА
*/
- 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 = ' ';
- }
- else
- {
- $output = '
';
- $output .= '
';
- $output .= ' ';
- $output .= ' ';
- $output .= ' ';
- $output .= ' ';
- $output .= ' ';
- $output .= ' ';
- $output .= '
';
- }
-
- 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 = ' {t} ';
- $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 "";
-
- $AVE_DB->Query("
- UPDATE " . PREFIX . "_modul_banners
- SET Bannertags = '" . $d_name . "'
- WHERE Id = '" . $id . "'
- ");
-
- reportLog($_SESSION['user_name'] . ' - заменил изображение баннера на (' . $d_name . ')', 2, 2);
-
- } else {
- echo "";
- }
-
- } else {
- echo "";
- }
- }
-
- $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 "";
- reportLog($_SESSION['user_name'] . ' - добавил изображение баннера (' . $d_name . ')', 2, 2);
- $file = $d_name;
- } else {
- echo "";
- }
- } else {
- echo "";
- }
- }
-
- $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;
- }
+ var $_limit = 15;
+ var $_allowed_files =
+ array(
+ 'image/jpg',
+ 'image/jpeg',
+ 'image/pjpeg',
+ 'image/x-png',
+ 'image/png',
+ 'image/gif',
+ 'image/webp'
+ );
+
+function displayBanner($id) {
+ global $AVE_DB, $AVE_Template;
+
+ mt_rand();
+
+ $cur_hour = (int)date('G');
+ // Сохраняем ваше оригинальное условие времени полностью
+ $and_time = "AND ((start_hour = '0' AND end_hour = '0') OR (start_hour <= '$cur_hour' AND end_hour > '$cur_hour') OR (start_hour > end_hour AND (start_hour BETWEEN start_hour AND '$cur_hour' OR end_hour BETWEEN '$cur_hour' AND end_hour)))";
+ $and_category = (!empty($id) && is_numeric($id)) ? "AND category_id = '" . (int)$id . "'" : '';
+
+ $num_rows = $AVE_DB->Query("
+ SELECT id
+ FROM " . PREFIX . "_module_banners
+ WHERE is_active = '1'
+ AND (max_clicks = '0' OR (clicks < max_clicks AND max_clicks != '0'))
+ AND (max_views = '0' OR (views < max_views AND max_views != '0'))
+ " . $and_time . "
+ " . $and_category . "
+ ")->NumRows();
+
+ // Ваша логика выбора порога веса
+ $weight_limit = ($num_rows) ? rand(1, 3) : 3;
+
+ $sql = $AVE_DB->Query("
+ SELECT
+ id,
+ banner_file,
+ target,
+ banner_name,
+ image_alt,
+ width,
+ height
+ FROM " . PREFIX . "_module_banners
+ WHERE is_active = '1'
+ AND (max_clicks = '0' OR (clicks < max_clicks AND max_clicks != '0'))
+ AND (max_views = '0' OR (views < max_views AND max_views != '0'))
+ " . $and_time . "
+ " . $and_category . "
+ AND weight <= '" . (int)$weight_limit . "'
+ ");
+ $num = $sql->NumRows();
+
+ if ($num == 0) return;
+
+ $target_index = ($num == 1) ? 0 : rand(0, $num - 1);
+
+ $sql->DataSeek($target_index);
+ $banner = $sql->FetchAssocArray();
+
+ if(!empty($banner['banner_file']))
+ {
+ // Передаем переменные в Smarty
+ $AVE_Template->assign([
+ 'banner' => $banner,
+ 'mod_path' => BANNER_DIR,
+ 'abs_path' => ABS_PATH
+ ]);
+
+ // Выводим через шаблон (путь подставьте свой, обычно так)
+ $AVE_Template->display(BASE_DIR . '/modules/' . BANNER_DIR . '/templates/banner_viewer.tpl');
+
+ if(!empty($banner['id']))
+ {
+ $AVE_DB->Query("
+ UPDATE " . PREFIX . "_module_banners
+ SET views = views + 1
+ WHERE id = '" . (int)$banner['id'] . "'
+ ");
+ }
+ }
+ }
+
+function fetch_addclick($id) {
+ global $AVE_DB;
+
+ // Используем ?? '', чтобы не было Warning, если action не передан
+ $action = $_REQUEST['action'] ?? '';
+
+ switch($action) {
+ case '':
+ case 'addclick':
+ $sql = $AVE_DB->Query("
+ SELECT banner_url
+ FROM " . PREFIX . "_module_banners
+ WHERE id = '" . (int)$id . "'
+ LIMIT 1
+ ");
+
+ $banner_url = $sql->GetCell();
+
+ if(!empty($banner_url)) {
+ // Сначала обновляем счетчик кликов
+ $AVE_DB->Query("
+ UPDATE " . PREFIX . "_module_banners
+ SET clicks = clicks + 1
+ WHERE id = '" . (int)$id . "'
+ ");
+
+ // Затем перенаправляем пользователя
+ header('Location: ' . $banner_url);
+ } else {
+ // Если URL пустой или баннер не найден, возвращаем на главную
+ header('Location: index.php');
+ }
+
+ exit;
+ break;
+ }
}
-?>
+
+ function showBanners($tpl_dir) {
+ global $AVE_DB, $AVE_Template;
+
+ $limit = (int)$this->_limit;
+ $sql = $AVE_DB->Query("SELECT id FROM " . PREFIX . "_module_banners");
+ $num = $sql->NumRows();
+
+ $seiten = ceil($num / $limit);
+ $start = (int)(get_current_page() * $limit - $limit);
+ if ($start < 0) $start = 0;
+
+ $items = array();
+ $sql = $AVE_DB->Query("
+ SELECT *
+ FROM " . PREFIX . "_module_banners
+ LIMIT " . (int)$start . "," . (int)$limit . "
+ ");
+ while($row = $sql->FetchRow()) {
+ array_push($items, $row);
+ }
+
+ if($num > $limit)
+ {
+ $page_nav = ' {t} ';
+ $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->_showCategories());
+ $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 . "_module_banners
+ WHERE id = '" . (int)$id . "'
+ ");
+ $row = $sql->FetchRow();
+
+ if (stristr(($row->banner_file),'.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=' . (int)$id . '&pop=1');
+ $AVE_Template->assign('kategs', $this->_showCategories());
+ $AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'form.tpl'));
+ }
+
+ function deleteBanner($id) {
+ global $AVE_DB;
+
+ $sql = $AVE_DB->Query("
+ SELECT
+ banner_file,
+ banner_name
+ FROM " . PREFIX . "_module_banners
+ WHERE id = '" . (int)$id . "'
+ ");
+ $row = $sql->FetchRow();
+
+ @unlink(BASE_DIR . '/modules/' . BANNER_DIR . '/files/' . $row->banner_file);
+ $AVE_DB->Query("
+ DELETE
+ FROM " . PREFIX . "_module_banners
+ WHERE id = '" . (int)$id . "'
+ ");
+
+ reportLog($_SESSION['user_name'] . ' - удалил баннер (' . $row->banner_name . ')', 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 banner_file
+ FROM " . PREFIX . "_module_banners
+ WHERE id = '" . (int)$id . "'
+ ");
+ $row = $sql->FetchRow();
+
+ $AVE_DB->Query("
+ UPDATE " . PREFIX . "_module_banners
+ SET banner_file = ''
+ WHERE id = '" . (int)$id . "'
+ ");
+
+ @unlink(BASE_DIR . '/modules/' . BANNER_DIR . '/files/' . $row->banner_file);
+ }
+
+ if(!empty($_POST['banner_name'])) {
+ $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->_getRandomPrefix() . '__' . $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 "";
+
+ $AVE_DB->Query("
+ UPDATE " . PREFIX . "_module_banners
+ SET banner_file = '" . addslashes($d_name) . "'
+ WHERE id = '" . (int)$id . "'
+ ");
+
+ reportLog($_SESSION['user_name'] . ' - заменил изображение баннера на (' . $d_name . ')', 2, 2);
+
+ } else {
+ echo "";
+ }
+
+ } else {
+ echo "";
+ }
+ }
+
+ $AVE_DB->Query("
+ UPDATE " . PREFIX . "_module_banners
+ SET
+ banner_name = '" . addslashes($_REQUEST['banner_name']) . "',
+ banner_url = '" . addslashes($_REQUEST['banner_url']) . "',
+ weight = '" . (int)$_REQUEST['weight'] . "',
+ views = '" . (int)$_REQUEST['views'] . "',
+ clicks = '" . (int)$_REQUEST['clicks'] . "',
+ image_alt = '" . addslashes($_REQUEST['image_alt']) . "',
+ category_id = '" . (int)$_REQUEST['category_id'] . "',
+ max_clicks = '" . (int)$_REQUEST['max_clicks'] . "',
+ max_views = '" . (int)$_REQUEST['max_views'] . "',
+ start_hour = '" . (int)$_REQUEST['start_hour'] . "',
+ end_hour = '" . (int)$_REQUEST['end_hour'] . "',
+ is_active = '" . (int)$_REQUEST['is_active'] . "',
+ target = '" . addslashes($_REQUEST['target']) . "',
+ width = '" . (int)$_REQUEST['width'] . "',
+ height = '" . (int)$_REQUEST['height'] . "'
+ WHERE
+ id = '" . (int)$id . "'
+ ");
+ reportLog($_SESSION['user_name'] . ' - изменил параметры баннера (' . stripslashes($_REQUEST['banner_name']) . ')', 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;
+
+ // Определяем под-действие (создание или сохранение)
+ $sub = $_REQUEST['sub'] ?? '';
+
+ switch($sub) {
+ case '':
+ if(!@is_writeable(BASE_DIR . '/modules/' . BANNER_DIR . '/files/')) {
+ $AVE_Template->assign('folder_protected', 1);
+ }
+
+ // Инициализируем пустой объект для Smarty, чтобы PHP 8.4 не ругался на отсутствие свойств
+ $item = new stdClass();
+ $item->id = 0;
+ $item->banner_name = '';
+ $item->category_id = 0;
+ $item->is_active = 1;
+ $item->target = '_blank';
+ $item->banner_file = '';
+ $item->banner_url = 'https://';
+ $item->image_alt = '';
+ $item->weight = 1;
+ $item->max_clicks = 0;
+ $item->max_views = 0;
+ $item->start_hour = 0;
+ $item->end_hour = 24;
+ $item->width = 0;
+ $item->height = 0;
+
+ $AVE_Template->assign('item', $item);
+ $AVE_Template->assign('mod_path', BANNER_DIR);
+ $AVE_Template->assign('kategs', $this->_showCategories());
+ $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['banner_name'])) {
+ $file = '';
+
+ // Проверяем, был ли загружен файл
+ if(!empty($_FILES['New']['name']) && $_FILES['New']['error'] == UPLOAD_ERR_OK) {
+ $d_name = strtolower($_FILES['New']['name']);
+ $d_name = str_replace(' ', '', $d_name);
+ $d_tmp = $_FILES['New']['tmp_name'];
+
+ 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->_getRandomPrefix() . '__' . $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 "";
+ reportLog($_SESSION['user_name'] . ' - добавил изображение баннера (' . $d_name . ')', 2, 2);
+ $file = $d_name;
+ } else {
+ echo "";
+ }
+ } else {
+ echo "";
+ }
+ }
+
+ // Выполняем запрос к БД с очисткой данных
+ $AVE_DB->Query("
+ INSERT
+ INTO " . PREFIX . "_module_banners
+ SET
+ category_id = '" . (int)($_REQUEST['category_id'] ?? 0) . "',
+ banner_file = '" . addslashes($file) . "',
+ banner_url = '" . addslashes($_REQUEST['banner_url'] ?? '') . "',
+ weight = '" . (int)($_REQUEST['weight'] ?? 1) . "',
+ banner_name = '" . addslashes($_REQUEST['banner_name'] ?? '') . "',
+ image_alt = '" . addslashes($_REQUEST['image_alt'] ?? '') . "',
+ max_clicks = '" . (int)($_REQUEST['max_clicks'] ?? 0) . "',
+ max_views = '" . (int)($_REQUEST['max_views'] ?? 0) . "',
+ start_hour = '" . (int)($_REQUEST['start_hour'] ?? 0) . "',
+ end_hour = '" . (int)($_REQUEST['end_hour'] ?? 24) . "',
+ is_active = '" . (int)($_REQUEST['is_active'] ?? 1) . "',
+ target = '" . addslashes($_REQUEST['target'] ?? '_blank') . "',
+ width = '" . (int)($_REQUEST['width'] ?? 0) . "',
+ height = '" . (int)($_REQUEST['height'] ?? 0) . "'
+ ");
+
+ reportLog($_SESSION['user_name'] . ' - добавил новый баннер (' . stripslashes($_REQUEST['banner_name']) . ')', 2, 2);
+ }
+
+ header('Location:index.php?do=modules&action=modedit&mod=' . BANNER_DIR . '&moduleaction=1&cp=' . SESSION);
+ exit;
+ }
+ }
+
+ function bannerCategories($tpl_dir) {
+ global $AVE_DB, $AVE_Template;
+
+ switch($_REQUEST['sub']) {
+ case '' :
+ $items = array();
+ $sql = $AVE_DB->Query("SELECT * FROM " . PREFIX . "_module_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->_showCategories());
+ $AVE_Template->assign('content', $AVE_Template->fetch($tpl_dir . 'kategs.tpl'));
+ break;
+
+ case 'save' :
+ if (isset($_POST['category_name'])) {
+ foreach($_POST['category_name'] as $id => $kateg) {
+ if(!empty($kateg)) {
+ $AVE_DB->Query("
+ UPDATE " . PREFIX . "_module_banner_categories
+ SET category_name = '" . addslashes($kateg) . "'
+ WHERE id = '" . (int)$id . "'
+ ");
+ }
+ }
+ }
+
+ if (isset($_POST['del'])) {
+ foreach($_POST['del'] as $id => $kateg) {
+ $AVE_DB->Query("
+ DELETE
+ FROM " . PREFIX . "_module_banners
+ WHERE category_id = '" . (int)$id . "'
+ ");
+ $AVE_DB->Query("
+ DELETE
+ FROM " . PREFIX . "_module_banner_categories
+ WHERE id = '" . (int)$id . "'
+ ");
+
+ reportLog($_SESSION['user_name'] . ' - удалил категорию баннеров (' . (int)$id . ')', 2, 2);
+ }
+ }
+
+ header('Location:index.php?do=modules&action=modedit&mod=' . BANNER_DIR . '&moduleaction=kategs&cp=' . SESSION);
+ break;
+
+ case 'new' :
+ if(!empty($_REQUEST['category_name'])) {
+ $sql = $AVE_DB->Query("
+ INSERT
+ INTO " . PREFIX . "_module_banner_categories
+ SET category_name = '" . addslashes($_REQUEST['category_name']) . "'
+ ");
+
+ reportLog($_SESSION['user_name'] . ' - добавил новую категорию (' . stripslashes($_REQUEST['category_name']) . ')', 2, 2);
+ }
+
+ header('Location:index.php?do=modules&action=modedit&mod=' . BANNER_DIR . '&moduleaction=kategs&cp=' . SESSION);
+ break;
+ }
+ }
+
+/**
+ * ВНУТРЕННИЕ МЕТОДЫ
+ */
+
+ function _getRandomPrefix() {
+ return rand(1000, 99999);
+ }
+
+ function _showCategories() {
+ global $AVE_DB;
+
+ $categories = array();
+ $sql = $AVE_DB->Query("SELECT * FROM " . PREFIX . "_module_banner_categories");
+ while($row = $sql->FetchRow()) {
+ array_push($categories, $row);
+ }
+
+ return $categories;
+ }
+}
+?>
\ No newline at end of file
diff --git a/files/media2_ave.jpg b/files/media_ave.jpg
similarity index 100%
rename from files/media2_ave.jpg
rename to files/media_ave.jpg
diff --git a/files/media_gitget.jpg b/files/media_gitget.jpg
index 9e826ff..1f17f6d 100644
Binary files a/files/media_gitget.jpg and b/files/media_gitget.jpg differ
diff --git a/info.php b/info.php
index 7b2d5cf..8e85e76 100644
--- a/info.php
+++ b/info.php
@@ -4,7 +4,7 @@
$module = array(
'ModuleSysName' => 'media',
- 'ModuleVersion' => '2.26.0',
+ 'ModuleVersion' => '3.31.0',
'ModuleAutor' => 'AVE.cms Team',
'ModuleCopyright' => '© 2007-' . date('Y') . ' AVE.cms',
'ModuleStatus' => 1,
diff --git a/lang/ru.txt b/lang/ru.txt
index caa4c87..d8809ba 100644
--- a/lang/ru.txt
+++ b/lang/ru.txt
@@ -1,6 +1,6 @@
[name]
MODULE_NAME = "Баннер"
-MODULE_DESCRIPTION = "Данный модуль позволяет организовать удобное управление показами рекламных баннеров на вашем сайте. Для того, чтобы отобразить рекламный баннер, разместите системный тег [mod_banner:XXX] в нужном месте вашего шаблона сайта или содержимом документа. Допустимые форматы рекламных баннеров: jpg, jpeg, png, gif, swf"
+MODULE_DESCRIPTION = "Данный модуль позволяет организовать удобное управление показами рекламных баннеров на вашем сайте. Для того, чтобы отобразить рекламный баннер, разместите системный тег [mod_banner:XXX] в нужном месте вашего шаблона сайта или содержимом документа. Допустимые форматы рекламных баннеров: jpg, jpeg, png, gif, webp"
[module]
BANNER_MODULE_NAME = "Управление модулем баннер"
@@ -34,8 +34,8 @@ BANNER_ENTER_NAME = "Пожалуйста, укажите название
BANNER_PLEASE_NAME = "Пожалуйста, укажите название баннера"
BANNER_NEW_CREATE = "Добавление нового баннера"
BANNER_EDIT = "Редактирование баннера"
-BANNER_EDIT_INFO = "В данном разделе вы можете отредактировать параметры баннера, а также сменить текущее изображение на новое. Допустимые форматы файлов: jpg, jpeg, png, gif, swf"
-BANNER_NEW_INFO = "В данном разделе вы можете добавить новый баннер, установить количество и время показов баннера. Допустимые форматы файлов: jpg, jpeg, png, gif, swf"
+BANNER_EDIT_INFO = "В данном разделе вы можете отредактировать параметры баннера, а также сменить текущее изображение на новое. Допустимые форматы файлов: jpg, jpeg, png, gif, webp"
+BANNER_NEW_INFO = "В данном разделе вы можете добавить новый баннер, установить количество и время показов баннера. Допустимые форматы файлов: jpg, jpeg, png, gif, webp"
BANNER_STATUS = "Активировать баннер?"
BANNER_NAME_FORM = "Название баннера:"
BANNER_CATEGORY_FORM = "Относится к категории:"
@@ -70,10 +70,11 @@ 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_WIDTH = "Ширина изображения баннера:"
+BANNER_HEIGHT = "Высота изображения баннера:"
+BANNER_FOR_SWF = "(0 - оставить как есть)"
BANNER_MOD_ALLOWS = "Модуль позволяет:"
BANNER_MOD_ALLOWS_A = "Организовать удобное управление показами рекламных баннеров на вашем сайте."
BANNER_MOD_ALLOWS_B = "Для того, чтобы отобразить рекламный баннер, разместите системный тег [mod_banner:XXX] в нужном месте вашего шаблона сайта или содержимом документа. Идентификаторы тегов указаны в разделе - Управление категориями."
-BANNER_MOD_ALLOWS_C = "Допустимые форматы рекламных баннеров: jpg, jpeg, png, gif, swf."
+BANNER_MOD_ALLOWS_C = "Допустимые форматы рекламных баннеров: jpg, jpeg, png, gif, webp."
+BANNER_SET_COPY = "Скопировать в буфер обмена"
diff --git a/module.php b/module.php
index 48d8751..242ca35 100644
--- a/module.php
+++ b/module.php
@@ -12,8 +12,6 @@ if(!defined('BASE_DIR')) exit;
if(!defined('BANNER_DIR')) define('BANNER_DIR', 'media');
-echo BANNER_DIR;
-
/**
* Обработка тэга модуля
*
@@ -22,7 +20,7 @@ echo BANNER_DIR;
function mod_banner($banner_id)
{
require_once(BASE_DIR . '/modules/' . BANNER_DIR . '/class/banner.php');
- $banner = new ModulBanner;
+ $banner = new ModuleBanner;
$banner->displayBanner(stripslashes($banner_id));
}
@@ -31,7 +29,7 @@ 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 = new ModuleBanner;
$banner->fetch_addclick($_REQUEST['id']);
}
}
@@ -46,7 +44,7 @@ if (defined('ACP') && !empty($_REQUEST['moduleaction']))
$lang_file = BASE_DIR . '/modules/' . BANNER_DIR . '/lang/' . $_SESSION['user_language'] . '.txt';
$AVE_Template->config_load($lang_file, 'module');
- $banner = new ModulBanner;
+ $banner = new ModuleBanner;
$AVE_Template->config_load($lang_file, 'module');
$config_vars = $AVE_Template->get_config_vars();
@@ -55,7 +53,7 @@ if (defined('ACP') && !empty($_REQUEST['moduleaction']))
switch($_REQUEST['moduleaction'])
{
case '1':
- $banner->showBanner($tpl_dir);
+ $banner->showBanners($tpl_dir);
break;
case 'quicksave':
@@ -63,7 +61,7 @@ if (defined('ACP') && !empty($_REQUEST['moduleaction']))
break;
case 'kategs':
- $banner->bannerKategs($tpl_dir);
+ $banner->bannerCategories($tpl_dir);
break;
case 'editbanner':
diff --git a/sql.php b/sql.php
index 8388ab8..41b5361 100644
--- a/sql.php
+++ b/sql.php
@@ -1,57 +1,62 @@
\ No newline at end of file
diff --git a/templates/banner_viewer.tpl b/templates/banner_viewer.tpl
new file mode 100644
index 0000000..8d5d54f
--- /dev/null
+++ b/templates/banner_viewer.tpl
@@ -0,0 +1,13 @@
+
\ No newline at end of file
diff --git a/templates/banners.tpl b/templates/banners.tpl
index b9e9cc9..79e76e2 100644
--- a/templates/banners.tpl
+++ b/templates/banners.tpl
@@ -21,13 +21,28 @@
+
+
+
+
+
+
{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)}
+ {* Логика активности: Aktiv->is_active, Bannertags->banner_file, Klicks->clicks, Views->views *}
+ {if ($item->is_active != 1) || ($item->banner_file=='') || ($item->clicks >= $item->max_clicks && $item->max_clicks != 0) || ($item->views >= $item->max_views && $item->max_views != 0)}
{assign var=active value=0}
{else}
{assign var=active value=1}
@@ -52,21 +68,26 @@
{/if}
- {$item->Bannername}
- {$item->Bannertags}
+ {* Id -> id, Bannername -> banner_name *}
+ {$item->banner_name}
+ {* Bannertags -> banner_file *}
+ {$item->banner_file}
{foreach from=$kategs item=k}
- {if $k->Id==$item->KatId}{$k->KatName}{/if}
+ {* Id -> id, KatId -> category_id, KatName -> category_name *}
+ {if $k->id==$item->category_id}{$k->category_name}{/if}
{/foreach}
- {if $item->ZStart<10}0{/if}{$item->ZStart}:00 - {if $item->ZEnde<10}0{/if}{$item->ZEnde}:00
- {$item->Klicks} / {if $item->MaxKlicks==0}~{else}{$item->MaxKlicks}{/if}
- {$item->Views} / {if $item->MaxViews==0}~{else}{$item->MaxViews}{/if}
+ {* ZStart/ZEnde -> start_hour/end_hour *}
+ {if $item->start_hour<10}0{/if}{$item->start_hour}:00 - {if $item->end_hour<10}0{/if}{$item->end_hour}:00
+ {* Klicks/Views -> clicks/views *}
+ {$item->clicks} / {if $item->max_clicks==0}~{else}{$item->max_clicks}{/if}
+ {$item->views} / {if $item->max_views==0}~{else}{$item->max_views}{/if}
-
+
-
+
{/foreach}
diff --git a/templates/form.tpl b/templates/form.tpl
index 7026232..2e93180 100644
--- a/templates/form.tpl
+++ b/templates/form.tpl
@@ -1,21 +1,24 @@
+
{if $smarty.request.moduleaction!='newbanner'}{#BANNER_EDIT#}{else}{#BANNER_NEW_CREATE#}{/if}
+
+
+
{if $folder_protected==1 && $smarty.request.moduleaction=='newbanner'}
{#BANNER_NOT_WRITABLE#}
{else}
@@ -27,54 +30,48 @@ function check_name() {ldelim}
{#BANNER_STATUS#}
- Aktiv==1}checked{/if} />
+ is_active==1}checked{/if} />
{#BANNER_NAME_FORM#}
-
+
{#BANNER_CATEGORY_FORM#}
-
+
{foreach from=$kategs item=k}
- Id==$item->KatId}selected{/if}>{$k->KatName}
+ id==$item->category_id}selected{/if}>{$k->category_name}
{/foreach}
{#BANNER_TARGET_URL#}
-
+
{#BANNER_TARGET_TYPE#}
-
- Target == '_blank'}selected{/if}>{#BANNER_OPEN_IN_NEW#}
- Target == '_self'}selected{/if}>{#BANNER_OPEN_IN_THIS#}
+
+ target == '_blank'}selected{/if}>{#BANNER_OPEN_IN_NEW#}
+ target == '_self'}selected{/if}>{#BANNER_OPEN_IN_THIS#}
+
{if $smarty.request.moduleaction != 'newbanner'}
{#BANNER_OLD_IMAGE#}
- {if $item->Bannertags==''}-{else}
- {if $item->swf == false}
-
- {else}
-
-
-
-
-
-
- {/if}
+ {if $item->banner_file==''}-{else}
+ {* Убрали проверку на SWF, выводим только картинку *}
+
{/if}
{/if}
+
{if $smarty.request.moduleaction != 'newbanner'}
@@ -85,7 +82,7 @@ function check_name() {ldelim}
{if $folder_protected==1 && $smarty.request.moduleaction!='newbanner'} {#BANNER_NOT_WRITABLE2#} {else} {/if}
- {if $item->Bannertags!='' && $smarty.request.moduleaction!='newbanner'}
+ {if $item->banner_file!='' && $smarty.request.moduleaction!='newbanner'}
{#BANNER_OLD_DELETE#}
@@ -93,15 +90,15 @@ function check_name() {ldelim}
{/if}
{#BANNER_ALT_TEXT#}
-
+
{#BANNER_PRIOR#}
-
- Gewicht==1}selected{/if}>1
- Gewicht==2}selected{/if}>2
- Gewicht==3}selected{/if}>3
+
+ weight==1}selected{/if}>1
+ weight==2}selected{/if}>2
+ weight==3}selected{/if}>3
{#BANNER_PRIOR_DESC#}
@@ -109,29 +106,29 @@ function check_name() {ldelim}
{if $smarty.request.moduleaction!='newbanner'}
{#BANNER_VIEW_RESET#}
-
+
{/if}
{#BANNER_VIEWS_MAX#}{#BANNER_VIEWS_INFO#}
- {#BANNER_UNLIMIT#}
+ {#BANNER_UNLIMIT#}
{if $smarty.request.moduleaction!='newbanner'}
{#BANNER_CLICK_RESET#}
-
+
{/if}
{#BANNER_CLICKS#}{#BANNER_CLICKS_INFO#}
- {#BANNER_UNLIMIT#}
+ {#BANNER_UNLIMIT#}
{#BANNER_HOUR_START#}{#BANNER_START_INFO#}
-
+
{section name=s loop=25 start=1}
- ZStart==$smarty.section.s.index-1}selected{/if}>{$smarty.section.s.index-1}
+ start_hour==$smarty.section.s.index-1}selected{/if}>{$smarty.section.s.index-1}
{/section}
{#BANNER_START_INFO2#}
@@ -140,21 +137,21 @@ function check_name() {ldelim}
{#BANNER_HOUR_END#}{#BANNER_END_INFO#}
-
+
{section name=e loop=25 start=1}
- ZEnde==$smarty.section.e.index-1}selected{/if}>{$smarty.section.e.index-1}
+ end_hour==$smarty.section.e.index-1}selected{/if}>{$smarty.section.e.index-1}
{/section}
{#BANNER_END_INFO2#}
- {#BANNER_WIDTH_SWF#}{#BANNER_FOR_SWF#}
-
+ {#BANNER_WIDTH#}{#BANNER_FOR_SWF#}
+ (px)
- {#BANNER_HEIGHT_SWF#}{#BANNER_FOR_SWF#}
-
+ {#BANNER_HEIGHT#}{#BANNER_FOR_SWF#}
+ (px)
{if $smarty.request.moduleaction == 'newbanner'}
diff --git a/templates/kategs.tpl b/templates/kategs.tpl
index 3638ba6..01c2b52 100644
--- a/templates/kategs.tpl
+++ b/templates/kategs.tpl
@@ -1,16 +1,20 @@
+
{#BANNER_MODULE_NAME#}
+
+
+
+
+
-
+