Перейти к публикации

Avacore

Клиенты
  • Публикации

    296
  • Зарегистрирован

  • Посещение

  • Дней в лидерах

    11

Сообщения, опубликованные пользователем Avacore

  1. Я это понимаю. Но востановление адинского пароля - это важно!

    Не плохо было бы, чтоб все пакастные пользоватили (например патающиеся зайти в админку :angry: ) выводились в одном спец разделе в админке с описанием: Этот :ph34r: не хороший человек, пытался хх раз получить доступ в админ панель (и например указано время).

    Ну а мы же B) , после таких ново-знаний, отошлем ему письмо благодарности! А также наградим БАНОМ IP и NIC NAME!

    +1

  2. Предлогаю, добавить в стандарный дистрибутив, в .htaccess пару строк

    # Регистрация | Обратная связь
    
    RewriteRule ^register/$ /index.php?do=register [L]
    
    RewriteRule ^feedback/$ /index.php?do=feedback [L]

    для формирования ссылок на обратную связь и форму регистрации вида:

    http://site.com/feedback/

    http://site.com/register/

    спасибо Captain за решение

    Каждый редирект создает нагрузку на сервер, так что в стандартном дистрибутиве это не нужно. ИМХО.

    редиректов там и без этого хватает... думаю, что есть смысл формировать красивые линки на эти страницы

  3. Не плохо было бы продумать функцию востановление пароля админа! Например при не правельном вводе (с первого раза)на имайл админа, чтоб ушло письмо с его паролем (или ссылкой на страницу "введите новый пароль", а также в этом же письме указаны данные того, кто входит (ломает): IP, браузер, возможно по кукам его ник (если он зарегин на сайте который ломает) и т.п.)

    Чтоб эта функция включалась/выключалась в админке.

    Просто мне пришлось не ожиданно отдать пароли исполнителю, за доп. модуль, а после конца работ, я торопясь начал менять их (сонный и уставший ввел на скору руку), а на следующий день БАЦ, а пароль то я и не помню :blink:

    Спустя 2 дня, перебрав все свои возможные пароли :rolleyes: о чудо! Я вспомнил!

    +1

  4. Предлогаю, добавить в стандарный дистрибутив, в .htaccess пару строк

    # Регистрация | Обратная связь
    
    RewriteRule ^register/$ /index.php?do=register [L]
    
    RewriteRule ^feedback/$ /index.php?do=feedback [L]

    для формирования ссылок на обратную связь и форму регистрации вида:

    http://site.com/feedback/

    http://site.com/register/

    спасибо Captain за решение

    • Поддерживаю 1
  5. А что сделал то, не написал?

    После

    RewriteEngine On
    
    # Редиректы
    
    RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]
    Пропиши
    RewriteRule ^register/$ /index.php?do=register [L]
    
    RewriteRule ^feedback/$ /index.php?do=feedback [L]
    
    
    Спасибо за помощь! Все :)К! что я сделал, это написал:
    RewriteRule ^([^.]+)/+$ /index.php?do=$1 [L]

    и меня перестало пускать в профиль пользователя на сайте... но свой косяк я осознал

  6. речь идет о файле .htaccess в корне дистрибутива

    Задача:

    Формировать ссылки вида http://site.com/register/ и http://site.com/feedback/ для адреса формы регистрации и обратной связи

    Что я сделал:

    после строк

    RewriteEngine On
    
    
    # Регистрация | Обратная связь
    
    RewriteRule ^([^.]+)/+$ /index.php?do=$1 [L]

    Что получилось:

    Да, ссылки действительно стали формироваться как мне надо...

    но Achtung! Проблема:

    теперь мне не открыть профиль пользователя через сайт http://site.com/user/vasya/ при потыке обратиться к адресу такого вида происходит обновление страницы и больше ничего.

    Просьба помочь мне разобраться с этим вопросом.

  7. Превью (Preview) новости

    в fullstory.tpl после полного текста публикации есть:

    - печать новости;

    - рейтинг;

    - похожие новости;

    - ссылки на новость;

    - табы

    =============

    27673b8cc41b.jpg

    =============

    При предварительном просмотре новости, выводится ненужная информация:

    b49b0578c347.jpg

    Предлогаю решить эту проблему в engine/preview.php или добавить в fullstory.tpl тег вида {end_preview}. Т.к. смысла выводить эту информацию нет.
  8. Предлогаю:

    Форму расширенного поиска по сайту неудобно редактировать (если быть точным её вообще неотредактировать никак через smarty шаблоны), предлогаю полностью вынести её содержимое в search.tpl и вместо {searchtable} вывести все поля этой формы.

    • Поддерживаю 1
  9. Вопрос по расширенной форме поиска по сайту, с которой есть пара непонятных моментов:

    Как надо её правильно редактировать, что бы не было таких косяков как у меня?

    Как надо:

    9539703a93b6.jpg

    Как выходит у меня

    На FireFox:

    ca5fec54572e.jpg

    На IE8:

    db093539826e.jpg

  10. Возникла такая дурацкая проблема с голосованиями и цветными линейками, которые неотображаются в них

    вот скрины:

    в IE8

    42fde0ca690b.jpg

    FireFox вообще неотображает :huh:

    ead84defd361.jpg

    Стандартный шаб Dafault везде естесственно работает нормально

    Может кто-то сталкивался, доскажите в чем дело?

  11. spbfobos.ru

    Использую тарифный план Office вот на этом хостинге https://best-hoster.ru/info/tarifs.html

    OS: Linux 2.6.18-53.1.14.el5

    Суть проблемы:

    что бы я ни пытался изменить в настройках админки, даже при активации скрипта выскакивает вот такая ошибка и настройки не меняются, приходится на локалке config.php редактировать:

    ругается на inc\options.php

    Эта проблема не появляется при добавлении\редактировании новостей и статических страниц

    84958292801d.jpg

  12. А какие именно функции?

    просмотр для разных групп, выбор шаба для страницы... если на локалке стоит дата, то поюзай мой код, там есть пара мест которые я закомментировал и они видны

  13. avacore.ru

    Мне ненужны некоторые функции для статических страниц, я решил их закомментировать, открыл файл inc/static.php

    Я ничего не менял, просто закомментирвал ненужное. Но косяк в том, что теперь у меня не работает html в статических страницах.

    
    <?php
    
    /*
    
    =====================================================
    
     DataLife Engine - by SoftNews Media Group 
    
    -----------------------------------------------------
    
     http://dle-news.ru/
    
    -----------------------------------------------------
    
     Copyright (c) 2004,2009 SoftNews Media Group
    
    =====================================================
    
     Данный код защищен авторскими правами
    
    =====================================================
    
     Файл: static.php
    
    -----------------------------------------------------
    
     Назначение: редактирование статистических страниц
    
    =====================================================
    
    */
    
    if( !defined( 'DATALIFEENGINE' ) OR !defined( 'LOGGED_IN' ) ) {
    
    	die( "Hacking attempt!" );
    
    }
    
    
    if( ! $user_group[$member_id['user_group']]['admin_static'] ) {
    
    	msg( "error", $lang['index_denied'], $lang['index_denied'] );
    
    }
    
    
    include_once ENGINE_DIR . '/classes/parse.class.php';
    
    
    $parse = new ParseFilter( Array (), Array (), 1, 1 );
    
    $parse->allow_php = true;
    
    
    function SelectSkin($skin) {
    
    	global $lang;
    
    
    	$templates_list = array ();
    
    
    	$handle = opendir( './templates' );
    
    
    	while ( false !== ($file = readdir( $handle )) ) {
    
    		if( is_dir( "./templates/$file" ) and ($file != "." and $file != "..") ) {
    
    			$templates_list[] = $file;
    
    		}
    
    	}
    
    	closedir( $handle );
    
    
    	$skin_list = "<select name=skin_name>";
    
    	$skin_list .= "<option value=\"\">" . $lang['cat_skin_sel'] . "</option>";
    
    
    	foreach ( $templates_list as $single_template ) {
    
    		if( $single_template == $skin ) $selected = " selected";
    
    		else $selected = "";
    
    		$skin_list .= "<option value=\"$single_template\"" . $selected . ">$single_template</option>";
    
    	}
    
    	$skin_list .= '</select>';
    
    
    	return $skin_list;
    
    }
    
    
    if( !$action ) $action = "list";
    
    
    if( $action == "list" ) {
    
    	$_SESSION['admin_referrer'] = $_SERVER['REQUEST_URI'];
    
    	echoheader( "static", "static" );
    
    
    	$search_field = $db->safesql( trim( htmlspecialchars( stripslashes( urldecode( $_GET['search_field'] ) ), ENT_QUOTES ) ) );
    
    	if ($_GET['fromnewsdate']) $fromnewsdate = strtotime( $_GET['fromnewsdate'] ); else $fromnewsdate = "";
    
    	if ($_GET['tonewsdate']) $tonewsdate = strtotime( $_GET['tonewsdate'] ); else $tonewsdate = "";
    
    
    
    	if ($fromnewsdate === -1) $fromnewsdate = "";
    
    	if ($tonewsdate === -1)   $tonewsdate = "";
    
    
    	$start_from = intval( $_GET['start_from'] );
    
    	$news_per_page = intval( $_GET['news_per_page'] );
    
    	$gopage = intval( $_REQUEST['gopage'] );
    
    
    	if( ! $news_per_page or $news_per_page < 1 ) {
    
    		$news_per_page = 50;
    
    	}
    
    	if( $gopage ) $start_from = ($gopage - 1) * $news_per_page;
    
    
    	if( $start_from < 0 ) $start_from = 0;
    
    
    	$where = array ();
    
    	$where[] = "name != 'dle-rules-page'";
    
    
    	if( $search_field != "" ) {
    
    
    		$where[] = "(template like '%$search_field%' OR descr like '%$search_field%')";
    
    
    	}
    
    
    	if( $fromnewsdate != "" ) {
    
    
    		$where[] = "date >= '$fromnewsdate'";
    
    
    	}
    
    
    	if( $tonewsdate != "" ) {
    
    
    		$where[] = "date <= '$tonewsdate'";
    
    
    	}
    
    
    	if( count( $where ) ) {
    
    
    		$where = implode( " AND ", $where );
    
    		$where = " WHERE " . $where;
    
    
    	} else {
    
    		$where = "";
    
    	}
    
    
    	$order_by = array ();
    
    
    	if( $_REQUEST['search_order_t'] == "asc" or $_REQUEST['search_order_t'] == "desc" ) $search_order_t = $_REQUEST['search_order_t'];
    
    	else $search_order_t = "";
    
    	if( $_REQUEST['search_order_d'] == "asc" or $_REQUEST['search_order_d'] == "desc" ) $search_order_d = $_REQUEST['search_order_d'];
    
    	else $search_order_d = "";
    
    
    	if( ! empty( $search_order_t ) ) {
    
    		$order_by[] = "name $search_order_t";
    
    	}
    
    	if( ! empty( $search_order_d ) ) {
    
    		$order_by[] = "date $search_order_d";
    
    	}
    
    
    	$order_by = implode( ", ", $order_by );
    
    	if( ! $order_by ) $order_by = "date desc";
    
    
    	$search_order_date = array ('----' => '', 'asc' => '', 'desc' => '' );
    
    	if( isset( $_REQUEST['search_order_d'] ) ) {
    
    		$search_order_date[$search_order_d] = 'selected';
    
    	} else {
    
    		$search_order_date['desc'] = 'selected';
    
    	}
    
    	$search_order_title = array ('----' => '', 'asc' => '', 'desc' => '' );
    
    	if( ! empty( $search_order_t ) ) {
    
    		$search_order_title[$search_order_t] = 'selected';
    
    	} else {
    
    		$search_order_title['----'] = 'selected';
    
    	}
    
    
    	$db->query( "SELECT id, name, descr, template, views, date FROM " . PREFIX . "_static" . $where . " ORDER BY " . $order_by . " LIMIT $start_from,$news_per_page" );
    
    
    	// Prelist Entries
    
    	$flag = 1;
    
    	if( $start_from == "0" ) {
    
    		$start_from = "";
    
    	}
    
    	$i = $start_from;
    
    	$entries_showed = 0;
    
    
    	$entries = "";
    
    
    	while ( $row = $db->get_array() ) {
    
    
    		$i ++;
    
    
    		$itemdate = @date( "d.m.Y H:i", $row['date'] );
    
    
    		$title = htmlspecialchars( stripslashes( $row['name'] ), ENT_QUOTES );
    
    		$descr = stripslashes($row['descr']);
    
    		if( $config['allow_alt_url'] == "yes" ) $vlink = $config['http_home_url'] . $row['name'] . ".html";
    
    		else $vlink = $config['http_home_url'] . "index.php?do=static&page=" . $row['name'];
    
    
    		$entries .= "<tr>
    
    
            <td class=\"list\" style=\"padding:4px;\" nowrap>
    
            $itemdate - <a title=\"{$lang[static_view]}\" class=\"list\" href=\"{$vlink}\" target=\"_blank\">$title</a></td>
    
            <td align=left><a title=\"{$lang[edit_static_act]}\" class=\"list\" href=\"$PHP_SELF?mod=static&action=doedit&id={$row['id']}\">$descr</a></td>
    
            <td align=center>{$row['views']}</td>
    
            <td align=center><input name=\"selected_news[]\" value=\"{$row['id']}\" type='checkbox' /></td>
    
            </tr>
    
            <tr><td background=\"engine/skins/images/mline.gif\" height=1 colspan=4></td></tr>";
    
    
    		$entries_showed ++;
    
    
    		if( $i >= $news_per_page + $start_from ) {
    
    			break;
    
    		}
    
    	}
    
    
    	// End prelisting
    
    	$result_count = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_static" . $where );
    
    
    	$all_count_news = $result_count['count'];
    
    	if ( $fromnewsdate ) $fromnewsdate = date("Y-m-d", $fromnewsdate );
    
    	if ( $tonewsdate ) $tonewsdate = date("Y-m-d", $tonewsdate );
    
    
    
    	///////////////////////////////////////////
    
    	// Options Bar
    
    	echo <<<HTML
    
    <!-- calendar stylesheet -->
    
    <link rel="stylesheet" type="text/css" media="all" href="engine/skins/calendar-blue.css" title="win2k-cold-1" />
    
    <script type="text/javascript" src="engine/skins/calendar.js"></script>
    
    <script type="text/javascript" src="engine/skins/calendar-en.js"></script>
    
    <script type="text/javascript" src="engine/skins/calendar-setup.js"></script>
    
    <script language="javascript">
    
        function search_submit(prm){
    
          document.optionsbar.start_from.value=prm;
    
          document.optionsbar.submit();
    
          return false;
    
        }
    
        function gopage_submit(prm){
    
          document.optionsbar.start_from.value= (prm - 1) * {$news_per_page};
    
          document.optionsbar.submit();
    
          return false;
    
        }
    
        </script>
    
    <form action="?mod=static&amp;action=list" method="GET" name="optionsbar" id="optionsbar">
    
    <input type="hidden" name="mod" value="static">
    
    <input type="hidden" name="action" value="list">
    
    <div style="padding-top:5px;padding-bottom:2px;display:none" name="advancedsearch" id="advancedsearch">
    
    <table width="100%">
    
        <tr>
    
            <td width="4"><img src="engine/skins/images/tl_lo.gif" width="4" height="4" border="0"></td>
    
            <td background="engine/skins/images/tl_oo.gif"><img src="engine/skins/images/tl_oo.gif" width="1" height="4" border="0"></td>
    
            <td width="6"><img src="engine/skins/images/tl_ro.gif" width="6" height="4" border="0"></td>
    
        </tr>
    
        <tr>
    
            <td background="engine/skins/images/tl_lb.gif"><img src="engine/skins/images/tl_lb.gif" width="4" height="1" border="0"></td>
    
            <td style="padding:5px;" bgcolor="#FFFFFF">
    
    <table width="100%">
    
        <tr>
    
            <td bgcolor="#EFEFEF" height="29" style="padding-left:10px;"><div class="navigation">{$lang['edit_stat']}&nbsp;<b>{$entries_showed}</b>&nbsp;&nbsp;&nbsp;{$lang['edit_stat_1']}&nbsp;<b>{$all_count_news}</b></div></td>
    
        </tr>
    
    </table>
    
    <div class="unterline"></div>
    
    <table width="100%">
    
         <tr>
    
    		<td style="padding:5px;">{$lang['edit_search_static']}</td>
    
    		<td style="padding-left:5px;"><input class="edit" name="search_field" value="{$search_field}" type="text" size="35"></td>
    
    		<td style="padding-left:5px;">{$lang['search_by_date']}</td>
    
    		<td style="padding-left:5px;">{$lang['edit_fdate']} <input type="text" name="fromnewsdate" id="fromnewsdate" size="11" maxlength="16" class="edit" value="{$fromnewsdate}">
    
    <img src="engine/skins/images/img.gif"  align="absmiddle" id="f_trigger_dnews" style="cursor: pointer; border: 0" title="{$lang['edit_ecal']}"/>
    
    <script type="text/javascript">
    
        Calendar.setup({
    
          inputField     :    "fromnewsdate",     // id of the input field
    
          ifFormat       :    "%Y-%m-%d",      // format of the input field
    
          button         :    "f_trigger_dnews",  // trigger for the calendar (button ID)
    
          align          :    "Br",           // alignment 
    
    		  timeFormat     :    "24",
    
    		  showsTime      :    false,
    
          singleClick    :    true
    
        });
    
    </script> {$lang['edit_tdate']} <input type="text" name="tonewsdate" id="tonewsdate" size="11" maxlength="16" class="edit" value="{$tonewsdate}">
    
    <img src="engine/skins/images/img.gif"  align="absmiddle" id="f_trigger_tnews" style="cursor: pointer; border: 0" title="{$lang['edit_ecal']}"/>
    
    <script type="text/javascript">
    
        Calendar.setup({
    
          inputField     :    "tonewsdate",     // id of the input field
    
          ifFormat       :    "%Y-%m-%d",      // format of the input field
    
          button         :    "f_trigger_tnews",  // trigger for the calendar (button ID)
    
          align          :    "Br",           // alignment 
    
    		  timeFormat     :    "24",
    
    		  showsTime      :    false,
    
          singleClick    :    true
    
        });
    
    </script></td>
    
    
        </tr>
    
         <tr>
    
    		<td style="padding:5px;">{$lang['static_per_page']}</td>
    
    		<td style="padding-left:5px;"><input class="edit" style="text-align: center" name="news_per_page" value="{$news_per_page}" type="text" size="10"></td>
    
        <td colspan="2"></td>
    
    
        </tr>
    
        <tr>
    
            <td colspan="4"><div class="hr_line"></div></td>
    
        </tr>
    
        <tr>
    
            <td colspan="4">{$lang['static_order']}</td>
    
        </tr>
    
        <tr>
    
            <td style="padding:5px;">{$lang['edit_et']}</td>
    
            <td style="padding-left:5px;"><select name="search_order_t" id="search_order_t">
    
               <option {$search_order_title['----']} value="">{$lang['user_order_no']}</option>
    
               <option {$search_order_title['asc']} value="asc">{$lang['user_order_plus']}</option>
    
               <option {$search_order_title['desc']} value="desc">{$lang['user_order_minus']}</option>
    
                </select>
    
            </td>
    
            <td style="padding-left:5px;">{$lang['search_by_date']}</td>
    
            <td style="padding-left:5px;"><select name="search_order_d" id="search_order_d">
    
               <option {$search_order_date['----']} value="">{$lang['user_order_no']}</option>
    
               <option {$search_order_date['asc']} value="asc">{$lang['user_order_plus']}</option>
    
               <option {$search_order_date['desc']} value="desc">{$lang['user_order_minus']}</option>
    
                </select>
    
            </td>
    
        </tr>
    
        <tr>
    
            <td colspan="4"><div class="hr_line"></div></td>
    
        </tr>
    
        <tr>
    
    		<td style="padding:5px;">&nbsp;</td>
    
    		<td colspan="3">
    
    <input type="hidden" name="start_from" id="start_from" value="{$start_from}">
    
    <input onClick="javascript:search_submit(0); return(false);" class="edit" type="submit" value="{$lang['edit_act_1']}">
    
        </td>
    
        </tr>
    
    </table>
    
    </td>
    
            <td background="engine/skins/images/tl_rb.gif"><img src="engine/skins/images/tl_rb.gif" width="6" height="1" border="0"></td>
    
        </tr>
    
        <tr>
    
            <td><img src="engine/skins/images/tl_lu.gif" width="4" height="6" border="0"></td>
    
            <td background="engine/skins/images/tl_ub.gif"><img src="engine/skins/images/tl_ub.gif" width="1" height="6" border="0"></td>
    
            <td><img src="engine/skins/images/tl_ru.gif" width="6" height="6" border="0"></td>
    
        </tr>
    
    </table>
    
    </div>
    
    </form>
    
    HTML;
    
    	// End Options Bar
    
    
    
    	echo <<<JSCRIPT
    
    <script language='JavaScript' type="text/javascript">
    
    <!--
    
    function ckeck_uncheck_all() {
    
        var frm = document.static;
    
        for (var i=0;i<frm.elements.length;i++) {
    
            var elmnt = frm.elements[i];
    
            if (elmnt.type=='checkbox') {
    
                if(frm.master_box.checked == true){ elmnt.checked=false; }
    
                else{ elmnt.checked=true; }
    
            }
    
        }
    
        if(frm.master_box.checked == true){ frm.master_box.checked = false; }
    
        else{ frm.master_box.checked = true; }
    
    }
    
    -->
    
    </script>
    
    JSCRIPT;
    
    
    	if( $entries_showed == 0 ) {
    
    
    		echo <<<HTML
    
    <div style="padding-top:5px;padding-bottom:2px;">
    
    <table width="100%">
    
        <tr>
    
            <td width="4"><img src="engine/skins/images/tl_lo.gif" width="4" height="4" border="0"></td>
    
            <td background="engine/skins/images/tl_oo.gif"><img src="engine/skins/images/tl_oo.gif" width="1" height="4" border="0"></td>
    
            <td width="6"><img src="engine/skins/images/tl_ro.gif" width="6" height="4" border="0"></td>
    
        </tr>
    
        <tr>
    
            <td background="engine/skins/images/tl_lb.gif"><img src="engine/skins/images/tl_lb.gif" width="4" height="1" border="0"></td>
    
            <td style="padding:5px;" bgcolor="#FFFFFF">
    
    <table width="100%">
    
        <tr>
    
            <td bgcolor="#EFEFEF" height="29" style="padding-left:10px;"><div class="navigation">{$lang['static_head']}</div></td>
    
            <td bgcolor="#EFEFEF" height="29" style="padding:5px;" align="right"><a href="javascript:ShowOrHide('advancedsearch');">{$lang['static_advanced_search']}</a></td>
    
        </tr>
    
    </table>
    
    <div class="unterline"></div>
    
    <table width="100%">
    
        <tr>
    
            <td style="height:50px;"><br><br><center>{$lang['edit_nostatic']}</center>
    
    <br><br>&nbsp;&nbsp;&nbsp;<input type="button" value="{$lang['static_new']}" class="bbcodes" onclick="document.location='$PHP_SELF?mod=static&action=addnew'"></td>
    
        </tr>
    
    </table>
    
    </td>
    
            <td background="engine/skins/images/tl_rb.gif"><img src="engine/skins/images/tl_rb.gif" width="6" height="1" border="0"></td>
    
        </tr>
    
        <tr>
    
            <td><img src="engine/skins/images/tl_lu.gif" width="4" height="6" border="0"></td>
    
            <td background="engine/skins/images/tl_ub.gif"><img src="engine/skins/images/tl_ub.gif" width="1" height="6" border="0"></td>
    
            <td><img src="engine/skins/images/tl_ru.gif" width="6" height="6" border="0"></td>
    
        </tr>
    
    </table>
    
    </div>
    
    HTML;
    
    
    	} else {
    
    
    		echo <<<HTML
    
    <form action="" method="post" name="static">
    
    <div style="padding-top:5px;padding-bottom:2px;">
    
    <table width="100%">
    
        <tr>
    
            <td width="4"><img src="engine/skins/images/tl_lo.gif" width="4" height="4" border="0"></td>
    
            <td background="engine/skins/images/tl_oo.gif"><img src="engine/skins/images/tl_oo.gif" width="1" height="4" border="0"></td>
    
            <td width="6"><img src="engine/skins/images/tl_ro.gif" width="6" height="4" border="0"></td>
    
        </tr>
    
        <tr>
    
            <td background="engine/skins/images/tl_lb.gif"><img src="engine/skins/images/tl_lb.gif" width="4" height="1" border="0"></td>
    
            <td style="padding:5px;" bgcolor="#FFFFFF">
    
    
    <table width="100%">
    
        <tr>
    
            <td bgcolor="#EFEFEF" height="29" style="padding-left:10px;"><div class="navigation">{$lang['static_head']}</div></td>
    
            <td bgcolor="#EFEFEF" height="29" style="padding:5px;" align="right"><a href="javascript:ShowOrHide('advancedsearch');">{$lang['static_advanced_search']}</a></td>
    
        </tr>
    
    </table>
    
    <div class="unterline"></div>
    
    <table width=100%>
    
    	<tr>
    
        <td width="350" style="padding:2px;">{$lang['static_title']}</td>
    
        <td>{$lang['static_descr']}</td>
    
        <td width="100" align="center">&nbsp;{$lang['st_views']}&nbsp;</td>
    
        <td width="10" align="center"><input type="checkbox" name="master_box" title="{$lang['edit_selall']}" onclick="javascript:ckeck_uncheck_all()"></td>
    
    	</tr>
    
    	<tr><td colspan="4"><div class="hr_line"></div></td></tr>
    
    	{$entries}
    
    	<tr><td colspan="4"><div class="hr_line"></div></td></tr>
    
    </table>
    
    HTML;
    
    
    		// pagination
    
    
    		$npp_nav = "<div class=\"news_navigation\" style=\"margin-bottom:5px; margin-top:5px;\">";
    
    
    		if( $start_from > 0 ) {
    
    			$previous = $start_from - $news_per_page;
    
    			$npp_nav .= "<a onClick=\"javascript:search_submit($previous); return(false);\" href=\"#\" title=\"{$lang['edit_prev']}\">&lt;&lt;</a> ";
    
    		}
    
    
    		if( $all_count_news > $news_per_page ) {
    
    
    			$enpages_count = @ceil( $all_count_news / $news_per_page );
    
    			$enpages_start_from = 0;
    
    			$enpages = "";
    
    
    			if( $enpages_count <= 10 ) {
    
    
    				for($j = 1; $j <= $enpages_count; $j ++) {
    
    
    					if( $enpages_start_from != $start_from ) {
    
    
    						$enpages .= "<a onClick=\"javascript:search_submit($enpages_start_from); return(false);\" href=\"#\">$j</a> ";
    
    
    					} else {
    
    
    						$enpages .= "<span>$j</span> ";
    
    					}
    
    
    					$enpages_start_from += $news_per_page;
    
    				}
    
    
    				$npp_nav .= $enpages;
    
    
    			} else {
    
    
    				$start = 1;
    
    				$end = 10;
    
    
    				if( $start_from > 0 ) {
    
    
    					if( ($start_from / $news_per_page) > 4 ) {
    
    
    						$start = @ceil( $start_from / $news_per_page ) - 3;
    
    						$end = $start + 9;
    
    
    						if( $end > $enpages_count ) {
    
    							$start = $enpages_count - 10;
    
    							$end = $enpages_count - 1;
    
    						}
    
    
    						$enpages_start_from = ($start - 1) * $news_per_page;
    
    
    					}
    
    
    				}
    
    
    				if( $start > 2 ) {
    
    
    					$enpages .= "<a onClick=\"javascript:search_submit(0); return(false);\" href=\"#\">1</a> ... ";
    
    
    				}
    
    
    				for($j = $start; $j <= $end; $j ++) {
    
    
    					if( $enpages_start_from != $start_from ) {
    
    
    						$enpages .= "<a onClick=\"javascript:search_submit($enpages_start_from); return(false);\" href=\"#\">$j</a> ";
    
    
    					} else {
    
    
    						$enpages .= "<span>$j</span> ";
    
    					}
    
    
    					$enpages_start_from += $news_per_page;
    
    				}
    
    
    				$enpages_start_from = ($enpages_count - 1) * $news_per_page;
    
    				$enpages .= "... <a onClick=\"javascript:search_submit($enpages_start_from); return(false);\" href=\"#\">$enpages_count</a> ";
    
    
    				$npp_nav .= $enpages;
    
    
    			}
    
    
    		}
    
    
    		if( $all_count_news > $i ) {
    
    			$how_next = $all_count_news - $i;
    
    			if( $how_next > $news_per_page ) {
    
    				$how_next = $news_per_page;
    
    			}
    
    			$npp_nav .= "<a onClick=\"javascript:search_submit($i); return(false);\" href=\"#\" title=\"{$lang['edit_next']}\">&gt;&gt;</a>";
    
    		}
    
    
    		$npp_nav .= "</div>";
    
    
    		// pagination
    
    
    
    		if( $entries_showed != 0 ) {
    
    			echo <<<HTML
    
    <table width=100%>
    
    <tr><td>{$npp_nav}</td>
    
    <td align="right" valign="top"><div style="margin-bottom:5px; margin-top:5px;">
    
    <select name="action">
    
    <option value="">{$lang['edit_selact']}</option>
    
    <option value="mass_date">{$lang['mass_edit_date']}</option>
    
    <option value="mass_clear_count">{$lang['mass_clear_count']}</option>
    
    <option value="mass_delete">{$lang['edit_seldel']}</option>
    
    </select>
    
    <input type="hidden" name="mod" value="mass_static_actions">
    
    <input type="hidden" name="user_hash" value="$dle_login_hash" />
    
    <input class="edit" type="submit" value="{$lang['b_start']}">
    
    </div></form><td></tr>
    
    HTML;
    
    
    			if( $all_count_news > $news_per_page ) {
    
    
    				echo <<<HTML
    
    <tr><td colspan="2">
    
    {$lang['edit_go_page']} <input class="edit" style="text-align: center" name="gopage" id="gopage" value="" type="text" size="3"> <input onClick="javascript:gopage_submit(document.getElementById('gopage').value); return(false);" class="edit" type="button" value=" ok ">
    
    </td></tr>
    
    HTML;
    
    
    			}
    
    
    		}
    
    
    		echo <<<HTML
    
    <tr><td colspan="2">
    
    &nbsp;&nbsp;&nbsp;<input type="button" value="{$lang['static_new']}" class="bbcodes" onclick="document.location='$PHP_SELF?mod=static&action=addnew'">
    
    </td></tr>
    
    	</table>
    
    
    </td>
    
            <td background="engine/skins/images/tl_rb.gif"><img src="engine/skins/images/tl_rb.gif" width="6" height="1" border="0"></td>
    
        </tr>
    
        <tr>
    
            <td><img src="engine/skins/images/tl_lu.gif" width="4" height="6" border="0"></td>
    
            <td background="engine/skins/images/tl_ub.gif"><img src="engine/skins/images/tl_ub.gif" width="1" height="6" border="0"></td>
    
            <td><img src="engine/skins/images/tl_ru.gif" width="6" height="6" border="0"></td>
    
        </tr>
    
    </table>
    
    </div>
    
    HTML;
    
    
    	}
    
    
    	echofooter();
    
    
    } elseif( $action == "addnew" ) {
    
    
    	echoheader( "static", "static" );
    
    
    	echo "
    
        <script LANGUAGE=\"JavaScript\">
    
        function preview(){";
    
    
    	if( $config['allow_static_wysiwyg'] == "yes" ) {
    
    		echo "document.getElementById('template').value = tinyMCE.get('template').getContent();";
    
    	}
    
    
    	echo "if(document.static.template.value == '' || document.static.description.value == '' || document.static.name.value == ''){ alert('$lang[static_err_1]'); }
    
        else{
    
            dd=window.open('','prv','height=400,width=750,resizable=1,scrollbars=1')
    
            document.static.mod.value='preview';document.static.target='prv'
    
            document.static.submit(); dd.focus()
    
            setTimeout(\"document.static.mod.value='static';document.static.target='_self'\",500)
    
        }
    
        }
    
        onload=focus;function focus(){document.forms[0].name.focus();}
    
        </SCRIPT>";
    
    
    	if( $config['allow_static_wysiwyg'] == "yes" ) echo "<form method=post name=\"static\" id=\"static\" onsubmit=\"document.getElementById('template').value = tinyMCE.get('template').getContent(); if(document.static.name.value == '' || document.static.description.value == '' || document.static.template.value == ''){alert('$lang[vote_alert]');return false}\" action=\"\">";
    
    	else echo "<form method=post name=\"static\" id=\"static\" onsubmit=\"if(document.static.name.value == '' || document.static.description.value == '' || document.static.template.value == ''){alert('$lang[vote_alert]');return false}\" action=\"\">";
    
    
    	echo <<<HTML
    
    <!-- calendar stylesheet -->
    
    <link rel="stylesheet" type="text/css" media="all" href="engine/skins/calendar-blue.css" title="win2k-cold-1" />
    
    <script type="text/javascript" src="engine/skins/calendar.js"></script>
    
    <script type="text/javascript" src="engine/skins/calendar-en.js"></script>
    
    <script type="text/javascript" src="engine/skins/calendar-setup.js"></script>
    
    <script type="text/javascript" src="engine/skins/tabs.js"></script>
    
    <script type="text/javascript" src="engine/ajax/dle_ajax.js"></script>
    
    <div id='loading-layer' style='display:none;font-family: Verdana;font-size: 11px;width:200px;height:50px;background:#FFF;padding:10px;text-align:center;border:1px solid #000'><div style='font-weight:bold' id='loading-layer-text'>{$lang['ajax_info']}</div><br /><img src='engine/ajax/loading.gif'  border='0' /></div>
    
    <div style="padding-top:5px;padding-bottom:2px;">
    
    <table width="100%">
    
        <tr>
    
            <td width="4"><img src="engine/skins/images/tl_lo.gif" width="4" height="4" border="0"></td>
    
            <td background="engine/skins/images/tl_oo.gif"><img src="engine/skins/images/tl_oo.gif" width="1" height="4" border="0"></td>
    
            <td width="6"><img src="engine/skins/images/tl_ro.gif" width="6" height="4" border="0"></td>
    
        </tr>
    
        <tr>
    
            <td background="engine/skins/images/tl_lb.gif"><img src="engine/skins/images/tl_lb.gif" width="4" height="1" border="0"></td>
    
            <td style="padding:5px;" bgcolor="#FFFFFF">
    
    <table width="100%">
    
        <tr>
    
            <td bgcolor="#EFEFEF" height="29" style="padding-left:10px;"><div class="navigation">{$lang['static_a']}</div></td>
    
        </tr>
    
    </table>
    
    <div class="unterline"></div>
    
    <table width="100%">
    
        <tr>
    
            <td width="150" style="padding:2px;">{$lang['static_title']}</td>
    
            <td style="padding:2px;"><input type="text" name="name" size="25"  class="edit"><a href="#" class="hintanchor" onMouseover="showhint('{$lang[hint_stitle]}', this, event, '250px')">[?]</a></td>
    
        </tr>
    
        <tr>
    
            <td style="padding:2px;">{$lang['static_descr']}</td>
    
            <td style="padding:2px;"><input type="text" name="description" size="55"  class="edit"><a href="#" class="hintanchor" onMouseover="showhint('{$lang[hint_sdesc]}', this, event, '250px')">[?]</a></td>
    
        </tr>
    
    
        <tr>
    
            <td style="padding:2px;">{$lang['edit_edate']}</td>
    
            <td style="padding:2px;"><input type="text" name="newdate" id="f_date_c" size="20"  class=edit value="">
    
    <img src="engine/skins/images/img.gif"  align="absmiddle" id="f_trigger_c" style="cursor: pointer; border: 0" title="{$lang['edit_ecal']}"/>&nbsp;<input type="checkbox" name="allow_now" id="allow_now" value="yes" checked>&nbsp;{$lang['edit_jdate']}
    
    <script type="text/javascript">
    
        Calendar.setup({
    
            inputField     :    "f_date_c",     // id of the input field
    
            ifFormat       :    "%Y-%m-%d %H:%M",      // format of the input field
    
            button         :    "f_trigger_c",  // trigger for the calendar (button ID)
    
            align          :    "Br",           // alignment 
    
    		timeFormat     :    "24",
    
    		showsTime      :    true,
    
            singleClick    :    true
    
        });
    
    </script></td>
    
        </tr>
    
    
    HTML;
    
    
    	if( $config['allow_static_wysiwyg'] == "yes" ) {
    
    
    		include (ENGINE_DIR . '/editor/static.php');
    
    
    	} else {
    
    
    		include (ENGINE_DIR . '/inc/include/inserttag.php');
    
    
    		echo <<<HTML
    
        <tr>
    
            <td style="padding:2px;">{$lang['static_templ']}</td>
    
            <td style="padding-left:2px;">{$bb_code}<textarea style="width:98%; height:300px;" name="template" id="template"  onclick=setFieldName(this.name)></textarea><script type=text/javascript>var selField  = "template";</script></td>
    
        </tr>
    
    HTML;
    
    
    	}
    
    
    	if( $config['allow_static_wysiwyg'] != "yes" ) $fix_br = "<input type=\"radio\" name=\"allow_br\" value=\"1\" checked=\"checked\" /> {$lang['static_br_html']}<br /><input type=\"radio\" name=\"allow_br\" value=\"0\" /> {$lang['static_br_html_1']}";
    
    	else $fix_br = "<input type=\"radio\" name=\"allow_br\" value=\"0\" /> {$lang['static_br_html_1']}";
    
    
    	if ($member_id['user_group'] == 1 ) $fix_br .= "<br /><input type=\"radio\" name=\"allow_br\" value=\"2\" /> {$lang['static_br_html_2']}";
    
    
    	$groups = get_groups();
    
    	$skinlist = SelectSkin( '' );
    
    
    	echo <<<HTML
    
    		<tr><td>{$lang['static_type']}</td><td>{$fix_br}</td></tr>
    
    		<tr><td colspan="2"><div class="hr_line"></div></td></tr>
    
    	    <tr>
    
    	        <td>&nbsp;</td>
    
    	        <td>{$lang['add_metatags']}<a href="#" class="hintanchor" onMouseover="showhint('{$lang['hint_metas']}', this, event, '220px')">[?]</a></td>
    
    	    </tr>
    
    	    <tr>
    
    	        <td height="29" style="padding-left:5px;">{$lang['meta_title']}</td>
    
    	        <td><input type="text" name="meta_title" style="width:388px;" class="edit"></td>
    
    	    </tr>
    
    	    <tr>
    
    	        <td height="29" style="padding-left:5px;">{$lang['meta_descr']}</td>
    
    	        <td><input type="text" name="descr" id="autodescr" style="width:388px;" class="edit"> ({$lang['meta_descr_max']})</td>
    
    	    </tr>
    
    	    <tr>
    
    	        <td height="29" style="padding-left:5px;">{$lang['meta_keys']}</td>
    
    	        <td><textarea name="keywords" id='keywords' style="width:388px;height:70px;"></textarea></td>
    
    	    </tr>
    
    		<tr><td colspan="2"><div class="hr_line"></div></td></tr>
    
        <tr>
    
            <td style="padding:2px;">{$lang['static_tpl']}</td>
    
            <td style="padding-left:2px;"><input type="text" name="static_tpl" size="20"  class="edit">.tpl<a href="#" class="hintanchor" onMouseover="showhint('{$lang[hint_stpl]}', this, event, '250px')">[?]</a></td>
    
        </tr>
    
        <!--/При создании/ Папка шаблона, Разрешить просмотр для следующих групп
    
    
        <tr>
    
            <td style="padding:2px;">{$lang['static_skin']}</td>
    
            <td style="padding:2px;">{$skinlist}<a href="#" class="hintanchor" onMouseover="showhint('{$lang[hint_static_skin]}', this, event, '250px')">[?]</a> <input type="checkbox" name="allow_template" value="1" checked> {$lang['st_al_templ']}</td>
    
        </tr>
    
        <tr>
    
            <td style="padding:2px;">{$lang['stat_allow']}</td>
    
            <td style="padding:2px;"><select name="grouplevel[]" style="width:150px;height:93px;" multiple><option value="all" selected>{$lang['edit_all']}</option>{$groups}</select></td>
    
        </tr>-->
    
        <tr>
    
            <td style="padding:2px;">&nbsp;</td>
    
            <td><!--<br />--><br /><input type="submit" value="{$lang['user_save']}" class="buttons" style="width:100px;">&nbsp;&nbsp;&nbsp;<input onClick="preview()" type="button" class="buttons" value="{$lang['btn_preview']}" style="width:100px;">
    
    	<input type=hidden name="action" value="dosavenew">
    
    	<input type=hidden name="mod" value="static">
    
    	<input type=hidden name="preview_mode" value="static" >
    
    	<input type="hidden" name="user_hash" value="$dle_login_hash" />
    
    	<br><br></td>
    
        </tr>
    
    </table>
    
    </td>
    
            <td background="engine/skins/images/tl_rb.gif"><img src="engine/skins/images/tl_rb.gif" width="6" height="1" border="0"></td>
    
        </tr>
    
        <tr>
    
            <td><img src="engine/skins/images/tl_lu.gif" width="4" height="6" border="0"></td>
    
            <td background="engine/skins/images/tl_ub.gif"><img src="engine/skins/images/tl_ub.gif" width="1" height="6" border="0"></td>
    
            <td><img src="engine/skins/images/tl_ru.gif" width="6" height="6" border="0"></td>
    
        </tr>
    
    </table>
    
    </div></form>
    
    HTML;
    
    
    	echofooter();
    
    } elseif( $action == "dosavenew" ) {
    
    
    	if( $_REQUEST['user_hash'] == "" or $_REQUEST['user_hash'] != $dle_login_hash ) {
    
    
    		die( "Hacking attempt! User not found" );
    
    
    	}
    
    
    	$allow_br = intval( $_POST['allow_br'] );
    
    	if ($member_id['user_group'] != 1 AND $allow_br > 1 ) $allow_br = 1;
    
    
    	if ($allow_br == 2) {
    
    
    		if( function_exists( "get_magic_quotes_gpc" ) && get_magic_quotes_gpc() ) $_POST['template'] = stripslashes( $_POST['template'] );  
    
    
    		$template = trim( addslashes( $_POST['template'] ) );
    
    
    	} else {
    
    
    		if ( $config['allow_static_wysiwyg'] == "yes" ) $parse->allow_code = false;
    
    
    		$template = $parse->process( $_POST['template'] );
    
    
    		if( $config['allow_static_wysiwyg'] == "yes" or $allow_br != '1' ) {
    
    			$template = $parse->BB_Parse( $template );
    
    		} else {
    
    			$template = $parse->BB_Parse( $template, false );
    
    		}
    
    
    	}
    
    
    	$metatags = create_metatags( $template );
    
    	$name = trim( totranslit( $_POST['name'], true, false ) );
    
    	$descr = trim( $db->safesql( htmlspecialchars( $_POST['description'] ) ) );
    
    	$template = $db->safesql( $template );
    
    	$tpl = trim( totranslit( $_POST['static_tpl'] ) );
    
    	$skin_name =  trim( totranslit( $_POST['skin_name'], false, false ) );
    
    	$newdate = $_POST['newdate'];
    
        if( isset( $_POST['allow_now'] ) ) $allow_now = $_POST['allow_now']; else $allow_now = "";
    
    
    	$name = str_replace( "-", "_", $name );
    
    
    	if( ! count( $_POST['grouplevel'] ) ) $_POST['grouplevel'] = array ("all" );
    
    	$grouplevel = $db->safesql( implode( ',', $_POST['grouplevel'] ) );
    
    
    	$allow_template = intval( $_POST['allow_template'] );
    
    
      // Обработка даты и времени
    
    	$added_time = time() + ($config['date_adjust'] * 60);
    
    	$newsdate = strtotime( $newdate );
    
    
    	if( ($allow_now == "yes") or ($newsdate === - 1) or (trim( $newdate ) == "") ) {
    
    		$thistime = $added_time;
    
    	} else {
    
    		$thistime = $newsdate;
    
    		if( ! intval( $config['no_date'] ) and $newsdate > $added_time ) $thistime = $added_time;
    
    	}
    
    
    	if( $name == "" or $descr == "" or $template == "" ) msg( "error", $lang['static_err'], $lang['static_err_1'], "javascript:history.go(-1)" );
    
    
    	$static_count = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_static WHERE name='$name'" );
    
    
    	if ($static_count['count']) msg( "error", $lang['static_err'], $lang['static_err_2'], "javascript:history.go(-1)" );
    
    
    	$db->query( "INSERT INTO " . PREFIX . "_static (name, descr, template, allow_br, allow_template, grouplevel, tpl, metadescr, metakeys, template_folder, date, metatitle) values ('$name', '$descr', '$template', '$allow_br', '$allow_template', '$grouplevel', '$tpl', '{$metatags['description']}', '{$metatags['keywords']}', '{$skin_name}', '{$thistime}', '{$metatags['title']}')" );
    
    	$row = $db->insert_id();
    
    	$db->query( "UPDATE " . PREFIX . "_static_files SET static_id='{$row}' WHERE author = '{$member_id['name']}' AND static_id = '0'" );
    
    
    	msg( "info", $lang['static_addok'], $lang['static_addok_1'], "?mod=static" );
    
    
    } elseif( $action == "doedit" ) {
    
    
    	$id = intval( $_GET['id'] );
    
    
    	if( $_GET['page'] == "rules" ) {
    
    
    		$row = $db->super_query( "SELECT * FROM " . PREFIX . "_static where name='dle-rules-page'" );
    
    		$lang['static_edit'] = $lang['rules_edit'];
    
    		if( ! $row['id'] ) {
    
    			$id = "";
    
    			$row['allow_template'] = "1";
    
    		} else
    
    			$id = $row['id'];
    
    
    		if( ! $config['registration_rules'] ) $lang['rules_descr'] = $lang['rules_descr'] . " <font color=\"red\">" . $lang['rules_check'] . "</font>";
    
    
    	} else {
    
    
    		$row = $db->super_query( "SELECT * FROM " . PREFIX . "_static where id='$id'" );
    
    	}
    
    
    	if ($row['allow_br'] == 2) {
    
    
    		if ($member_id['user_group'] != 1) msg( "error", $lang['index_denied'], $lang['static_not_allowed'] );
    
    
    		$row['template'] = htmlspecialchars( stripslashes( $row['template'] ) );
    
    
    
    	} else {
    
    
    		if( $row['allow_br'] != '1' or $config['allow_static_wysiwyg'] == "yes" ) {
    
    
    			$row['template'] = $parse->decodeBBCodes( $row['template'], true, $config['allow_static_wysiwyg'] );
    
    
    		} else {
    
    
    			$row['template'] = $parse->decodeBBCodes( $row['template'], false );
    
    
    		}
    
    	}
    
    
    	$skinlist = SelectSkin( $row['template_folder'] );
    
    	$row['descr'] = stripslashes($row['descr']);
    
    	$row['metatitle'] = stripslashes( $row['metatitle'] );
    
    	$itemdate = @date( "Y-m-d H:i", $row['date'] );
    
    
    	echoheader( "static", "static" );
    
    
    	echo <<<HTML
    
    <!-- calendar stylesheet -->
    
    <link rel="stylesheet" type="text/css" media="all" href="engine/skins/calendar-blue.css" title="win2k-cold-1" />
    
    <script type="text/javascript" src="engine/skins/calendar.js"></script>
    
    <script type="text/javascript" src="engine/skins/calendar-en.js"></script>
    
    <script type="text/javascript" src="engine/skins/calendar-setup.js"></script>
    
    <script type="text/javascript" src="engine/skins/tabs.js"></script>
    
    <script language="javascript">
    
    
    function CheckStatus(Form){
    
    	if(Form.allow_date.checked) {
    
    		Form.allow_now.disabled = true;
    
    		Form.allow_now.checked = false;
    
    	} else {
    
    		Form.allow_now.disabled = false;
    
    	}
    
    }
    
    
    function confirmdelete(id) {
    
        var agree=confirm("{$lang['static_confirm']}");
    
        if (agree)
    
        document.location="{$PHP_SELF}?mod=static&action=dodelete&user_hash={$dle_login_hash}&id="+id;
    
    }
    
    </script>
    
    HTML;
    
    
    	echo "
    
        <script LANGUAGE=\"JavaScript\">
    
        function preview(){";
    
    
    	if( $config['allow_static_wysiwyg'] == "yes" ) {
    
    		echo "document.getElementById('template').value = tinyMCE.get('template').getContent();";
    
    	}
    
    
    	echo "if(document.static.template.value == ''){ alert('$lang[static_err_1]'); }
    
        else{
    
            dd=window.open('','prv','height=400,width=750,resizable=1,scrollbars=1')
    
            document.static.mod.value='preview';document.static.target='prv'
    
            document.static.submit(); dd.focus()
    
            setTimeout(\"document.static.mod.value='static';document.static.target='_self'\",500)
    
        }
    
        }
    
        </SCRIPT>";
    
    
    	if( $_GET['page'] == "rules" ) {
    
    
    		if( $config['allow_static_wysiwyg'] == "yes" ) echo "<form method=post name=\"static\" id=\"static\" onsubmit=\"document.getElementById('template').value = tinyMCE.get('template').getContent();\" action=\"\">";
    
    		else echo "<form method=post name=\"static\" id=\"static\" action=\"\">";
    
    
    	} else {
    
    
    		if( $config['allow_static_wysiwyg'] == "yes" ) echo "<form method=post name=\"static\" id=\"static\" onsubmit=\"document.getElementById('template').value = tinyMCE.get('template').getContent(); if(document.static.name.value == '' || document.static.description.value == '' || document.static.template.value == ''){alert('$lang[vote_alert]');return false}\" action=\"\">";
    
    		else echo "<form method=post name=\"static\" id=\"static\" onsubmit=\"if(document.static.name.value == '' || document.static.description.value == '' || document.static.template.value == ''){alert('$lang[vote_alert]');return false}\" action=\"\">";
    
    
    	}
    
    
    	echo <<<HTML
    
    <script type="text/javascript" src="engine/ajax/dle_ajax.js"></script>
    
    <div id='loading-layer' style='display:none;font-family: Verdana;font-size: 11px;width:200px;height:50px;background:#FFF;padding:10px;text-align:center;border:1px solid #000'><div style='font-weight:bold' id='loading-layer-text'>{$lang['ajax_info']}</div><br /><img src='engine/ajax/loading.gif'  border='0' /></div>
    
    <div style="padding-top:5px;padding-bottom:2px;">
    
    <table width="100%">
    
        <tr>
    
            <td width="4"><img src="engine/skins/images/tl_lo.gif" width="4" height="4" border="0"></td>
    
            <td background="engine/skins/images/tl_oo.gif"><img src="engine/skins/images/tl_oo.gif" width="1" height="4" border="0"></td>
    
            <td width="6"><img src="engine/skins/images/tl_ro.gif" width="6" height="4" border="0"></td>
    
        </tr>
    
        <tr>
    
            <td background="engine/skins/images/tl_lb.gif"><img src="engine/skins/images/tl_lb.gif" width="4" height="1" border="0"></td>
    
            <td style="padding:5px;" bgcolor="#FFFFFF">
    
    <table width="100%">
    
        <tr>
    
            <td bgcolor="#EFEFEF" height="29" style="padding-left:10px;"><div class="navigation">{$lang['static_edit']}</div></td>
    
        </tr>
    
    </table>
    
    <div class="unterline"></div>
    
    <table width="100%">
    
    HTML;
    
    
    	if( $_GET['page'] == "rules" ) {
    
    
    		echo <<<HTML
    
        <tr>
    
            <td width="150" style="padding:2px;">{$lang['static_descr']}</td>
    
            <td style="padding:2px;" class="navigation">{$lang['rules_descr']}</td>
    
        </tr>
    
    HTML;
    
    
    	} else {
    
    
    		echo <<<HTML
    
        <tr>
    
            <td width="150" style="padding:2px;">{$lang['static_title']}</td>
    
            <td style="padding:2px;"><input type="text" name="name" size="25"  class="edit" value="{$row['name']}"><a href="#" class="hintanchor" onMouseover="showhint('{$lang[hint_stitle]}', this, event, '250px')">[?]</a></td>
    
        </tr>
    
        <tr>
    
            <td style="padding:2px;">{$lang['static_descr']}</td>
    
            <td style="padding:2px;"><input type="text" name="description" size="55"  class="edit" value="{$row['descr']}"><a href="#" class="hintanchor" onMouseover="showhint('{$lang[hint_sdesc]}', this, event, '250px')">[?]</a></td>
    
        </tr>
    
    HTML;
    
    
    	}
    
    
    		echo <<<HTML
    
        <tr>
    
            <td style="padding:2px;">{$lang['edit_edate']}</td>
    
            <td style="padding:2px;"><input type="text" name="newdate" id="f_date_c" size="20"  class=edit value="{$itemdate}">
    
    <img src="engine/skins/images/img.gif"  align="absmiddle" id="f_trigger_c" style="cursor: pointer; border: 0" title="{$lang['edit_ecal']}"/>&nbsp;<input type="checkbox" name="allow_date" id="allow_date" value="yes" onclick="CheckStatus(static)" checked>&nbsp;{$lang['edit_ndate']}&nbsp;<input type="checkbox" name="allow_now" id="allow_now" value="yes" disabled>&nbsp;{$lang['edit_jdate']}
    
    <script type="text/javascript">
    
        Calendar.setup({
    
            inputField     :    "f_date_c",     // id of the input field
    
            ifFormat       :    "%Y-%m-%d %H:%M",      // format of the input field
    
            button         :    "f_trigger_c",  // trigger for the calendar (button ID)
    
            align          :    "Br",           // alignment 
    
    		timeFormat     :    "24",
    
    		showsTime      :    true,
    
            singleClick    :    true
    
        });
    
    </script></td>
    
        </tr>
    
    HTML;
    
    
    
    	if( $config['allow_static_wysiwyg'] == "yes" ) {
    
    
    		include (ENGINE_DIR . '/editor/static.php');
    
    
    	} else {
    
    
    		include (ENGINE_DIR . '/inc/include/inserttag.php');
    
    
    		echo <<<HTML
    
        <tr>
    
            <td style="padding:2px;">{$lang['static_templ']}</td>
    
            <td style="padding:2px;">{$bb_code}<textarea style="width:98%; height:300px;" name="template" id="template"  onclick=setFieldName(this.name)>{$row['template']}</textarea><script type=text/javascript>var selField  = "template";</script></td>
    
        </tr>
    
    HTML;
    
    
    	}
    
    
    	$check = array();
    
    
    	$check[$row['allow_br']] = "checked=\"checked\"";
    
    
    	if( $config['allow_static_wysiwyg'] != "yes" ) $fix_br = "<input type=\"radio\" name=\"allow_br\" value=\"1\" {$check[1]} /> {$lang['static_br_html']}<br /><input type=\"radio\" name=\"allow_br\" value=\"0\" {$check[0]} /> {$lang['static_br_html_1']}";
    
    	else $fix_br = "<input type=\"radio\" name=\"allow_br\" value=\"0\" {$check[0]} /> {$lang['static_br_html_1']}";
    
    
    	if ($member_id['user_group'] == 1 ) $fix_br .= "<br /><input type=\"radio\" name=\"allow_br\" value=\"2\" {$check[2]} /> {$lang['static_br_html_2']}";
    
    
    	if( $row['allow_template'] ) $check_t = "checked";
    
    	else $check_t = "";
    
    
    	$groups = get_groups( explode( ',', $row['grouplevel'] ) );
    
    	if( $row['grouplevel'] == "all" ) $check_all = "selected";
    
    	else $check_all = "";
    
    
    	echo <<<HTML
    
    		<tr><td>{$lang['static_type']}</td><td>{$fix_br}</td></tr>
    
    		<tr><td colspan="2"><div class="hr_line"></div></td></tr>
    
    	    <tr>
    
    	        <td>&nbsp;</td>
    
    	        <td>{$lang['add_metatags']}<a href="#" class="hintanchor" onMouseover="showhint('{$lang['hint_metas']}', this, event, '220px')">[?]</a></td>
    
    	    </tr>
    
    	    <tr>
    
    	        <td height="29" style="padding-left:5px;">{$lang['meta_title']}</td>
    
    	        <td><input type="text" name="meta_title" style="width:388px;" class="edit" value="{$row['metatitle']}"></td>
    
    	    </tr>
    
    	    <tr>
    
    	        <td height="29" style="padding-left:5px;">{$lang['meta_descr']}</td>
    
    	        <td><input type="text" name="descr" style="width:388px;" class="edit" value="{$row['metadescr']}"> ({$lang['meta_descr_max']})</td>
    
    	    </tr>
    
    	    <tr>
    
    	        <td height="29" style="padding-left:5px;">{$lang['meta_keys']}</td>
    
    	        <td><textarea name="keywords" style="width:388px;height:70px;">{$row['metakeys']}</textarea></td>
    
    	    </tr>
    
    		<tr><td colspan="2"><div class="hr_line"></div></td></tr>
    
        <tr>
    
            <td style="padding:2px;">{$lang['static_tpl']}</td>
    
            <td style="padding:2px;"><input type="text" name="static_tpl" size="20" value="{$row['tpl']}" class="edit">.tpl<a href="#" class="hintanchor" onMouseover="showhint('{$lang[hint_stpl]}', this, event, '250px')">[?]</a></td>
    
        </tr>
    
        <!-- При редактировании статики
    
    HTML;
    
    
    	if( $_GET['page'] != "rules" ) echo <<<HTML
    
        <tr>
    
            <td style="padding:2px;">{$lang['static_skin']}</td>        
    
            <td style="padding:2px;">{$skinlist}<a href="#" class="hintanchor" onMouseover="showhint('{$lang[hint_static_skin]}', this, event, '250px')">[?]</a></td>
    
        </tr>
    
        <tr>
    
            <td style="padding:2px;">{$lang['stat_allow']}</td>
    
            <td style="padding:2px;"><select name="grouplevel[]" style="width:150px;height:93px;" multiple><option value="all" {$check_all}>{$lang['edit_all']}</option>{$groups}</select></td>
    
        </tr>-->
    
    HTML;
    
    
    	echo <<<HTML
    
        <!--
    
        <tr>
    
            <td style="padding:2px;">&nbsp;</td>
    
            <td style="padding-left:2px;"><input type="checkbox" name="allow_template" value="1" {$check_t}> {$lang['st_al_templ']}</td>
    
        </tr>
    
        -->
    
        <tr>
    
            <td style="padding:2px;">&nbsp;</td>
    
            <td><br>&nbsp;<input type="submit" value="{$lang['user_save']}" class="buttons" style="width:100px;">&nbsp;&nbsp;&nbsp;<input onClick="preview()" type="button" class="buttons" value="{$lang['btn_preview']}" style="width:100px;">&nbsp;&nbsp;&nbsp;<input onClick="confirmdelete('{$row['id']}'); return(false)" type="button" class="buttons" value="{$lang['edit_dnews']}" style="width:100px;">
    
    	<input type="hidden" name="action" value="dosaveedit">
    
    	<input type=hidden name="mod" value="static">
    
    	<input type=hidden name="preview_mode" value="static" >
    
    	<input type="hidden" name="user_hash" value="$dle_login_hash" />
    
    	<input type="hidden" name="static_date" value="{$row['date']}" />
    
    	<input type="hidden" name="id" value="{$id}">
    
    	<br><br></td>
    
        </tr>
    
    </table>
    
    </td>
    
            <td background="engine/skins/images/tl_rb.gif"><img src="engine/skins/images/tl_rb.gif" width="6" height="1" border="0"></td>
    
        </tr>
    
        <tr>
    
            <td><img src="engine/skins/images/tl_lu.gif" width="4" height="6" border="0"></td>
    
            <td background="engine/skins/images/tl_ub.gif"><img src="engine/skins/images/tl_ub.gif" width="1" height="6" border="0"></td>
    
            <td><img src="engine/skins/images/tl_ru.gif" width="6" height="6" border="0"></td>
    
        </tr>
    
    </table>
    
    </div></form>
    
    HTML;
    
    
    	echofooter();
    
    } elseif( $action == "dosaveedit" ) {
    
    
    	if( $_REQUEST['user_hash'] == "" or $_REQUEST['user_hash'] != $dle_login_hash ) {
    
    
    		die( "Hacking attempt! User not found" );
    
    
    	}
    
    
    	$allow_br = intval( $_POST['allow_br'] );
    
    	if ($member_id['user_group'] != 1 AND $allow_br > 1 ) $allow_br = 1;
    
    
    	if ($allow_br == 2) {
    
    
    		if( function_exists( "get_magic_quotes_gpc" ) && get_magic_quotes_gpc() ) $_POST['template'] = stripslashes( $_POST['template'] );  
    
    
    		$template = trim( addslashes( $_POST['template'] ) );
    
    
    	} else {
    
    
    		if ( $config['allow_static_wysiwyg'] == "yes" ) $parse->allow_code = false;
    
    
    		$template = $parse->process( $_POST['template'] );
    
    
    		if( $config['allow_static_wysiwyg'] == "yes" or $allow_br != '1' ) {
    
    			$template = $parse->BB_Parse( $template );
    
    		} else {
    
    			$template = $parse->BB_Parse( $template, false );
    
    		}
    
    
    	}
    
    
    	$metatags = create_metatags( $template );
    
    
    	if( $_GET['page'] == "rules" ) {
    
    
    		$name = "dle-rules-page";
    
    		$descr = $lang['rules_edit'];
    
    
    	} else {
    
    
    		$name = trim( $db->safesql( htmlspecialchars( $_POST['name'] ) ) );
    
    		$descr = trim( $db->safesql( htmlspecialchars( $_POST['description'] ) ) );
    
    
    		if( ! count( $_POST['grouplevel'] ) ) $_POST['grouplevel'] = array ("all" );
    
    		$grouplevel = $db->safesql( implode( ',', $_POST['grouplevel'] ) );
    
    
    		$name = str_replace( "-", "_", $name );
    
    
    	}
    
    
    	$template = $db->safesql( $template );
    
    	$allow_template = intval( $_POST['allow_template'] );
    
    	$tpl = trim( totranslit( $_POST['static_tpl'] ) );
    
    	$skin_name =  trim( totranslit( $_POST['skin_name'], false, false ) );
    
    	$newdate = $_POST['newdate'];
    
    	if( isset( $_POST['allow_date'] ) ) $allow_date = $_POST['allow_date']; else $allow_date = "";
    
    	if( isset( $_POST['allow_now'] ) )  $allow_now = $_POST['allow_now']; else $allow_now = "";
    
    
    	// Обработка даты и времени
    
    	$added_time = time() + ($config['date_adjust'] * 60);
    
    	$newsdate = strtotime( $newdate );
    
    
    	if( $allow_date != "yes" ) {
    
    
    		if( $allow_now == "yes" ) $thistime = $added_time;
    
    		elseif( ($newsdate === - 1) or (trim( $newdate ) == "") ) {
    
    				$thistime = $added_time;
    
    		} else {
    
    
    			$thistime = $newsdate;
    
    
    			if( ! intval( $config['no_date'] ) and $newsdate > $added_time ) {
    
    				$thistime = $added_time;
    
    			}
    
    
    		}
    
    
    	} else {
    
    		$thistime = intval( $_POST['static_date'] );
    
    	}
    
    
    	if( $_GET['page'] == "rules" ) {
    
    
    		if( $_POST['id'] ) {
    
    
    			$db->query( "UPDATE " . PREFIX . "_static SET descr='$descr', template='$template', allow_br='$allow_br', allow_template='$allow_template', grouplevel='all', tpl='$tpl', metadescr='{$metatags['description']}', metakeys='{$metatags['keywords']}', template_folder='{$skin_name}', date='{$thistime}', metatitle='{$metatags['title']}' WHERE name='dle-rules-page'" );
    
    
    		} else {
    
    
    			$db->query( "INSERT INTO " . PREFIX . "_static (name, descr, template, allow_br, allow_template, grouplevel, tpl, metadescr, metakeys, template_folder, date, metatitle) values ('$name', '$descr', '$template', '$allow_br', '$allow_template', 'all', '$tpl', '{$metatags['description']}', '{$metatags['keywords']}', '{$skin_name}', '{$thistime}', '{$metatags['title']}')" );
    
    			$row = $db->insert_id();
    
    			$db->query( "UPDATE " . PREFIX . "_static_files SET static_id='{$row}' WHERE author = '{$member_id['name']}' AND static_id = '0'" );
    
    
    		}
    
    
    		msg( "info", $lang['rules_ok'], $lang['rules_ok'], "?mod=static&action=doedit&page=rules" );
    
    
    	} else {
    
    
    		$id = intval( $_GET['id'] );
    
    		if( $name == "" or $descr == "" or $template == "" ) msg( "error", $lang['static_err'], $lang['static_err_1'], "javascript:history.go(-1)" );
    
    
    		$db->query( "UPDATE " . PREFIX . "_static set name='$name', descr='$descr', template='$template', allow_br='$allow_br', allow_template='$allow_template', grouplevel='$grouplevel', tpl='$tpl', metadescr='{$metatags['description']}', metakeys='{$metatags['keywords']}', template_folder='{$skin_name}', date='{$thistime}', metatitle='{$metatags['title']}' WHERE id='$id'" );
    
    
    		msg( "info", $lang['static_addok'], $lang['static_addok_1'], "?mod=static" );
    
    
    	}
    
    
    	msg( "info", $lang['static_addok'], $lang['static_addok_1'], "?mod=static" );
    
    
    } elseif( $action == "dodelete" ) {
    
    
    	if( $_REQUEST['user_hash'] == "" or $_REQUEST['user_hash'] != $dle_login_hash ) {
    
    
    		die( "Hacking attempt! User not found" );
    
    
    	}
    
    
    	$id = intval( $_GET['id'] );
    
    
    	$db->query( "DELETE FROM " . PREFIX . "_static WHERE id='$id'" );
    
    
    	$db->query( "SELECT name, onserver FROM " . PREFIX . "_static_files WHERE static_id = '$id'" );
    
    
    	while ( $row = $db->get_row() ) {
    
    
    		if( $row['onserver'] ) {
    
    
    			@unlink( ROOT_DIR . "/uploads/files/" . $row['onserver'] );
    
    
    		} else {
    
    
    			$url_image = explode( "/", $row['name'] );
    
    
    			if( count( $url_image ) == 2 ) {
    
    
    				$folder_prefix = $url_image[0] . "/";
    
    				$dataimages = $url_image[1];
    
    
    			} else {
    
    
    				$folder_prefix = "";
    
    				$dataimages = $url_image[0];
    
    
    			}
    
    
    			@unlink( ROOT_DIR . "/uploads/posts/" . $folder_prefix . $dataimages );
    
    			@unlink( ROOT_DIR . "/uploads/posts/" . $folder_prefix . "thumbs/" . $dataimages );
    
    		}
    
    
    	}
    
    
    	$db->query( "DELETE FROM " . PREFIX . "_static_files WHERE static_id = '$id'" );
    
    
    	msg( "info", $lang['static_del'], $lang['static_del_1'], "$PHP_SELF?mod=static" );
    
    
    }
    
    ?>
    
    

  14. предлогаю:

    - добавить в Настройки Групп пользователей во вкладку Админпанель возможность разрешать\запрещать редактировать Правила на сайте;

    - в админку добавить пункт Язык сайта и вынести туда содержание /language/Russian, что бы его можно было редактировать из админки + возможность связывать эти файлы с шаблонами для многоязычных сайтов;

    - так же куда-нибудь добавить возможность customising'a (вкл\выкл) вывода вкладок при редактировании (добавлении) новости Новость, Опрос, Дополнительно, Доступ для разных групп юзеров;

    - было бы здорово расширить форму обратной связи и вынести эту функцию в админку + возможность создавать и выводить разные формы обратной связи в разных местах на сайте (например: пожаловаться на публикацию и т.п.);

    - продумать как можно вставлять код из Google Maps например в статические страницы;

    - внедрить какой-нибудь модуль статуса ICQ, Skype или что-то в этом роде;

    - можно упростить внешний вид админки, что бы все было на одной странице (я ничего против сущействующего стиля не имею)

  15. Предлогаю добавить редактор (или лучше дать возможность выбора администратору дабавить\нет) при создании доп. полей.

    3135ba64a4b9.jpg

    Это будет очень удобно для владельцев сайтов поддерживающих несколько языков.

    Так же просьба реализовать возможность добавления дополнительных полей в статические страницы.

  16. При массовом редактировании новостей добавить в выпадающее меню пункт Срок действия, для возможности установки массового удаления или отправки на модерацию новостей поистечении определенного времени.

    dd189fa38730.jpg

    Такой пункт уже есть для каждой отдельной новости, было бы удобно, если бы была возможность применять его в массовом порядке.

  17. 1. Возможность блокировать отдельных пользователей как спамеров

    (В настройках скрипта есть возможность блокировать спам-программы, вслучае если я не хочу блокировать рассылку целиком, предлогаю ввести возможность блокировать отдельных юзеров как спамеров)

    Такая возможность есть давно. Посмотрите на свой скриншот, видите иконку пользователя? Нажмите на нее и запретите добавление новостей, ну или комментариев или того и другого.

    Да, я знаю что есть возможность запрещать публикацию новостей и комментариев для конкретных юзеров. Я имел ввиду другое:

    я не хочу блокировать спам-програмы целиком и полностью, а я хочу заблокировать спам-рассылку для конкретного посетителя что бы с его аккаунта можно было добавлять новости только с самого сайта /addnews.html, но если для этого именно этот юзер попытается воспользоваться ПО для рассылки новостей - ему это будет запрещено.

  18. Предлагаю:

    1. Возможность блокировать отдельных пользователей как спамеров

    (В настройках скрипта есть возможность блокировать спам-программы, вслучае если я не хочу блокировать рассылку целиком, предлогаю ввести возможность блокировать отдельных юзеров как спамеров)

    2. При нажатии на "Найти похожие новости" дать возможность выбора где именно открывать новость: fullstory на сайте или в режиме редактирования в админке

    92509dc7776e.jpg

×
×
  • Создать...