+46.04
360 читателей, 307 топиков

Разворачиватель катов

Попробую бросить и свои 5 копеек. В жж есть такая милая функция, реализуемая с помощью дополнения к Firefox под названием LiveJournal Addons. Жмешь на квадратик и кат раскрывается без перехода по ссылке в новое окно. Сказать, что это удобно — ничего не сказать. Мелочь, а приятно. Собственно как оно выглядит:

Авто ссылки

Хотелось бы иметь возможность где-то в настройках прописать список ключевых слов/фраз и ссылок им соответствующих с тем, чтобы при появлении такого ключевика в тексте поста, он бы автоматом линковался куда сказано.

Общий багтрекинг для LS и модулей

Очень хочу, чтобы у проекта была своя багтрекинговая система. Как для движка, так и для модулей от любых разработчиков.
Постить баги в письмах, или в комментах — как то не пристало. К тому же амбиции здоровые у создателя. Выход на запад итд. Надо подтянуть этот момент, развиваться станет проще.

Отправка личного письма

Сейчас, чтобы написать личное сообщение пользователю, надо совершить как минимум два перехода: в профиль пользователя, и оттуда — к форме написания сообщения.

По-моему, было бы удобно в форме комментирования добавить галочку «как личное сообщение». Улавливаете? При чтении комментов возникла необходимость связаться с автором лично, для этого как обычно нажимаем «ответить» возле его коммента, пишем сообщение, и отмечаем его «как личное», после чего это сообщение отправляется прямиком в инбокс автора комментария.

Если точно также ответить в главную ветку, то личное сообщение отправится в инбокс автору топика.

Важные топики

В движках форумов такая функция реализована давно, и, на мой взгляд, является очень полезной. Суть в том, чтобы выделять самые важные топики в конкретном блоге. На форумах это происходит путем их закрепления сверху над общим потоком тем, в ЛС для этого можно вынести блок в правой части, где выводить заголовки самых важных топиков блога.

Читать дальше →

Мысли об Object-Relational Mapping в LiveStreet

Хочу предложить свои идеи для развития MVC/ORM.

Замечу, что исторически сложилось так, что MVC в LiveStreet весьма отличается от привычного представления в других фреймворках.
Модель здесь заменяется связкой модуль+сущность+маппер, причем, если сущность представляет из себя стандартный ООП-объект с набором свойств и методов, то модули и мапперы, это просто наборы функций для работы с определенными типами данных, что скорее похоже на библиотеки из структурного программирования, чем на стандартный ООП.
Я не возьмусь судить хорошо это или плохо, у меня есть лишь предложения о том, как можно воспользоваться этим для создания эффективных отношений между объектами (модулями).

Читать дальше →

Прямой доступ к свойствам модели

Это здорово, что в версии 0.4.* появилась возможность автоматического доступа к полям модели из записи в БД, без постоянного прописывания get- и set-методов в файле *.entity.php.

Однако при попытке воспользоваться новым функционалом сразу столкнулся с проблемой:
Т.к. по логике, принятой в LS, все поля записываются в базе данных с префиксом (имя модели), то и автоматические геттеры теперь требуют имени модели.
Иначе говоря, если у нас есть модуль Test с таблицей prefix_test и полем в таблице test_name, то чтобы получить к нему доступ, нам нужно писать $oTest->getTestName() вместо привычного способа $oTest->getName(), который является логичным и удобным.

Я считаю, что необходимо ввести поддержку обоих вариантов, не только по причине неудобства варианта, который возможен сейчас, а еще и по более важной причине — совместимости.
Исторически в самом LiveStreet все методы были прописаны в *.entity.php и указывались без имени модели, например для блога — getDescription(), getTitle() и т.д., а никак не getBlogDescription() и getBlogTitle().

Подобный принцип наименования (вполне логичный и разумный) наследовали большинство модулей и плагинов, которые существуют на сегодняшний день, поэтому было бы совсем не разумно использовать половину методов (которые уже прописаны в *.entity.php) в одном виде, а другую половину, которая будет добавляться вместе с новыми свойствами моделей — в другом.

Предлагаю простой вариант, как исправить эту ошибку:
в /engine/classes/Entity.class.php, в методе __call()
после блока
if (isset($this->_aData[$sKey])) {					
  return $this->_aData[$sKey];
}
добавить блок
else {
  preg_match('/Entity([^_]+)/', get_class($this), $sModulePrefix);
  $sModulePrefix = strtolower($sModulePrefix[1]) .'_';
  if (isset($this->_aData[$sModulePrefix . $sKey])) {					
    return $this->_aData[$sModulePrefix . $sKey];
  }
}


На мой взгляд, это намного упростит и упорядочит работу с свойствами моделей.

Модуль Image в 0.4.2

Многие знают, что модуль Image отвечает за загрузку всей графики на сайт. Есть предложение для Максима, сделать его отдельным плагином, чтобы была возможность отключать, а так же осуществить поддержку загрузки gif анимации (аватары, фото и т.д.) и вывести под эту анимацию в конфиг плагина true/false.

Я полагаю многим сайтам эта опция будет полезна, а тем кому не нужна — отключат ее в конфиге.

Визуальный редактор на jQuery

Здраствуйте господа разработчики.
Промелькнула тут мысль у меня, а как реализовать незнаю.(Не силен я в программировании). Нашел хороший редактор на jQuery. Как его прикрутить к LS 0.4.1?


Читать дальше →