[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помочь с быдло кодом
Серега187
Всем привет! Нужна ваша помощь: как правильно сделать динамический вывод мета данных, а то у меня какой-то быдло код...
Попробую объяснить как все делал на примере блока новостей.
Тут все понятно и работает:
controller.php
//Получение динамичной части шаблона
if(empty($_GET['view'])){
$view = 'home';
}else{
$view = $_GET['view'];
}

// Создание страниц (переключатель)
switch($view){
...
case('news'):
// отдельная новость
$news_id = abs((int)$_GET['news_id']);
$news_text = get_news_text($news_id);
break;

case('archive'):
// все новости (архив новостей)
$all_news = get_all_news($start_pos, $perpage);
break;
...

default:
// если из адресной строки получено имя несуществующего вида
$view = 'home';
}

model.php
/* ===Выбор отдельной новости=== */
function get_news_text($news_id){
$res = q("SELECT `title`, `text`, `date`
FROM `news`
WHERE `news_id` =
$news_id
");

$news_text = array();
$news_text = mysqli_fetch_assoc($res);
return $news_text;
}
/* ===Выбор отдельной новостиь=== */

/* ===Архив новостей=== */

function get_all_news(){
$res = q("SELECT `news_id`, `title`, `anons`, `date`
FROM `news`
ORDER BY `date`
"
);

$all_news = array();
while($row = mysqli_fetch_assoc($res)){
$all_news[] = $row;
}
return $all_news;
}
/* ===Архив новостей=== */

А вот теперь начинаются проблемы с моим быдло кодом
controller.php
// получение названия мета данных страниц новостей
$news_id = abs((int)$_GET['news_id']);
$get_meta_news = get_meta_news($news_id);

model.php
function get_meta_news($news_id){
$res = q("
SELECT `title`, `keywords`, `description`
FROM `news` WHERE `news_id` =
$news_id
");

$get_meta_news = array();
$get_meta_news = mysqli_fetch_assoc($res);
return $get_meta_news;
}

header.php
<meta name="description" content="<?if($get_meta_news){echo $get_meta_news['description'];}?>">
<
meta name="keywords" content="<?if($get_meta_news){echo $get_meta_news['keywords'];}?>">
<
title><?if($get_meta_news){echo $get_meta_news['title'];}?></title>

Так-то оно тоже работает, но у меня еще есть и страницы меню и с ними я тоже самое проделываю, хотя чувствую, что это делается не так. В хедере вот что получается если еще добавить и страницы:
<meta name="description" content="<?if($get_meta_page){echo $get_meta_page['description'];}elseif($get_meta_news){echo $get_meta_news['description'];}?>">
<
meta name="keywords" content="<?if($get_meta_page){echo $get_meta_page['keywords'];}elseif($get_meta_news){echo $get_meta_news['keywords'];}?>">
<
title><?if($get_meta_page){echo $get_meta_page['title'];}elseif($get_meta_news){echo $get_meta_news['title'];}?></title>

Так вот: помогите сделать нормальный вывод мета данных. Если конечно тут все понятно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.