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
Форумы портала PHP.SU :: Версия для печати :: Мой первый вывод новостей
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Мой первый вывод новостей

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

1. DivMan - 08 Апреля, 2017 - 23:07:02 - перейти к сообщению
Есть такое задание:

1. Создайте класс новостей для сайта.

2. Реализуйте страницу, на которой вы будете эти новости выводить используя только методы класса (к свойствам обращаться нельзя).

Я это задание сделал, но думаю, что мой код очень ужасный и не правильный, что я не так сделал?

А может надо было поместить все статьи в один json файл и вывести разметку циклом?

Не говорите мне пока про базу данных, сначала я хочу потренироваться на jsone.

index.php

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. header('Content-Type: text/html; charset=utf-8');
  3.  
  4. class News{
  5.         public function __construct($file_get_contents){
  6.                 $this->file_get_contents = file_get_contents($file_get_contents);
  7.         }
  8.         public function newsStr(){
  9.                 return $this->file_get_contents;
  10.         }
  11.         public function newsArray(){
  12.                 return json_decode($this->newsStr(), true);
  13.         }
  14.         public function newsCells(){
  15.                 return $this->newsArray()['news'];
  16.         }
  17.         public function newsTitle(){
  18.                 return $this->newsCells()['title'];
  19.         }
  20.         public function newsDate(){
  21.                 return $this->newsCells()['date'];
  22.         }
  23.         public function newsAuthor(){
  24.                 return $this->newsCells()['author'];
  25.         }
  26.         public function newsDescription(){
  27.                 return $this->newsCells()['description'];
  28.         }
  29. }
  30. ?>
  31.  
  32. <!DOCTYPE html>
  33. <html>
  34.         <head>
  35.                 <title>Новости сайта</title>
  36.                 <link rel="stylesheet" href="./style.css">
  37.         </head>
  38. <body>
  39.         <div class="content">
  40.                 <h2>Последние новости</h2>
  41.                 <div class="news">
  42.                         <?PHP $news1 = new News('news1.json');?>
  43.                         <div class="title"><?PHP echo $news1->newsTitle()?></div>
  44.                         <div class="description"><?PHP echo $news1->newsDescription()?></div>
  45.                         <div class="date inline-block"><span>Дата:</span> <?PHP echo $news1->newsDate()?></div>
  46.                         <span>|</span>
  47.                         <div class="author inline-block"><span>Добавил</span> <?PHP echo $news1->newsAuthor()?></div>
  48.                 </div>
  49.                
  50.                 <div class="news">
  51.                         <?PHP $news1 = new News('news2.json');?>
  52.                         <div class="title"><?PHP echo $news1->newsTitle()?></div>
  53.                         <div class="description"><?PHP echo $news1->newsDescription()?></div>
  54.                         <div class="date inline-block"><span>Дата:</span> <?PHP echo $news1->newsDate()?></div>
  55.                         <span>|</span>
  56.                         <div class="author inline-block"><span>Добавил</span> <?PHP echo $news1->newsAuthor()?></div>
  57.                 </div>
  58.                
  59.                 <div class="news">
  60.                         <?PHP $news1 = new News('news3.json');?>
  61.                         <div class="title"><?PHP echo $news1->newsTitle()?></div>
  62.                         <div class="description"><?PHP echo $news1->newsDescription()?></div>
  63.                         <div class="date inline-block"><span>Дата:</span> <?PHP echo $news1->newsDate()?></div>
  64.                         <span>|</span>
  65.                         <div class="author inline-block"><span>Добавил</span> <?PHP echo $news1->newsAuthor()?></div>
  66.                 </div>
  67.         </div>
  68. </body>
  69. </html>


css

CODE (htmlphp):
скопировать код в буфер обмена
  1. .content{
  2.         border: 1px solid;
  3.         width: 600px;
  4.         margin: 0 auto;
  5. }
  6.  
  7. h2{text-align: center;}
  8.  
  9. .news{
  10.         border: 3px solid orange;
  11.         padding: 10px;
  12. }
  13.  
  14. .title, .description{
  15.         padding-bottom: 10px;
  16. }
  17.  
  18. .inline-block{
  19.         display: inline-block;
  20.         vertical-align: top;
  21.         font-weight: bold;
  22. }


news1.json

CODE (htmlphp):
скопировать код в буфер обмена
  1. {
  2.         "news": {
  3.                 "title": "Изобрён вечный двигатель",
  4.                 "date": "05.04.2017",
  5.                 "author": "Admin",
  6.                 "description": "Совсем недавно, придумали вечный двигатель, который не требует обслуживания, но в эксплуатацию его запретили, так как хотят, что бы люди постоянно  мучились в рабстве"
  7.         }
  8. }



news2.json
CODE (htmlphp):
скопировать код в буфер обмена
  1. {
  2.         "news": {
  3.                 "title": "Клонирование бензина",
  4.                 "date": "05.04.2017",
  5.                 "author": "Admin",
  6.                 "description": "Британские учённые научились клонировать бензин, теперь часть ресурсов планеты, будут спасены"
  7.         }
  8. }
  9.  
  10.  


news3.json

CODE (htmlphp):
скопировать код в буфер обмена
  1. {
  2.         "news": {
  3.                 "title": "Современная медицина",
  4.                 "date": "05.04.2017",
  5.                 "author": "Admin",
  6.                 "description": "Русским учённым придуман специальный луч, который может удалить аппендицит, без вскрытия"
  7.         }
  8. }
  9.  
  10.  

 

Powered by ExBB FM 1.0 RC1