Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Класс генерации страницы
maximka787  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1258
Пользователь №: 2705
На форуме: 9 лет, 10 месяцев, 18 дней
Карма: 1




Мужики, написал класс простой, для генерации страниц. Типа мини мини CMS.

Посмотрите, стоит ли вообще данная идея реализации, или это полное Г? Наверное это не MVC, но по моему отделил всё как нужно.

class Page
{
private $id;
private $url;
private $name;
private $title;
private $type; //article OR catalog OR product
private $content;

public function __construct(){

$this->url = preg_replace('/[^a-z0-9\]/u', '', $_SERVER['REQUEST_URI']);

/*
Пропускаем эту часть кода, вкратце:
1) разбираем url на массив (explode), отделяя слешами вложенность
2) обращается к БД, получаем основную информацию о странице:
номер, название, заголовок, тип (экшн), контент (HTML)
*/


$this->id = 1;
$this->name = 'Название страницы';
$this->title = 'Заголовок';
$this->type = 'article';
$this->content = 'Текст страницы';

if(empty($this->id)){
header("HTTP/1.0 404 Not Found");
}

}



public function createPage(){

$pattern = array(
'{name}' => $this->name,
'{title}' => $this->title,
'{content}' => $this->content
);

$template = 'template_'.$this->type.'.tpl'; //В файле шаблона есть {заменяемые области}

return strtr(file_get_contents($template), $pattern);

}

}



$site = new Page();

echo $site->createPage();


--------------------
..Работает - не трогай!
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26422
Пользователь №: 21350
На форуме: 7 лет, 3 месяца, 11 дней
Карма: 739




неа, с урлами должен работать отдельный класс - например роутер



Цитата
$this->id = 1;
    $this->name = 'Название страницы';
    $this->title = 'Заголовок';
    $this->type = 'article';
    $this->content = 'Текст страницы';



как они там оказались?


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maximka787  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1258
Пользователь №: 2705
На форуме: 9 лет, 10 месяцев, 18 дней
Карма: 1




Цитата (Игорь_Vasinsky @ 10.03.2017 - 21:48)
как они там оказались?

Был запрос к БД. Запись нашлась и присвоились значения.
В данном примере я вручную прописал. чтоб смысл кода был понятен.
А то что я собрал две разные сущности в одну, это очень плохо?


--------------------
..Работает - не трогай!
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
chee  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Сын полка
Сообщений: 1941
Пользователь №: 38654
На форуме: 3 года, 5 месяцев, 22 дня
Карма: 46






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

Мой блог
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maximka787  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1258
Пользователь №: 2705
На форуме: 9 лет, 10 месяцев, 18 дней
Карма: 1




smile.gif

chee
Понимаешь, я еще кусок кода с подключением произвольных частей сайта (модулей) удалил. Так вот этот код вполне тянет почти любой инет магаз и crm. Ну тока админки нет. Как бы вместо тысяч файлов, всего пару)


--------------------
..Работает - не трогай!
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
maximka787  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1258
Пользователь №: 2705
На форуме: 9 лет, 10 месяцев, 18 дней
Карма: 1




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

Читал про mvc. Там вообще капец, чтоб создать отдельную страницу, ее надо кодить. Бред. При чем еще вложенность деревянная на примерах. Товар в магазе может быть как во второй директории вложенности (url), так и в пятой. Может мой метод как то называется? ток без грубостей)

1. Получаем через htccess и index url
2. Разбираем на части и смотрим, что в бд есть
3. Страница найдена формируем массив данных
4. При наличии записи в бд и файла инклудим дополнительный код (например надо чтото вывести необычное)
5. По экшну находим один из трех шаблонов нужный, делаем замену {} и echo.

Как то так


--------------------
..Работает - не трогай!
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса