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

lifestar

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

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

  • Посещение

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

    5

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

  1. Потому что при текущих возможностях скрипта, нужно делать сотни дополнительных проверок и выполнения лишнего кода, чтобы обеспечить полноценную совместимость.
    Какие ещё сотни проверок? Всего одну - поддерживает ли браузер History Api

    При использовании подгрузки на AJAX нельзя использовать подобное сжатие потому JS скрипты не распаковывают контент, им нужно отдавать всегда незапакованный контент
    Здрасти приехали! Уже как пару лет успешно отдаю сжатый контент по ajax и распаковывает его не скрипт, а браузер (который собственно и делает запрос и получает ответ)

    Поддерживаю мысль о том, что использование ajax в любом случае экономит ресурсы и трафик

    • Поддерживаю 1
  2. При нажатии на кнопку подтверждения согласия с правилами на сайте идет переброс на страницу регистрации без доп параметра
    В этом вся негибкость DLE.

    Кстати, по моему мнению, правила на сайте вообще не нужны (лишний клик). Отключай их и выводи в форме регистрации отдельной ссылкой на http://dle-news.ru/dle-rules-page.html (только домен поменяй), с пометкой что регистрируясь на данном сайте пользователь автоматически принимает правила как оферту и всё ок!))

  3. Можно сделать так

    В шаблоне:

    
    <script type="text/javascript" src="{THEME}/js/main.js" class="js"></script>
    
    
    в main.js
    
    var path = $('script.js').attr('src').replace('js/main.js', 'css/');
    
    
    Но для DLE проще такой путь: в шаблон:
    
    <script type="text/javascript">
    
    var theme_path = '{THEME}';
    
    </script>
    
    
    у вот у вас глобальная переменная с адресом папки шаблона. Можно даже ещё проще - вызывать откуда угодно
    
    var path = dle_root+'templates/'+dle_skin
    
    

  4. если поменять адрес регистрации, то все боты отсеятся, проверено уже несколько месяцев не нескольких сайтах с посещалкой до 60к в сутки.

    как менять адрес регистрации - подробно расписывал Zeos

    При всём своём уважении к Zeos, то, что он предложил - полное дерьмо! :)

    Умопомрачительно много изменений! И все в ядре...

    Уже давно пора отучить себя вносить изменения в код DLE, иначе сами себе прибавляете работы при обновлении движка.

    В качестве альтернатичного решения, предложу следующий грязный хак:

    В файл шаблона registration.tpl в самый вверх пишем

    
    {include file="/_dle_ext/connector.php?act=registration"}
    
    
    Путь и имя файла на ваше усмотрение. У меня эта папка в корне с названием _dle_ext, для всяческих экстеншенов. Все изменения только там)) Файл connector.php это реально коннектор между моими классами и методами с DLE. Внутри этого файла switch переменной $act, которая приходит из шаблона. Так вот для вашего случая сойдёт и такой упрощённый код:
    
    if($act == 'registration' && (!isset($_GET['hash']) || $_GET['hash'] != '555')){
    
    die;
    
    }
    
    

    Соответственно делаем ссылку на регистрацию такой: index.php?do=register&hash=555

    При желании, можете генерировать hash динамически, скажем на основе данных посетителя.

    Почему хак грязный? Я не сторонник убивать страницу и показывать белый экран. Этот код я написал только что специально для решения вашей проблемы. Но у вас есть возможность сделать свой экшн, например редирект на страницу 404 или показать другой шаблон (для этого используйся прямо в файле connector.php переменную $this - это и есть класс $tpl (поскольку мы инклудимся напрямую из него)

    Вот и всё, пис! ;)

    • Поддерживаю 2
  5. Разработка шаблона это никак не "небольшой бюджет".

    Советую не морочить себе голову, а пойти на themeforest.net, за 15-20 взять крутой шаб и если не самому, то уже искать чела, который адаптирует его под DLE (а это вам дешевле раза в 3 обойдтся)

  6. Привет!)

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

    2. В правилах в первом посте одна синтаксическая ошибка (лишний пробел): для исправления вместо

    
    rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html/*$" /index.php? subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 last;
    
    
    пишем
    
    rewrite "^/([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html/*$" /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6&seourl=$6 last;
    
    

  7. Вообще, если категорий не много, то проще использовать стандартные теги скрипта - [category=1] Текст только для категории с ID 1 [/category]
    не в количестве категорий дело, а в гибкости.

    Так например, можно для определённой категории убрать боковые блоки или сделать другую шапку. Контролировать все эти изменения в одном файле main.tpl на мой взгляд сложнее. Вот мы с IgorA100 и придумали более эффективный способ)

  8. А как сделать чтобы у подкатегории ( /games/adventure/ ) был тот же шаблон, что и у категории?
    может так?

    $f_ = is_array($cat_info[$cat_info[$category_id]['parentid']]) ? 'main_' . $cat_info[$cat_info[$category_id]['parentid']]['alt_name'] . '.tpl' : 'main_' . $category . '.tpl';
    
    $catTemplate = ($do == 'cat')&(file_exists(TEMPLATE_DIR . '/'. $f_)) ? $f_ : 'main.tpl';
    
    $tpl->load_template ( $catTemplate );

  9. Так неудобно на самом деле. Особенно если меняется вёрстка блоков, да и сами они.

    Тем более при такой схеме DLE загрузит всё файлы, упомянутые в {include file="***"}, а уже потом будет отрезать ненужное.

  10. Обнаружена ещё одна ошибка, на сей раз критическая..

    Функция $dle_api->take_news,

    параметр $cat - категории через запятую

    Если указать всего одну категорию - получим ошибку

    Warning: implode(): Invalid arguments passed

    Исправление

    удалить

    		  if (strpos($cat, ','))
    
    			{
    
    			  $cats = explode(',', $cat);
    
    			}
    
    		  else
    
    			{
    
    			  $cats = $cat;
    
    			}
    Сергей, если ты указал что надо категории через запятую, зачем мудрить с массивом?) далее найти
    $condition = '';
    
    		  if ($this->dle_config['allow_multi_category'] == 1)
    
    			 {
    
    			   $condition = "category regexp '[[:<:]](" . implode ( '|', $cats ) . ")[[:>:]]'";
    
    			 }
    
    		  else
    
    			{
    
    			  $condition = "category IN (" . implode ( ',', $cats ) . ")";
    
    			}
    и заменить на
    			if ($this->dle_config['allow_multi_category'] == 1)
    
    			{
    
    				$condition = 'category regexp "[[:<:]]('.str_replace(',', '|', $cat).')[[:>:]]"';
    
    			}
    
    			else
    
    			{
    
    				$condition = 'category IN ('.$cat.')';
    
    			}

    Да, кстати неплохо было бы предусмотреть желание выбрать новости из категории, включая её подкатегории

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