Плагин «Рефералы»

Добавляет в altocms реферальную систему.

— У каждого пользователя профиле появляется ссылка по которой он может привлекать на сайт других пользователей
— Приглашенные пользователи отображаются в профиле пригласившего

Версия altocms 1.1.x-beta

Код открытый, стоимость бесплатно
скачать можно тут Плагин «Рефералы»

Плагин добавлен в каталог, если проидет предмодерацию будет доступен и на сайте.

13 комментариев

0
… если проидет продерацию...
Что бы попасть в каталог на сайте, надо продираться? )))
Отредактирован:
0
всегда ЛЮБИЛ умные ноуты которые делают автозамену.
0
После активации плагина на странице Профиля (site.ru/profile/username/) в сайдбаре, кроме виджета «Рефералы» — ничего не отображается. В том числе полностью отсутствует footer.
0
Какой шаблон? просто проверял на на Experience Simple и по start kit все хорошо.
0
Шаблон Experience Simple.

Исправил заменой:
{foreach $referals as $oUser}
  <li data-alto-role="popover"
      data-user-id="{$oUser->getId()}"
      data-api="user/{$oUser->getId()}/info"
      data-api-param-tpl="default"
      data-trigger="hover"
      data-placement="left"
      data-animation="true"
      data-cache="true" class="friend">
    <a href="{$oUser->getUserWebPath()}">
       <img src="{$oUser->getProfileAvatarPath(64)}" alt="avatar"/>
    </a>
    <a href="{$oUser->getUserWebPath()}">{$oUser->getLogin()}</a>
  </li>
{/foreach}

на
{foreach $referals as $oUser}
   <li data-alto-role="popover"
       data-user-id="{$oUserProfile->getId()}"
       data-api="user/{$oUserProfile->getId()}/info"
       data-api-param-tpl="default"
       data-trigger="hover"
       data-placement="left"
       data-animation="true"
       data-cache="true" class="friend">
   <a href="{$oUserProfile->getUserWebPath()}">
      <img src="{$oUserProfile->getProfileAvatarPath(64)}" alt="avatar"/>
   </a>
   <a href="{$oUserProfile->getUserWebPath()}">{$oUserProfile->getLogin()}</a>
   </li>
{/foreach}

Файл: site.ru/common/plugins/referals/templates/skin/experience-simple/widgets/referals.tpl
0
$oUserProfile — это пользователь чей профиль открыт а не пользователь из списка рефералов.
Отредактирован:
0
Верно.
0
Если страница выводится не полностью (сайдбар ломается, нет футера), то, скорее всего, произошла ошибка во время рендеринга какого-то файла шаблона, а, значит, лог ошибок надо смотреть.
+1
Модерация прошла. Но рекомендация по вызову методов модулей:
$this->User_GetUserByLogin($sUserProfileLogin);       // Старый способ
E::ModuleUser()->GetUserByLogin($sUserProfileLogin);  // Новый способ

$this->Viewer_Assign('referals', $referals);      // Старый способ
E::ModuleViewer()->Assign('referals', $referals); // Новый способ

$this->PluginReferals_Referals_getReferals($oUserProfile->getId());        // Старый способ
E::Module('PluginReferals\Referals')->getReferals($oUserProfile->getId()); // Новый способ
Я бы советовал для плагинов, которые под 1.1+ пишутся, сразу придерживаться нового способа вызовов. Так и наглядней, и с точки зрения совместимости с будущими версиями лучше.

И еще момент — в шаблон передается текущий юзер:
$this->Viewer_Assign('user', $this->User_GetUserCurrent());
Если в шаблоне нужно использовать сущность текущего юзера, то лучше не передавать его в шаблон таким образом, а обращаться к нему прямо в шаблоне. Например, сейчас в шаблоне так:
{if $user and ($oUserProfile->getLogin() == $user->getLogin())}
    <div class="block-subheader">
        {$aLang.plugin.referals.referal_link}:
 {router page='ref'}{$oUserProfile->getLogin()}/
    </div>
{/if}
А рекомендуется так:
{if E::User() and ($oUserProfile->getLogin() == E::User()->getLogin())}
    <div class="block-subheader">
        {$aLang.plugin.referals.referal_link}:
 {router page='ref'}{$oUserProfile->getLogin()}/
    </div>
{/if}
0
Спасибо учту все замечания, просто даже из ветки которая в бранче есть много мест где вызов делается по разному через модули или просто через $this поэтому я немного запутался, теперь все стало понятно что лучше использовать все через вызов модулей.
0
Всем здравствуйте.
Вышел я летом в лыжи обутый...
А одним словом после установки я готов биться башкой об стену и выть, изначально кроме блока с рефералами ничего не отображалось как чуть выше было описано у товарища по несчастью, а после того как я решил проблему с отображением всех блоков профиля и так же блока с рефералами всё стало вроде и хорошо и ссылка появилась, а вот если кто то регистрируется по этой ссылке то он у меня в итоге вообще нигде не отображается это нормально? Невидимые рефералы или как это понять? Как исправить этот косяк? Люди ведь должны видеть тех кого они пригласили, а получается человек берёт мою ссылку, регистрируется, отображается в списках пользователей, в общедоступных списках я имею ввиду, в тех что видят все в том числе и я, а вот в моём профиле такого реферала нет, кто подскажет как с этим бороться или это просто работает у кого то или может только на каких то определённых шаблонах или каких то определённых климатических условиях, фаза луны может не та? ))
0
Ребята отвечу чуть позже, просто сейчас немного приболел с температурой лежу уже неделю. Станет чуть легче посмотрю что не так.
+1
Плагин обновлен для работы с последней актуальной версией системы.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.