Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 18
1

Нужен совет или пример

11.06.2013, 06:49. Показов 624. Ответов 4
Метки нет (Все метки)

Решил с целью изучения PHP и mysql начать писть сайт (движок). Сначала конечно книжки читал, и сейчас читаю. Знаний пока не много.
Вот упёрся в проблему реализации модульной системы. Примеров много, но простого и не сильно старого нигде не нашёл.
Задача в том чтоб выводить разный контент (модуль), в одном шаблоне и соответственно генерить меню из существующих модулей.
В корне лежит файл index.php, db.php dir.php и папка modules, в которой одна папка - один модуль.
1) Написал код, который получает массив со списком модулей (папок), и пишет его в mysql, потом из него предполагается генерить меню сайта.

2) Не могу разобраться с тем, как переключать сами модули.
Как я понял, это делается как-то так:
берём массив с модулями и сравниваем переданный параметр, если есть такой модуль, то открываем его, нет выводим ошибку типа нет такой страницы.
Но вот каким образом передавать этот параметр, я как-то не очень понимаю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.06.2013, 06:49
Ответы с готовыми решениями:

WordPrsess или стандарт PHP нужен совет
Что лучше использовать для разработки сайтов стандартный PHP своими руками , либо же WordPress...

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

Собственный Event с Delegate пример(нужен совет)
Начал разбираться в событиях. Хочу написать пример но ничего в голову не приходит, написал простой...

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

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на PHP‌
4
9 / 9 / 4
Регистрация: 11.05.2013
Сообщений: 110
11.06.2013, 07:58 2
Ну давайте.... тут, конечно, куча реализаций, но как это мне видится:

Прежде всего, есть база данных. А в ней - таблица
SQL
1
2
3
4
5
6
CREATE TABLE modules (
module_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
module_name VARCHAR(40) CHARACTER SET utf8 NOT NULL,
module_installed tinyint(1) DEFAULT 0,
module_active tinyint(1) DEFAULT 0
);
Что мы здесь имеем? module_installed - флаг того, установлен ли модуль. Т.е. если в базе есть запись mod_news, а на сервере нет папки mod_news, значит запись липовая и модуль не установлен. Идея понятна?

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

Меню сайта - это уже совсем другая история, к модулям она вообще не должна иметь отношения. Если уж так хочется, можно добавить в таблицу модулей третий флаг "module_in_menu", например, и при выводе меню смотреть таблицу модулей и опираться на этот флаг.

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

В общем это моё личное мнение надеюсь, что помог.
0
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 18
11.06.2013, 11:13  [ТС] 3
Спасибо за ответ, примерно так это я себе и представляю, просто пока для упрощения сделал так:
SQL
1
2
3
4
CREATE TABLE modules (
module_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
module_name VARCHAR(40) CHARACTER SET utf8 NOT NULL,
);
И без проверок вывожу в столбик всё что есть, пока так, для наглядности и упрощения кода.
С отделением модулей от меню сайта идея интересная и как мне думается очень правильная, но это на попозже, когда с базовыми принципами разберусь.
Мне сейчас хочется разобраться с переключением этих модулей, так сказать понять общую концепцию сего действа.
Я так понимаю что обычно переключение делают при помощи $_GET.
В моём случае както так:
PHP
1
2
3
4
5
Генерируем меню вида
http://test/index.php?modules=news
http://test/index.php?modules=about
...
в index.php который в корне сайта лежит.
А дальше в массиве $_GET ловим значение которое туда пришло, после чего если всё ОК (такой модуль есть) выводим его на экран.
Так вот у меня сейчас проблема в том что я непонимаю как создав меню допустим в index.php отобразить его на всех модулях сайта.
Оно вроде как называется единая точка входа или как то так...
Если неправильно размышляю то поправьте меня пождалуйста..
Ну и если ктонибудь объяснит как оно правильно должно работать и пример хотябы на псевдокоде буду очень благодарен.
0
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 18
21.06.2013, 12:39  [ТС] 4
Может кто поделится кодом как это сделать можно?
0
0 / 0 / 0
Регистрация: 07.06.2013
Сообщений: 18
05.07.2013, 12:13  [ТС] 5
Спасибо за ответ, примерно так это я себе и представляю, просто пока для упрощения сделал так:
SQL
1
2
3
4
CREATE TABLE modules (
module_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
module_name VARCHAR(40) CHARACTER SET utf8 NOT NULL,
);
И без проверок вывожу в столбик всё что есть, пока так, для наглядности и упрощения кода.
С отделением модулей от меню сайта идея интересная и как мне думается очень правильная, но это на попозже, когда с базовыми принципами разберусь.
Мне сейчас хочется разобраться с переключением этих модулей, так сказать понять общую концепцию сего действа.
Я так понимаю что обычно переключение делают при помощи $_GET.
В моём случае както так:
PHP
1
2
3
4
5
Генерируем меню вида
http://test/index.php?modules=news
http://test/index.php?modules=about
...
в index.php который в корне сайта лежит.
А дальше в массиве $_GET ловим значение которое туда пришло, после чего если всё ОК (такой модуль есть) выводим его на экран.
С меню, GETом и переключателем разобрался, сделал через SWITCH переключатель в зависимости от запроса. Всё работает, теперь у меня вопрос как проверять что пришло, сейчас есть SWITCH в котором явно прописан список модулей, если в GET пришло что-то нето отшибаем, пишем что всё плохо и странница не найдена...
Вопрос собственно в том, что если модулей будет 100 или 10 000, не рисовать же 10 000 инструкций SWITCH, как реализовать переключение + проверку, при том что в базе есть таблица с содержанием списка модулей, активных\ неактивных.
Подскажите пожалуйста...

Добавлено через 17 часов 10 минут
Никто не поможет? Или я что-то не то спрашиваю....
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2013, 12:13

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Нужен скрипт или совет.
Привет всем! Во первых хочу поблагодарить вас за то что обратили внимание на мою тему ! :) Нужен...

в ступоре, нужен совет или помощь
Есть сайт на битриксе www.trimm.ru ... нужно решить каким способом размещать баннерную рекламу. В...

Нужен совет массивы или MySQL
Помогите пожалуйста правильно спроектировать: Будет таблица данных по недвижимости, там очень...

DBgrid или StringGrid нужен совет
Здравствуйте. Собсно задача у меня такая: Нужно выбирать группу студентов, выбирать самих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.