Перейти к содержимому

Фотография
- - - - -

Вывод текста по главам


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
Сообщений в теме: 3

#1 ishan

ishan

    Прохожий

    Топикстартер
  • Новичок
  • 0
    1 сообщ.

Отправлено 13 Август 2017 в 10:09

Меня попросили сделать для приходского храма сайт и я столкнулся с такой проблемой.
 
Необходимо разместить на сайте полное жизнеописание святого, которому посвящен храм. Текст большой, это полноценная книга. Чтобы текст не занимал много места на странице я разбил текст на главы и здесь возникла проблема. Как вывести на страницу текст по главам?
 
В-принципе, самый простой и очевидный способ, это создать для каждой главы отдельную страницу, а на главной странице вывести ссылки к этим страницам. Я даже могу текст глав поместить в таблицу в базе данных, это не сложно.
 
Но я помню, что несколько лет назад встречал где-то, что есть возможность, с помощью php и баз данных, получить тот же результат, не создавая десятки лишних страниц.
 
Подскажите, как создав одну страницу с ссылками на главы книги и выводом определенной главы на этой же странице.
 
То-есть, есть файл index.php с таким кодом:
<?PHP
/**
 * @author Ishan
 * @copyright 2017
 */
error_reporting (E_ALL);//Сообщать обо всех ошибках PHP.
$title='Православный Приход храма Прп. Сергия Радонежского г. Борзя, Нерчинской Епархии';//Титул.
$category='<h2>Полное житие преподобного Сергия Радонежского</h2><br/><p>Составитель жития Сергия Радонежского архимандрит Никон Рождественский</p>';//Заголовок страницы.
define('ROOT', $_SERVER['DOCUMENT_ROOT']);
include(ROOT."/system/inc/system.php");//Потключаем файл системы
 
 
 
include(ROOT."/system/theme/header.php");//Потключаем шапку страницы страницы.
 
//Изменяемое тело страницы. Анонс статей обернём элементом <article id="post-1" class="post">.
 
 
echo '<article id="post-1" class="post">
 
 <div class="post-content">
   <h3 class="post-title-pod">Память: 5/18 июля (обретение мощей),</br>
   25 сентября / 8 октября</h3>
   <p>Перед Вами житие великого русского подвижника преподобного Сергия Радонежского. Составитель архимандрит Никон Рождественский, а будущем архиепископ Вологодский и Тотемский (1851 - 1919). Житие оформлено многими иконами преподобного Сергия Радонежского, соответственно теме жития миниатюрами, картинами и фотографиями. Предисловие архимандрита Никона Рождественского приведено дореволюционном написании.</p></br>
   <h3 class="post-title-pod">Содержание жития преподобного Сергия Радонежского:</h3>
   <p><a href="/">Предисловие</a></br>
   <a href="/">Глава I. Сын радости</a></br>
   <a href="/">Глава II. Благодатный отрок</a></br>
   <a href="/">Глава III. Покорный юноша</a></br>
   <a href="/">Глава IV. Братья в пустыне</a></br>
   <a href="/">Глава V. Юный постриженник</a></br>
   <a href="/">Глава VI. Наедине с Богом</a></br>
   <a href="/">Глава VII. Первые сподвижники</a></br>
   <a href="/">Глава VIII. Власть за послушание</a></br>
   <a href="/">Глава IX. Смиренный игумен</a></br>
   <a href="/">Глава X. Пустынная нищета</a></br>
   <a href="/">Глава XI. Смиренный чудотворец</a></br>
   <a href="/">Глава XII. Пророческое видение и дальние посланцы</a></br>
   <a href="/">Глава XIII. Внезапная буря</a></br>
   <a href="/">Глава XIV. Друг святителей</a></br>
   <a href="/">Глава XV. Печальник Русской Земли</a></br>
   <a href="/">Глава XVI. Умиротворитель князей</a></br>
   <a href="/">Глава XVII. Благодатный старец</a></br>
   <a href="/">Глава XVIII. Кончина праведника</a></br>
   <a href="/">Глава XIX. Ученики Сергиевы в родной обители</a></br>
   <a href="/">Глава XX. Ученики и собеседники Сергиевы в своих обителях</a></br>
   <a href="/">Глава XXI. Жития родителей преподобного Сергия, схимонаха Кирилла и схимонахини Марии</a></p>
 
   <div class="post-footer"></div>
 
 </div>
 
</article>
 
<article id="post-2" class="post">
   ...
</article>';
 
include(ROOT."/system/theme/footer.php");//Потключаем тело страницы.
 
?>

Нужно, чтобы при нажатии на ссылку главы книги, из базы данных была взята указанная глава и полученный текст размещался на этой же странице вместо троеточия:

<article id="post-2" class="post">
    ...
</article>

А при нажатии на ссылку другой главы, текст заменялся.


  • 0

Спонсор

#2 Volly

Volly

    Увлеченный

  • Участник
  • 111
    568 сообщ.

Отправлено 13 Август 2017 в 13:36

Можно написать на javascript код, который при клике будет обращаться к сайту за информацией. На сайте должен быть написан php-скрипт, который передаст информацию в браузер. После этого javascript вставит инфу в нужное место.

В общем посмотрите в Интернете поиском по словам AJAX и jQuery.

 

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

Но сомневаюсь, что это нужно делать по нескольким причинам. Всё это усложняет написание кода и обслуживание сайта. Для поисковых машин ваш сайт будет состоять, как бы, из одной страницы с первой главой, остальных глав они не увидят.

 

Если ваш сайт статичный, то лучше сделать каждую главу отдельным файлом со своим текстом и адресом:

glava1.php

glava2.php

...

glava21.php

 

Создать отдельные файлы:

menu.php - список ссылок на главы

top.php - шапка для всех страниц

side.php - боковая панель для разных целей

footer.php -  подвал для всех страниц

... и, если надо, другие файлы.

 

Файлы глав примерно такой структуры

<?php include 'top.php';?>

<?php include 'menu.php';?>

Тут текст главы с необходимой html-разметкой

<?php include 'side.php';?>

<?php include 'footer.php';?>

 

Меню подключать можно к каждому файлу, а можно только на главной. Тогда в файле top.php или side.php поставить ссылку на страницу с меню типа "Вернуться".


Сообщение отредактировал Volly: 13 Август 2017 в 13:42

  • 0

#3 BaNru

BaNru

    Пацифизжу

  • суперМодератор
  • 1016
    3 719 сообщ.

Отправлено 14 Август 2017 в 01:25

Предлагаю варианты проще:

1) Поставить любую CMS и будет счастье. В крайнем случае дополнить модулем/плагином соответствующим

2) Взять готовый скрипт PHP для публикации многостраничных книг. Таких полно должно быть с эпохи веба1.0

При этом есть скрипты, которым не нужна БД, они генерируют страницы на PHP прям из TXT файла книги.


  • 1

#4 miketomlin

miketomlin

    Частый гость

  • Участник
  • 17
    73 сообщ.

Отправлено 14 Август 2017 в 18:38

ishan, перед выводом прочтите соотв. запись из базы, например в массив $page, а на месте многоточия вставьте ссылку на соотв. поле, например:
<?= $page['content'] ?>
Ну или просто через запятую или конкатенацией запишите $page['content'], хотя лучше такую портянку выводить, не используя echo.
 
Если только для храма, могу вам подогнать какой-нибудь простой front-end-движок и проконсультировать бесплатно.

Подскажите, как создав одну страницу с ссылками на главы книги и выводом определенной главы на этой же странице.

В современном вебдеве страница – это скорее одна или несколько записей БД, нежели какие-то файлы, относящиеся непосредственно к этой странице. В файлах хранятся только шаблоны и программный код, т.е. грубо говоря для бесчисленного множества однотипных страниц достаточно нескольких файлов.

Вот этот наш движок по-моему вам отлично подойдет. Более формальное описание находится рядом.

Сообщение отредактировал miketomlin: 14 Август 2017 в 18:38

  • 0



Похожие темы Свернуть

Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей