Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Структура сайта, общий вопрос PHP

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Какую структуру должен иметь нормальный сайт
neatek
Отправлено: 16 Июня, 2011 - 21:06:57
Post Id



Гость


Покинул форум
Сообщений всего: 113
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Хочу спросить у знающих людей, которые писали себе Cms.
Какую структуру должен иметь сайт?

Я просто пишу один сайт(мой первый), и парой бывают трудности с структуризацией.
Как лучше реализовать Модули, Страницы, Шаблон?

Шаблон я инклудами делаю, незнаю насчет данного способа ничего, есть ли другие?
Модули, как сделать например вывод какого либо модуля на любой странице сайта по переменной $_MODULE (к примеру).?
Ну а страницы просто записываю в БД, и по переменной GET открывается страница.

А что вы скажете?

И как указывать путь к файлу, например:
1 Файл лежит в папке www/functions
2 Файл лежит в папке www/includes
Как в 1 файл вставить инклуд второго файла?

(Отредактировано автором: 16 Июня, 2011 - 21:17:32)

 
 Top
grefon
Отправлено: 16 Июня, 2011 - 21:23:28
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Все начинается с листика и ручки. Вы это делали или сразу начали клепать базу?
Я спрашиваю, потому что в первый раз я тоже с полными штанами энтузиазма набросился на клавиатуру и через месяц зверской работы и бессонных ночей понял что пора все стереть и начать с нуля.
А еще лучше выпить пива и трезво оценить потребность в написании собственной cms. Если научиться чему-то - то это одно, а если просто сделать рабочий сайт, то не тратте время.

С шаблонами лучше работать с помощью шаблонизатора, готового (например smarty) или самописного (на этом форуме опытные люди уже выкладывали свои наработки).

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


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
neatek
Отправлено: 16 Июня, 2011 - 21:35:34
Post Id



Гость


Покинул форум
Сообщений всего: 113
Дата рег-ции: Июнь 2011  


Помог: 0 раз(а)




Я с начала сделал шаблон, разбил на части header.php body.php footer.php
заинклудил в index.php и в body.php ставил инклуд модулей(modules.php), где он сам уже понимает какой модуль на какой странице включать... вот так сделал...

p.s Говорят smarty лучше не юзать, хз почему Закатив глазки

Так все таки как проверить шаблон на наличие какого либо иного кода, определенных символов, тегов.
Например [profile] html text [/profile]

(Отредактировано автором: 16 Июня, 2011 - 21:50:46)

 
 Top
White
Отправлено: 16 Июня, 2011 - 22:47:55
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




Писал собственную CMS
Цитата:
научиться чему-то

Структура работает следующим образом:
1.Конфиг
2.Подключение ядра
3.Подключение к бд и работа с бд через специально написанную библиотеку функций подключаемую ядром, чтобы:
а)избежать инъекций,
б)сделать независимым от типа сервера бд
в)упростить SQL
г)писать лог(когда и с какого УРЛ вызывались определенные функции, и контроль колличества обращений к бд за один коннект)
4.Подключение библиотек JS(в конкретном случае mootools и расширения) тоже через ядро, чтобы избежать повторных запросов.
5.Шаблон и все содержимое буфера вывода до самого конца обработки записываются в переменную(буфер), и выводится только в конце обработки скрипта, что делает доступным ее изменение в течении работы.

и т.п.

Цитата:
Так все таки как проверить шаблон на наличие какого либо иного кода, определенных символов, тегов.
Например [profile] html text [/profile]


шаблонизатором


-----
if(time()>1356048000) die();
 
 Top
DiosPA
Отправлено: 17 Июня, 2011 - 02:41:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Янв. 2011  
Откуда: Россия


Помог: 2 раз(а)




White
а собственно как ты делал ограничение по колличеству обращений к бд за один коннект
мне бы пригодилось Улыбка
 
 Top
White
Отправлено: 17 Июня, 2011 - 09:27:50
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




создал синглтон logger;
работу с SQL осуществлял только собственными функциями, то есть например:

mysql_query('SELECT * FROM `table_name`);

заменено функцией

db_readtable('tablename')

внутри каждой подобной функции помимо проверки всех ее параметров с целью исключения возможности sql inject, есть обработчик ошибок и логгер, которые записывают значения в
logger, например $logger->sqllog('Function db_readtable called at '.$_SERVER['REQUEST_URI']), добавляет к str свойству $logger->log новую строку

Цитата:
ограничение по количеству обращений к бд

если добавить в начале каждой функции работы с бд проверку содержимого свойства $logger->log на количество строк, можно узнать, сколько раз происходило обращение к бд, и если оно превышает какой то установленный тобой лимит сделать что-то вроде die('превышен лимит обращений к бд').

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


-----
if(time()>1356048000) die();
 
 Top
DiosPA
Отправлено: 17 Июня, 2011 - 12:22:01
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Янв. 2011  
Откуда: Россия


Помог: 2 раз(а)




у меня тоже через функции всё идёт, точнее через классы ;)
очень удобно со своей системой работать
Единственное я логирование не делал, думаю сделать пока никак времени нету (:

ETX CMS v4.0
Cвой шаблонизатор
Модули
Статистика посещения/просмотры (за 3 дня и графиком за 6 дней)
Админка
Бан лист
Новости
Шаблоны и CSS из БД (опционально)
Смена скина в настройках
Ремонт сайта в настройках
Добавление удаление админов модераторов из админки
Блоки сайта
Файл менеджер (кастрированный Радость тк времени нету)
 
 Top
White
Отправлено: 17 Июня, 2011 - 12:47:24
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




для себя я попытался объединить все то что мне нравится в определенных CMS, получился некий гибрид Joomla+Modx
от Modx:
1.Неограниченная вложенность ссылок.
2.Использование репозиториев для загрузки и установки дополнений(проект разрабатывается под GNU/GPL)
3.Полная масштабируемость (система даже больше CMF)

от Joomla:
1.Простота оформления шаблонов.
2.Похожая система дополнений.
3.Использование Mootools(планирую заменить на JQuery, его функциональности здесь достаточно)

+немного от себя:
1.файловый менеджер,
2.Система бэкапа/переноса сайта
3.Система SimpleAdmin для создания альтернативной админ панели, полностью масштабируемой под пользователя.
4.Модуль seo мониторинга

P.S. Целью написания является "научиться чему-то". На данный момент работает около 60% описанного функционала, так что до выпуска первой альфы еще долго.


-----
if(time()>1356048000) die();
 
 Top
DiosPA
Отправлено: 17 Июня, 2011 - 12:54:13
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Янв. 2011  
Откуда: Россия


Помог: 2 раз(а)




круто Улыбка главное что с 0 и сами пишем остальное не так важно ))
+надо ещё генератор sitemap собрать )))
 
 Top
White
Отправлено: 17 Июня, 2011 - 13:34:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


Помог: 28 раз(а)




Цитата:
+надо ещё генератор sitemap собрать )))

а в чем проблема?


-----
if(time()>1356048000) die();
 
 Top
DiosPA
Отправлено: 17 Июня, 2011 - 14:01:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 180
Дата рег-ции: Янв. 2011  
Откуда: Россия


Помог: 2 раз(а)




во времени Недовольство, огорчение
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB