За последние 24 часа нас посетили 22592 программиста и 1143 робота. Сейчас ищут 619 программистов ...

Связь шаблона с базой данных

Тема в разделе "PHP для новичков", создана пользователем Vladd55, 28 янв 2023.

  1. Vladd55

    Vladd55 Новичок

    С нами с:
    11 дек 2021
    Сообщения:
    84
    Симпатии:
    1
    Я использую вот такой простейший шаблон:
    Код (Text):
    1. <!DOCTYPE html>
    2.     <html lang=ru>
    3.     <head>
    4. <title><?php echo $title; ?></title>
    5. <meta name="description" content="<?php echo $description; ?>">
    6. <meta name="keywords" content="<?php echo $keywords; ?>">
    7. <meta charset=utf-8>
    8. <link rel="canonical" href="<?php echo $canonical; ?>" />
    9. <link rel="stylesheet" href="<?php echo $css; ?>" type="text/css">
    10. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    11. <link rel="shortcut icon" href="/favicon.ico" />
    12. </head>
    13.  
    14. <body>
    15.  
    16. <?php echo $text; ?>
    17.  
    18. </body>
    19.  
    20. </html>
    Содержимое каждой из упомянутых здесь переменных вытаскивается из базы данных и все нормально работает. При этом собственно контент страницы находится в переменной $text.

    Но на практике нужны шаблоны гораздо сложнее, поскольку контент обычно разбит на смысловые фрагменты: верх и низ страницы, рекламные блоки и др.

    Можно сделать в базе данных столбец для каждого такого фрагмента ($text_1, $text_2 и др.) и тоже все будет нормально.

    А как поступают на практике?

    (функцию eval использовать не хочу).
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    Там в конце: https://gency.ru/g-drive-quick-start
    --- Добавлено ---
    Многие блоки тупо кешируются в готовом виде (т.е. HTML-). Как пить дать, на сайте по ссылке все перекешировано в сайдбаре и т.п., хотя я там особо не лез «под капот» (моя задача на том сайте за текстами следить). Заметил, что ссылки на отмодерированные комменты не сразу появляются в сайдбаре и т.п.
    --- Добавлено ---
    Вот еще (там в конце архив шаблона есть): https://gency.ru/creating-simple-blog-template
     
    Vladd55 нравится это.
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    Не хочешь, не используй.

    Обычно разные шаблонизаторы готовые используют, ваш способ тоже подходит, при небольшой загрузке
     
  4. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    @ADSoft, у ТСа основная проблема в том, что практически полные страницы хранятся, как контент. Это не столько с нагрузкой связано (хотя сохранять будет сложнее), сколько с удобством редактирования. Даже если редактор суперпродвинутый, одни и те же блоки на разных страницах могут немного по-разному сохраняться, их наверняка нужно отдельно редактировать для каждой страницы и т.п. Про дублирование данных я уже молчу. Это чуть ли не нарушение основного принципа ведения БД.
    --- Добавлено ---
    @Vladd55, в движке по ссылке эта проблема решена. Там вложенные шаблоны могут по условию (на основе флага в роуте и т.п.) подключаться. Т.е. для одних страниц можно хранить практически полный контент страницы, а для других – «чистый контент», который будет дополнительно прогоняться через вложенный шаблон (или даже шаблоны).
     
    #4 miketomlin, 28 янв 2023
    Последнее редактирование: 28 янв 2023
  5. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.823
    Симпатии:
    736
    Адрес:
    Татарстан
    @miketomlin мне просто не очень импонирует чоо вы надо или не надо в качестве примера ррриводите тот двиг, прям чуствуется агнажированость... А челу просо элементарнын вещи нужно объяснить
     
  6. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.792
    Симпатии:
    650
    @ADSoft, там элементарная поделка, в которой эти элементарные вещи реализованы. У меня уже по большей части иссяк юношеский максимализм, чтобы пересказывать все это по 100 раз. У вас, вижу, тоже.
    --- Добавлено ---
    Я практически не пощу ссылки на что-то более сложное, хотя мог бы так засрать завалить форум, т.к. работаю в софтверной конторе.