MaxSite CMS    Регистрация    Вход    Форум    Поиск    FAQ     RSS

Список форумов » Пользователям » Плагины и шаблоны




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Multipage — разбивка текстов постранично
 Сообщение Добавлено: 14 окт 2009, 13:07 
Аватара пользователя

Зарегистрирован: 14 окт 2009, 12:45
Сообщения: 12
Доброго времени суток.

Недавно начал изучать MaxSite, возникла пара вопросов.

1) как разбить статью на несколько страниц и возможно ли это?...

На многих движках сталкивался с конструкцией типа <--Page Break--> которой можно было разделить статью на произвольное количество страниц и вывод инфы пользователю был соответственно постраничный.

2) Планируется ли многофайловый загрузчик картинок. Руками делать миниатюры, вставлять водяной знак, рассовывать по папкам в большом количестве неудобно, равно как и грузить файлы по одному :(

3) Система рассчитана на малое количество пользователей. И те, по умолчанию прописываются админом. однако, возникает резонный вопрос/желание.
Я создал пару тройку групп. Дал им разные привелегии... у меня есть немного юзеров. Конечно, они могут поковырять комментарии, быть может даже свои страницы создать, но видят они тоже самое, что и прохожий, заглянувший на сайт по случайной ссылке.
Можно ли сделать так, чтобы создавая статью я мог указать уровень ее приватности? Это - для всех, это только для юзеров, а это только для особо приближенных к императору ;)


Заранее спасибо!


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: длинные статьи
 Сообщение Добавлено: 14 окт 2009, 14:19 
Модератор
Аватара пользователя

Зарегистрирован: 01 фев 2009, 16:38
Сообщения: 1080
Откуда: Харьков
1. Реализован плагин, смотрим вторую страницу данного топика, или сразу идём скачивать;

2. Планируется. Делается.

3. Максимум, что на данный момент есть, см. топик.
Есть задумка ещё, попробую, как разделаюсь с очередными авралами.

P.s. 1. Думаю, как избежать проблем с автобалансировкой тегов. И без того их хватает.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: длинные статьи
 Сообщение Добавлено: 15 окт 2009, 08:15 
Аватара пользователя

Зарегистрирован: 29 сен 2009, 15:57
Сообщения: 22
Поддержу автора темы, скажу, что разбивка на страницы должна быть "зашита" в самой CMS, поскольку это один из базовых элементов любого нормального движка!


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: 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 настолько часто, что воспринимал ее как стандарт.

А на счет третьего пункта, быть может просто добавить параметр к статье, в котором будет(ут) указана группа(ы) имеющие право просмотра?


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: длинные статьи
 Сообщение Добавлено: 16 окт 2009, 09:05 
Аватара пользователя

Зарегистрирован: 27 мар 2009, 08:59
Сообщения: 190
Откуда: Москва, Фили
SadKit писал(а):
Жаль, жаль... интересно, а кроме меня никому небыли нужны длинные статьи, или всех устраивали простыни на 5 минут скролла?.. :/


до всего руки не доходят... :)


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: длинные статьи
 Сообщение Добавлено: 16 окт 2009, 10:27 
Аватара пользователя

Зарегистрирован: 14 окт 2009, 12:45
Сообщения: 12
Бесспорно.

А и не говорю, что надо все бросить и заняться разбиением на страницы. просто хотелось бы узнать, хотя бы на будущее это планируется или не будет никогда хоть умри ;)

Если в каких-либо последующих версиях это будет, то можно будет подождать, если нет и не предвидится, тогда надо ломать голову, как извратиться ;)


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: 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; получается передать.
Народ, спокойствие, сделаю вскоре.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: 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.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: 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;
        //$res = mso_hook('pagination', $pagination);
        $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 - остальные могут поменяться

Плюс к этому, за пример я взял ФАК и перелинк. Там на контент цепляется.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: 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].


Вернуться к началу 
 Профиль  
 
Показать сообщения за:  Поле сортировки  
 
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2, 3  След.

Список форумов » Пользователям » Плагины и шаблоны


Кто сейчас на конференции

Сейчас этот форум просматривают: Yahoo [Bot] и гости: 0

 
 

 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти: