Вход Регистрация
Файл: admin/components/banners/backend.php
Строк: 376
<?php
if(!defined('VALID_CMS_ADMIN')) { die('ACCESS DENIED'); }
/******************************************************************************/
//                                                                            //
//                             InstantCMS v1.10                               //
//                        http://www.instantcms.ru/                           //
//                                                                            //
//                   written by InstantCMS Team, 2007-2012                    //
//                produced by InstantSoft, (www.instantsoft.ru)               //
//                                                                            //
//                        LICENSED BY GNU/GPL v2                              //
//                                                                            //
/******************************************************************************/

function bannerCTRbyID($id){
    
$b dbGetFields('cms_banners''id='.$id'clicks, hits');
    if (
$b['hits']>0) {
        
$ctr round((($b['clicks']/$b['hits']) * 100), 2);
    } else {
        
$ctr 0;
    }
    return 
$ctr '%';
}

function 
bannerHitsbyID($id){
    
$b dbGetFields('cms_banners''id='.$id'maxhits, hits');
    if (!
$b['maxhits']) { return $b['hits']; } else { return $b['hits'] . '/' $b['maxhits']; }
}

    
cpAddPathway('Баннеры''?view=components&do=config&id='.$_REQUEST['id']);
    echo 
'<h3>Баннеры</h3>';
    if (isset(
$_REQUEST['opt'])) { $opt $_REQUEST['opt']; } else { $opt 'list'; }
    
$msg '';
    
$inDB cmsDatabase::getInstance();
    
$toolmenu = array();

    if(
$opt=='list' || $opt=='show_banner' || $opt=='hide_banner'){

        
$toolmenu[0]['icon'] = 'new.gif';
        
$toolmenu[0]['title'] = 'Новый баннер';
        
$toolmenu[0]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=add';

        
$toolmenu[11]['icon'] = 'edit.gif';
        
$toolmenu[11]['title'] = 'Редактировать выбранные';
        
$toolmenu[11]['link'] = "javascript:checkSel('?view=components&do=config&id=".$_REQUEST['id']."&opt=edit&multiple=1');";

        
$toolmenu[12]['icon'] = 'show.gif';
        
$toolmenu[12]['title'] = 'Публиковать выбранные';
        
$toolmenu[12]['link'] = "javascript:checkSel('?view=components&do=config&id=".$_REQUEST['id']."&opt=show_banner&multiple=1');";

        
$toolmenu[13]['icon'] = 'hide.gif';
        
$toolmenu[13]['title'] = 'Скрыть выбранные';
        
$toolmenu[13]['link'] = "javascript:checkSel('?view=components&do=config&id=".$_REQUEST['id']."&opt=hide_banner&multiple=1');";

    }

    if (
$opt=='list' || $opt=='config' || $opt=='show_banner' || $opt=='hide_banner'){
    } else {

        
$toolmenu[20]['icon'] = 'save.gif';
        
$toolmenu[20]['title'] = 'Сохранить';
        
$toolmenu[20]['link'] = 'javascript:document.addform.submit();';

        
$toolmenu[21]['icon'] = 'cancel.gif';
        
$toolmenu[21]['title'] = 'Отмена';
        
$toolmenu[21]['link'] = '?view=components&do=config&id='.$_REQUEST['id'];

    }

    
cpToolMenu($toolmenu);

    if(
$opt=='saveconfig'){
        
$cfg = array();

        
$inCore->saveComponentConfig('banners'$cfg);

        
$msg 'Настройки сохранены.';
        
$opt 'config';
    }

    if (
$opt == 'show_banner'){
        if (!isset(
$_REQUEST['item'])){
            if (isset(
$_REQUEST['item_id'])){ dbShow('cms_banners'$_REQUEST['item_id']);  }
            echo 
'1'; exit;
        } else {
            
dbShowList('cms_banners'$_REQUEST['item']);
            
$opt 'list';
        }
    }

    if (
$opt == 'hide_banner'){
        if (!isset(
$_REQUEST['item'])){
            if (isset(
$_REQUEST['item_id'])){ dbHide('cms_banners'$_REQUEST['item_id']);  }
            echo 
'1'; exit;
        } else {
            
dbHideList('cms_banners'$_REQUEST['item']);
            
$opt 'list';
        }
    }

    if (
$opt == 'submit'){
        if(!
cmsCore::validateForm()) { cmsCore::error404(); }
        
$title $inCore->request('title''str''Банер без названия');
        
$link  $inCore->request('b_link''str');

        
$typeimg $inCore->request('typeimg''str');
        
$maxhits $inCore->request('maxhits''int');

        
$maxuser 0;

        
$published $inCore->request('published''int'0);

        
$position $inCore->request('position''str');

        
$uploaddir PATH.'/images/banners/';

        if (!
is_dir($uploaddir)) { @mkdir($uploaddir); }

        
$realfile $_FILES['picture']['name'];
        
$path_parts pathinfo($realfile);
        
$ext mb_strtolower($path_parts['extension']);

        if (
$ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'swf') { die('тип файла неверный'); }

        
$realfile mb_substr($realfile0mb_strrpos($realfile'.'));
        
$realfile preg_replace ('/[^a-zA-Z0-9]/i'''$realfile);
        
$filename $inDB->escape_string($realfile '.' $ext);

        
$uploadfile $uploaddir $filename;

        if (@
move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfile)) {
                
$sql "INSERT INTO cms_banners (position, typeimg, fileurl, hits, clicks, maxhits, maxuser, user_id, pubdate, title, link, published)
                        VALUES ('
$position', '$typeimg', '$filename', 0, 0, '$maxhits', '$maxuser', 1, NOW(), '$title', '$link', '$published')";
                
$inDB->query($sql);
        } else { 
$msg .= 'Ошибка загрузки баннера или файл не загружен!<br>'; }
        if (
$msg) {$opt 'add';} else {
            
cmsUser::clearCsrfToken();
            
header('location:?view=components&do=config&opt=list&id='.$_REQUEST['id']);
        }
    }

    if (
$opt == 'update'){
        if(!
cmsCore::validateForm()) { cmsCore::error404(); }
        if(isset(
$_REQUEST['item_id'])) {

            
$id $inCore->request('item_id''int'0);

            
$title $inCore->request('title''str''Банер без названия');
            
$link  $inCore->request('b_link''str');

            
$typeimg $inCore->request('typeimg''str');
            
$maxhits $inCore->request('maxhits''int');
            
$maxuser 0;

            
$published $inCore->request('published''int'0);

            
$position $inCore->request('position''str');

            if (
$_FILES['picture']['size']){

                
$uploaddir PATH.'/images/banners/';

                
$realfile $_FILES['picture']['name'];
                
$path_parts pathinfo($realfile);
                
$ext mb_strtolower($path_parts['extension']);

                if (
$ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'swf') { die('тип файла неверный'); }

                
$realfile mb_substr($realfile0mb_strrpos($realfile'.'));
                
$realfile preg_replace ('/[^a-zA-Z0-9]/i'''$realfile);
                
$filename $inDB->escape_string($realfile '.' $ext);

                
$uploadfile $uploaddir $filename;

                if (@
move_uploaded_file($_FILES['picture']['tmp_name'], $uploadfile)) {
                        
$sql "UPDATE cms_banners SET fileurl = '$filename' WHERE id = '$id'";
                        
$inDB->query($sql) ;
                } else { 
$msg .= 'Ошибка загрузки баннера!'; }
            }

            
$sql "UPDATE cms_banners
                    SET position = '
$position',
                        title = '
$title',
                        published = '
$published',
                        maxhits = '
$maxhits',
                        maxuser = '
$maxuser',
                        typeimg = '
$typeimg',
                        link = '
$link'
                    WHERE id = '
$id'";

            
$inDB->query($sql);
        }
        if (
$msg) {$opt 'edit';} else {
            
cmsUser::clearCsrfToken();
        if (!isset(
$_SESSION['editlist']) || @sizeof($_SESSION['editlist'])==0){
            
header('location:?view=components&do=config&id='.$_REQUEST['id'].'&opt=list');
        } else {
            
header('location:?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit');
        }
    }
    }

    if(
$opt == 'delete'){
        if(isset(
$_REQUEST['item_id'])) {
            
$id $_REQUEST['item_id'];
            
$sql "SELECT * FROM cms_banners WHERE id = '$id' LIMIT 1";
            
$result $inDB->query($sql) ;
            if (
$inDB->num_rows($result)){
                
$f $inDB->fetch_assoc($result);

                
$path_parts pathinfo($f['fileurl']);
                
$ext mb_strtolower($path_parts['extension']);
                if (
$ext == 'jpg' || $ext == 'jpeg' || $ext == 'gif' || $ext == 'swf') {
                    
unlink(PATH.'/images/banners/'.$f['fileurl']);
                }
                
$sql "DELETE FROM cms_banners WHERE id = '$id'";
                
$inDB->query($sql) ;
                
header('location:?view=components&do=config&id='.$_REQUEST['id'].'&opt=list');
            }
        }
    }

    if (
$opt == 'list'){
        
cpAddPathway('Баннеры''?view=components&do=config&id='.$_REQUEST['id'].'&opt=list');
        echo 
'<h3>Баннеры</h3>';

        
//TABLE COLUMNS
        
$fields = array();

        
$fields[0]['title'] = 'id';            $fields[0]['field'] = 'id';            $fields[0]['width'] = '30';

        
$fields[1]['title'] = 'Дата';        $fields[1]['field'] = 'pubdate';        $fields[1]['width'] = '100';        $fields[1]['filter'] = 15;
        
$fields[1]['fdate'] = '%d/%m/%Y';

        
$fields[2]['title'] = 'Название';    $fields[2]['field'] = 'title';        $fields[2]['width'] = '';
        
$fields[2]['filter'] = 15;
        
$fields[2]['link'] = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit&item_id=%id%';

        
$fields[3]['title'] = 'Позиция';    $fields[3]['field'] = 'position';        $fields[3]['width'] = '100';
        
$fields[3]['filter'] = 15;

        
$fields[4]['title'] = 'Показ';        $fields[4]['field'] = 'published';    $fields[4]['width'] = '100';
        
$fields[4]['do'] = 'opt';  $fields[4]['do_suffix'] = '_banner';

        
$fields[5]['title'] = 'Хиты';    $fields[5]['field'] = 'id';        $fields[5]['width'] = '90';
        
$fields[5]['prc'] = 'bannerHitsbyID';

        
$fields[6]['title'] = 'Клики';    $fields[6]['field'] = 'clicks';        $fields[6]['width'] = '90';

        
$fields[7]['title'] = 'CTR';    $fields[7]['field'] = 'id';        $fields[7]['width'] = '90';
        
$fields[7]['prc'] = 'bannerCTRbyID';


        
//ACTIONS
        
$actions = array();
        
$actions[0]['title'] = 'Редактировать';
        
$actions[0]['icon']  = 'edit.gif';
        
$actions[0]['link']  = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit&item_id=%id%';

        
$actions[1]['title'] = 'Удалить';
        
$actions[1]['icon']  = 'delete.gif';
        
$actions[1]['confirm'] = 'Удалить баннер со всей статистикой?';
        
$actions[1]['link']  = '?view=components&do=config&id='.$_REQUEST['id'].'&opt=delete&item_id=%id%';

        
//Print table
        
cpListTable('cms_banners'$fields$actions'''pubdate DESC');
    }

    if (
$opt == 'add' || $opt == 'edit'){

        if (
$opt=='add'){
             echo 
'<h3>Добавить баннер</h3>';
             
cpAddPathway('Добавить баннер''?view=components&do=config&id='.$_REQUEST['id'].'&opt=add');
             if (@
$msg) { echo '<p class="error">'.$msg.'</p>'; }
        } else {
                    if(isset(
$_REQUEST['multiple'])){
                        if (isset(
$_REQUEST['item'])){
                            
$_SESSION['editlist'] = $_REQUEST['item'];
                        } else {
                            echo 
'<p class="error">Нет выбранных объектов!</p>';
                            return;
                        }
                     }

                     
$ostatok '';

                     if (isset(
$_SESSION['editlist'])){
                        
$id array_shift($_SESSION['editlist']);
                        if (
sizeof($_SESSION['editlist'])==0) { unset($_SESSION['editlist']); } else
                        { 
$ostatok '(На очереди: '.sizeof($_SESSION['editlist']).')'; }
                     } else { 
$id $_REQUEST['item_id']; }


                     
$sql "SELECT * FROM cms_banners WHERE id = $id LIMIT 1";
                     
$result $inDB->query($sql) ;
                     if (
$inDB->num_rows($result)){
                        
$mod $inDB->fetch_assoc($result);
                     }

                     echo 
'<h3>'.$mod['title'].' '.$ostatok.'</h3>';
                     
cpAddPathway('Баннеры''?view=components&do=config&id='.$_REQUEST['id'].'&opt=list');
                     
cpAddPathway($mod['title'], '?view=components&do=config&id='.$_REQUEST['id'].'&opt=edit&item_id='.$id);

            }
        
?>
        <?php if ($opt=='edit') { ?>
            <table width="625" border="0" cellspacing="5" class="proptable">
                  <tr>
                    <td align="center">
                        <?php    $inCore->loadModel('banners');
                                echo 
cms_model_banners::getBannerById($id);
                        
?>
                    </td>
                 </tr>
            </table>
        <?php ?>

        <form action="index.php?view=components&amp;do=config&amp;id=<?php echo $_REQUEST['id'];?>" method="post" enctype="multipart/form-data" name="addform" id="addform">
        <input type="hidden" name="csrf_token" value="<?php echo cmsUser::getCsrfToken(); ?>" />
                <table width="625" border="0" cellspacing="5" class="proptable">
                  <tr>
                    <td width="298"><strong>Название баннера: </strong><br />
                                    <span class="hinttext">Отображается на сайте</span>                    </td>
                    <td width="308"><input name="title" type="text" id="title" size="45" value="<?php echo @$mod['title'];?>"/></td>
                  </tr>
                  <tr>
                    <td><strong>Ссылка баннера: </strong><br />
                        <span class="hinttext">Не забывайте "http://" для внешних ссылок!</span>                    </td>
                    <td><input name="b_link" type="text" size="45" value="<?php echo @$mod['link'];?>"/></td>
                  </tr>
                  <tr>
                    <td><strong>Позиция для показа: </strong></td>
                    <td><select name="position" id="position">
                            <?php for($m=1;$m<=30;$m++){ ?>
                                <option value="banner<?php echo $m?><?php if(@$mod['position']=='banner'.$m) { echo 'selected'; } ?>>banner<?php echo $m?></option>
                            <?php ?>
                    </select></td>
                  </tr>
                  <tr>
                    <td><strong>Тип баннера: </strong></td>
                    <td><select name="typeimg" id="typeimg">
                      <option value="image" <?php if(@$mod['typeimg']=='image') { echo 'selected'; } ?>>Изображение (gif, jpg)</option>
                      <option value="swf" <?php if(@$mod['typeimg']=='swf') { echo 'selected'; } ?>>Flash (swf) (468x60)</option>
                    </select></td>
                  </tr>
                  <tr>
                    <td><strong>Файл баннера: </strong><br />
                        <span class="hinttext">Только GIF, JPG, JPEG, SWF</span>                    </td>
                    <td><?php if (@$mod['file']) { echo '<a href="/images/photos/'.$mod['file'].'" title="Посмотреть фото">'.$mod['file'].'</a>'; } else { ?>
                        <input name="picture" type="file" id="picture" size="30" />
                      <?php ?></td>
                  </tr>
                  <tr>
                    <td><strong>Максимум показов: </strong><br />
                        <span class="hinttext">Установите "0" для бесконечного количества</span>                    </td>
                    <td><input name="maxhits" type="text" id="maxhits" size="5" value="<?php echo @$mod['maxhits'];?>"/>  раз.</td>
                  </tr>
                  <tr>
                    <td><strong>Публиковать баннер?</strong><br />
                        <span class="hinttext">Отключите для приостановки показов</span>                    </td>
                    <td><input name="published" type="radio" value="1" checked="checked" <?php if (@$mod['published']) { echo 'checked="checked"'; } ?> />
                      Да
                      <label>
                  <input name="published" type="radio" value="0"  <?php if (@!$mod['published']) { echo 'checked="checked"'; } ?> />
                        Нет</label></td>
                  </tr>
                </table>
                <p><strong>Примечание:</strong> для вывода баннера на сайте укажите в нужной статье или модуле выражение вида: {БАННЕР=Имя_позиции}</p>
                <p>
                  <input name="add_mod" type="submit" id="add_mod" <?php if ($opt=='add') { echo 'value="Загрузить баннер"'; } else { echo 'value="Сохранить баннер"'; } ?> />
                  <input name="back3" type="button" id="back3" value="Отмена" onclick="window.location.href='index.php?view=components';"/>
                  <input name="opt" type="hidden" id="opt" <?php if ($opt=='add') { echo 'value="submit"'; } else { echo 'value="update"'; } ?> />
                  <?php
                    
if ($opt=='edit'){
                     echo 
'<input name="item_id" type="hidden" value="'.$mod['id'].'" />';
                    }
                  
?>
                </p>
</form>
     <?php
    
}


?>
Онлайн: 1
Реклама