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 :: Вывод данных в MVC модели

 PHP.SU

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


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

> Без описания
alexy73
Отправлено: 08 Августа, 2014 - 14:44:50
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Февр. 2014  


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




Здравствуйте!

Помогите разобраться. Сделал сайт по MVC схеме. Странички хранятся в базе данных. В класс View передаются имя шаблона(сайт двуязычный) и собственно страничка.
CODE (htmlphp):
скопировать код в буфер обмена
  1. class View
  2. {
  3.        
  4.         function generate($template_view, $content)
  5.         {      
  6.                if(is_array($content)) {
  7.        
  8.                 extract($content);
  9.                        
  10.                 }
  11.              include 'application/views/'.$template_view;
  12.  
  13. }


Затем переменные подставляются в шаблон:

template.php

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <title><?=$article_title?></title>
  6. </head>
  7. <body>
  8. <?=$article_body?>
  9. </body>
  10. </html>
  11.  


Все работало прекрасно. Но потребовалось прикрутить динамически изменяемые цены, которые берутся тоже из базы. Добавил переменную $price, в которой содержится выборка.
CODE (htmlphp):
скопировать код в буфер обмена
  1. class View
  2. {
  3.        
  4.         function generate($template_view, $content, $price)
  5.         {      
  6.  
  7.  
  8. }


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

(Отредактировано автором: 08 Августа, 2014 - 15:00:16)

 
 Top
esterio
Отправлено: 08 Августа, 2014 - 14:46:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




1. переменная $price ничего не делает, кроме как существует
2. так делять нельзя ибо view ничего не должен знать о каких-то там ценах, должен быть единый интерфейс для всех
 
 Top
alexy73
Отправлено: 08 Августа, 2014 - 15:01:15
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Февр. 2014  


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




Извиняюсь, случайно добавил не дописав
 
 Top
alexy73
Отправлено: 08 Августа, 2014 - 17:10:18
Post Id


Новичок


Покинул форум
Сообщений всего: 9
Дата рег-ции: Февр. 2014  


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




Сделал сам. Только решение мне не очень нравится. Переменную $article_body я загоняю во временный файл contentTemp.


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. function generate($template_view, $content, $price)
  4.         {      
  5.  
  6.                 if(is_array($content)) {
  7.        
  8.                 extract($content);
  9.                        
  10.                 }
  11.  
  12.                 file_put_contents('contentTemp', $article_body, FILE_APPEND );
  13.                
  14.                 include 'application/views/'.$template_view;
  15.  
  16.         }
  17. }


а в шаблоне использую include
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <title><?=$article_title?></title>
  6. </head>
  7. <body>
  8.  
  9.                         <?php include 'contentTemp';
  10.                        unlink('contentTemp');
  11.                        ?>
  12.  
  13. </body>
  14. </html>
  15.  


Вот теперь все работает как надо. Не нравится 2 вещи:

1. Необходимость преобразования переменной (содержание страницы с динамической таблицей) в файл
2. Почему-то криво работает функция file_put_contents только с флагом FILE_APPEND. Без флага отказывается записывать переменную в файл.

Может кто-нибудь подскажет идею лучше?

(Отредактировано автором: 08 Августа, 2014 - 21:44:51)

 
 Top
tato
Отправлено: 11 Августа, 2014 - 01:13:23
Post Id



Посетитель


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


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




Вся идея здесь:


Как вызывается generate? Место где в него подставляется $article_body?


-----
просто ?: сложно
 
 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