• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Подскажите по структуре файла модуля

danneo

Честный
Регистрация
13 Ноя 2007
Сообщения
1.526
Реакции
121
Проблема не простоая. Мало того, что структуру DLE знаю очень плохо, дак еще и не профи в программировании. Мало практики. Взялся вроде за простое дело, а нужно знать от и до.
Поэтому, если кому не лень потратить время и вникнуть в суть дела, помочь, где-то разжевать, буду очень благодарен.

Пытаюсь разработать модуль для ДЛЕ. Хочу сделать модуль фирм. Проблема в создании структуры файлов модуля и структуры кода в файле.
Насколько я понял, в ДЛЕ предусмотрены отдельные файлы для категорий, новости, поиска.
Если бы это был простенький каталог, то проблем то и не было. По аналогии с новостями. А мне нужно сделать с городами (странами, регионами) + категории. Города и категории по одной таблице в БД, через вложения (parentid). И для этой работы сделать один файл, например, category.php.
На фирму планирую отдельный файл.

Нужно чтобы пользователь мог начать ходить с главной сайта по городам, а также и по категории. И самое главное, нужно сделать ЧПУ url, чтобы примерно такой: site.ru/city/category/sub_category/sub_sub_category/
А потом перенести города на субдомены, так: city.site.ru/category/sub_category/sub_sub_category/
Проблемы такие:
1. как лучше сделать структуру файлов. На категории и города один файл или разные?
2. не знаю как сделать, структуру внутри файла.
Например, через switch-case, но как завязать на город и категорию одновременно, не знаю.
Дублировать в каждом case еще одну сортировку по городу неправильно, мне кажется.
Как вариант, думаю, чтобы сделать через присутствие и отсутствии переменной $city. Она просто добавляется в запрос SELECT * WHERE city='$city'. Если ее нет, то просто без этого доп.условия WHERE, просто по выбранной категории.
3. Но тогда, если пользователь сначала выбирает категорию, а города нет. Как будет формироваться url в этом случае.
4. как формируется url с ЧПУ, например, index.php?do=firm&view=cat&cat=5. Переменная cat передается в переменную, а она преобразует, формируя url, используя рекурсию. Правильно? Или используются другие методы?
и какие url адреса без ЧПУ (с get параметрами) лучше сформировать для:
- сайт.ру/модуль/страна (либо регион, город)
- сайт.ру/модуль/категория/подкатегория/подподкатегория
- сайт.ру/модуль/город/категория/подкатегория
- сайт.ру/модуль/фирма (а потом: фирма.сайт.ру)

В общем, каша в голове...

Я это дело вижу так, хотя и не знаю, правильно ли это, и будет ли работать, будет ли возможность развития...
url такой: index.php?do=firm&city=5&cat=5
Параметры передаются в функцию города и категории. Город всегда один каталог /moscow/
А категория преобразуется функцией рекурсивно в /cat/sub_cat/sub_sub_cat/
Если $city не выбрано, то она равна "all": index.php?do=firm&view=cat&cityid=all&cat=5
Точно также с $cat: index.php?do=firm&city=5&cat=all
А структуру файла firm.php примерно такая:

switch($view){
case "cat":
-----
case "all":
-----
}
Но как учесть город, не знаю...
 
Ключевой вопрос - а зачем 1 ДЛЕ на всё это? Конечно, можно переписать ДЛЕ, но куда проще сделать на каждый поддомен свой ДЛЕ и объединить базы пользователей (1 строчка в конфиге БД). Если вариант подходит - велком в документацию.
 
Ключевой вопрос - а зачем 1 ДЛЕ на всё это? Конечно, можно переписать ДЛЕ, но куда проще сделать на каждый поддомен свой ДЛЕ и объединить базы пользователей (1 строчка в конфиге БД). Если вариант подходит - велком в документацию.
а почему нужно переписывать ДЛЕ? Я же про отдельный модуль... или я чего-то не знаю?
Ставить на поддомены ДЛЕ не вариант, поддомены должны быть виртуальными, через htaccess.
 
а почему нужно переписывать ДЛЕ?
Какой модуль? Из твоего описания, я понял, что требуется выводить новости только отдельного города - а это 99% функционала ДЛЕ.

То, что ты хочешь, называется мультисайтовый движок. Такое есть у WordPress, но у DLE такого нет. Чтобы это добавить - нужно прилично кода поправить. Здесь одним WHERE `city` = 'moscow' не обойтись. Надо разделять файлы настроек, вносить изменения в дизайн и ещё кучу всего делать.

Именно по этой причине и советую поставить несколько DLE и объединить БД - это самый быстрый и простой вариант.

Кроме того, вариант без поддомена - это должен быть город по-умолчанию, а не все сразу. Иначе штраф от поисковика за дубль контента гарантирован. И вообще сама идея с точки зрения оптимизации провальная.
 
Какой модуль? Из твоего описания, я понял, что требуется выводить новости только отдельного города - а это 99% функционала ДЛЕ.
текущий функционал ДЛЕ вывода новостей модернизировать не планировалось. Все хотел сделать на модуле. Каталог фирм все таки. Так разве нереально?

Кроме того, вариант без поддомена - это должен быть город по-умолчанию, а не все сразу. Иначе штраф от поисковика за дубль контента гарантирован. И вообще сама идея с точки зрения оптимизации провальная.
доски же не банятся. С основного домена на них стоят ссылки на поддомены.
 
доски же не банятся. С основного домена на них стоят ссылки на поддомены.
О бане никто не говорил. Речь идёт о понижении в выдаче за дублирования контента.
текущий функционал ДЛЕ вывода новостей модернизировать не планировалось. Все хотел сделать на модуле. Каталог фирм все таки. Так разве нереально?
Ну в таком случае, сам модуль подключается в engine/engine.php:
PHP:
	case "modul" :
		include ENGINE_DIR . '/modules/modul.php';
		break;
Всё остальное уже делается в самом modul.php..

Что касаемо поддержки нескольких поддоменов, это нужно писать правила для ЧПУ в .htaccess. Никакого case в самом модуле Вам не нужен, просто выводите объявления по модулю. Единственное что Вам придётся продумать - контроль существования города. Если такого города нет - делаете запрос без выборки по городу, но это дублирование контента.

Чем ещё подсказать тогда не знаю, в первом посту всё и так не плохо расписано.

1. как лучше сделать структуру файлов. На категории и города один файл или разные?
Как Вам удобно - других предложений нет =)
2. не знаю как сделать, структуру внутри файла.
Просто выборка по город + категория
3. Но тогда, если пользователь сначала выбирает категорию, а города нет. Как будет формироваться url в этом случае.
В качестве города подставлять all.
4. как формируется url с ЧПУ, например, index.php?do=firm&view=cat&cat=5. Переменная cat передается в переменную, а она преобразует, формируя url, используя рекурсию. Правильно? Или используются другие методы?
Посмотрите как сделано в ДЛЕ - делайте по аналогии. Функция не такая сложная на самом деле.
Сама ЧПУ простая:
/all/index.html - главная
/moscow/index.html - главная по Москве
/all/cat/cat/cat/index.html - категория
/moscow/cat/cat/cat/index.html - категория по Москве

Вот и всё.
 
Последнее редактирование:
Ах, да, забыл, что в ЧПУ должна быть точка входа... /modul/all/cat/index.html Т.е. ДЛЕ надо понять, что надо подключать модуль, а не просто выводить новости =)
 
Назад
Сверху