Всем привет, давно меня здесь не было, уже много лет нет проектов на LiveStreet, но он навсегда останется в моём сердце. И если кто-то решил создать версию 3.0 на Laravel, то я обязательно присоединюсь к разработке, как минимум, в качестве разработчика плагинов :)
По обилию эмоций в посте хочется думать, что тебе не безразлична судьба проекта. Я твоих идей и предложений до сего не видел и не слышал. Проект действительно не имеет определенной стратегической цели. Я работаю над ним потому, что сам пишу проекты используя его код.
Мне бы хотелось «вытащить» Livestreet, чтобы им пользовались, чтобы он набирал популярность. Но пока я не вижу определенной ниши, куда его можно вписать так, чтобы он мог выстрелить. Максим не мало времени на него потратил, но дальше у него нет возможности и желания поддерживать код, выпускать новые версии, итд. Он просто взял наработки Livestreet и пилит проекты на заказ. Осуждать его за то что он не поддержал твои идеи. У него наверняка были причины, опыт какой то. В моей жизни тоже бывали такие «старперы», которые заявляются с идеями, Я пооддеживаю, начинаю работать над ними, а потом не успепха ни старперов.
Пока livestreet на реставрации, он стоит в доке и никуда не плывет. Я по мере своих возможностей выделяю время на него, и хочу чтобы он просто стал универсальным, не только для Блогов и статей, а так же заменить старый код и прикрутить новые фичи PHP.
Почему я этим занимаюсь? Да потому же почему Максим до сих пор использует Livestreet. Потому что опыта работы с ним много, а с Yii например мало. Всяческих сайтов, модулей, плагинов написано много, все под Livestreet, все это требует поддержки, доработки. Так зачем убегать от этого, например в Yii или Laravel?
Если ты такой весь идейный, чувствуешь рынок и все такое, Предлагай! Я все таки не Макс. И Livestreet не является моим собственным, любой может внести свои 5 копеек. А то пока что на палубе никого не видно, все по каютам сидят и ни звука, только предлагают на Laravel перейти. Но я не смог найти сил и времени пока начать новые скачки с препядствиями.
Сначала идет ключевое слово component, потом название компонента, а за ним шаблон компонента.
Вообще использовать $aDelegates не стоит, для шаблонов уже можно использовать $aInherits, причем это позволит переопределить шаблон частично, а не полностью (при условии, что шаблон используется smarty блоки).
Компоненты можно переопределять (полностью и частично) из шаблона, об этом будет подробная документация.
Я знаю, что это может не понравится сообществу, но всё же аналог Пикабу это движок pligg.com
Всё что вам надо там есть, но учтите он иностранный и «у нас» с ним мало кто работает, поэтому может стать и дороже и сложнее, нежели реализовать на LS.
не знаю зачем Вам эта глупость
быдлокод на коленке :)
classes/hooks/HookPostreadingtime.class.php
<?php
//===============================================================
class HookPostreadingtime extends Hook{
//===============================================================
public function RegisterHook(){
$this->AddHook('template_topic_show_info','inj_topic_show_info',__CLASS__);
}
//===============================================================
public function inj_topic_show_info($aVars){
$iReading=200;//google: Средняя скорость чтения 200-250 слов в минуту
$iWords=count(explode(' ',strip_tags($aVars['topic']->getText())));
$iMinutes=floor($iWords/$iReading);
$iSeconds=floor(($iWords%$iReading)/($iReading/60));
$sReturn=($iMinutes>0)?' '.$iMinutes.' мин.':'';
$sReturn.=($iSeconds>0)?' '.$iSeconds.' сек.':(($iMinutes>0)?'':' моментально.');
return '<li class="topic-info-date">Время прочтения: '.$sReturn.'</li>';
}
//===============================================================
}
?>
<?php
//===============================================================
class HookStat extends Hook{
//===============================================================
public function RegisterHook(){
$this->AddHook('init_action','InitAction',__CLASS__,1000);
}
//===============================================================
public function InitAction(){
$this->Viewer_Assign('aStat',$this->User_GetStatUsers());
}
//===============================================================
}
?>
Таких никчемных топиков было штук триста, по итогам вялого срача каждый раз выяснялось, что автор некомпетентен в программировании, а все недостатки движка суть есть несовпадения с его личными хотелками, снабженными убойным аргументом «потому что я так считаю от имени всех».
Нет никакой ценности в том, чтобы «представлять мнение 95% безграмотных пользователей». Никакой. Пулл-реквест это ценно, новый плагин это ценно, найденный баг это ценно, псевдоумные рассуждения о том, как должен развиваться движок — никому не нужны.
это называется utm-метки. Позволяют в яндекс-метрике и гугло-аналитике отслеживать эффективность переходов по кампаниям.
Проще всего реализовать здесь: support.google.com/analytics/answer/1033867?rd=2
2. Для вывода в шаблоны сущность пользователя расширить функцией (если проект только стартует и нет пользователей с незаполненным полем ФИО, то функцию можно и не вставлять, а заменить в шаблонах getLogin() на getProfileName() в нужных местах)
public function getRealName() {
if ($this->_getDataOne('user_profile_name')) {
return $this->_getDataOne('user_profile_name');
} else {
return $this->_getDataOne('user_login');
}
}
и уже ей заменить все $oUser->getLogin(); (это пожалуй будет самым трудоемким). И этот пункт так же делает невозможным создание плагина потому как нужно будет переписывать много кода в шаблоне. Это конечно же несколько смущает потому как существенно затруднит апгрейд движка.
Ну и соответственно нужно будет добавить необходимые поля в шаблоны и немного кода в экшен регистрации. Если пойти дальше то можно вовсе упразднить логин как таковой, и использовать id пользователя в его качестве.
Вообще можно было бы конечно сделать настройку вида
Мне бы хотелось «вытащить» Livestreet, чтобы им пользовались, чтобы он набирал популярность. Но пока я не вижу определенной ниши, куда его можно вписать так, чтобы он мог выстрелить. Максим не мало времени на него потратил, но дальше у него нет возможности и желания поддерживать код, выпускать новые версии, итд. Он просто взял наработки Livestreet и пилит проекты на заказ. Осуждать его за то что он не поддержал твои идеи. У него наверняка были причины, опыт какой то. В моей жизни тоже бывали такие «старперы», которые заявляются с идеями, Я пооддеживаю, начинаю работать над ними, а потом не успепха ни старперов.
Пока livestreet на реставрации, он стоит в доке и никуда не плывет. Я по мере своих возможностей выделяю время на него, и хочу чтобы он просто стал универсальным, не только для Блогов и статей, а так же заменить старый код и прикрутить новые фичи PHP.
Почему я этим занимаюсь? Да потому же почему Максим до сих пор использует Livestreet. Потому что опыта работы с ним много, а с Yii например мало. Всяческих сайтов, модулей, плагинов написано много, все под Livestreet, все это требует поддержки, доработки. Так зачем убегать от этого, например в Yii или Laravel?
Если ты такой весь идейный, чувствуешь рынок и все такое, Предлагай! Я все таки не Макс. И Livestreet не является моим собственным, любой может внести свои 5 копеек. А то пока что на палубе никого не видно, все по каютам сидят и ни звука, только предлагают на Laravel перейти. Но я не смог найти сил и времени пока начать новые скачки с препядствиями.
а вот на 5.5 не тестировался
1. Где надо показываю только админу, например stream, people, etc:
2. Вывод функционала блоков, или лент, профилей, которые не нужны просто выпилил html или отключил конфигом.
3. Закинул в админку ссылки на настройки профиля.
4. Настроил рейтинг для публикации.
5. Можно еще регистрацию прикрыть.
6. Открыл коментирование для не зарегистрированных.
Сначала идет ключевое слово component, потом название компонента, а за ним шаблон компонента.
Вообще использовать
$aDelegates
не стоит, для шаблонов уже можно использовать$aInherits
, причем это позволит переопределить шаблон частично, а не полностью (при условии, что шаблон используется smarty блоки).Компоненты можно переопределять (полностью и частично) из шаблона, об этом будет подробная документация.
Идёте сюда: github.com/livestreet/livestreet/blob/1.0.3/classes/modules/acl/ACL.class.php#L395-L406 меняете на: затем сюда: github.com/livestreet/livestreet/blob/1.0.3/templates/skin/synio/comment.tpl#L92-L98 меняете на: Profit!
Всё что вам надо там есть, но учтите он иностранный и «у нас» с ним мало кто работает, поэтому может стать и дороже и сложнее, нежели реализовать на LS.
быдлокод на коленке :)
classes/hooks/HookPostreadingtime.class.php
И по традиции выше описанное не проверялось
при загрузке изображение не проверяется на тип после .(точки) Проверка идет по Mime-тайпу. Проверьте через файербаг какой результат получаете.
Уберите условие:
после кода:
Вставляешь этот код
И радуешься)
Нет никакой ценности в том, чтобы «представлять мнение 95% безграмотных пользователей». Никакой. Пулл-реквест это ценно, новый плагин это ценно, найденный баг это ценно, псевдоумные рассуждения о том, как должен развиваться движок — никому не нужны.
Проще всего реализовать здесь: support.google.com/analytics/answer/1033867?rd=2
1. Обязательным поле можно сделать изменив aValidateRules в сущности пользователя
2. Для вывода в шаблоны сущность пользователя расширить функцией (если проект только стартует и нет пользователей с незаполненным полем ФИО, то функцию можно и не вставлять, а заменить в шаблонах getLogin() на getProfileName() в нужных местах)
и уже ей заменить все $oUser->getLogin(); (это пожалуй будет самым трудоемким). И этот пункт так же делает невозможным создание плагина потому как нужно будет переписывать много кода в шаблоне. Это конечно же несколько смущает потому как существенно затруднит апгрейд движка.
Ну и соответственно нужно будет добавить необходимые поля в шаблоны и немного кода в экшен регистрации. Если пойти дальше то можно вовсе упразднить логин как таковой, и использовать id пользователя в его качестве.
Вообще можно было бы конечно сделать настройку вида но это уже вопрос к разработчикам и к Максиму в частности )
В самое начало функции добавьте просто возврат переданного текста:
Google в помощь: mysql обновить поле всех записей