Юзерпики в «Эгее»

Во второй раз занимаюсь разовой конвертацией блогов в формат «Эгеи», надо бы записать кое-какие вещи, а то забывается. Авось придётся в третий, опять придётся разбираться.

В основном обращаться приходится к трём таблицам, имеющим довольно говорящие названия: Notes — сами заметки, Comments — комментарии к ним (там же хранятся и авторы комментариев, единого профиля у них нет) и Aliases — адреса, по которым доступны страницы (в моей схеме в этой таблице нет поля Alias, куда и записывается сам адрес).

Основные поля основных таблиц «Эгеи» версии 2.9

Назначения полей, в основном, понятны из названий, кроме разве что поля Stamp — это временная метка создания чего либо в секундах (timestamp) и поля с префиксом GIP, об этом чуть ниже.

Если вам интересны метки (теги), то понадобятся ещё две таблицы: Keywords — где хранится русское название метки и её урл и NotesKeywords, таблица, связывающая метки и заметки.

Теперь про GIP. Если флаг IsGIPUsed в таблице Comments установлен в ноль, то это прежняя схема хранения автора комментарий — без юзерпика, чтобы юзерпик появился, надо выставить IsGIPUsed в единицу, в поле GIP записать сервис, через который была проведена аутентификация (facebook, vk или twitter), а в GIPAuthorID записать некий идентификатор пользователя во внешнем сервисе.

Юзерпик нужно положить в pictures/avatar/ с именем, составленным из полей GIP и GIPAuthorID, записанных через дефисоминус. Например: vk-1.jpg — это был бы юзерпик Дурова, создателя «Вконтакте», если бы он зачем-то зашёл хоть на одну «Эгею».

Тут есть одна интересная деталь. Дело в том, что у меня в блоге, когда он ещё работал на самописном движке, уже были юзерпики, были они и у Олега Петровича, блог которого я переносил сегодня ночью. Причём и у меня, и у Олега авторизация была своя собственная, не обязательно через те сервисы, которые поддерживает «Эгея». Как же мне удалось перенести юзерпики?

«Эгея» в этом месте имеет простой механизм расширений — в принципе в неё несложно добавить любой внешний механизм аутентификации, что я и сделал. Подобрал в папке system/theme/images/, где движок ищет картинки внешних сервисов, подходящую картинку (email.svg) и написал фейковый плагин для сервиса email, который положил в файл system/gips/email.php:

<?php

class E2GIPEmail extends E2GIP {
  protected $type = 'email';

  private function _get_instance() {
    return (object) [];
  }

  public function get_auth_url() {
    return '';
  }

  public static function get_profile_url($id, $link) {
    return false;
  }

  public function callback() {
    return true;
  }
}

Файл плагина (и его тип) должны называться так же как и выбранная картинка — email и в базе его пользователи записываются с тем же значением поля GIP. В итоге, все свои старые комментарии я положил, как принадлежащие сервису email, а в качестве GIPAuthorID (это строка) взял хеш-сумму от сериализованной информации о пользователе.

Поделиться
Отправить
Запинить
 380   6 мес   php   программирование   эгея
4 комментария
Егор 6 мес

Евгений, привет. Подскажите, как настроить шрифты и фон в Эгее как на вашем блоге?
В стандартной теме они мелкие. В «Акуте» — цвет иной. Я так понимаю, где то в коде нужно что-то изменить? Может подскажете?

Евгений Степанищев 6 мес

Я просто создал свою тему (скопировал какую-то, они все лежат в themes/) и определил в ней свои стили.

Егор 6 мес

Странный ник вышел. Что за ерунда:))

Евгений Степанищев 6 мес

Поправил. Это у вас не в первый раз, один такой коммент я удалил уже.

Егор 6 мес

Что ж, ответ вы дали, но понятнее не стало.
(не в вашу сторону реплика, а мысли по поводу).
Скажем так, Эгея понравилась своей простотой, однако под капотом и в настройках возникают сложности (как настроить, как что то прикрутить, что то добавить). Иногда видишь реализованные решения у блогеров на Эгее. Иногда эти люди пишут посты, как и что они делали.
К сожалению, нет комьюнити (ну, форум там какой, нет развернутой документации (Бирман, привет!).
У вас один из отличнейших блогов (текста и стиль оформления), поэтому и решил спросить. Так как познаний для решения некоторых вопросов пока еще не хватает.

Евгений Степанищев 6 мес

Ну смотрите.

1) идёте в themes, берёте любую схему, которая вам больше подходит и копируете её папку в любую другую, например, в папку «egor»;
2) внутри редактируете theme-info.php, меняете «index», скажем на «0», в «display_name» прописывате имя своей темы на разных языках — «egor/егор»;
3) в styles/main.css вставляете нужные вам стили;
4) в настройках «Эгеи» (шестерня справа вверху) выбираете свою новую схему.

Егор 6 мес

Направление куда думать, понял. Спасибо за то, что уделили время. И хороших постов вам!

Популярное