Textpattern - на русском языке

форум общения русскоязычных пользователей CMS Текстпаттерн

Вы не зашли.

#1 13-08-2006 16:55:33

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Плагин etz_pg для деления длинных статей на несколько страниц

Перевод.
Оригинал текста и ссылка на скачивание плагина - здесь.

etz_pg

Делит статью на страницы и генерирует средства управления для навигации по этим страницам.
Это форк плагина hfw_pg_*  Dark-а Wulf-а.

Использование:

Добавьте новую строку, метку [page] и затем еще одну новую строку там, где Вы хотели бы вставить разделитель страниц.
В форме вывода для этой статьи, замените тэгом <txp:etz_pg_body /> присутствующий у вас там тэг <txp:body />.
Кроме того, здесь же, добавьте  <txp:etz_pg_pages />, для размещения навигации по страницам.
Добавьте необходимые стили в CSS.

Доступные тэги:

<txp:etz_pg_body /> заменяет <txp:body />.
Имеющиеся атрибуты:
pgerr – позволяет указать сообщение о неправильном указании номера страницы..
notrim – если установлено в ненулевое значение, запрещает the XHTML validation hack (прим. переводчика – не смог найти русскоязычное соответствие).

<txp:etz_pg_pages /> размещение навигации по страницам.
Имеющиеся атрибуты:
always  - будет создавать навигационную панель даже если статья не разбита на страницы.
start, prev, next, end  - определяют текст для соответствующих ссылок в навигации.
noextremes – если установлено в ненулевое значение, то запрещается отображение start и end - ссылок.
noadjacents – если установлено в ненулевое значение, то запрещается отображение prev и next - ссылок.
nonumbers - если установлено в ненулевое значение, то запрещается навигация по номерам страниц.
id – определяет имя  HTML -идентификатора для <ul> (по умолчанию - pages).

<txp:etz_pg_switchmode /> - добавляет интеллектуальную ссылку, которая позволяет вам переключаться от от разделенного на страницы просмотра к просмотру неразделенной на страницы версии стаьи.
Доступные атрибуты:
id – определяет имя  HTML -идентификатора для <ul> (по умолчанию: switchmode).
all – устанавливание текст ссылки для переключения на просмотр полной статьи (по умолчанию: “all pages”).
split - устанавливание текст ссылки для переключения на просмотр разбитой на страницы статьи (по умолчанию: “split in pages”).

<txp:etz_pg_if_split> и <txp:etz_pg_if_not_split> - условные тэги, которые определяют, в каком режиме отображается в настоящее время статья, постранично или нет.

<txp:etz_pg_if_paginated> и <txp:etz_pg_if_not_paginated> - условные тэги, которые определяют, в каком режиме отображается в настоящее время статья, постранично или нет.
(прим. переводчика – из текста оригинала не понял разницы между последними и предыдущими тэгами).

<txp:etz_pg_if_start> и <txp:etz_pg_if_not_start>  - условные тэги, показывающие, начало ли статьи сейчас отображается или нет.

<txp:etz_pg_if_end> и <txp:etz_pg_if_not_end> - условные тэги, показывающие, завершение ли стаьи сейчас отображается или нет.

<txp:etz_pg_thispage /> - возвращает текущий номер странницы или “all”.
<txp:etz_pg_totalpages /> - возвращает общее количество страниц.

(прим. переводчика – перечисления улучшений родоначального плагина hfw_pg_* упускаю.)

Скачайте последнюю версию плагина (0.8 или выше), проинсталлируйте его в админ.панели, включите его. Это требует полных прав администратора.
Дайте имя пользовательскому полю (custom field) “etz_pg_subs”; регистр букв в имени имеет значение. Вы можете это сделать в «Продвинутых настройках» в вашей админ.панели.

Перейдите на статью, планируемую к разбиению на страницы и нажмите на «Продвинутые настройки».
В пользовательском поле “etz_pg_subs” , для статьи, состоящей из, например, 4 разделов, пишем: “This is section one|This is section two|This is section tree|And last but not least, section four”. Названия разделов разделяются вертикальными разделителями.
Обратите внимание, что количество вертикальных разделителей должно соответствовать количеству меток [page] в теле статьи.

Имеющиеся проблемы:

Relies on an ugly hack in order not to break XHTML validation.  (прим. переводчика – не смог найти русскоязычное соответствие).
Метка [page]  выводится в результатах работы поиска по сайту.

Неактивен

 

#2 07-09-2006 23:35:27

Jack
живёте
Зарегистрирован: 07-08-2006
Сообщений: 87
Вебсайт

Re: Плагин etz_pg для деления длинных статей на несколько страниц

Версия плагина 0.8
Делим статью на страницы. Начиная со второй страницы сначала идут символы "/>" а потом уж текст.
на третьей, четвертой и последней страницах - аналогично. На первой все корректно.
Это глюк али руки кривые?
вывожу кодом (в форме default):

Код:

<txp:etz_pg_body />

Неактивен

 

#3 16-09-2006 01:09:36

Ser
добро
Откуда: moscow
Зарегистрирован: 30-11-2005
Сообщений: 47
Вебсайт

Re: Плагин etz_pg для деления длинных статей на несколько страниц

Не совсем понятно, почему версия 0.8 - у меня 0.10
И все работает

Неактивен

 

#4 03-06-2007 23:09:25

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: Плагин etz_pg для деления длинных статей на несколько страниц

Классный плагин! Опробовал. Жаль, что на url нельзя повлиять, чтобы было не url?pg=nn, а, например url/page-1/
Но это мелочи.

P.S. Кстати, создавать новое поле (custom_field) совсем необязательно ;)

Отредактированно ТВЭЛ (03-06-2007 23:13:06)


Время не ждет.

Неактивен

 

#5 03-06-2007 23:43:21

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: Плагин etz_pg для деления длинных статей на несколько страниц

... и маленько пришлось в исходниках покопаться (почти с каждым плагином так). Все работает, просто на душе мерзко, когда лишние классы пихаются :) Кстати, вот участок кода, отвечающий за присвоение этих классов. Как вы умудряетесь понимать PHP?! Черт ногу сломит!

Код:

if (!($noextremes)) {
            $out[] = '<li class="pgStart';
            if ($pg > 1) $out[] = '"><a href="'.$base_url.'">'; else $out[] = ' pgEmpty">';
            $out[] = $start;
            if ($pg > 1) $out[] = '</a>';
            $out[] = '</li>';
        }

        if (!(($noadjacents) || ($pg > $max))) {
            $out[] = '<li class="pgPrev';
            if ($pg == 2) $out[] = '"><a href="'.$base_url.'">';
            if ($pg > 2) $out[] = '"><a href="'.$linkstub.($pg - 1).'">';
            if ($pg == 1) $out[] = ' pgEmpty">';
            $out[] = $prev;
            if ($pg > 1) $out[] = '</a>';
            $out[] = '</li>';
        }

        if (!($nonumbers)) {
            for ($i = 1; $i <= $max; $i++) {
                $out[] = '<li class="pgNum';
                if ($pg != $i) {
                    if ($i == 1) {
                        $out[] = '"><a href="'.$base_url.'">';
                    }

Время не ждет.

Неактивен

 

#6 03-06-2007 23:58:50

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: Плагин etz_pg для деления длинных статей на несколько страниц

Мда... Мне кажется, я сейчас сдамся. Еще 10 минут попыток, и все. Фиг с ними, с этим идиотским class=pgNum :(

P.S. Ура! Я все же победил. Еще немного, и мой мозг бы сломался. Решительно не понимаю, зачем там такая конструкция была. Кто у нас тут на форуме хороший программист? Nicck, вроде :) Оцени пожалуйста этот код, который я выложил в предыдущем посте, на каком уровне он сделан? Интересно.
Я теперь немножечко переделал, избавился от лишнего класса. Теперь так...

Код:

if (!($nonumbers)) {
            for ($i = 1; $i <= $max; $i++) {
                $out[] = '<li';
                if ($pg != $i) {
                    if ($i == 1) {
                        $out[] = '><a href="'.$base_url.'">';
                    }
                    else {$out[] = '><a href="'.$linkstub.($i).'">';
                    }
                }
                else {
                        $out[] = ' class="pgCurrent">';
                }
                $out[] = $subs[$i-1];
                if ($pg != $i) $out[] = '</a>';
                $out[] = '';
                $out[] = '</li>';
            }
        }

Кстати, если считать снизу, то во втором $out[] в кавычках был пробел, который, естественно, вылазил потом в HTML. Зачем так сделано? Я просто пробел убрал, а конструкцию оставил, побоявшись, как бы потом совсем все не поломалось нафиг :)
Жуть.

Евгений, извини, пожалуйста, что-то я нафлудил много. Ночью я немного неадекватен, похоже.
Постараюсь больше так не делать.

P.P.S.

Jack написал:

Версия плагина 0.8
Делим статью на страницы. Начиная со второй страницы сначала идут символы "/>" а потом уж текст.
на третьей, четвертой и последней страницах - аналогично. На первой все корректно.
Это глюк али руки кривые?
вывожу кодом (в форме default):

Код:

<txp:etz_pg_body />

Действительно, руки кривоваты маленько :) Но не у Джека. Тоже столкнулся с подобным глюком. Textile включен, наверно? Лечится это таким образом: просто нужно ставить метку [page] в конце абзаца (без переноса строки), причем после трех или более пробелов, иначе плагин откусит окончание абзаца. Такой вот он голодный.

P.P.P. :) S. Прошу прощения, нельзя так делать. К сожалению, тогда Textile не успевает закрыть тэг абзаца. Оказалось, все еще проще, просто делаем двойной перевод строки, как обычно, ставим метку, потом снова двойной перевод строки, и вуаля. Мда, туплю я сегодня ужасно, правда?

Отредактированно ТВЭЛ (04-06-2007 02:58:07)


Время не ждет.

Неактивен

 

#7 04-06-2007 11:12:46

glebotr
ять
Зарегистрирован: 25-06-2005
Сообщений: 1974
Вебсайт

Re: Плагин etz_pg для деления длинных статей на несколько страниц

Оказалось, все еще проще, просто делаем двойной перевод строки, как обычно, ставим метку, потом снова двойной перевод строки, и вуаля. Мда, туплю я сегодня ужасно, правда?

Ага, тупишь wink Это в помощи по плагину написано, вообще-то wink

Отредактированно glebotr (04-06-2007 11:13:09)


Пх’нглуи мглв’нафх Ленин Красная площадь вгах’нагл фхтагн
(В своем доме на Красной площади мертвый Ленин спит, ожидая своего часа (ктулх.))

Неактивен

 

#8 04-06-2007 11:34:50

ТВЭЛ
слово
Откуда: Северск-Томск
Зарегистрирован: 29-04-2006
Сообщений: 366
Вебсайт

Re: Плагин etz_pg для деления длинных статей на несколько страниц

Мерзкая привычка не читать мануалы smile
Все, я срубился спать.


Время не ждет.

Неактивен

 

#9 16-08-2007 09:18:16

odessit
веди
Зарегистрирован: 27-07-2007
Сообщений: 16

Re: Плагин etz_pg для деления длинных статей на несколько страниц

Ребята, обьясните неучу как им пользоватся. Установить - установил, а вот что дальше делать?

Неактивен

 

#10 16-08-2007 15:30:04

Evgeny
ять
Зарегистрирован: 15-03-2005
Сообщений: 1869

Re: Плагин etz_pg для деления длинных статей на несколько страниц

odessit написал:

как им пользоватся. Установить - установил, а вот что дальше делать?

а так не пробовал?

Использование:

Добавьте новую строку, метку [page] и затем еще одну новую строку там, где Вы хотели бы вставить разделитель страниц.
В форме вывода для этой статьи, замените тэгом <txp:etz_pg_body /> присутствующий у вас там тэг <txp:body />.
Кроме того, здесь же, добавьте  <txp:etz_pg_pages />, для размещения навигации по страницам.
Добавьте необходимые стили в CSS.

Неактивен

 

#11 15-01-2009 02:24:34

Gerich
земля
Зарегистрирован: 07-09-2008
Сообщений: 100

Re: Плагин etz_pg для деления длинных статей на несколько страниц

У меня небольшой вопрос. Мне в моём случае не нужна навигация, типа 1,2,next,prev и т.д. Мне нужно чтобы в конце статьи просто стояла ссылка с текстом: "а теперь переходим к фото отчёту выставки", которая вела бы на вторую страницу статьи.
Как такое сделать?
И ещё у меня в разметке статьи не используется textile, а стоит Обрабатывать перенос строки. И я всё никак не могу избавится от символов "/>" перед текстом на второй странице?

Неактивен

 

#12 15-01-2009 02:34:02

aclorange
иже
Зарегистрирован: 07-01-2009
Сообщений: 138

Re: Плагин etz_pg для деления длинных статей на несколько страниц

Номера страниц можно заменить на какой-либо текст.
Для этого нужно переименовать custom_field в etz_pg_subs.
Далее при редактировании материала в это поле нужно вписать названия, разделив их вертикальной чертой, которых должно быть столько, сколько [page] вставлено в документ, иначе будут отображаться номера страниц, а текст ни на что не повлияет. Пример:

Страница 1 | Страница 2 | Страница 3 | Страница 4 | Страница 5

Неактивен

 

#13 15-01-2009 03:04:18

Gerich
земля
Зарегистрирован: 07-09-2008
Сообщений: 100

Re: Плагин etz_pg для деления длинных статей на несколько страниц

aclorange
Ок, спасибо, получается.Но в таком случае текст "а теперь переходим к фото отчёту выставки" остаётся и на второй странице, но теперь уже не в виде ссылки, а просто как текст, некрасиво получается.
Нужно сделать чтобы в конце первой страницы была ссылка на вторую, а на второй лишь ссылка назад на первую, ну либо вообще ничего. Есть какие-нибудь идеи?

Неактивен

 

#14 15-01-2009 03:57:36

aclorange
иже
Зарегистрирован: 07-01-2009
Сообщений: 138

Re: Плагин etz_pg для деления длинных статей на несколько страниц

В css файл нужно добавить

Код:

.pgCurrent {display: none; }

Неактивен

 

#15 15-01-2009 15:37:28

Gerich
земля
Зарегистрирован: 07-09-2008
Сообщений: 100

Re: Плагин etz_pg для деления длинных статей на несколько страниц

aclorange
Это помогло, спасибо! Сделал то что мне нужно.

Неактивен

 

#16 05-01-2013 12:34:01

itshaman
слово
Откуда: Омск
Зарегистрирован: 03-06-2009
Сообщений: 395
Вебсайт

Re: Плагин etz_pg для деления длинных статей на несколько страниц

У кого-нибудь есть этот плагин?


Помогу сделать Ваш сайт лучше! Принимаю Webmoney, PayPal, рубли, доллары, печеньки

Неактивен

 

#17 05-01-2013 13:19:52

itshaman
слово
Откуда: Омск
Зарегистрирован: 03-06-2009
Сообщений: 395
Вебсайт

Re: Плагин etz_pg для деления длинных статей на несколько страниц

Если кому надо, то вот тут я его выложил etz_pg_v0.10.2.txt


Помогу сделать Ваш сайт лучше! Принимаю Webmoney, PayPal, рубли, доллары, печеньки

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru