Виджет для MaxSite CMS, выводящий случайные статьи с функцией поиска превьюшек для статей.

Виджет для MaxSite CMS, выводящий случайные статьи с функцией поиска превьюшек для статей.

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

Как будет определена превьюшка?

Для этого имеется функция pages_images_get_pictures, возрвщающая адрес картинки.

В качестве аргументов можно передать необязательные параметры:

  1.  $arg = array(
  2.  'meta_name' => $options['meta_name'], // имя мета-поля, где может быть задана превьюшка
  3.  'page_id'=> $page['page_id'], // номер страницы в качестве ключа для поиска
  4.  'page_content' => $page['page_content'], // контент страницы для поиска картинки там
  5.  'page_slug' => $page['page_slug'], // slug страницы в качестве ключа для поиска
  6.  'dir' => $options['src_dir']); // каталог, где может найтись превьюшка по ключу

    Делаются последовательно попытки найти картинку:
  • В метаполе.
  • В файле (заданного каталога), имя которого содержит id или slug страницы.
  • Первую попавшуюся картинку в посте.

Если картинка не найдена, то возвращается custom.jpg из каталога плагина.

Можно еще приделать попытку найти по ключу в discription файла картинки ли в галерее, созданной плагином TagGallery.

Для того, чтобы у страницы появилось мета-поле "превьюшка" (по типу играет музыка), необходимо в файле шаблона meta.ini добавить
  1.  [Превьюшка]
  2.  options_key = prev
  3.  type = textfield
  4.  description = "Укажите адрес превьюшки"
  5.  default =

Можно же, в качестве мета-поля, указать уже существующее мета-поле, и хранить адрес картинки там, - метаполе "Настроение" все равно вряд ли использует кто-то.

Плагин содержит виджет, который выводит заданное колличество случайных страниц заданного типа: 'blog' , 'static' ... Если задать в поле размер картинки большим чем 0, то будет выведена превьюшка страницы, найденная при помощи вышеописанной функции.

Архив плагина:

Похожие страницы
Комментариев: 15
  1. Артем 5 августа 2011 в 01:50:34 (ссылка)

    если в контенте картинка указана как то тогда все нормально работает, т.е. она находится. А вот когда картинка не находится.

    Как это можно исправить? (cms 0.54, пробовал локально и на хостинге)

  2. Sadovnik 11 августа 2011 в 08:29:19 (ссылка)

    А что, если картинки нет выдает ошибку?

    Процедура нахождения картинки, если нечего возвращать, возвращает результат так

    return (getinfo('plugins_dir') . 'pages_images/custom.jpg' . NR);

  3. Артем 3 сентября 2011 в 14:09:56 (ссылка)

    в предыдущем сообщении код вырезался вот и непонятен вопрос. поясню. вопрос был про поиск первой попавшейся картинки в посте. как правило куртинка в посте указывается без "http" т.е. сирц="/uploads/картинка.jpg" поэтому и не находится ничего. так как в пхп не бум бум то разобрался методом тыка.

  4. Sadovnik 3 сентября 2011 в 19:36:09 (ссылка)

    Я всегда ссылку на картинку получаю из менеджера файлов (не вводить же ее вручную), а там она всегда с http.

    От этого и отталкивался.

    Вообще, алгоритм получения первой картинки очень бесхитростен и разобраться можно.

    И ПХП так изучиться как-то сам собой.

    Вы пишете что методом тыка удалось разобраться - значит помощь не нужна?

  5. Артем 4 сентября 2011 в 05:37:09 (ссылка)

    помощь не нужна. спасибо. в коде заменил "http" на "uploads".

  6. Артем 5 сентября 2011 в 13:43:07 (ссылка)

    Не совсем по теме, но... Сложно ли вытащить первую попавшуюся картинку в блоке "Еще записи этой рубрики"? Может делали такое?

  7. Sadovnik 6 сентября 2011 в 13:33:08 (ссылка)

    Не совсем понял.

    Нужно вытащить картинку из контента тех страниц, которые попадают в блок?

  8. Артем 7 сентября 2011 в 15:10:03 (ссылка)

    Да, совершенно верно.

  9. Sadovnik 8 сентября 2011 в 15:00:55 (ссылка)

    Возьмите за основу мой последний плагин Similar Post.

    Переносите в него функцию pages_images_get_pictures

    из этого плагина.

    из функции можно убрать лишнее, оставив только вычленение фото из контента.

    Далее изменяем ф-ю similar_posts_content_end плагина Similar Post

    в параметре получения страниц ставим получать контент

    109 'content'=> false, меняем на 'content'=> true,

    После получаем из контента картинку

    $pictures = pages_images_get_pictures(), передавая ей контент в качестве параметра

    Построение массива похожих страниц делаем не так

    $similar_pages[] = $cur_page;

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

    зато чтобы попала полученная картинка.

    Теперь в построении выдачи делаем как нам надо.

    Кстати, идея интересная, чтобы было с картинками.

    Может я в ближайшем будущем и сделаю это.

  10. Sadovnik 8 сентября 2011 в 18:54:09 (ссылка)

    Сделал новую версию Similar Posts

    http://filimonov.com.ua/page/similar_posts

  11. Артем 17 декабря 2011 в 21:00:03 (ссылка)

    Привет. Юзаю плагин на всех своих сайтах. Буквально недавно заметил в панели вебмастера ссылки со статусом 404, которые имеют вид site.ru/page/

    about. Т.е. после page появляется пробел, из-за чего ссылки с нормальным урлом выпали из индекса. Если есть время и желание то глянуть можно тут zkulinara.ru.

  12. Sadovnik 18 декабря 2011 в 14:58:59 (ссылка)
    Артем: Привет. Юзаю плагин на всех своих сайтах. Буквально недавно заметил в панели вебмастера ссылки со статусом 404, которые имеют вид site.ru/page/

    оШибку исправил. Файл обновил.

    А разве в последних версиях MaxSite нет родного плагина такого?

  13. muskat (профиль) 28 декабря 2011 в 08:34:55 (ссылка)

    Привет. Покоряя твой плагин столкнулся еще с одной проблемой. Если картинка находится ниже [cut] или [pagebreak] то соответственно ничего не находится. Интересно можно решить эту проблему?

  14. Sadovnik 28 декабря 2011 в 20:10:03 (ссылка)
    Если картинка находится ниже [cut] или [pagebreak] то соответственно ничего не находится.

    Речь идет о выводе в виджете?

    Получается контент полностью и никаких обработок на предмет [cut] нет.

    А пример можно.

  15. Elle 11 мая 2012 в 02:12:29 (ссылка)

    Добрый день!

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

Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация: Авторизация MaxSite CMS. Facebook.

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)