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

Статус
Закрыто для дальнейших ответов.

ishan

Новичок
Регистрация
13.08.2017
Сообщения
1
Меня попросили сделать для приходского храма сайт и я столкнулся с такой проблемой.

Необходимо разместить на сайте полное жизнеописание святого, которому посвящен храм. Текст большой, это полноценная книга. Чтобы текст не занимал много места на странице я разбил текст на главы и здесь возникла проблема. Как вывести на страницу текст по главам?

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

Но я помню, что несколько лет назад встречал где-то, что есть возможность, с помощью 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>

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

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
831
Можно написать на 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 поставить ссылку на страницу с меню типа "Вернуться".
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Предлагаю варианты проще:
1) Поставить любую CMS и будет счастье. В крайнем случае дополнить модулем/плагином соответствующим
2) Взять готовый скрипт PHP для публикации многостраничных книг. Таких полно должно быть с эпохи веба1.0
При этом есть скрипты, которым не нужна БД, они генерируют страницы на PHP прям из TXT файла книги.
 

miketomlin

Well-Known Member
Регистрация
12.11.2013
Сообщения
101
[member=ishan], перед выводом прочтите соотв. запись из базы, например в массив $page, а на месте многоточия вставьте ссылку на соотв. поле, например:
<?= $page['content'] ?>
Ну или просто через запятую или конкатенацией запишите $page['content'], хотя лучше такую портянку выводить, не используя echo.

Если только для храма, могу вам подогнать какой-нибудь простой front-end-движок и проконсультировать бесплатно.

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

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