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

Рекомендованные сообщения

dlehack, вы лучше ответьте Александру Медведеву, о том, как реализовывать вывод блоков на отдельной странице.

И возможно ли, например, каким-нибудь образом с помощью вашего хака без лишних движений установить тот же DLE Forum?

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

P.S. в любой модуль расчитанный на стандартную установку прийдется вносить изменения.

Ссылка на сообщение
Поделиться на других сайтах

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

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

Всё остальное - как понадобится. По сути это тоже самое, что и API в движке, только поддержка более официальная, так как API интегрируется в движок.

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

От себя могу предложить получение данных в виде:

XML, CVS, переменные (если include).

Обсуждаем.

Ссылка на сообщение
Поделиться на других сайтах

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

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

Всё остальное - как понадобится. По сути это тоже самое, что и API в движке, только поддержка более официальная, так как API интегрируется в движок.

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

От себя могу предложить получение данных в виде:

XML, CVS, переменные (если include).

Обсуждаем.

Я придерживаюсь мнения что разработку новых модулей лучше вести с использованием полноценного API поэтому и писал о поддержке в хаке для DLE8 вашего API, а вот для безболезненного перевода уже существующих модулей и предназначено то своего рода API которое вы могли наблюдать в файле init.php, так как в основном модули написаные под стандартную установку используют именно эти переменные. Вот собственно моя позиция.

По поводу популяризации помимо включения в дистрибутив необходимо написание (переделки) самых востребованных модулей под хак и API но как понимаете один я такой объем работ не потяну времени столько нету.

Поэтому приглашаю остальных разработчиков писать или переписывать свои модули в соответствии с подходом описанным мной выше (хак + API) это позволит упростить вам разработку модулей а вашим пользователям их использование.

Соответственно все вопросы по работе хака можете задавать мне а по работе API IT-Security в соответствующей теме.

Ссылка на сообщение
Поделиться на других сайтах

дело в том что я отказался от использования icq в пользу Jabber`a

поэтому как альтернативу icq предлагаю почту либо jabber адрес один nash300@ya.ru

Ссылка на сообщение
Поделиться на других сайтах

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

Основной вопрос про DLE Forum в следующем. Если вывод большинства блоков на отдельную страницу можно реализовать через статические страницы вида site.com/module_full.html, то как быть с форумом? Ведь в форуме есть не просто страница site.com/forum/, но еще и site.com/forum/topic5/ или site.com/forum/topic5/page2/.

По поводу популяризации помимо включения в дистрибутив необходимо написание (переделки) самых востребованных модулей под хак и API но как понимаете один я такой объем работ не потяну времени столько нету.

Поэтому приглашаю остальных разработчиков писать или переписывать свои модули в соответствии с подходом описанным мной выше (хак + API) это позволит упростить вам разработку модулей а вашим пользователям их использование.

Тут все же не стоит бежать впереди паравоза. Все должно быть последовательно. К сожалению, на данный момент, ПОДАВЛЯЮЩЕЕ большинство фри-лансеров не знает о существовании проекта DLE-HACK.RU. Данную же тему просматривает также совсем не большое количество народа. Поэтому сначала вам двоим надо определиться с концепцией взаимодействия DLEHACK + API, затем подготовить соответствующие DLEHACK и API, и тогда уже анонсировать их официально. И именно после официального релиза все услышат об этом, идея станет популярной, создатели модулей поймут, что за этим будущее, и будут писать свои модули именно под связку API + DLE HACK.

В любом случае - УРА! Дело начинает сдвигаться с мертвой точки! :)

Ссылка на сообщение
Поделиться на других сайтах

идея станет популярной, создатели модулей поймут, что за этим будущее

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

ПОДАВЛЯЮЩЕЕ большинство фри-лансеров не знает о существовании проекта DLE-HACK.RU

честно говоря скорее создаётся впечатление, что раскручивают марку, нежели продукт. Тут я судить не буду - не знаю. Но вообще по сути - на сайте ничего особого нет. Хак на пару строчек, внедрение которого якобы сулит раскрутку сайту DLE-HACK.RU, а следовательно помощь dle..... ну какая-то сомнительная помощь на самом деле. Не цепляйте одно к другому.

Ссылка на сообщение
Поделиться на других сайтах

ребята, вы прям сама наивность))) Максимум - ваш "апи" будут передирать другие разработчики, говоря клиентам, что они полностью разработали модуль)))))) Сейчас реаль такова, что каждый предпочитает бится в одиночку, зарабатывая больше денег и меньше тратя времени (и плевать хотели на порядочность и взаимопомощь).
Честно говоря, я очень смутно и очень приблизительно понимаю, что такое АПИ. Дле-Хак я тоже понимаю только на уровне "как это работает". Но я четко знаю основное, что мне нужно. Как человеку очень далекому от программирования, мне нужен простой и удобный способ установки модулей в ДЛЕ. А также простое и удобное обновление движка DLE, в котором уже установлены модули. Всё. Дле-Хак + АПИ, как я понял, помогут создать эти возможности для меня.

честно говоря скорее создаётся впечатление, что раскручивают марку, нежели продукт. Тут я судить не буду - не знаю. Но вообще по сути - на сайте ничего особого нет. Хак на пару строчек, внедрение которого якобы сулит раскрутку сайту DLE-HACK.RU, а следовательно помощь dle..... ну какая-то сомнительная помощь на самом деле. Не цепляйте одно к другому.
Я лишь ратую за официальную поддержку проекта, чтобы под него писалось больше необходимых мне модулей. А "хак на пару строчек" уж точно не сулит раскрутку сайту. А раскрутка сайта уж тем более не сулит "помощь dle....." Мы тут о другом, прочитайте тему внимательнее.

Al-x, ваше мнение мы услышали. Но, если можно, добавьте в него чуть больше конкретики - свои предложения по "способам простой установки модулей". Здесь обсуждается именно этот вопрос. Но одно могу сказать точно - почти за год работы с ДЛЕ, это первое предложение относительно удобной установки модулей в движок, посему за его внедрение и борюсь. Спасибо.

Ссылка на сообщение
Поделиться на других сайтах

Но, если можно, добавьте в него чуть больше конкретики - свои предложения по "способам простой установки модулей". Здесь обсуждается именно этот вопрос.

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

Я лишь ратую за официальную поддержку проекта, чтобы под него писалось больше необходимых мне модулей

поверьте, если ваш способ и система так хороши, как тут кричат - это заметят и оценят безовсякой поддержки. Лучще бы вы модулями занимались или самим хаком (который кстати ни лишён недостатков), а не обсуждениями темы)

ps конкретика вечером, не успеваю уже)

Ссылка на сообщение
Поделиться на других сайтах

поверьте, если ваш способ и система так хороши, как тут кричат - это заметят и оценят безовсякой поддержки. Лучще бы вы модулями занимались или самим хаком (который кстати ни лишён недостатков), а не обсуждениями темы)

куда же без обсуждения вы сами говорите ни лишён недостатков ради этого тема и существует если есть недостатки или вопрсы задавайте или с вашей стороны это пустые слова? какие конкретно недостатки вы видите? говорите будем стараться их устранять

поверьте, если ваш способ и система так хороши, как тут кричат - это заметят и оценят безовсякой поддержки. Лучще бы вы модулями занимались или самим хаком

по вашему я один должен этим заниматься? если вам это не нужно или вы привыкли пользоваться готовым это не мешает остальным кто пожелает помочь мне в развитиии хака а IT-Security в развитии его API.

Основной вопрос про DLE Forum в следующем. Если вывод большинства блоков на отдельную страницу можно реализовать через статические страницы вида site.com/module_full.html, то как быть с форумом? Ведь в форуме есть не просто страница site.com/forum/, но еще и site.com/forum/topic5/ или site.com/forum/topic5/page2/.

скрипту(DLE) нет разницы какая строка запроса site.com/forum или site.com/forum/topic5/ для него они все вида site.com/index.php?param1=p1&param2=p2... все решается посредством .htaccess

Изменено пользователем dlehack
Ссылка на сообщение
Поделиться на других сайтах

По поводу форума несколько слов.

По моему форум вообще не должен вносить никаких изменений в оригинальные файлы DLE, просто закачиваем его в папку, например, forum, устанавливаем и всё :)

Ссылка на сообщение
Поделиться на других сайтах
все решается посредством .htaccess
Так я об этом и спрашивал - можно ли с помощью функционала dle-hack выводить пути вида index.php?param1=1&param2=2 ? А то из примеров на сайте я понял, что модули на отдельную страницу можно выводить через статические страницы. В случае же с форумом, на мой обывательский взгляд, все выглядит чуть сложнее.
Ссылка на сообщение
Поделиться на других сайтах

все решается посредством .htaccess
Так я об этом и спрашивал - можно ли с помощью функционала dle-hack выводить пути вида index.php?param1=1&param2=2 ? А то из примеров на сайте я понял, что модули на отдельную страницу можно выводить через статические страницы. В случае же с форумом, на мой обывательский взгляд, все выглядит чуть сложнее.

смысл усложнять себе жизнь и создавать такое количество стат страниц если можно создать одну и подключить на ней форум а дальше пусть он сам средствами htaccess работает

По поводу форума несколько слов.

По моему форум вообще не должен вносить никаких изменений в оригинальные файлы DLE, просто закачиваем его в папку, например, forum, устанавливаем и всё

он и не будет вмешиваться в исходные коды

Изменено пользователем dlehack
Ссылка на сообщение
Поделиться на других сайтах

И все-таки я не ошибся! После небольшой перепалки все, так сказать, идет своим путем :)

IT-Security и dlehack, ребята, вы молодцы.

Идеальная картина-мечта:

заходим в админку, вкладка "Установка модулей", показываем скрипту скачаный архив или линк на таковой - скажем, архив с файлами форума от Al-x, кнопка "Установить модуль" и ВСЕ.

Дальше - настраиваем и работаем, а не занимаемся копанием в файлах скрипта.

За такую возможность можно брать денежку :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

Для установки форума данный хак вообще не нужен. Прислушайтесь к Александр Медведев. Я тоже сначала не верил, но попробовал. Это крайне удобно - скрипт по функционалу не уменьшается, а файлы дле вообще не трогает (и не нужны никакие автоинсталяторы или хаки).

какие конкретно недостатки вы видите? говорите будем стараться их устранять

1. скрипт не решает проблем автоматической установки модулей и их совместимости с новыми версиями движка. С использованием вашего скрипта не решается проблема совместимости модулей для новых версий движка.

2. Мы находимся в изолированной области -> значит нужно подключить много глобальных переменных. Файл init.php не решает этой проблемы, т.к. фактически не все переменные могут существовать.

3. файл ajax.php подключает много лишнего. Как правило - ajax модули этого не требуют.

4. Использование хака обязательно влечёт создание нового объекта dle_template, т.к. старый занят обработкой предыдущего шаблона. У новичков, при создании модулей могут возникнуть проблемы с этим.

5. не удачно испольована идея буферизации. echo занимает достаточно много времени.

Пункты 2-5 идут в разрез с заявлением о том, что скрипт будет работать быстрее с помощью вашего хака. Получается как раз наоборот.

Если пункты 2-5 не супер значительны (хотя опять же - кому как), то пункт 1 важен. Вы только пользователей больше запутываете, что это поможет решить проблемы установки модулей.

вы привыкли пользоваться готовым

тут вы ошибаетесь. Как раз-таки я пишу всё сам и у меня много что написано, я не привык расчитывать на других, хотя и бывали споры с Целсофтом, что именно он должен заниматся этим, а не я. Ладно, данный вопрос мы не затрагиваем.

по вашему я один должен этим заниматься?

В том то и дело, что да. Вы конечно можете собрать команду, или организовать работу с приходящими-уходящими программистами, вам могут даже подкидывать исходники для адаптации, но по большому счёту вы сами всё будете делать. Просто вы сейчас пытаетесь доказать Целсофту, что этим должен заниматься он. В любом качестве - хоть информационную поддержку, хоть техническую. А человек по большому счёту не идёт на это. Вы в итоге бьётесь над тем, что "окажите нам поддержку, мы поможем вам", а это замкнутый круг. И я не думаю, что тут надо давить. Нужно более граммотное решение.

по вашему я один должен этим заниматься?

В данной теме я вижу минимум 4 программистов, способных написать не только пару классов, но и целый движок. Вот вам только IT-Security предложил обсудить. Вот человек, который не парился над пиаром своих сайтов или проталкиванием абстрактных идей, а создал новую вещь для дле. Работайте в команде, напишите к движку FrameWork, например. А вы как-то подняли шум из-за одного хака, который сулит продолжение... Судя по этим двум страницам и ещё стольким же удалённым - он сулит много шуму :D

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

Ссылка на сообщение
Поделиться на других сайтах

1. скрипт не решает проблем автоматической установки модулей и их совместимости с новыми версиями движка. С использованием вашего скрипта не решается проблема совместимости модулей для новых версий движка.

2. Мы находимся в изолированной области -> значит нужно подключить много глобальных переменных. Файл init.php не решает этой проблемы, т.к. фактически не все переменные могут существовать.

3. файл ajax.php подключает много лишнего. Как правило - ajax модули этого не требуют.

4. Использование хака обязательно влечёт создание нового объекта dle_template, т.к. старый занят обработкой предыдущего шаблона. У новичков, при создании модулей могут возникнуть проблемы с этим.

5. не удачно испольована идея буферизации. echo занимает достаточно много времени.

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

Если вы пишете модуль потрудитесь создайте для него install пусть он сам копирует свои файлы туда куда надо пусть сам создает таблицы в БД чем не автоматическая установка(все это очень даже реализуемо) а теперь вы попробуйте написать инсталятор для стандартной установки когда этому инсталятору прийдется лазить в исходный код отслеживать изменения внесенные до этого другими модулями (на мой взгляд это не реализуемо)

2. Вот для этого необходимо расширить функционал API которое пишет IT-Security

т.к. фактически не все переменные могут существовать.
в init.php собраны основные переменные нужные для работы модулей они все будут определены на момент подключения модуля остальные переменные(не основные) модуль должен получать сам. Вполне возможно я какую-то переменную и упустил но если потребуется список будет дополнен после чего изменятся уже не будет.

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

4. здесь вы не правы потому как использовать dle_template нет необходимости(на ваше усмотрение) в хак встроен свой шаблонизатор на нативных шаблонах более гибкий, функциональный и быстрый единственный минус это то что не все верстальщики с PHP знакомы. Про безопасность писать не надо (типа вот если ктото получит доступ к шаблонам) если ктото получит доступ к шаблонам достаточно одного стандартного шаблона login.tpl чтобы положить сайт, поэтому не давайте ни кому доступа к своим шаблонам.

5. если вы пишите модуль то время выполнения echo будет мало по сравнению с временем работы самого модуля если же вносите небольшие изменения можно воспользоваться плагинами (пока не анонсированы) они не используют echo.

Единственная не решенная проблема это подключение модулей в админку но и то не решена лишь потому что на данный момент вижу 3 способа решения и не могу выбрать лучший.

Просто вы сейчас пытаетесь доказать Целсофту, что этим должен заниматься он.
Целсофту я ничего не доказывал и ни о чем не просил можете у него самого узнать. Я лишь считаю что другие разработчики модулей также могли бы писать модули пользуясь единым стандартом тогда всем бы жилось легче. Какой стандарт это будет не важно главное что бы он позволял легко подключать сторонние модули не вмешиваясь в код. Я вам предложил свой вариант поддержка модулей, плагинов, и BB-кодов. Также просил предлагать свои варианты но за пол года так ни одного и не увидел сколько ещё ждать. Вот и опубликовал здесь этот пост пора уже. Изменено пользователем dlehack
Ссылка на сообщение
Поделиться на других сайтах

Ну что ж, пора и мне высказаться в этой теме.

Вы спорите о разных вещах, как в свое время мы спорили с dlehack. Модуль который он предлагает этот модуль не предназначен для обеспечения совместимости, он предназначен для быстрого подключения сторонних хаков. Это не замена API, и не его расширение. Он предназначен для реализации другой задачи, а именно чтобы при установке мода не трогать файлы оригинального скрипта, чтобы при обновлении на новую версию скрипта, не ставить моды повторно. Это не значит что моды будут совместимы, для новой версии, это значит лишь что после обновления на новую версию, его не придется ставить повторно, будет он работать на новой версии или нет, это уже второй вопрос. И именно для решения второго вопроса предназначен уже API, который в скрипте.

Плюс этого мода в том, что позволяет подключать моды. Но у него есть и минусы:

1. Он не безопасен, потому что позволяет подключать шеллы. Объясняю, в случае если кто то получит доступ в админпанель, то дальше взлом всего сервера дело пяти минут. Как это делается, очень легко. Заливается файл .php через админпанель, разрешив данное расширение в настройках сервера, но запустить этот файл напрямую нельзя, т.к. через .htaccess прямой доступ к файлам к папке запрещен, далее редактируется шаблон, и подключается через данный мод, файл шелла, и он запустится, т.к. .htaccess уже не действует при внутреннем подключении файлов. Выше было написано что в шаблонах есть login.tpl, который содержит PHP, но этот файл нельзя отредактировать в админпанели и шел через него подключить нельзя.

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

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

Данная система будет реализована в новой версии скрипта, для этого будет расширен функционал стандартного тега {include file="my_block.tpl"} который подключает шаблоны, он будет подключать и файлы например {include file="engine/modules/mod.php?name=test&param2=test2"} но при этом при реализации в дистрибутиве, данная возможность будет лишена указанных выше недостатков, подключение из папок доступных для записи будет исключено, а также подключение будет реализовано так что его можно будет ставить в определенный раздел сайта и подключатся оно будет только там где предусмотрено логикой шаблона.

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

Ссылка на сообщение
Поделиться на других сайтах

Данная система будет реализована в новой версии скрипта, для этого будет расширен функционал стандартного тега {include file="my_block.tpl"} который подключает шаблоны, он будет подключать и файлы например {include file="engine/modules/mod.php?name=test&param2=test2"} но при этом при реализации в дистрибутиве, данная возможность будет лишена указанных выше недостатков, подключение из папок доступных для записи будет исключено, а также подключение будет реализовано так что его можно будет ставить в определенный раздел сайта и подключатся оно будет только там где предусмотрено логикой шаблона.

Вот это новость - так новость! Ура! Спасибо!

Ссылка на сообщение
Поделиться на других сайтах

Внесу и я свои комментарии

1. Он не безопасен, потому что позволяет подключать шеллы. Объясняю, в случае если кто то получит доступ в админпанель, то дальше взлом всего сервера дело пяти минут. Как это делается, очень легко. Заливается файл .php через админпанель, разрешив данное расширение в настройках сервера, но запустить этот файл напрямую нельзя, т.к. через .htaccess прямой доступ к файлам к папке запрещен, далее редактируется шаблон, и подключается через данный мод, файл шелла, и он запустится, т.к. .htaccess уже не действует при внутреннем подключении файлов. Выше было написано что в шаблонах есть login.tpl, который содержит PHP, но этот файл нельзя отредактировать в админпанели и шел через него подключить нельзя.

модули могут подключаться только из папки snippets поэтому достаточно запретить загрузку файлов в эту папку и ни каких проблем с безопасностью. нативные шаблоны также не доступны для редактирования через админку ну а если злоумышленник получит доступ по FTP то это не вина DLE и не вина хака.

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

этой проблемы также нет достаточно посмотреть на код

function load_template($tpl_name, $istext=false) 

{

	$time_before = $this->get_real_time();

	if(!$istext)

	{

		if ($tpl_name == '' || !file_exists($this->dir . DIRECTORY_SEPARATOR . $tpl_name)) { die ("Невозможно загрузить шаблон: ". $tpl_name); return false;}

		$this->template = file_get_contents($this->dir . DIRECTORY_SEPARATOR . $tpl_name);

	}

	else $this->template = $tpl_name;

	$this->copy_template = $this->template;


	global $do, $category_id, $allow_active_news, $config;

	if ($allow_active_news AND $config['allow_change_sort'] AND !$config['ajax'])

	{

		$this->set('[sort]', "" );

		$this->set('{sort}', news_sort( $do ) );

		$this->set('[/sort]', "" );


	} else $this->set_block("'\\[sort\\](.*?)\\[/sort\\]'si","");


	#if ( strpos($this->copy_template,	"[snippet=")		!== false ) $this->copy_template = preg_replace( "#\\[snippet=['\"](.+?)['\"] param=['\"](.*?)['\"]\\](.*?)\\[/snippet\\]#ies","\$this->load_snippet('\${1}','\\2','\\3')", $this->copy_template);

	#if ( strpos($this->copy_template,	"[aviable=")		!== false )	$this->copy_template = preg_replace( "#\\[aviable=(.+?)\\](.*?)\\[/aviable\\]#ies","check_module('\\1', '\\2', '{$do}')", $this->copy_template);

	#if ( strpos($this->copy_template,	"[not-aviable=")	!== false )	$this->copy_template = preg_replace( "#\\[not-aviable=(.+?)\\](.*?)\\[/not-aviable\\]#ies","check_module('\\1', '\\2', '{$do}', false)", $this->copy_template);

	#if ( strpos($this->copy_template,	"[group=")			!== false )	$this->copy_template = preg_replace( "#\\[group=(.+?)\\](.*?)\\[/group\\]#ies","check_group('\\1', '\\2')", $this->copy_template);

	#if ( strpos($this->copy_template,	"[not-group=")		!== false )	$this->copy_template = preg_replace( "#\\[not-group=(.+?)\\](.*?)\\[/not-group\\]#ies","check_group('\\1', '\\2', false)", $this->copy_template);

	#if ( strpos($this->copy_template,	"[category=")		!== false )	$this->copy_template = preg_replace( "#\\[category=(.+?)\\](.*?)\\[/category\\]#ies","check_category('\\1', '\\2', '{$category_id}')", $this->copy_template);

	#if ( strpos($this->copy_template,	"[not-category=")	!== false )	$this->copy_template = preg_replace( "#\\[not-category=(.+?)\\](.*?)\\[/not-category\\]#ies","check_category('\\1', '\\2', '{$category_id}', false)", $this->copy_template);

	#if ( strpos($this->copy_template,	"{custom")			!== false )	$this->copy_template = preg_replace( "#\\{custom category=['\"](.+?)['\"] template=['\"](.+?)['\"] aviable=['\"](.+?)['\"] from=['\"](.+?)['\"] limit=['\"](.+?)['\"] cache=['\"](.+?)['\"]\\}#ies", "custom_print('\\1', '\\2', '\\3', '\\4', '\\5', '\\6', '{$do}')", $this->copy_template );

	if ( strpos($this->copy_template,	"{include file=")	!== false )	$this->copy_template = preg_replace( "#\\{include file=['\"](.+?)['\"]\\}#ies","\$this->sub_load_template('\\1')", $this->copy_template);

	if ( strpos($this->copy_template,	"[snippet=")		!== false ) $this->copy_template = preg_replace( "#\\[snippet=['\"](.+?)['\"] param=['\"](.*?)['\"]\\](.*?)\\[/snippet\\]#ies","\$this->load_snippet('\${1}','\\2','\\3')", $this->copy_template);

	if ( strpos($this->copy_template,	"{include snippet=")!== false )	$this->copy_template = preg_replace( "#\\{include snippet=['\"](.+?)['\"] param=['\"](.*?)['\"]\\}#ies","\$this->load_snippet('\\1','\\2')", $this->copy_template);

	$this->template_parse_time += $this->get_real_time() - $time_before;

	return true;

}

смотрите закомментированые строки изначально все работало но при тестировании возникли проблемы с предпросмотром новостей(только с предпросмотром уже решена) в результате строки были закомментированы и по этой же причине не включались в хак для 8 версии. в финальной версии уже исправлено должна была выйти после решения проблемы с подключением модулей в админке однако в свете развернувшихся событий подожду что предложит Celsoft

новость конечно положительная думаю теперь разработка модулей пойдет быстрее

Изменено пользователем dlehack
Ссылка на сообщение
Поделиться на других сайтах

модули могут подключаться только из папки snippets

этого я не знал, я думал что ваш модуль позволять указывать папку подключения

смотрите закомментированые строки изначально все работало но при тестировании возникли проблемы с предпросмотром новостей

нет не работало бы, только в main.tpl, т.к. aviable в скрипте не обладает глобальной поддержкой, поэтому например при просмотре полной новости, например в шаблоне полной новости небыло бы идентификатора раздела, он появляется только в index.php перед непосредственной обработкой. Но суть не в этом, я говорил лишь основываясь на стандартно существующих на сегодня возможностях скрипта, а не о том что можно сделать и добавить, понятно что сделать можно все.

Ссылка на сообщение
Поделиться на других сайтах

нет не работало бы, только в main.tpl, т.к. aviable в скрипте не обладает глобальной поддержкой, поэтому например при просмотре полной новости, например в шаблоне полной новости небыло бы идентификатора раздела, он появляется только в index.php перед непосредственной обработкой. Но суть не в этом, я говорил лишь основываясь на стандартно существующих на сегодня возможностях скрипта, а не о том что можно сделать и добавить, понятно что сделать можно все.

ну вы посмотрите код в нем как раз и добавлена глобальная поддержка тегов aviable, not-aviable, group, not-group, category, not-category также как и вы реализовали глобальную поддержку тега group в DLE8.

вот еще один комментарий по поводу тега

{include file="engine/modules/mod.php?name=test&param2=test2"}
пусть тег будет не {include snippet...} а {include file...} но ни в коем случае нельзя файлы модулей хранить в перемешку с файлами движка
engine/modules/mod.php?
получите опять проблемы с обновлениями, модули должны лежать в отдельной папке, на одном уровне с папкой engine, тогда файлы движка можно легко сносить и заливать новые, не трогая модули и опят же при таком подходе проще обеспечить безопасность достаточно запретить загрузку в эту папку.

Но суть не в этом, я говорил лишь основываясь на стандартно существующих на сегодня возможностях скрипта, а не о том что можно сделать и добавить, понятно что сделать можно все.

Уже сделано.

Изменено пользователем dlehack
Ссылка на сообщение
Поделиться на других сайтах

ну вы посмотрите код в нем как раз и добавлена глобальная поддержка тегов aviable, not-aviable, group, not-group, category, not-category также как и вы реализовали глобальную поддержку тега group.

я и вижу что проверка идет по $do, переменная $do не получает значения например showfull в шаблоне полной новости, а получает это значение когда только начинает обрабатывать шаблон main.tpl поэтому при вызове шаблона полной новости, логика в шаблоне полной новости выполнена не будет, только в шаблоне main.tpl, и так далее по другим разделам и шаблонам. Для работы логики нужно не только глобально предусмотреть обработку, но и саму логику перенной по которой проверка.

получите опять проблемы с обновлениями, модули должны лежать в отдельной папке, на одном уровне с папкой engine, тогда файлы движка можно легко сносить и заливать новые, не трогая модули и опят же при таком подходе проще обеспечить безопасность достаточно запретить загрузку в эту папку.

обновлятся нужно строго по инструкции по обновлению, инструция запрещяет сносить и заливать повторно. Кто так делает и получает проблемы при обновлении, т.к. заодно убивается и настройки. Инструкция по обновлению четко указавает на перезаливку файлов поверх существующих и никакого удаления. При обновлении по инструкции никакие модули не поврежаются, т.к. в дистрибутиве нет этих модулей, также как и не повреждаются настройки, т.к. в дистрибутиве нет настроек. К тому же при реализации я не собираюсь привязывать подключение к каким то папкам, я буду реализовывать с возможностью указания пути при подключении. Можно будет указать engine/modules/ можно указать другую папку, автор мода сам может решать что и в какой папке ему делать свой мод, это добавляет гибкости.

Ссылка на сообщение
Поделиться на других сайтах

$do будет доступна как глобальная достаточно объявить global $do; ну или $_GET['do'] вроде массивы get и post не уничтожаются если я не ошибаюсь

обновлятся нужно строго по инструкции по обновлению, инструция запрещяет сносить и заливать повторно. Кто так делает и получает проблемы при обновлении, т.к. заодно убивается и настройки. Инструкция по обновлению четко указавает на перезаливку файлов поверх существующих и никакого удаления. При обновлении по инструкции никакие модули не поврежаются, т.к. в дистрибутиве нет этих модулей, также как и не повреждаются настройки, т.к. в дистрибутиве нет настроек. К тому же при реализации я не собираюсь привязывать подключение к каким то папкам, я буду реализовывать с возможностью указания пути при подключении. Можно будет указать engine/modules/ можно указать другую папку, автор мода сам может решать что и в какой папке ему делать свой мод, это добавляет гибкости.

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

Ссылка на сообщение
Поделиться на других сайтах

$do будет доступна как глобальная достаточно объявить global $do; ну или $_GET['do'] вроде массивы get и post не уничтожаются если я не ошибаюсь

ошибаетесь в том что значение showfull не передается в URL браузера, или например параметр саtalog то же не поступает через URL, для этой переменной. Достаточно отключить ЧПУ и посмотреть что передается, а что нет.

а вот беспорядок на серваке вам обеспечен

мне нет, так как какой порядок должен быть решает сам владелец сервера, а не автор скрипта DLE. И гибкость как раз в том, что автор может объеденить свои модули в одну папку. Размещать внутри папки engine или расположить извне, решает сам автор модуля, а не разработчики DLE, в этом и есть гибкость, например глобальные моды, а не в один файл, можно огранизовать в отдельной папке, а для того чтобы антивирус вел ее учет, папку достаточно разместить в папке /engine/. Например в папке engine/mymods/. Только организацию решает автор мода, а не автор скрипта.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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