вопрос
Здраствуйте!
Суть вопроса такова.. Как в php добавить поддержку дополнительных полей DLE и сделать так чтобы Мета-теги: title, description, keywords прописывальсь в ручную в самом файле php
Например:
но основной title вытягивало с новости.....
Что бы сильно не описывать вот был сделал заказ:
Сделать отображение конструктора на отдельной странице.
Шаблон страницы вынести в отдельный файл (без подгонки под сайт, простая верстка):
- категория новости, {category} (+) и [catlist=] [/catlist] (+)
- title новости, {title} (+)
+ тег ссылки на новость. (+)
Мета-теги: title, description, keywords - стандартные из основной новости!
ЧПУ: /online/{news_id} (+)
Хлебные крошки не надо.
Поддержка работы DLE с отключенным ЧПУ - не обязательно.
(windows-1251).
Вот сама страница
!?
Суть вопроса такова.. Как в php добавить поддержку дополнительных полей DLE и сделать так чтобы Мета-теги: title, description, keywords прописывальсь в ручную в самом файле php
Например:
DLE FAQ - максимум информации по DataLife Engine
но основной title вытягивало с новости.....
Что бы сильно не описывать вот был сделал заказ:
Сделать отображение конструктора на отдельной странице.
Шаблон страницы вынести в отдельный файл (без подгонки под сайт, простая верстка):
- категория новости, {category} (+) и [catlist=] [/catlist] (+)
- title новости, {title} (+)
+ тег ссылки на новость. (+)
Мета-теги: title, description, keywords - стандартные из основной новости!
ЧПУ: /online/{news_id} (+)
Хлебные крошки не надо.
Поддержка работы DLE с отключенным ЧПУ - не обязательно.
(windows-1251).
Вот сама страница
<?php
if( ! defined( 'DATALIFEENGINE' ) ) {
die( "Hacking attempt!" );
}
class UrlHelper {
private static $categories;
/**
* Получение ссылки на категорию
* @global type $db
* @param type $cat_id
* @param type $level
* @return boolean
* @throws Exception
*/
public static function getCategoryUrl($cat_id, $level = 0) {
if ($cat_id<1) return false;
if ($level>30) throw new Exception("Recursive error in getUrl");
// подгрузка категорий
if (self::$categories==null) {
global $db;
self::$categories = $db->super_query("SELECT id,parentid,name,alt_name FROM `".PREFIX."_category`", true);
$newCat = array();
if (is_array(self::$categories)) {
foreach (self::$categories as $row) {
$newCat[$row["id"]] = $row;
}
}
self::$categories = $newCat;
unset($newCat);
}
// Получение ссылки
$return = "";
if (isset(self::$categories[$cat_id])) {
if (self::$categories[$cat_id]["parentid"]==0)
$return = self::$categories[$cat_id]["alt_name"];
else
$return = self::getCategoryUrl(self::$categories[$cat_id]["parentid"], $level+1) . "/" . self::$categories[$cat_id]["alt_name"];
} else
return;
return ($level==0 ? "/" : "") . $return . ($level==0 ? "/" : "");
}
public static function getCategoryName($cat_id) {
if (self::$categories==null)
self::getCategoryUrl ($cat_id);
if (isset(self::$categories[$cat_id])) {
return self::$categories[$cat_id]["name"];
}
}
public static function getNewsUrl($row) {
if ($row['category']>0) {
return self::getCategoryUrl($row['category']) . "{$row['id']}-{$row['alt_name']}.html";
} else {
return "/{$row['id']}-{$row['alt_name']}.html";
}
}
}
// Загрузка информации по новостям
$row = $db->super_query("SELECT * FROM `".PREFIX."_post` WHERE id='".intval($_GET['newsid'])."'");
//print_r ($row);
if ($row["approve"]) {
$tpl->load_template( 'page_constructor.tpl' );
include_once ENGINE_DIR.'/inc/include/p_construct/inc.show.full.php';
// Title
$tpl->set('{title}', $row['title']);
// Catlist
$url_cat = $category_id;
$category_id = $row['category'];
if( strpos( $tpl->copy_template, "[catlist=" ) !== false ) {
$tpl->copy_template = preg_replace_callback ( "#\\[(catlist)=(.+?)\\](.*?)\\[/catlist\\]#is", "check_category", $tpl->copy_template );
}
if( strpos( $tpl->copy_template, "[not-catlist=" ) !== false ) {
$tpl->copy_template = preg_replace_callback ( "#\\[(not-catlist)=(.+?)\\](.*?)\\[/not-catlist\\]#is", "check_category", $tpl->copy_template );
}
$category_id = $url_cat;
// meta-tags
$row['title'] = stripslashes( $row['title'] );
$metatags['title'] = $row['title'];
if( $row['keywords'] == '' AND $row['descr'] == '' AND $config['create_metatags'] ) create_keywords( $row['short_story'] . $row['full_story'] );
else {
$metatags['keywords'] = $row['keywords'];
if( $row['descr'] ) $metatags['description'] = $row['descr']; else $metatags['description'] = $row['title'];
}
if ($row['metatitle']) $metatags['header_title'] = $row['metatitle'];
// Категория
if ($row["category"]>0){
$tpl->set_block( "'\\[category\\](.*?)\\[/category\\]'si", "$1" );
$tpl->set('{category-url}', UrlHelper::getCategoryUrl($row["category"]));
$tpl->set('{category-name}', UrlHelper::getCategoryName($row["category"]));
} else
$tpl->set_block( "'\\[category\\](.*?)\\[/category\\]'si", "" );
$tpl->set('{news-url}', UrlHelper::getNewsUrl($row));
// if ($CvBuffer!=="") {
// $tpl->set_block( "'\\[is-video\\](.*?)\\[/is-video\\]'si", "$1" );
// $tpl->set_block( "'\\[no-video\\](.*?)\\[/no-video\\]'si", "" );
// } else {
// $tpl->set_block( "'\\[is-video\\](.*?)\\[/is-video\\]'si", "" );
// $tpl->set_block( "'\\[no-video\\](.*?)\\[/no-video\\]'si", "$1" );
// }
$tpl->compile( 'content' );
} else {
msgbox( "Новость не найдена!", "Возможно, новость находится на модерации или удалена." );
}
!?