 |
 |
Форум поддержки MaxSite CMS |
|
| Автор |
Сообщение |
|
SadKit
|
Заголовок сообщения: Multipage — разбивка текстов постранично Добавлено: 14 окт 2009, 13:07 |
|
Зарегистрирован: 14 окт 2009, 12:45 Сообщения: 12
|
Доброго времени суток. Недавно начал изучать MaxSite, возникла пара вопросов. 1) как разбить статью на несколько страниц и возможно ли это?... На многих движках сталкивался с конструкцией типа <--Page Break--> которой можно было разделить статью на произвольное количество страниц и вывод инфы пользователю был соответственно постраничный. 2) Планируется ли многофайловый загрузчик картинок. Руками делать миниатюры, вставлять водяной знак, рассовывать по папкам в большом количестве неудобно, равно как и грузить файлы по одному  3) Система рассчитана на малое количество пользователей. И те, по умолчанию прописываются админом. однако, возникает резонный вопрос/желание. Я создал пару тройку групп. Дал им разные привелегии... у меня есть немного юзеров. Конечно, они могут поковырять комментарии, быть может даже свои страницы создать, но видят они тоже самое, что и прохожий, заглянувший на сайт по случайной ссылке. Можно ли сделать так, чтобы создавая статью я мог указать уровень ее приватности? Это - для всех, это только для юзеров, а это только для особо приближенных к императору  Заранее спасибо!
|
|
 |
|
 |
|
Wave
|
Заголовок сообщения: Re: длинные статьи Добавлено: 14 окт 2009, 14:19 |
|
| Модератор |
 |
Зарегистрирован: 01 фев 2009, 16:38 Сообщения: 1080 Откуда: Харьков
|
1. Реализован плагин, смотрим вторую страницу данного топика, или сразу идём скачивать; 2. Планируется. Делается.3. Максимум, что на данный момент есть, см. топик. Есть задумка ещё, попробую, как разделаюсь с очередными авралами. P.s. 1. Думаю, как избежать проблем с автобалансировкой тегов. И без того их хватает.
|
|
 |
|
 |
|
DizeL
|
 |
Заголовок сообщения: Re: длинные статьи Добавлено: 15 окт 2009, 08:15 |
|
Зарегистрирован: 29 сен 2009, 15:57 Сообщения: 22
|
|
Поддержу автора темы, скажу, что разбивка на страницы должна быть "зашита" в самой CMS, поскольку это один из базовых элементов любого нормального движка!
|
|
 |
|
 |
|
SadKit
|
Заголовок сообщения: Re: длинные статьи Добавлено: 16 окт 2009, 08:04 |
|
Зарегистрирован: 14 окт 2009, 12:45 Сообщения: 12
|
Wave писал(а): 1. Штатно такой возможности нет. В принципе не особо сложно написать плагин (или в шаблоне попрограммировать), чтобы текст выводился от pagebreak до pagebreak по ссылкам типа сайт/page/slug/page/1 Нужно обрабатывать (если в шаблоне) type/page.php переменную $page_content, а через mso_segment() проверять, где мы находимся. Или даже задействовать хук mso_hook('pagination', $pagination);
Жаль, жаль... интересно, а кроме меня никому небыли нужны длинные статьи, или всех устраивали простыни на 5 минут скролла?.. :/ Быть может это будет добавлено позже. На самом деле конструкцию разрыва страницы встречал в разных СМS настолько часто, что воспринимал ее как стандарт. А на счет третьего пункта, быть может просто добавить параметр к статье, в котором будет(ут) указана группа(ы) имеющие право просмотра?
|
|
 |
|
 |
|
Grom
|
Заголовок сообщения: Re: длинные статьи Добавлено: 16 окт 2009, 09:05 |
|
Зарегистрирован: 27 мар 2009, 08:59 Сообщения: 190 Откуда: Москва, Фили
|
SadKit писал(а): Жаль, жаль... интересно, а кроме меня никому небыли нужны длинные статьи, или всех устраивали простыни на 5 минут скролла?.. :/
до всего руки не доходят... 
|
|
 |
|
 |
|
SadKit
|
Заголовок сообщения: Re: длинные статьи Добавлено: 16 окт 2009, 10:27 |
|
Зарегистрирован: 14 окт 2009, 12:45 Сообщения: 12
|
Бесспорно. А и не говорю, что надо все бросить и заняться разбиением на страницы. просто хотелось бы узнать, хотя бы на будущее это планируется или не будет никогда хоть умри  Если в каких-либо последующих версиях это будет, то можно будет подождать, если нет и не предвидится, тогда надо ломать голову, как извратиться 
|
|
 |
|
 |
|
Wave
|
Заголовок сообщения: Re: длинные статьи Добавлено: 16 окт 2009, 10:50 |
|
| Модератор |
 |
Зарегистрирован: 01 фев 2009, 16:38 Сообщения: 1080 Откуда: Харьков
|
Вешаю хук на 'content'. Подключаю хук пагинации. Пагинацию выводит ещё до хедера. Вешаю хук на 'content_start' — пагинацию вообще не выводит, т.к. не получается передать параметры, которые высчитал в предыдущем хуке. А передавать их пробую в том числе так: Код: global $MSO; $pagination['maxcount'] = $pages_count;//Предварительно высчитав, на сколько страниц разбивать. $pagination['limit'] = 1; $MSO->config['pag'] = $pagination; Код: global $MSO; $pagination = $MSO->config['pag']; mso_hook('pagination', $pagination); Чую так, что пагинацию придётся реализовывать самому. P.s. Ой, вру, через global $MSO; получается передать. Народ, спокойствие, сделаю вскоре.
|
|
 |
|
 |
|
admin
|
Заголовок сообщения: Re: длинные статьи Добавлено: 16 окт 2009, 11:56 |
|
| Администратор |
 |
Зарегистрирован: 31 янв 2009, 18:02 Сообщения: 1302
|
А зачем тебе пагинация от mso_get_pages? Я думаю, что нужно так: - вешаемся на content. - смотрим количество в тексте [paged] - это и есть кол-во страниц - смотрим сегменты в конце url /paged/id -- если нет то выводим текст до первого [paged] -- если есть, то вычлиняем текст мужду текущим id и следующим. - внизу строчка пагинации - можно через хук - задать вручную для него массив опций. То есть все делается через плагин по хуку content. Единтвенный момент - это нужно чтобы хук сработал до остальных content (выставить приоритет). Тут тогда можно прицепиться к content_in. Он гарантированно срабатывает до content.
|
|
 |
|
 |
|
Wave
|
Заголовок сообщения: Re: длинные статьи Добавлено: 16 окт 2009, 12:47 |
|
| Модератор |
 |
Зарегистрирован: 01 фев 2009, 16:38 Сообщения: 1080 Откуда: Харьков
|
admin писал(а): А зачем тебе пагинация от mso_get_pages? Затем, что она уже вполне реализована и нормально отрабатывает. Код: function multipage_autoload($args = array()) { mso_hook_add( 'content', 'multipage_custom'); mso_hook_add( 'content_start', 'multipage_cust'); }
function multipage_custom($text = '') { global $MSO; if ( !is_type('page') ) return $text; if (strpos($text, '[pagebreak]') !== false) { $pages_count = substr_count($text, '[pagebreak]') + 1; $pagination['maxcount'] = $pages_count; $pagination['limit'] = 1; $MSO->config['pag'] = $pagination; } return $text; }
function multipage_cust() { if ( !is_type('page') ) return true; global $MSO; $pagination = $MSO->config['pag']; mso_hook('pagination', $pagination); } Это нормально работает. Осталось только текст между нужными бриками вычленить и отдать только его. Один взгляд на сегменты и одна-две регулярки. Upd на одно предложение, забыл добавить, в multipage_cust нужно ещё проверять, есть ли вообще параметры для пагинации. Я как ленивый програмист — стараюсь по максимуму использовать уже сделаное и не изобретать велосипеды. Контент_старт — это на время эксперимента. Дальше можно будет сделать опцию: выводить вверху\внизу\везде. admin писал(а): То есть все делается через плагин по хуку content. Единтвенный момент - это нужно чтобы хук сработал до остальных content (выставить приоритет). Тут тогда можно прицепиться к content_in. Он гарантированно срабатывает до content. Об этом я тоже подумывал. Смущает только комментарий Цитата: # хуки на контент # по возможности используйте хук content - остальные могут поменяться Плюс к этому, за пример я взял ФАК и перелинк. Там на контент цепляется.
|
|
 |
|
 |
|
admin
|
Заголовок сообщения: Re: длинные статьи Добавлено: 16 окт 2009, 14:02 |
|
| Администратор |
 |
Зарегистрирован: 31 янв 2009, 18:02 Сообщения: 1302
|
Я понял. У тебя $pagination используется своя, а не от mso_get_pages(). Зачем делать $MSO->config['pag'], если вполне можно обойтись глобальной $multipage_pag. Я против вмешательства в $MSO.  По коду вижу, что ты выводишь саму пагинацию по content_start. Если доберешься до опций, то вот еще пожелания: - задать произвольный разделитель страниц. - выводить до текста, после, по content_end (это отдельный блок после текста). - произвольный next_url. Ну и плюс не забудь что нужно как-то определиться с поведением [pagebreak] на главной, рубриках и т.д. Удалять их или выводить только до первого [pagebreak].
|
|
 |
|
 |
|
Кто сейчас на конференции
Сейчас этот форум просматривают: Yahoo [Bot] и гости: 0 |
| |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения
|
|
 |