Хранение и вывод мета-данных страницы (title, description и т.д.), и настроек?

Гриша К.

Новичок
Хранение и вывод мета-данных страницы (title, description и т.д.), и настроек?

Здравствуйте.

Вчера (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;
Помоему очень хороший вариант. Если url не имеет описание, то описание берется из предыдущего Url.
Даже не ожидал что сам придумаю такое. Что вы думаете об этом варианте?

С хранением и выводом опций тоже есть решение, но пока его не реализовал.
 
Сверху