+17.86
Рейтинг
47.25
Сила

Илья

  • avatar emmy
  • 1
В файле плагина, в методе activate

можно использовать следующую конструкцию

if(!$this->isFieldExists('prefix_user', 'user_lang')) {
$this->ExportSQL(dirname(__FILE__).'your_sql_file.sql');
}

В результате sql будет выполняться только тогда, когда нет поля user_lang в таблице prefix_user.
  • avatar emmy
  • 0
Вот это шаблон!
Именно такого нового взгляда не хватало livestreet, отличная работа! Лучше под ls не видел.
  • avatar emmy
  • 1
Я бы рекомендовал использовать prettyPhoto — www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/
Позволяет подгружать подобный контент прямо из коробки, в ls есть эта либа, используется для организации фотосетов.
  • avatar emmy
  • 1
В файле /tempaltes/skin/*/actions/ActionLogin/index.tpl
есть код — это и есть форма инвайта
{if $oConfig->GetValue('general.reg.invite')}
	<br /><br />
	<form action="{router page='registration'}invite/" method="POST">
		<h2>{$aLang.registration_invite}</h2>

		<p><label>{$aLang.registration_invite_code}<br />
		<input type="text" name="invite_code" /></label></p>
		<button type="submit"  name="submit_invite" class="button button-primary" id="login-form-submit">{$aLang.registration_invite_check}</button>
	</form>
{/if}


Перемещай ее как хочешь.
  • avatar emmy
  • 0
Очень приятный и чистый шаблон, мне понравился, аналогов ему нет.

Навигация и правда тормозит, рывком открывается подменю при наведении на пункт «навигация» chrome 27, macos 10.8

angelsmedia , ты принимаешь заказы?
  • avatar emmy
  • 1
Ну да, просто немного не поняли друг друга, peace ;)
  • avatar emmy
  • 1
И что ты хотел сказать кинув ссылку на этоттемплейт? Думаешь я его никогда не видел? Можно же подумать прежде чем говорить.

Создаем блок, в него вставляем что-то типо того — все необходимые данные, но вместо oUserProfile — текущий пользователь, автор топика просит же, чтобы ему показывались только его данные.
$iCountTopicFavourite=$this->Topic_GetCountTopicsFavouriteByUserId($this->oUserProfile->getId());
$iCountTopicUser=$this->Topic_GetCountTopicsPersonalByUser($this->oUserProfile->getId(),1);
$iCountCommentUser=$this->Comment_GetCountCommentsByUserId($this->oUserProfile->getId(),'topic');
$iCountCommentFavourite=$this->Comment_GetCountCommentsFavouriteByUserId($this->oUserProfile->getId());
$iCountNoteUser=$this->User_GetCountUserNotesByUserId($this->oUserProfile->getId());

$this->Viewer_Assign('oUserProfile',$this->oUserProfile);
$this->Viewer_Assign('iCountTopicUser',$iCountTopicUser);
$this->Viewer_Assign('iCountCommentUser',$iCountCommentUser);
$this->Viewer_Assign('iCountTopicFavourite',$iCountTopicFavourite);
$this->Viewer_Assign('iCountCommentFavourite',$iCountCommentFavourite);
$this->Viewer_Assign('iCountNoteUser',$iCountNoteUser);
$this->Viewer_Assign('iCountWallUser',$this->Wall_GetCountWall(array('wall_user_id'=>$this->oUserProfile->getId(),'pid'=>null)));

$this->Viewer_Assign('iCountCreated',(($this->oUserCurrent and $this->oUserCurrent->getId()==$this->oUserProfile->getId()) ? $iCountNoteUser : 0) +$iCountTopicUser+$iCountCommentUser);
$this->Viewer_Assign('iCountFavourite',$iCountCommentFavourite+$iCountTopicFavourite);


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

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

Где же я, по твоему, нафантазировал?
  • avatar emmy
  • 0
Ну расскажи об идее, может сообщество тебе поможет, если кого-нибудь она зацепит.
  • avatar emmy
  • 0
Эти данные можно тянуть прямо в классе блока.
  • avatar emmy
  • 0
Стой, стой, так ты хочешь везде влепить часть профиля или наоборот убрать? У ВК нет профиля на всех страницах кроме профиля, у ливстрита профиль тоже на странице профиля.
  • avatar emmy
  • 0
У ВК только на странице профиля ты видишь свой аватар, на любых других страницах ты видишь только лишь контент.
  • avatar emmy
  • 0
У каждого человка, конечно, свое чувство прекрасного, но мне интересно, в каких социальных сетях вы видели такую практику?
Да и у ливстрит на каждой странице есть аватар и имя пользователя.
Не понятно что не так.
  • avatar emmy
  • 0
Есть проблемы, например при наведение на кнопку «все» она не квадратная, как два ее соседа справа. Хотя крайние кнопки пытаются стать закругленными, кароче проблема с версткой, chrome 27, macos 10.8. Хотя тут дело не в браузере, а в верстке.

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

Иконка телефонной трубки не реагирует на наведение, хотя и не должна, но я думаю было бы приятнее если бы реагировала. Побуждала так сказать к звонку ;) Можно добавить skype-кнопку, чтобы при нажатии на номер или на иконку открывался скайп и звонил.

Сменить надо бы favicon ;)
  • avatar emmy
  • 0
Скорее всего так и есть, была такая же проблема, используйте memcached. Либо вообще пока что отключите кеширование, без него будет работать нормально.
  • avatar emmy
  • 0
Метод selectPage(...), требует переменную, в которую будет записано количество строк, этот метод сгенерирует вот такой вот код
SELECT SQL_CALC_FOUND_ROWS ...
. Само название метода намекает, что мы работаем с постраничным выводом и нам наверняка понадобится количество всех строк таблицы, подходящее под данное условие, поэтому такой sql.

Используя просто метод select(...) не будет возвращено количество строк.

kpoxas прав, будет 0 — полное число строк подходящее под условие.
  • avatar emmy
  • 0
Говнокод конечно… Зачем все городить в Action? Существуют модули для многих вещей. А также маппер и сущность. Нужно придерживаться структуры движка ls, это правильно и принесет множество плюшек в будущем, да и в настоящем.
Автор, ты не обижайся, спрашивай, я смогу тебе все разжевать подробнее, просто хочется чтобы безграмотных php программистов становилось меньше.
Почитай про паттерны проектирования, будет полезно.

P.S. Знаешь, в ls есть встроенный объект для работы с бд — oDb, наряду с ним использовать mysql_connect это кощунство, тем более коннектится к базе из экшена. И ещё, если будешь что-либо разрабатывать в будущем НЕ в рамках готовой cms или какого-либо фреймворка, то почитай про PDO или Mysqli, на дворе php5 и расщирение mysql не рекомендовано к использованию по ряду причин.