Как работают «Блоги»

На сайте Эгеи есть раздел «Блоги», где отображается всё, что пишут заапрувленные люди на Эгее. Я периодически захожу и апрувлю ещё кого-нибудь.

Когда я задумал эту страницу, я стал думать, как же мне её технически реализовать. Ясно, что для начала надо научить саму Эгею уведомлять «Блоги» о новых заметках. Но дальше «Блоги» должны их как-то сохранять и отображать, а это значит, что там надо реализовывать базу данных, вывод заметок, листалки всякие. И нужна будет какая-то админка: удалять плохие заметки, апрувить хороших и банить плохих авторов. А в будущем наверняка захочется, чтобы там появились какие-то свои теги, например. И всё это добро надо будет учить кешированию, метатегам для соцсетей и другой нудятине... В общем, сначала мне казалось, что это проект на год, а потом до меня дошло.

В итоге в «Блогах» работает Эгея — точно такая же Эгея, как у вас. Я понял, что научить Эгею принимать входящие уведомления о заметках и «всасывать» их в свою базу будет намного проще, чем писать параллельную недо-Эгею с нуля. И это не какой-то отпочковавшийся от Эгеи параллельный проект, а самая обычная Эгея. То есть на самом деле любая Эгея умеет агрегировать заметки из других Эгей и отображать у себя, но это недокументированная фича.

Когда Эгея-источник пингует «Блоги» о новой заметке, Эгея-приёмник идёт и скачивает новую заметку себе. По умолчанию эта заметка попадает в черновики Эгеи-приёмника. Так что страница «Черновики» — это и есть админка «Блогов». Сначала все заметки просто попадали туда, и я их публиковал оттуда руками, как в обычной Эгее. Когда блогов накопилось много, это стало трудновато делать, и я добавил кнопочки, чтобы апрувить источник целиком, то есть чтобы его заметки сразу попадали в ленту. Если у вас Эгея и вы зайдёте в шаблон, отвечающий за вывод заметок (notes.tmpl.php), вы там увидите код для админских кнопок. У вас они не выводятся, потому что у ваших заметок нет внешнего источника.

Я очень доволен этим решением. Во-первых, Эгея славится нетребовательностью к ресурсам, поэтому даже с многими тысячами заметок она прекрасно и быстро работает, и я никак специально не заморачивался с оптимизацией. Во-вторых, я бесплатно получил фичи, о которых сначала даже не задумался, такие как «РСС всех блогов на Эгее» или «поиск по всем блогам на Эгее». Если бы я писал «Блоги» с нуля, я не представляю, когда бы у меня дошли руки такое реализовывать.

Ещё про страницу «Блоги»:

Дальше
Мои книги