Гриша К.
Новичок
Хранение и вывод мета-данных страницы (title, description и т.д.), и настроек?
Здравствуйте.
Вчера (30.08.2006) я написал в сообщение пример и задал несколько вопросов. Потом долго сидел, думал, и придумал вот такой вариант, помоему очень неплохой:
Для хранения информации о url, заголовке, описании и ключевых словах, делаю одну таблицу (в случае необходимсоти доп. параметров, делаю дополнительную таблицу):
PAGES(page_id, page_url, page_title, page_description, page_keywords)
Помоему очень хороший вариант. Если url не имеет описание, то описание берется из предыдущего Url.
Даже не ожидал что сам придумаю такое. Что вы думаете об этом варианте?
С хранением и выводом опций тоже есть решение, но пока его не реализовал.
Здравствуйте.
Вчера (30.08.2006) я написал в сообщение пример и задал несколько вопросов. Потом долго сидел, думал, и придумал вот такой вариант, помоему очень неплохой:
Для хранения информации о url, заголовке, описании и ключевых словах, делаю одну таблицу (в случае необходимсоти доп. параметров, делаю дополнительную таблицу):
PAGES(page_id, page_url, page_title, page_description, page_keywords)
PHP:
// Берем url, разбираем его на массив, и делаем реверсию этого массива
$url = '/catalog/firms/index.php';
$full_path = preg_replace('/index.php/', '', $url);
$full_path = explode('/', $full_path);
$full_path = array_reverse($full_path);
// Дальше делаем списог всех родительских url, включая текущий
// Например получается: "/catalog/firms/, /catalog/, /"
$path = '';
$list_path = '/';
foreach($full_path as $row)
{
if(!empty($row))
{
if(stristr($row, '.php'))
$path .= (!$path) ? ', /'.$row : $row;
else
$path .= (!$path) ? ', /'.$row.'/' : $row.'/';
$list_path .= $path;
}
}
// Дальше извлекаем данные из таблицы для всех url списка
$result = "
select
page_url as url,
page_title as title,
page_description as description,
page_keywords as keywords
from
pages
where
page_url IN ($list_path)";
// Вывожу данные в массив, где ключом является url страницы
// хотя в данном случа ключем-то может быть что угодно
// Получается например такой массив
$path = array();
$path['/catalog/firms/']['description'] = 'Описание каталога фирм';
$path['/catalog/']['description'] = 'Описание каталога';
$path['/']['description'] = 'Описание';
// Дальше прохожу циклом по массиву,
// В случае если, url имеет описание, завершаю цикл
foreach($path as $value)
{
if($value['description'])
{
$description = $value['description'];
break;
}
}
echo $description;
Даже не ожидал что сам придумаю такое. Что вы думаете об этом варианте?
С хранением и выводом опций тоже есть решение, но пока его не реализовал.