update ver 3.31
This commit is contained in:
19
README.md
19
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%" для изображения баннера, при использовании в адаптивной верстке.
|
||||
03.06.2016 - добавлен атрибут style="width:100%" для изображения баннера, при использовании в адаптивной верстке.
|
||||
901
class/banner.php
901
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 = '<a target="' . $banner['Target'] . '" href="index.php?module=' . BANNER_DIR . '&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 . '&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;
|
||||
}
|
||||
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 = ' <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->_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 "<script>alert('" . $config_vars['BANNER_IS_UPLOADED'] . ': ' . $d_name . "');</script>";
|
||||
|
||||
$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 "<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 . "_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 "<script>alert('" . ($config_vars['BANNER_IS_UPLOADED'] ?? 'Uploaded') . ': ' . $d_name . "');</script>";
|
||||
reportLog($_SESSION['user_name'] . ' - добавил изображение баннера (' . $d_name . ')', 2, 2);
|
||||
$file = $d_name;
|
||||
} else {
|
||||
echo "<script>alert('" . ($config_vars['BANNER_NO_UPLOADED'] ?? 'Error') . ': ' . $d_name . "');</script>";
|
||||
}
|
||||
} else {
|
||||
echo "<script>alert('" . ($config_vars['BANNER_WRONG_TYPE'] ?? 'Wrong Type') . ': ' . $d_name . "');</script>";
|
||||
}
|
||||
}
|
||||
|
||||
// Выполняем запрос к БД с очисткой данных
|
||||
$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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 13 KiB |
2
info.php
2
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,
|
||||
|
||||
15
lang/ru.txt
15
lang/ru.txt
@@ -1,6 +1,6 @@
|
||||
[name]
|
||||
MODULE_NAME = "Баннер"
|
||||
MODULE_DESCRIPTION = "Данный модуль позволяет организовать удобное управление показами рекламных баннеров на вашем сайте. Для того, чтобы отобразить рекламный баннер, разместите системный тег <strong>[mod_banner:XXX]</strong> в нужном месте вашего шаблона сайта или содержимом документа.<br>Допустимые форматы рекламных баннеров: jpg, jpeg, png, gif, swf"
|
||||
MODULE_DESCRIPTION = "Данный модуль позволяет организовать удобное управление показами рекламных баннеров на вашем сайте. Для того, чтобы отобразить рекламный баннер, разместите системный тег <strong>[mod_banner:XXX]</strong> в нужном месте вашего шаблона сайта или содержимом документа.<br>Допустимые форматы рекламных баннеров: 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 = "В данном разделе вы можете отредактировать параметры баннера, а также сменить текущее изображение на новое.<br>Допустимые форматы файлов: jpg, jpeg, png, gif, swf"
|
||||
BANNER_NEW_INFO = "В данном разделе вы можете добавить новый баннер, установить количество и время показов баннера.<br>Допустимые форматы файлов: jpg, jpeg, png, gif, swf"
|
||||
BANNER_EDIT_INFO = "В данном разделе вы можете отредактировать параметры баннера, а также сменить текущее изображение на новое.<br>Допустимые форматы файлов: jpg, jpeg, png, gif, webp"
|
||||
BANNER_NEW_INFO = "В данном разделе вы можете добавить новый баннер, установить количество и время показов баннера.<br>Допустимые форматы файлов: 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 = "Скопировать в буфер обмена"
|
||||
|
||||
12
module.php
12
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':
|
||||
|
||||
83
sql.php
83
sql.php
@@ -1,57 +1,62 @@
|
||||
<?php
|
||||
if (!defined('BASE_DIR')) exit;
|
||||
|
||||
/**
|
||||
* AVE.cms - Модуль Баннеры
|
||||
*
|
||||
* @package AVE.cms
|
||||
* @subpackage module_Banner
|
||||
* @filesource
|
||||
*/
|
||||
|
||||
/**
|
||||
* mySQL-запросы для установки, обновления и удаления модуля
|
||||
* AVE.cms - Модуль Баннеры (Modernized)
|
||||
*/
|
||||
|
||||
$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_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_module_banner_categories`;";
|
||||
$module_sql_deinstall[] = "DROP TABLE IF EXISTS `%%PRFX%%_module_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`)
|
||||
// УСТАНОВКА: Категории
|
||||
$module_sql_install[] = "CREATE TABLE `%%PRFX%%_module_banner_categories` (
|
||||
`id` mediumint(5) unsigned NOT NULL auto_increment,
|
||||
`category_name` 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`)
|
||||
// УСТАНОВКА: Баннеры
|
||||
$module_sql_install[] = "CREATE TABLE `%%PRFX%%_module_banners` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`category_id` mediumint(5) unsigned NOT NULL default '1',
|
||||
`banner_file` varchar(255) NOT NULL default '',
|
||||
`banner_url` varchar(255) NOT NULL default '',
|
||||
`weight` tinyint(3) unsigned NOT NULL default '0',
|
||||
`banner_name` varchar(100) NOT NULL default '',
|
||||
`views` int(10) unsigned NOT NULL default '0',
|
||||
`clicks` int(10) unsigned NOT NULL default '0',
|
||||
`image_alt` varchar(255) NOT NULL default '',
|
||||
`max_clicks` int(10) unsigned NOT NULL default '0',
|
||||
`max_views` int(10) unsigned NOT NULL default '0',
|
||||
`start_hour` smallint(2) unsigned NOT NULL default '0',
|
||||
`end_hour` smallint(2) unsigned NOT NULL default '0',
|
||||
`is_active` 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%%_module_banner_categories` VALUES (1, 'Категория 1');";
|
||||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_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_install[] = "INSERT INTO `%%PRFX%%_module_banners` VALUES (0, 1, 'media_ave.jpg', 'https://ave-cms.ru', 1, 'AVE.CMS-Banner', 0, 0, 'Бесплатная система управления сайтом.', 0, 0, 0, 0, 1, '_self', 0, 0);";
|
||||
$module_sql_install[] = "INSERT INTO `%%PRFX%%_module_banners` VALUES (0, 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;";
|
||||
$module_sql_update[] = "
|
||||
UPDATE `%%PRFX%%_module`
|
||||
SET
|
||||
ModuleAveTag = '" . $module['ModuleAveTag'] . "',
|
||||
ModulePHPTag = '" . $module['ModulePHPTag'] . "',
|
||||
ModuleVersion = '" . $module['ModuleVersion'] . "'
|
||||
WHERE
|
||||
ModuleSysName = '" . $module['ModuleSysName'] . "'
|
||||
LIMIT 1;
|
||||
";
|
||||
|
||||
?>
|
||||
13
templates/banner_viewer.tpl
Normal file
13
templates/banner_viewer.tpl
Normal file
@@ -0,0 +1,13 @@
|
||||
<div class="media-container mb-3">
|
||||
<a target="{$banner.target|default:'_blank'}"
|
||||
href="index.php?module={$mod_path}&id={$banner.id}"
|
||||
class="d-block">
|
||||
<img src="{$abs_path}modules/{$mod_path}/files/{$banner.banner_file}"
|
||||
class="img-fluid rounded"
|
||||
alt="{$banner.banner_name|escape}: {$banner.image_alt|escape}"
|
||||
title="{$banner.banner_name|escape}"
|
||||
{if $banner.width > 0}width="{$banner.width}"{/if}
|
||||
{if $banner.height > 0}height="{$banner.height}"{/if}
|
||||
loading="lazy">
|
||||
</a>
|
||||
</div>
|
||||
@@ -21,13 +21,28 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="widget">
|
||||
<div class="head">
|
||||
<h5>{#BANNER_SHOW_ALL#} |
|
||||
<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> |
|
||||
<a href="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=kategs&cp={$sess}">{#BANNER_CATEG_LINK#}</a></h5>
|
||||
</div>
|
||||
|
||||
<ul class="tabs">
|
||||
<li class="activeTab">
|
||||
<a href="#tab1">{#BANNER_SHOW_ALL#}</a>
|
||||
</li>
|
||||
<li class="">
|
||||
<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>
|
||||
</li>
|
||||
<li class="">
|
||||
<a href="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=kategs&cp={$sess}">{#BANNER_CATEG_LINK#}</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
<table width="100%" border="0" cellpadding="8" cellspacing="1" class="tableStatic mainForm">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="" colspan="9"> </td>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tr class="tableheader">
|
||||
<td width="10"> </td>
|
||||
<td>{#BANNER_NAME_TABLE#} </td>
|
||||
@@ -39,7 +54,8 @@
|
||||
<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)}
|
||||
{* Логика активности: 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 @@
|
||||
<span class="toprightDir icon_sprite ico_unlock" title="{#BANNER_IS_ACTIVE#}"> </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>
|
||||
{* Id -> id, Bannername -> banner_name *}
|
||||
<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="700" data-width="950" data-modal="true" class="toprightDir openDialog" title="{#BANNER_EDIT_LINK#}">{$item->banner_name}</a></td>
|
||||
{* Bannertags -> banner_file *}
|
||||
<td><a class="toprightDir fancy preview" href="../modules/{$mod_path}/files/{$item->banner_file}" title="{#BANNER_VIEW_LINK#}" target="_blank">{$item->banner_file}</a></td>
|
||||
<td>
|
||||
{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}
|
||||
</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>
|
||||
{* ZStart/ZEnde -> start_hour/end_hour *}
|
||||
<td align="center">{if $item->start_hour<10}0{/if}{$item->start_hour}:00 - {if $item->end_hour<10}0{/if}{$item->end_hour}:00</td>
|
||||
{* Klicks/Views -> clicks/views *}
|
||||
<td align="center">{$item->clicks} / {if $item->max_clicks==0}~{else}{$item->max_clicks}{/if}</td>
|
||||
<td align="center">{$item->views} / {if $item->max_views==0}~{else}{$item->max_views}{/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"> </a>
|
||||
<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="700" data-width="950" data-modal="true"> </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}"> </a>
|
||||
<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}"> </a>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
|
||||
@@ -1,21 +1,24 @@
|
||||
<script type="text/javascript" language="JavaScript">
|
||||
function check_name() {ldelim}
|
||||
if (document.getElementById('Bannername').value == '') {ldelim}
|
||||
if (document.getElementById('banner_name').value == '') {ldelim}
|
||||
alert("{#BANNER_PLEASE_NAME#}");
|
||||
document.getElementById('Bannername').focus();
|
||||
document.getElementById('banner_name').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}
|
||||
{if $smarty.request.moduleaction!='newbanner'}{#BANNER_EDIT_INFO#}{else}{#BANNER_NEW_INFO#}{/if}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $folder_protected==1 && $smarty.request.moduleaction=='newbanner'}
|
||||
<br />{#BANNER_NOT_WRITABLE#}
|
||||
{else}
|
||||
@@ -27,54 +30,48 @@ function check_name() {ldelim}
|
||||
</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>
|
||||
<td class="second"><input name="is_active" type="checkbox" id="is_active" value="1" {if $item->is_active==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>
|
||||
<td class="second"><input style="width:300px" name="banner_name" id="banner_name" type="text" value="{$item->banner_name}" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="300" class="first">{#BANNER_CATEGORY_FORM#}</td>
|
||||
<td class="second">
|
||||
<select name="KatId" id="KatId">
|
||||
<select name="category_id" id="category_id">
|
||||
{foreach from=$kategs item=k}
|
||||
<option value="{$k->Id}" {if $k->Id==$item->KatId}selected{/if}>{$k->KatName}</option>
|
||||
<option value="{$k->id}" {if $k->id==$item->category_id}selected{/if}>{$k->category_name}</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>
|
||||
<td class="second"><input style="width:300px" name="banner_url" type="text" value="{$item->banner_url|default:'https://'}" /></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 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 $item->banner_file==''}-{else}
|
||||
{* Убрали проверку на SWF, выводим только картинку *}
|
||||
<img src="../modules/{$mod_path}/files/{$item->banner_file}" alt="" style="max-width: 200px; height: auto;" />
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/if}
|
||||
|
||||
<tr>
|
||||
<td width="300" class="first">
|
||||
{if $smarty.request.moduleaction != 'newbanner'}
|
||||
@@ -85,7 +82,7 @@ function check_name() {ldelim}
|
||||
</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'}
|
||||
{if $item->banner_file!='' && $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>
|
||||
@@ -93,15 +90,15 @@ function check_name() {ldelim}
|
||||
{/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>
|
||||
<td class="second"><input style="width:300px" name="image_alt" type="text" id="image_alt" value="{$item->image_alt}" /></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 style="width:50px" name="weight" id="weight">
|
||||
<option value="1" {if $item->weight==1}selected{/if}>1</option>
|
||||
<option value="2" {if $item->weight==2}selected{/if}>2</option>
|
||||
<option value="3" {if $item->weight==3}selected{/if}>3</option>
|
||||
</select>
|
||||
<small>{#BANNER_PRIOR_DESC#}</small>
|
||||
</td>
|
||||
@@ -109,29 +106,29 @@ function check_name() {ldelim}
|
||||
{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>
|
||||
<td class="second"><input name="views" type="text" id="views" 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>
|
||||
<td class="second"><input name="max_views" type="text" id="max_views" value="{$item->max_views|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>
|
||||
<td class="second"><input name="clicks" type="text" id="clicks" value="{$item->clicks}" 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>
|
||||
<td class="second"><input name="max_clicks" type="text" id="max_clicks" value="{$item->max_clicks|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">
|
||||
<select style="width:50px" name="start_hour" id="start_hour">
|
||||
{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>
|
||||
<option value="{$smarty.section.s.index-1}" {if $item->start_hour==$smarty.section.s.index-1}selected{/if}>{$smarty.section.s.index-1}</option>
|
||||
{/section}
|
||||
</select>
|
||||
<small>{#BANNER_START_INFO2#}</small>
|
||||
@@ -140,21 +137,21 @@ function check_name() {ldelim}
|
||||
<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">
|
||||
<select style="width:50px" name="end_hour" id="end_hour">
|
||||
{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>
|
||||
<option value="{$smarty.section.e.index-1}" {if $item->end_hour==$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>
|
||||
<td class="first">{#BANNER_WIDTH#}<br /><small>{#BANNER_FOR_SWF#}</small></td>
|
||||
<td class="second"><input name="width" type="text" id="width" value="{$item->width|default:'0'}" size="6" /> <small>(px)</small></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>
|
||||
<td class="first">{#BANNER_HEIGHT#}<br /><small>{#BANNER_FOR_SWF#}</small></td>
|
||||
<td class="second"><input name="height" type="text" id="height" value="{$item->height|default:'0'}" size="6" /> <small>(px)</small></td>
|
||||
</tr>
|
||||
</table><br />
|
||||
{if $smarty.request.moduleaction == 'newbanner'}
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
<script type="text/javascript" language="JavaScript">
|
||||
function check_name() {ldelim}
|
||||
if (document.getElementById('Name').value == '') {ldelim}
|
||||
// Name -> category_name
|
||||
if (document.getElementById('category_name_new').value == '') {ldelim}
|
||||
alert("{#BANNER_ENTER_NAME#}");
|
||||
document.getElementById('Name').focus();
|
||||
document.getElementById('category_name_new').focus();
|
||||
return false;
|
||||
{rdelim}
|
||||
return true;
|
||||
{rdelim}
|
||||
var clipboard = new Clipboard('.copyBtn');
|
||||
</script>
|
||||
|
||||
<div class="title">
|
||||
<h5>{#BANNER_MODULE_NAME#}</h5>
|
||||
</div>
|
||||
|
||||
<div class="widget">
|
||||
<div class="body">
|
||||
<strong>{#BANNER_MOD_ALLOWS#}</strong>
|
||||
@@ -21,25 +25,41 @@ function check_name() {ldelim}
|
||||
</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&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>
|
||||
<li><a href="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=1&cp={$sess}">{#BANNER_SHOW_ALL#}</a></li>
|
||||
<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> |
|
||||
<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> |
|
||||
<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>
|
||||
|
||||
<ul class="tabs">
|
||||
<li class="">
|
||||
<a href="index.php?do=modules&action=modedit&mod={$mod_path}&moduleaction=1&cp={$sess}">{#BANNER_SHOW_ALL#}</a>
|
||||
</li>
|
||||
<li class="">
|
||||
<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>
|
||||
</li>
|
||||
<li class="activeTab">
|
||||
<a href="#tab3">{#BANNER_CATEG_LINK#}</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</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">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="" colspan="9"> </td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr class="tableheader">
|
||||
<td width="1%" align="center"><span class="icon_sprite ico_delete"> </span></td>
|
||||
<td width="100">{#BANNER_CATEGORY_TAG#}</td>
|
||||
@@ -48,33 +68,44 @@ function check_name() {ldelim}
|
||||
{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" />
|
||||
{* Id -> id *}
|
||||
<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/>
|
||||
<div style="display: flex; align-items: center; gap: 5px;">
|
||||
<input id="tag_{$item->id}" name="textfield" type="text" value="[mod_banner:{$item->id}]" readonly size="32" style="width: 114px;"/>
|
||||
<a style="text-align: center; padding: 5px 3px 4px 3px;" class="whiteBtn copyBtn topDir" href="javascript:void(0);" data-clipboard-action="copy" data-clipboard-target="#tag_{$item->id}" title="{#BANNER_SET_COPY#}">
|
||||
<img style="margin-top: -3px; position: relative; top: 1px; padding: 0 3px;" class="clippy" src="{$ABS_PATH}admin/templates/images/clippy.svg" width="13"></a>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<input name="KatName[{$item->Id}]" type="text" id="KatName[{$item->Id}]" value="{$item->KatName|escape:html|stripslashes}" size="60">
|
||||
{* KatName -> category_name *}
|
||||
<input name="category_name[{$item->id}]" type="text" id="category_name[{$item->id}]" value="{$item->category_name|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>
|
||||
</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">
|
||||
<input name="submit" type="submit" style="margin-left:-5px; margin-top:10px;" class="button basicBtn" value="{#BANNER_BUTTON_ADD#}" />
|
||||
<div style="display: flex; align-items: center; gap: 15px;">
|
||||
|
||||
<span style="font-weight: bold;">{#BANNER_CATEGORY#}</span>
|
||||
|
||||
<input name="category_name" type="text" id="category_name_new" size="30" style="width: 250px; margin: 0;">
|
||||
|
||||
<input name="submit" type="submit" class="button basicBtn" style="margin: 0;" value="{#BANNER_BUTTON_ADD#}" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
Reference in New Issue
Block a user