micr0b
Новичок
Вопрос по ООП в ПХП
Привет.. выложу некий код написан мной!
Изучаю ООП в ПХП!
И решил переделать свои заготовки кода с ООП.
Хотелось бы узнать верно ли написан класс Новости или бред и нужно переделать!
В коде есть несколько комментариев , в которых есть вопросы.
Если вам не составит труда можно бы было получить на них ответ.
index.php
class_News.php
Искренне спасибо!
Привет.. выложу некий код написан мной!
Изучаю ООП в ПХП!
И решил переделать свои заготовки кода с ООП.
Хотелось бы узнать верно ли написан класс Новости или бред и нужно переделать!
В коде есть несколько комментариев , в которых есть вопросы.
Если вам не составит труда можно бы было получить на них ответ.
index.php
PHP:
<a href="/news_oop/index.php?page=index">Головна</a>
<a href="/news_oop/index.php?page=news">Новини</a>
<?PHP
switch ($_GET['page']){
case "index":
include "page/index.php";
break;
case "news":
require_once "class/class_News.php";
$obj_News = new NewsModules();
break;
default:
@include "404.php";
break;
}
?>
PHP:
<?php
include "../config.php";
class NewsModules{
/* ВОПРОС1 // - Что нам это дает? Объявление свойств переменных если можно в даном примере обойтись и без них!
public $idnews;
public $author = "lol";
public $title;
public $opusMin;
public $opusMax;
public $picture;
public $date;
public $category;
public $active; */
/* КОНСТРУКТОР (метод автозапуску певних дій при завантаженні класу) */
function __construct($html_title="Адмінка новин"){
/*echo "<br><b>Запущений конструктор</b><br>";*/
$this->html_title=$html_title;
/* Menu News */
// ВОПРОС2 - Возможно уместно код реализовывать в отдельном классе или функции или как?
echo "<hr>";
echo "<a href='/news_oop/index.php?page=news&do=add'>Додати</a> ";
echo "<a href='/news_oop/index.php?page=news&do=output'>Перегляд</a> ";
echo "<s><a href='/news_oop/index.php?page=news&do='>Категорії новин</a></s> ";
echo "<s><a href='/news_oop/index.php?page=news&do='>Прислані новини</a></s> <s><a href='/'>(0)</a></s>";
switch ($_GET['do']){
// Додати новину
case "add":echo $this->inputNews()."<br>";break;
// Редагувати новину
case "edit":echo $this->editNews()."<br>";break;
// Редагувати новину
// Перегляд новин
default:echo $this->outputNews();break;
}
}
/* ДЕСТРУКТОР (метод автозакриття певних дій при завантаженні класу) */
function __destruct(){/* echo "<br><b>Запущений деструктор</b><br>"; */}
/* Додавання новин */
function inputNews(){
echo "<br><br>";
echo "<input type='text' name='category' value=''><br>";
echo "<img src='".$this->picture = $row["picture"]."' width='50' height='50'><br>";
echo "<input type='text' name='' value=''><br>";
echo "<input type='text' name='' value=''><br>";
echo "<input type='text' name='' value=''><br>";
echo "<input type='text' name='' value=''><br>";
echo "<input type='text' name='' value=''><br>";
echo "<s><input type='submit' value='Додати'></s>";
}
/* Редагування новини */
// ВОПРОС3 - Возможно лутше реализовать запросы в отдельную функцию или класс и как это корректно проработать
// ВОПРОС4 - Стоит ли в коде использовать например: $ this-> title = $ row ["title"] может лучше просто $ row ["title"]?
function editNews(){
$query = mysql_query("SELECT * FROM `qlitenews` WHERE `idnews`='".$_GET['idnews']."'");
$row = @mysql_fetch_array($query);
echo "<br><br>";
echo "ID: ".$this->idnews = $row["idnews"]."<br>";
echo "<input type='text' name='category' value='".$this->category = $row["category"]."'><br>";
echo "<img src='".$this->picture = $row["picture"]."' width='50' height='50'><br>";
echo "<input type='text' name='' value='".$this->title = $row["title"]."'><br>";
echo "<input type='text' name='' value='".$this->opusMin = $row["opusMin"]."'><br>";
echo "<input type='text' name='' value='".$this->opusMax = $row["opusMax"]."'><br>";
echo "<input type='text' name='' value='".$this->author = $row["author"]."'><br>";
echo "<input type='text' name='' value='".$this->date = $row["date"]."'><br>";
echo "<s>Категорія: <select><option value='all'>all</option><option value='city'>city</option></select></s><br>";
echo "<s><input type='submit' value='Перенести в чернетку'></s> ";
echo "<s><input type='submit' value='Видалити'></s> ";
echo "<s><input type='submit' value='Змінити'></s> ";
}
/* Вивід новин */
function outputNews(){
/* Сортування та вивід сторінок { */
// ВОПРОС5 - Можно "Сортировка и вывод страниц" всунуть в конструктор или класс или функцию для удобного же использование?
$pag = trim($_REQUEST["page_news"]);
if(!is_numeric($pag)) $page = 1;
$multed = $pag*3;
$query = mysql_query("SELECT count(idnews) AS idnewscount FROM `qlitenews` WHERE `active`='1'");//кількість сторінок
$mymas = mysql_fetch_array($query);
/* Сотруєм по сторінках, виводим сторінки }{ */
$query = mysql_query("SELECT * FROM `qlitenews` WHERE `active`='1' ORDER BY `idnews` DESC LIMIT ".$multed.", 3");
while($row = @mysql_fetch_array($query)){
echo "<pre>";
echo "<a href='/news_oop/index.php?page=news&do=edit&idnews=".$row["idnews"]."'>Редагувати</a> ";
echo "<s><input type='submit' value='Перенести в чернетку'></s> ";
echo "<s><input type='submit' value='Видалити'></s> <br>";
echo "ID: ".$this->idnews = $row["idnews"]."<br>";
echo "category: ".$this->category = $row["category"]."<br>";
echo "picture: <img src='".$this->picture = $row["picture"]."' width='50' height='50'><br>";
echo "title: ".$this->title = $row["title"]."<br>";
echo "opusMin: ".$this->opusMin = $row["opusMin"]."<br>";
echo "<s>opusMax: ".$this->opusMax = $row["opusMax"]."</s><br>";
echo "Author: ".$this->author = $row["author"]."<br>";
echo "date: ".$this->date = $row["date"]."<br>";
/* показує кількість */
// В РОЗРОБОТЦІ
$query_guestbook_count = mysql_query("SELECT count(idguestbook) AS guestbook_count FROM `guestbook` WHERE `idnews`='".$row["idnews"]."'");
$roww = mysql_fetch_array($query_guestbook_count);
echo "<s>Коментарів (".$roww['guestbook_count'].")<a href='?page=comentar&idnews=".$row["idnews"]."'>Детальніше...»</a></s>";
echo "</pre>";
}
/* Сортування та вивід сторінок }{ */
echo "<center>Сторінка: ";
$generate_some_pgs = ceil($mymas[0]/3);
for($i=0; $i<$generate_some_pgs; $i++)
echo "<b><a href='index.php?page=news&do=output&page_news=".($i)."'>".($i+1)."</a> </b>";
echo "</center>";
/* Сортування та вивід сторінок }*/
}
}
?>