Code Monkey home page Code Monkey logo

livestreet's Introduction

LiveStreet CMS - бесплатный блого-социальный движок. Позволяет удобно и быстро создать сообщество с коллективными блогами.

Текущая версия

На данный момент релизная версия LS 2.0.1

Каталог плагинов доступен на официальном сайте - catalog.livestreetcms.com.

Контакты

Лицензия

LiveStreet - open-source проект под лицензией GPL-2.0.

Readme

livestreet's People

Contributors

1d10t avatar 1v avatar ajaxy avatar beautyfree avatar chiliec avatar deniart avatar fluxuator avatar foxel avatar golfer avatar himic avatar jekakm avatar kachayev avatar kamatozzz avatar kcop4uk avatar kerbylav avatar mrzayac avatar mzhelskiy avatar oggy3011 avatar oleg-demidov avatar pfrankov avatar psnet avatar sergeizheleznov avatar sersar avatar stfalcon avatar tigerman avatar venticello avatar verdet23 avatar vicgor avatar wasja1982 avatar xmk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

livestreet's Issues

Подпись кнопки в панели

В панели добавления топика/комментария не подписана кнопка "Вставить юзера". Все остальные подписаны.

sitemap & admin

сделать плагин sitemap и admin по умолчанию

Сервер не обязательно должен использовать HTTP/1.1

При генерации ошибки 404 в /classes/actions/ActionError.class.php жестко указан протокол HTTP/1.1, хотя это может быть не так. В связи с этим, в некоторых связках серверов могут получаться ошибки, аналогичные, например, http://brainstorm.name/blog/nginx-apache-proxy-chunked-encoding-problem.html

Достаточно поменять в /classes/actions/ActionError.class.php

"HTTP/1.1 404 Not Found"

на

"{$_SERVER['SERVER_PROTOCOL']} 404 Not Found"

чтобы это пофиксить

Окружения или дополнительная оптимизация

Есть предложение сделать откружения/состояния проекта - development и production.

Создавать при этом отдельный конфиги config.development.php, config.production.php, в которых будут описаны такие параметры как кэширование данных(js,css,smarty templates) и другие какие заблагорассудятся.

Отличительной чертой production от development будет то что в production режиме мы будем использовать кэши созданные заранее, а в development будем создавать кэши ровным счетом как в текущей версии.

При этом будем создавать кэшированную версию конфигов, т.к на парсинг значений и поиск по ключам вида "path.root.server" уходит порядка 0,03 секунды из 0,08 рабочих. Кэшировать шаблоны в smarty навсегда(до перехода на development режим), а не с проверкой изменений в шаблоне(http://www.smarty.net/docsv2/ru/caching.tpl#caching.setting.up)

Ошибки в MapperORM.

При составлении запросов UPDATE и DELETE в MapperORM при отсутствии у сущности primary_key, ри формировании данных для WHERE не происходит екранирование данных, что вызывает SQL error.

SQL Error

при создании топика вылезает такая шняга
SQL Error: Unknown column 'comment_id' in 'field list' at Z:\home\beatsale.ls\www\classes\modules\comment\mapper\Comment.mapper.class.php line 163
Array ( [code] => 1054 [message] => Unknown column 'comment_id' in 'field list' [query] => SELECT comment_id, comment_id as ARRAY_KEY, comment_pid as PARENT_KEY FROM beatsale_comment WHERE target_id = 3 AND target_type = 'topic' ORDER by comment_id asc; [context] => Z:\home\beatsale.ls\www\classes\modules\comment\mapper\Comment.mapper.class.php line 163 )

Кэш для ORM метода GetByFilter()

Сейчас все методы кэшируются, кроме этого.
А он очень важен, так как через него получаются данные при вызове GetEntityNameBy.....
Этот метод в свою очередь вызывается связями HasOne и BelongsTo

Исправление тут kpoxas@a47d909

Также можно добавить в кеш результат метода _ShowColumnsFrom, чтобы каждый раз при загрузке страницы не дергать таблицу для формирования схемы.

Ошибка на "Пересчитать счетчики избранных"

Только поставил. Все чистое. З даних только 1 адмін. Больше нигде ошибки не наблюдались

SQL Error: Unknown column 'c.comment_count_favourite' in 'field list' at /media/Garb/projects/workspace/classes/modules/comment/mapper/Comment.mapper.class.php line 668
Array ( [code] => 1054 [message] => Unknown column 'c.comment_count_favourite' in 'field list' [query] => UPDATE ls_comment c SET c.comment_count_favourite = ( SELECT count(f.user_id) FROM ls_favourite f WHERE f.target_id = c.comment_id AND f.target_publish = 1 AND f.target_type = 'comment' ) [context] => /media/Garb/projects/workspace/classes/modules/comment/mapper/Comment.mapper.class.php line 668 )

Отправка нового личного сообщения

  1. вставляем изображение, окно не отцентрировано
  2. отправляем пустое сообщение, получаем ошибки
    пишем в адресате свой ник, больше ничего не заполняем
    опять отправляем
    получаем 3 ошибки снова, поле "кому" очистилось
    надо не очищать поля при ошибках

Оптимизация вывода статистики в разделе людей.

Так конструкция в запросе SELECT выполняется быстрее, т.к. именно по тому полю,
по которому был поиск идет подсчет, а когда поле подсчета указывается явно, как это сделано
сейчас (count(user_id)), то после выборки по условиям мускул начинает
ещё выковыривать user_id для каждой строки и только тогда считать по
этому полю.

psnet@3526f01

Ошибка при занесении в черновики

При занесении в черновики топика, фотосета,... в экшенах вызывается метод

$this->Stream_write($oTopic->getUserId(), 'add_topic', $oTopic->getId(),$oTopic->getPublish() && $oBlog->getType()!='close');

Последним аргументом идет boolean тип.
То есть при сохранении в черновики опубликованного, всегда будет передаваться false.
В самом методе идет установка

$oEvent->setPublish($iPublish);

То есть при $iPublish = false в запросе мы получаем error:

SQL Error: Incorrect integer value: '' for column 'publish' at row 1 at ....\classes\modules\stream\mapper\Stream.mapper.class.php line 40
Array ( [code] => 1366 [message] => Incorrect integer value: '' for column 'publish' at row 1 [query] => UPDATE stream_event SET publish='' WHERE id = 3 [context] => ....\classes\modules\stream\mapper\Stream.mapper.class.php line 40 )

Для примера, попробуйте сохранить опубликованный фотосет в черновики.

ActionBlogs.class.php

Значение свойства $sMenuHeadItemSelect не влияет на его значение в шаблоне. К тому же, если закомментировать загрузку в шаблон этого свойства - также ничего не поменяется. В шаблоне все равно значение переменной $sMenuHeadItemSelect будет blogs

Просмотр фотосета

Фотосет: загружаем изображений больше, чем указано в конфиге для одновременной загрузки (к примеру в конфиге 20, загрузили 30). Начинаем просмотр. После показа 20й картинки показывается первая. Просмотр всех 30 изображений возможен только когда раскрыты все превьюшки.

Может быть при просмотре лучше было бы показывать все изображения, чтобы не было лишней путаницы пользователей?

ORM, не верное определение primary key

Некорректно работает автоопределение primary key.
Наглядный пример. Есть таблица, без PRIMARY, но с ключами UNIQUE a_id и b_id.
При автоопределении PRIMARY по select columns оба эти поля возвращаются с aRow['Key'] == 'PRI', последнее из них и будет записана как '#primary_key', что приведет к ошибкам при работе с таблицей (столкнулся с этим при апдейте данных). Так же скорей всего при наличии реального PRIMARY и UNIQUE при не прописанном в сущности primary key, UNIQUE подменит его собой, хотя это не столь критично.

Загрузка конфига

config.local загружается после инклюда файлов из папки include. Поэтому, если попытаться активировать хакер консоль в файле config.local, выбьет ошибку

Warning: call_user_func() expects parameter 1 to be a valid callback, class 'Debug_HackerConsole_Main' not found in \engine\include\function.php on line 63

То есть функция dump() будет существовать, а экземпляр класса Debug_HackerConsole_Main нет.

Extend Topic.mapper.class.php -> function buildFilter()

Could you please extend function buildFilter to make available to get topics by topic_type:

    if (isset($aFilter['topic_type'])) {
        $sWhere.=" AND t.topic_type =  '".(string)$aFilter['topic_type']."'"; 
    }   

It required by interested plugin but not available in core...

Thanks!

pathinfo на различных платформах

Функция pathinfo поразному ведет себя на платформах Windows/Linux

Array
(
[dirname] => /www/psychicblast/images/1
[basename] => my three girlfriends.jpg
[extension] => jpg
)

Array
(
[dirname] => /www/htdocs
[basename] => index.html
[extension] => html
[filename] => index
)

Из за этого у многих не загружаются изображения в топики и не отображаются загруженные изображения, т.к с использованием этой функции генерируются пути к изображениям. Хотелось бы обратить на данный момент внимание и привлечь к обсуждения. Проблема встретилась лично у меня при использовании ls на Windows.

Так же хочу отметить что версия php достаточно старая - 5.1.6. Поэтому стоит либо указать конкретно версию
http://livestreetcms.com/about/ , а не PHP5 или вставить проверку версии в инсталятор. Надеюсь проблему поставил, что то решим.

Для примера:
https://github.com/livestreet/livestreet/blob/master/classes/modules/topic/entity/TopicPhoto.entity.class.php : 27

Плюс при голосовании за топик

У положительного голоса за топик нет плюса:

При отрицательном голосе - минус появляется сразу после голоса и остается после перезагрузки страницы.
При положительном голосе - плюс появляется сразу после голоса, но пропадает после перезагрузки страницы.

Добавление комментария в избранное

public function AddFavouriteComment(ModuleFavourite_EntityFavourite $oFavourite) {
if( ($oFavourite->getTargetType()=='comment')
&& ($oComment=$this->Comment_GetCommentById($oFavourite->getTargetId()))
&& $oComment->getTargetType()=='topic') {
return $this->Favourite_AddFavourite($oFavourite);
}
return false;
}

тут стоит проверка на то к чему сделан комментарий. При добавлению комментариев к своей сущности оно не позволяет занести его в избранное. Предлагаю заменить
$oComment->getTargetType()=='topic'
на
in_array($oComment->getTargetType(), $types)
где $types - подтягивать из конфига массив разрешенных сущностей.

Изменение запросов выборки топиков

В маппере топиков, для выборок по фильтру аналогичных GetTopics() переделать двойной FROM на LEFT JOIN, добавить возможность JOIN другие таблицы, по аналогии с bulidFilter()

talks & comments

при удалении талков, содержание их и комментарии к ним остаются в БД. Иными словами - мертвый груз.

fotorama.js + livestreet

Здравствуйте, уважаемые разработчики.

Планируете ли вы добавить «Фотораму» в дефолтную сборку Livestreet?
Очень хорошая замена для существующей наработки фотосета.

P. S. Прости если задал свой вопрос в не правильном месте.

plugin page & jquery-templates

ежели у нас по дефолту выставляется jquery-шаблон после инсталляции, то в плагине page шаблон default должен быть c панелью markitup, а не древней lspanel на mootools

Убрать ограничение в 20 символов в profile_name

По моему скромному мнению неплохо бы убрать ограничение на длину имени.
Ну или по крайней мере вместо
if (func_check(getRequest('profile_name'),'text',2,20)) {
сделать
if (func_check(getRequest('profile_name'),'text',1,255)) {

Ибо:

  1. есть люди с именами (и даже фамилиями) длиной в одну в одну букву.
  2. Есть люди (например я, LOL), у которых имя-фамилия длиннее 20 символов. Есть и длиннее 40. Неплохо бы либо убрать ограничение, либо сделать соответствующую настройку.
    А то дискриминация какая-то.

голосование в профиле

при голосовании в профиле счётчик проголосовавших не обновляется, только после рефреша сайта

Подписка на блог(и) без уведомлений о новых постах и комментах

Предлагаю добавить возможность подписываться на блог(и) без получения уведомлений о новых топиках и комментариях или с этими уведомлениями.

Сейчас такая ситуация. Если ты вступил в лог, то ты автоматом получаешь уведомления т.к. по каждому блогу из подписки этот параметр не персонализирован. Сейчас можно или полностью включить эти уведомления и полностью отключить и пользователям приходится выходить из блогов что бы перестать получать эти уведомления.

Кто что думает на этот счет? Я думаю этот фичреквест как раз в тему готовящейся новой версии движка.

Warning: chmod(): Operation not permitted in smarty_internal_write_file.php: 50

Когда впервие заходиш на страницу показивает. Потом пропадает. Если зделать имнеменения в шаблоне или активировать плагин - повторяетса.

Warning: chmod(): Operation not permitted in /media/Garb/projects/workspace/engine/lib/external/Smarty/libs/sysplugins/smarty_internal_write_file.php on line 50

Пустой поиск

Если на поиске просто нажать кнопку поиска, то выдаются результаты по слову «поиск». Это не правильно, кнопка не должны реагировать если в поле подсказка.

Загрузка изображения

Не работает загрузка аватара и фотографии в профиле.
Отправляется input без выбранного изображения

Некорректная работа с unicode в мета-тегах

На старых системах (FreeBSD 6.1) наблюдается проблема в метатегах - отдельные кириллические символы (х, я, Р и т. д.) отображаются некорректно. Например: "случайно обнаружил на простора� сети сайт курски� эникейщиков".

Для решения этой проблемы нужно добавить модификатор u в файл /engine/include/function.php строка 285
$aWords=preg_split("/\s+/",$sText); меняем на $aWords=preg_split("/\s+/u",$sText);

Предлагаю внести соответствующие изменения в упомянутый файл в репозитории. Спасибо за внимание.

Реквест нормальной админки :)

Реквестирую нормальную админку вместо "четырёх ссылок". :)
Собственно, призываю комьюнити пообщаться на эту тему.

Кроме всего прочего — неплохо бы добавить чуть более информативный хелп (хоть бы и в тултипах). Например, неискушённому пользователю совсем не ясно, как составлять шаблоны для кастомных полей.

В добавок к первой части — совсем, имхо, не лишним было бы иметь возможность давать юзерам админские права прямо из админки/их профиля. А то лазить в базу за этим — как-то не комильфо...

хук topic_add_show

Данный хук присутствует только в ActionTopic.class.php.

link,question,photoset остались почему то без него

иконка избранного

добавьте пожалуйста к иконке избранного счётчик кол-ва добавивших к себе в избранное топик

topic_type change type on varchar

In table prefix_topic for field topic_type change the type to varchar instead of enum.
This change will simplify the implementation of new types of topics.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.