КОГО Я ИЩУ <b>[b]222[/b]</b> Здравствуйте. Разыскивается человек, нежно любящий CMS MODx Revolution, PHP и красоту в коде.
ЗАДАЧА
I. Создать контекст
Необходимо создать в админке MODx новый контекст Source. Далее мы будем работать с ним.
II. Обработка RSS лент
Есть порядка 20 RSS лент. По сложившейся традиции, они оформлены как попало. Необходимо написать снипет, который будет читать эти ленты и приводить их к единому виду.
Первое, что будет нужно сделать – проверить кодировку. Некоторые RSS приходят в кодировке 1251, некоторые заявлены как UTF 8, но мы понимаем, что «СЂСѓРєС†РёРё древнего» (цитата дословная, стилистика и пунктуация автора сохранены).
Из каждой RSS ленты будет нужно получить следующую информацию:
1. Заголовок записи. 2. Дата публикации. 3. Ссылка на публикацию. 4. Краткое описание публикации.
В некоторых лентах дополнительно встречаются данные, которые также надо будет получить, если они есть:
1. Категория (тематика) публикации. 2. Автор публикации. 3. Ссылка на изображение. 4. Полный текст публикации.
Со ссылками на изображения и полными текстами публикаций возникнут сложности.
Изображения.
Где то ссылка на изображение оформлена как <enclosure url="_url_" type="image/_ext_"/>, где-то вставлена в тег description через ![CDATA[ _HTML_tag_ ]]>, где-то она в теге content. Бывает, что ссылка на изображение в enclosure дублируется в description. Будет необходимо:
1. Если ссылка есть в теге enclosure, берем ее url. 2. Если ссылка есть в теге description, берем ее src. 3. Если ссылка есть и в description, и в enclosure, сравниваем src и url соответственно. Если дубль – удаляем повтор. 4. Далее парсим содержимое content, проверяем на наличие ссылок. Добавляем в массив. 5. Скачиваем эти изображения в папку asseets/images-store, присваивая им md5 имена. В БД сохраняем массив из имен изображений (имя + расширение) или false.
Content.
В content встречается все, что угодно: куски разметки и даже JS (через CDATA). Мы должны привнести гармонию в мир и выпилить это безобразие, оставляя только спецсимволы HTML ( &mdash « и т.п.).
Итогом этого этапа работы должны стать очищенные от мусора строковые данные или прямые ссылки.
III. Запись в БД.
Все данные из второго пункта необходимо положить в базу данных. Предварительно важно проверить, не лежат ли уже там эти самые данные.
IV. CRON
Необходимо написать CRON скрипт, который будет выполнять пункты 2 и 3 с периодичностью раз в 30 минут. Если у вас есть альтернативна крону, которая по каким-то причинам видится вам более разумной (стабильность, потребление ресурсов и проч.), я буду рад внять доводам профессионала.
V. API
Как вы поняли, создаем что-то вроде агрегатора новостей. Фронт-енд будет на AngularJS, для которого нужен API. Хранить мы его буем в созданном на первом шаге контексте. Мне будет нужно по запросу name.domain/source/somena... получить JSON с массивом объектов, ранее записанных в БД.
VI. Научить дурака
Будет нужна передача знаний. Я хотел бы понять, как у вас все работает, что нужно будет сделать, если мне понадобится добавить или удалить RSS поток.
ЛИРИКА
Я совсем не против использования сторонник библиотек, главное – чтобы они были с соответствующими лицензиями (MIT, Apache, любая халява). Короче, не воруем и не копипастим.
Если вы сочтете свой снипет настолько хорошим, что захотите им похвастаться и опубликовать на ресурсах modx.com – я буду рад. Только затрите упоминания обо мне :-)
ТЕХНИЧЕСКИЕ ИСХОДНЫЕ ДАННЫЕ
MODx Revo Сервер VPS на Рег.ру Процессор 2x2000МГц Память 1024МБ OS centos6_php_selector-x86_64_isp_lite5 ISP manager MySQL 5.1.73-3.el6_5 PHP 5.3.3-40.el6_6 Протокол https
ОПЛАТА
1. Только безопасная сделка. 2. Демпингующие будут разочарованы безразличием. 3. Если хотите обсудить стоимость проекта, пишите.
О СРОКАХ
Сроки не поджимают. Делаем на совесть, а не на скорость.
С МЕНЯ
Доступ к VPS. Доступ к админке. Оплата. Хороший отзыв за хорошую работу.
С ВАС В ОТКЛИКЕ НА ПРОЕКТ
Цена Ориентировочный срок выполнения работ Любые ссылки, которые могут заставить меня хотеть работать только с вами
ССЫЛКИ
Просто собрал, как выглядят айтемы из разных потоков, в одном файле блокнота: yadi.sk/i/FsDA_0tqmBMxN
Теги: разработать сайт, создать личный сайт, создать одностраничный сайт, нужно сделать сайт, лучшие разработчики, нужно создать сайт, требуется разработчик