Здравствуйте.
Речь пойдет о сайте artinn.biz (Drupal)
Все новости на него подтягиваются по средствам rss ленты, но в автоматическом режиме им не назначается внешний вид (изображения и формфактор, как на главной странице). Все новости выводятся без картинок и сплошным потоком одинаковых квадратов:
http://artinn.biz/newsЭто нужно поправить и автоматизировать назначение форм фактора новости в зависимости от изображения в ней. А так же, разбить вывод новостей на страницы.
Как мы это видим:
Источники для сбора новостей остаются прежними, но парсер должен не просто собирать их и постить на сайт, но на основе размера картинок, содержащихся в них, автоматически задавать им вид оформления.
За основу расположения берется размещение плитки, как сейчас на главной странице. В такие наборы должны собираться все новости:
- 1 новость с большой картинкой 2х2 ячейки;
- 2 новости с картинками поменьше 2х1ячейки
- 7 новостей с картинками 1х1 плитку
- 5 новостей без картинок.
Впрочем, количество новостей с картинками и без картинок не принципиально. Главное, что бы их было примерно поровну и выводились они не подряд.
Будет очень здорово, если в будущем мы сможем добавить еще 2-3 разновидности структур вывода новостей. Но сейчас остановимся на одной этой.
Идея нового парсера заключается в том, что получив новость из источника, он не постит её сразу на сайт, а «запоминает» размер её картинки и присваивает ей возможные варианты отображения. Например, если картинка имеет разрешение выше 371х180 – то для неё доступен любой из четырех видов размещения (2х2, 2х1, 1х1img, 1х1), если картинка имеет разрешение поменьше, но соответствующее выводу небольшого изображения в ячейку – ей могут быть доступны размеры (2х1, 1х1img, 1х1), если новость вообще не имеет картинки – ей может быть доступен только размер 1х1.
Таким образом, парсер должен формировать сразу размеченные блоки и постить их целиком (все 15 новостей), сразу, как только наберется нужное число нужных форм-факторов картинок. Все новости «не вошедшие» в эту подборку – могут быть просто пропущены. И удалены из памяти парсера, что бы место не занимали.
Например, сегодня начинается очередной «цикл» парсинга, первая новость была подобрана успешно и соответствует размеру 2х1, вторая (1х1img), третья (1х1img), четвертая (1х1img),пятая (1х1img), шестая (1х1) – все это нашлось сегодня. А вот большой картинки не подобралось. Зато были получены еще три новости (1х1img) – запомним их. Завтра в течении дня нам нужно собрать 1 новости для 2х2 и 4 новости для 1x1 – как только они подбираются, этот блок постится на сайт (все новости с сегодняшней датой) и начинается сбор нового.
При попадании на сайт новый блок автоматически замещает блок на главной странице прежний, также он появляется и на странице
http://artinn.biz/news. Эту страницу нужно разбить на раздельные страницы cвозможностью листания. Каждая страница должна состоять из 10 блоков (то есть 150 новостей).
Если у вас есть другие предложения по решению данной задачи - готовы обсудить. Данный алгоритм - это только предложение. Главная задача – нам нужно, что бы форм-фактор картинок и постинг на главную задавались автоматически. При этом, совершенно не принципиально наличие на сайте поголовно всех новостей с сайтов источников. Получится всех – хорошо. Не получится – ну и ладно. Главное, что бы динамика заполнения присутствовала.