From 69751b85906a9a080f15c96feb96447916b37e4d Mon Sep 17 00:00:00 2001 From: Repellent Date: Wed, 18 Feb 2026 22:57:00 +0500 Subject: [PATCH] Initial commit --- README.md | 22 +- class/banner.php | 447 +++++++++++++++++++++++++++++++++++++++++ files/index.php | 4 + files/media2_ave.jpg | Bin 0 -> 8247 bytes files/media_gitget.jpg | Bin 0 -> 7412 bytes index.php | 4 + info.php | 20 ++ lang/index.php | 4 + lang/ru.txt | 79 ++++++++ module.php | 84 ++++++++ sql.php | 57 ++++++ templates/banners.tpl | 80 ++++++++ templates/form.tpl | 167 +++++++++++++++ templates/index.php | 4 + templates/kategs.tpl | 81 ++++++++ 15 files changed, 1051 insertions(+), 2 deletions(-) create mode 100644 class/banner.php create mode 100644 files/index.php create mode 100644 files/media2_ave.jpg create mode 100644 files/media_gitget.jpg create mode 100644 index.php create mode 100644 info.php create mode 100644 lang/index.php create mode 100644 lang/ru.txt create mode 100644 module.php create mode 100644 sql.php create mode 100644 templates/banners.tpl create mode 100644 templates/form.tpl create mode 100644 templates/index.php create mode 100644 templates/kategs.tpl diff --git a/README.md b/README.md index 62ac355..17b48b0 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,21 @@ -# banner +### media -Модуль Баннер Только для AVE.CMS ALT \ No newline at end of file +## Модуль Баннер 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%" для изображения баннера, при использовании в адаптивной верстке. \ No newline at end of file diff --git a/class/banner.php b/class/banner.php new file mode 100644 index 0000000..1c9c2b4 --- /dev/null +++ b/class/banner.php @@ -0,0 +1,447 @@ + '$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 = '' . $banner['Bannername'] . ': ' . $banner['BildAlt'] . ''; + } + 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; + } +} +?> diff --git a/files/index.php b/files/index.php new file mode 100644 index 0000000..4ca25aa --- /dev/null +++ b/files/index.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/files/media2_ave.jpg b/files/media2_ave.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7120197ee58f7f0dcf865dfef3961762fc320c51 GIT binary patch literal 8247 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 literal 0 HcmV?d00001 diff --git a/files/media_gitget.jpg b/files/media_gitget.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9e826ffb721030519d0f56913e9749f1ce21750b GIT binary patch literal 7412 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 PuKW|d|C \ No newline at end of file diff --git a/info.php b/info.php new file mode 100644 index 0000000..7b2d5cf --- /dev/null +++ b/info.php @@ -0,0 +1,20 @@ + 'media', + 'ModuleVersion' => '2.26.0', + 'ModuleAutor' => 'AVE.cms Team', + 'ModuleCopyright' => '© 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' => "" + ); +?> \ No newline at end of file diff --git a/lang/index.php b/lang/index.php new file mode 100644 index 0000000..4ca25aa --- /dev/null +++ b/lang/index.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/lang/ru.txt b/lang/ru.txt new file mode 100644 index 0000000..caa4c87 --- /dev/null +++ b/lang/ru.txt @@ -0,0 +1,79 @@ +[name] +MODULE_NAME = "Баннер" +MODULE_DESCRIPTION = "Данный модуль позволяет организовать удобное управление показами рекламных баннеров на вашем сайте. Для того, чтобы отобразить рекламный баннер, разместите системный тег [mod_banner:XXX] в нужном месте вашего шаблона сайта или содержимом документа.
Допустимые форматы рекламных баннеров: 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 = "В данном разделе вы можете отредактировать параметры баннера, а также сменить текущее изображение на новое.
Допустимые форматы файлов: jpg, jpeg, png, gif, swf" +BANNER_NEW_INFO = "В данном разделе вы можете добавить новый баннер, установить количество и время показов баннера.
Допустимые форматы файлов: 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 = "

Ошибка!


Не возможно добавить баннер. Папка "/modules/banner/banner/" не имеет прав на запись. Пожалуйста, установите права CHMOD 777, используя Ваш FTP-клиент." +BANNER_NOT_WRITABLE2 = "Ошибка. Не возможно добавить баннер. Папка "/modules/banner/banner/" не имеет прав на запись. Пожалуйста, установите права 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." diff --git a/module.php b/module.php new file mode 100644 index 0000000..48d8751 --- /dev/null +++ b/module.php @@ -0,0 +1,84 @@ +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; + } +} + +?> \ No newline at end of file diff --git a/sql.php b/sql.php new file mode 100644 index 0000000..8388ab8 --- /dev/null +++ b/sql.php @@ -0,0 +1,57 @@ + \ No newline at end of file diff --git a/templates/banners.tpl b/templates/banners.tpl new file mode 100644 index 0000000..b9e9cc9 --- /dev/null +++ b/templates/banners.tpl @@ -0,0 +1,80 @@ +
+
{#BANNER_MODULE_NAME#}
+
+
+
+ {#BANNER_MOD_ALLOWS#} +
    +
  • {#BANNER_MOD_ALLOWS_A#}
  • +
  • {#BANNER_MOD_ALLOWS_B#}
  • +
  • {#BANNER_MOD_ALLOWS_C#}
  • +
+
+
+
+
+
+
{#BANNER_SHOW_ALL#} |  + {#BANNER_NEW_LINK#} |  + {#BANNER_CATEG_LINK#}
+
+
+ + + + + + + + + + + + {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} + + + + + + + + + + + + {/foreach} +
 {#BANNER_NAME_TABLE#} {#BANNER_FILE_TABLE#}{#BANNER_INCATEG_TABLE#}{#BANNER_SHOW_TABLE#}{#BANNER_HITS_TABLE#}{#BANNER_VIEWS_TABLE#}{#BANNER_ACTIONS#}
+ {if $active!=1} +   + {else} +   + {/if} + {$item->Bannername}{$item->Bannertags} + {foreach from=$kategs item=k} + {if $k->Id==$item->KatId}{$k->KatName}{/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} +  + +  +

+{if $page_nav} + +{/if} \ No newline at end of file diff --git a/templates/form.tpl b/templates/form.tpl new file mode 100644 index 0000000..7026232 --- /dev/null +++ b/templates/form.tpl @@ -0,0 +1,167 @@ + +
+
{if $smarty.request.moduleaction!='newbanner'}{#BANNER_EDIT#}{else}{#BANNER_NEW_CREATE#}{/if}
+
+
+
+{if $smarty.request.moduleaction!='newbanner'}{#BANNER_EDIT_INFO#}{else}{#BANNER_NEW_INFO#}{/if} +
+
+{if $folder_protected==1 && $smarty.request.moduleaction=='newbanner'} +
{#BANNER_NOT_WRITABLE#} +{else} +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + {if $smarty.request.moduleaction != 'newbanner'} + + + + + {/if} + + + + + {if $item->Bannertags!='' && $smarty.request.moduleaction!='newbanner'} + + + + + {/if} + + + + + + + + + {if $smarty.request.moduleaction!='newbanner'} + + + + + {/if} + + + + + {if $smarty.request.moduleaction!='newbanner'} + + + + + {/if} + + + + + + + + + + + + + + + + + + + + +
 
{#BANNER_STATUS#}Aktiv==1}checked{/if} />
{#BANNER_NAME_FORM#}
{#BANNER_CATEGORY_FORM#} + +
{#BANNER_TARGET_URL#}
{#BANNER_TARGET_TYPE#} + +
{#BANNER_OLD_IMAGE#} + {if $item->Bannertags==''}-{else} + {if $item->swf == false} + + {else} + + + + + + + {/if} + {/if} +
+ {if $smarty.request.moduleaction != 'newbanner'} + {#BANNER_CHANGE_ONNEW#} + {else} + {#BANNER_IMAGE_SELECT#} + {/if} + {if $folder_protected==1 && $smarty.request.moduleaction!='newbanner'} {#BANNER_NOT_WRITABLE2#} {else} {/if}
{#BANNER_OLD_DELETE#}
{#BANNER_ALT_TEXT#}
{#BANNER_PRIOR#} + + {#BANNER_PRIOR_DESC#} +
{#BANNER_VIEW_RESET#}
{#BANNER_VIEWS_MAX#}
{#BANNER_VIEWS_INFO#}
{#BANNER_UNLIMIT#}
{#BANNER_CLICK_RESET#}
{#BANNER_CLICKS#}
{#BANNER_CLICKS_INFO#}
{#BANNER_UNLIMIT#}
{#BANNER_HOUR_START#}
{#BANNER_START_INFO#}
+ + {#BANNER_START_INFO2#} +
{#BANNER_HOUR_END#}
{#BANNER_END_INFO#}
+ + {#BANNER_END_INFO2#} +
{#BANNER_WIDTH_SWF#}
{#BANNER_FOR_SWF#}
{#BANNER_HEIGHT_SWF#}
{#BANNER_FOR_SWF#}

+ {if $smarty.request.moduleaction == 'newbanner'} + + {else} + + {/if} +
+{/if} +
\ No newline at end of file diff --git a/templates/index.php b/templates/index.php new file mode 100644 index 0000000..4ca25aa --- /dev/null +++ b/templates/index.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/templates/kategs.tpl b/templates/kategs.tpl new file mode 100644 index 0000000..3638ba6 --- /dev/null +++ b/templates/kategs.tpl @@ -0,0 +1,81 @@ + +
+
{#BANNER_MODULE_NAME#}
+
+
+
+ {#BANNER_MOD_ALLOWS#} +
    +
  • {#BANNER_MOD_ALLOWS_A#}
  • +
  • {#BANNER_MOD_ALLOWS_B#}
  • +
  • {#BANNER_MOD_ALLOWS_C#}
  • +
+
+
+ + +
+ + + + + + + {foreach from=$items item=item} + + + + + + {/foreach} +
 {#BANNER_CATEGORY_TAG#}{#BANNER_CATEGORY_NAME#}
+ + + + + +

+ +
+
+
+
{#BANNER_CATEGORY_NEW#}
+
+
+
+ + + + + + + +
{#BANNER_CATEGORY#}
+   + +
+
\ No newline at end of file