Статус
В этой теме нельзя размещать новые ответы.
версия Tamaranga DO 2.2
скачена с сайта skripter_info
Если нельзя исправить, то можно ли отключить отправку активационного кода чтобы без активации регистрировались
В 2.2 нет ошибки "Время активационного кода истекло", надо точнее давать информацию, иначе мы выяснять саму ошибку будем на пару страниц. Ошибка у вас должна быть такая
PHP:
'message' => _t('users', 'Срок действия ключа активации истек.')
//Через метод getActivationInfo() формируется ключ|ссылка|дата
$aData['expire'] = date('Y-m-d H:i:s', strtotime('+7 days')); # дата истечения срока действия ключа
Работу легко проверить, если вы при регистрации пользователя, сразу посмотрите какая дата записывается в БД в таблицу bff_users поле activate_expire
при нормальной работе (по умолчанию), вы увидите там дату +7 дней, то есть ели регистрируете сегодня, то дата действия ключа будет до 11 числа.
Если это не работает у вас, то есть как пишите вы, при регистрации приходит письмо на почту, но при попытке перейти у вас 'Срок действия ключа активации истек.', прикрепите архивированный файл \modules\users\users.bl.class.php или скиньте мне его в личку.

Подскажите как отфильтровать по категориям премиум в поиске , выводится одно и тоже во всех категориях ?
Видел ваш код который вы с дамой писали, за премиум в поиске. Изначально рассматривал данный вариант, и то, что вы пошли этим путём нормально. Но там проблема в том, что данные которые приходят в шаблон выбираются частями, постраничный, и весь премиум мы не можем вынуть, а только тот который зацепили при выборке на страницу. Решить можно выбрав ещё одним запросом и даже отсортировать за премиум. А там для рандома способов много, от простых например, перемешать массив и по параметру с sys.php забрать срез массива, до сложных типа забрать сначала все ID премиум, проверить на количество из sys, стоит ли их крутить, если их меньше или равно, выбрать ID для показа по количеству sys, выбрать из БД по ID и показать. Всё зависит какой за какой премиум вам будут платить, и не будет ли у вас потом шишек на голове, когда клиенты начнут бить вас по голове за плохой показ их оплаченных объявлений. Я бы не рекомендовал использовать RAND, как реализовано выше. Так вот в том методе есть все фильтра и по региону и по категориям, ничего дополнительного типа
Не надо. Вам останется только решить проблему, верней логику, что у вас будет происходить если премиум отключены. Да управление показом количества объявлений.
В 2.2 нет ошибки "Время активационного кода истекло", надо точнее давать информацию, иначе мы выяснять саму ошибку будем на пару страниц. Ошибка у вас должна быть такая
PHP:
'message' => _t('users', 'Срок действия ключа активации истек.')
//Через метод getActivationInfo() формируется ключ|ссылка|дата
$aData['expire'] = date('Y-m-d H:i:s', strtotime('+7 days')); # дата истечения срока действия ключа
Работу легко проверить, если вы при регистрации пользователя, сразу посмотрите какая дата записывается в БД в таблицу bff_users поле activate_expire
при нормальной работе (по умолчанию), вы увидите там дату +7 дней, то есть ели регистрируете сегодня, то дата действия ключа будет до 11 числа.
Если это не работает у вас, то есть как пишите вы, при регистрации приходит письмо на почту, но при попытке перейти у вас 'Срок действия ключа активации истек.', прикрепите архивированный файл \modules\users\users.bl.class.php или скиньте мне его в личку.

Была такая проблема настройте cron и все будет работать нормально
Вы пишите полную чушь. Это кардинально утопия и не решит проблему пользователя.
 
Последнее редактирование модератором:
В 2.2 нет ошибки "Время активационного кода истекло", надо точнее давать информацию, иначе мы выяснять саму ошибку будем на пару страниц. Ошибка у вас должна быть такая
PHP:
'message' => _t('users', 'Срок действия ключа активации истек.')
//Через метод getActivationInfo() формируется ключ|ссылка|дата
$aData['expire'] = date('Y-m-d H:i:s', strtotime('+7 days')); # дата истечения срока действия ключа
Работу легко проверить, если вы при регистрации пользователя, сразу посмотрите какая дата записывается в БД в таблицу bff_users поле activate_expire
при нормальной работе (по умолчанию), вы увидите там дату +7 дней, то есть ели регистрируете сегодня, то дата действия ключа будет до 11 числа.
Если это не работает у вас, то есть как пишите вы, при регистрации приходит письмо на почту, но при попытке перейти у вас 'Срок действия ключа активации истек.', прикрепите архивированный файл \modules\users\users.bl.class.php или скиньте мне его в личку.

Здравствуйте
Проблема не решена
Как исправить проблему при активации аккаунта отправляемое пользователю после регистрации, с указаниями для активации аккаунта
Проблема заключается в том, что после получения активационного сообщения и переходя по ссылки выдает ошибку что Срок действия ключа активации истек как исправить
Закрепляю архивированный файл \modules\users\users.bl.class.php
 

Вложения

  • users.bl.class.php.zip
    6,4 KB · Просмотры: 7
Код:
$(function(){
    $('#j-f-categories-toggle').click(function(e){
        e.preventDefault();
        $(this).closest('li').remove();
        $('#j-f-categories-block ul li').removeClass('hide');
    });
});
Подскажите как правильно вывести скрытие категорий, код ява вставил и с демо взял стили но открытой остается только последняя категория ?
 
Код:
$(function(){
    $('#j-f-categories-toggle').click(function(e){
        e.preventDefault();
        $(this).closest('li').remove();
        $('#j-f-categories-block ul li').removeClass('hide');
    });
});
Подскажите как правильно вывести скрытие категорий, код ява вставил и с демо взял стили но открытой остается только последняя категория ?

Ставим код в Самый низ footer.php
Она в папке
tpl/footer.php

код
Код:
<script>
$('#contacts').removeClass("hide");
$('#ajax-loader').addClass("hide");

function itemsCronStatus(){
    $.ajax({
        url: "/index.php?bff=cron&s=bbs&ev=itemsCronStatus",
        async: true
    }).responseText;
    setTimeout(function(){
        itemsCronStatus();
    }, 60000);
}
itemsCronStatus();

$(function(){
    $('#j-f-categories-toggle').click(function(e){
        e.preventDefault();
        $(this).closest('li').remove();
        $('#j-f-categories-block ul li').removeClass('hide');
    });
});
</script>
 
Ставим код в Самый низ footer.php
Она в папке
tpl/footer.php

код
Код:
<script>
$('#contacts').removeClass("hide");
$('#ajax-loader').addClass("hide");

function itemsCronStatus(){
    $.ajax({
        url: "/index.php?bff=cron&s=bbs&ev=itemsCronStatus",
        async: true
    }).responseText;
    setTimeout(function(){
        itemsCronStatus();
    }, 60000);
}
itemsCronStatus();

$(function(){
    $('#j-f-categories-toggle').click(function(e){
        e.preventDefault();
        $(this).closest('li').remove();
        $('#j-f-categories-block ul li').removeClass('hide');
    });
});
</script>
Этот код вставил как дальше вывести вот этот код
Код:
<li class="f-categories-col-more"> <a href="#" class="ajax pseudo-link-ajax" id="j-f-categories-toggle"> Показать еще  категории</a></li>
 
Этот код вставил как дальше вывести вот этот код
Код:
<li class="f-categories-col-more"> <a href="#" class="ajax pseudo-link-ajax" id="j-f-categories-toggle"> Показать еще  категории</a></li>

У вас должно быть так Ставим код в search.form.php
Она в папке
Самый низ
modules\bbs\tpl\def\ search.form.php
код
PHP:
<?
echo $this->subcatsList('search', bff::DEVICE_DESKTOP, $catID);
?>

создаем файл search.cats.desktop.subcats.php
в папке modules\bbs\tpl\def\
ставим код
PHP:
<div class="pt10"></div>
<div class="f-categories hidden-phone">
<div class="f-categories-in" id="j-f-categories-block">
<?
$cols = 1;
$colsClass = 3;
$catsTotal = sizeof($cats);
foreach (array(24=>1,25=>2,60=>3,300=>4) as $k=>$v) {
if ($catsTotal<=$k) { $cols = $v; $colsClass = (3 / $v); break; }
}
$cats = ( $cols > 1 ? array_chunk($cats, ceil( $catsTotal / $cols ) ) : array($cats) );
foreach($cats as $catsChunk): ?>
<? foreach($catsChunk as $v): ?>
<ul class="f-categories-col">
<li class="hide">
<a href="<?= $v['l'] ?>">
<span class="f-categories-col-item"><?= $v['t'] ?><? if($v['subs']) { ?><? } ?></span>
<span class="f-categories-col-count"><?= $v['items'] ?></span>
</a></li>
</ul>
<? endforeach; ?>
<? endforeach; ?>
<ul class="f-categories-col">
<li class="f-categories-col-more"> <a href="#" class="ajax pseudo-link-ajax" id="j-f-categories-toggle"> Показать все категории</a></li>
</ul>
</div>
</div>

ставим код bbs.class.php
Она в папке
modules\bbs
Самый низ
Перед одного
}
код
PHP:
	public function subcatsList($sType = '', $mDevice = '', $nParentID = 0){
        $showAll = false;

        if (Request::isAJAX()) {
            $sType = $this->input->getpost('act', TYPE_STR);
            $mDevice = $this->input->post('device', TYPE_STR);
            $nParentID = $this->input->post('parent', TYPE_UINT);
            $showAll = $this->input->post('showAll', TYPE_BOOL);
        }
        $sListingUrl = static::url('items.search');
        $oIcon = self::categoryIcon(0);
        $ICON_BIG = BBSCategoryIcon::BIG;
        $ICON_SMALL = BBSCategoryIcon::SMALL;
        switch ($sType) {
            case 'search': {
                if ($mDevice == bff::DEVICE_DESKTOP){
                    $nSelectedID = 0;
                    if ($nParentID > self::CATS_ROOTID) {
                        $aParentData = array(
                            'id',
                            'pid',
                            'numlevel',
                            'numleft',
                            'numright',
                            'title',
                            'keyword',
                            'icon_' . $ICON_BIG . ' as icon',
                            'items',
                            'subs'
                        );
                        $aParent = $this->model->catData($nParentID, $aParentData);
                        if (!empty($aParent)) {
                            if (!$aParent['subs']) {
                                # в данной категории нет подкатегорий
                                # формируем список подкатегорий ее parent-категории
                                $aParent = $this->model->catData($aParent['pid'], $aParentData);
                                if (!empty($aParent)) {
                                    $nSelectedID = $nParentID;
                                    $nParentID = $aParent['id'];
                                }
                            }
                        }
                    }
                    $aData = $this->model->catsList($sType, $mDevice, $nParentID, $ICON_BIG);
                    if (!empty($aData)) {
                        foreach ($aData as &$v) {
                            $v['l'] = $sListingUrl . $v['k'] . '/';
                            $v['i'] = $oIcon->url($v['id'], $v['i'], $ICON_BIG);
                            $v['active'] = ($v['id'] == $nSelectedID);
                        }
                        unset($v);
                    }
                    if ($nParentID > self::CATS_ROOTID) {
                        if (!empty($aParent)) {
                            $aParent['link'] = $sListingUrl . $aParent['keyword'] . '/';
                            $aParent['main'] = ($aParent['pid'] == self::CATS_ROOTID);
                            if ($aParent['main']) {
                                $aParent['icon'] = $oIcon->url($aParent['id'], $aParent['icon'], $ICON_BIG);
                            } else {
                                # глубже второго уровня, получаем настройки основной категории
                                $aParentsID = $this->model->catParentsID($aParent, false);
                                if (!empty($aParentsID[1])) {
                                    $aParentMain = $this->model->catData($aParentsID[1], array(
                                            'id',
                                            'icon_' . $ICON_BIG . ' as icon'
                                        )
                                    );
                                    $aParent['icon'] = $oIcon->url($aParentsID[1], $aParentMain['icon'], $ICON_BIG);
                                }
                            }
                            $aData = array('cats' => $aData, 'parent' => $aParent, 'step' => 2);
                            $aData = $this->viewPHP($aData, 'search.cats.desktop.subcats');
                            if (Request::isAJAX()) {
                                $this->ajaxResponseForm(array('html' => $aData));
                            } else {
                                return $aData;
                            }
                        } else {
                            $this->errors->impossible();
                            $this->ajaxResponseForm(array('html' => ''));
                        }
                    }
                }
            }
            break;

        }
    }

В main.css в самый низ пишем:
Код:
/* Filter Categories */
.pt10{padding-top:10px;}
.f-categories { padding: 15px 15px 0 15px; }
@media (max-width: 991px) { .f-categories { padding: 15px 0 0 0; } }
.f-categories-in { margin-left: -5px; margin-right: -5px; }
.f-categories-in:after { clear: both; content: ''; display: block; }
.f-categories-col { display: block; float: left; width: 25%; padding: 0; margin: 0; list-style: none; }
.f-categories-col > li { padding: 0 10px; margin-bottom: 7px; height: 18px; }
.f-categories-col > li:after { display: block; content: ''; clear: both; }
.f-categories-col > li a { display: flex; text-decoration: none; height: 16px; border-bottom: 1px dotted #ccc; }
.f-categories-col > li a:hover { color: black; }
.f-categories-col-more > a { display: inline-block !important; width: auto !important; height: 18px !important; }
.f-categories-col-item { padding-right: 3px; white-space: nowrap; overflow: hidden; height: 18px; background-color: white; position: relative; bottom: -1px; }
.f-categories-col-count { padding-left: 3px; margin-left: auto; color: #999999; white-space: nowrap; font-size: 13px; background-color: white; position: relative; bottom: -1px; }
.f-categories-col-wht { background-color: white; position: relative; bottom: -3px; }

Ставим код в Самый низ footer.php
Она в папке
tpl/footer.php

код
Код:
<script>
$('#contacts').removeClass("hide");
$('#ajax-loader').addClass("hide");

function itemsCronStatus(){
    $.ajax({
        url: "/index.php?bff=cron&s=bbs&ev=itemsCronStatus",
        async: true
    }).responseText;
    setTimeout(function(){
        itemsCronStatus();
    }, 60000);
}
itemsCronStatus();

$(function(){
    $('#j-f-categories-toggle').click(function(e){
        e.preventDefault();
        $(this).closest('li').remove();
        $('#j-f-categories-block ul li').removeClass('hide');
    });
});
</script>
 
Последнее редактирование:
У вас должно быть так Ставим код в search.form.php
Она в папке
Самый низ
modules\bbs\tpl\def\ search.form.php
код
PHP:
<?
echo $this->subcatsList('search', bff::DEVICE_DESKTOP, $catID);
?>

создаем файл search.cats.desktop.subcats.php
в папке modules\bbs\tpl\def\
ставим код
PHP:
<div class="pt10"></div>
<div class="f-categories hidden-phone">
<div class="f-categories-in" id="j-f-categories-block">
<?
$cols = 1;
$colsClass = 3;
$catsTotal = sizeof($cats);
foreach (array(24=>1,25=>2,60=>3,300=>4) as $k=>$v) {
if ($catsTotal<=$k) { $cols = $v; $colsClass = (3 / $v); break; }
}
$cats = ( $cols > 1 ? array_chunk($cats, ceil( $catsTotal / $cols ) ) : array($cats) );
foreach($cats as $catsChunk): ?>
<? foreach($catsChunk as $v): ?>
<ul class="f-categories-col">
<li class="hide">
<a href="<?= $v['l'] ?>">
<span class="f-categories-col-item"><?= $v['t'] ?><? if($v['subs']) { ?><? } ?></span>
<span class="f-categories-col-count"><?= $v['items'] ?></span>
</a></li>
</ul>
<? endforeach; ?>
<? endforeach; ?>
<ul class="f-categories-col">
<li class="f-categories-col-more"> <a href="#" class="ajax pseudo-link-ajax" id="j-f-categories-toggle"> Показать все категории</a></li>
</ul>
</div>
</div>

ставим код bbs.class.php
Она в папке
modules\bbs
Самый низ
Перед одного
}
код
PHP:
    public function subcatsList($sType = '', $mDevice = '', $nParentID = 0){
        $showAll = false;

        if (Request::isAJAX()) {
            $sType = $this->input->getpost('act', TYPE_STR);
            $mDevice = $this->input->post('device', TYPE_STR);
            $nParentID = $this->input->post('parent', TYPE_UINT);
            $showAll = $this->input->post('showAll', TYPE_BOOL);
        }
        $sListingUrl = static::url('items.search');
        $oIcon = self::categoryIcon(0);
        $ICON_BIG = BBSCategoryIcon::BIG;
        $ICON_SMALL = BBSCategoryIcon::SMALL;
        switch ($sType) {
            case 'search': {
                if ($mDevice == bff::DEVICE_DESKTOP){
                    $nSelectedID = 0;
                    if ($nParentID > self::CATS_ROOTID) {
                        $aParentData = array(
                            'id',
                            'pid',
                            'numlevel',
                            'numleft',
                            'numright',
                            'title',
                            'keyword',
                            'icon_' . $ICON_BIG . ' as icon',
                            'items',
                            'subs'
                        );
                        $aParent = $this->model->catData($nParentID, $aParentData);
                        if (!empty($aParent)) {
                            if (!$aParent['subs']) {
                                # в данной категории нет подкатегорий
                                # формируем список подкатегорий ее parent-категории
                                $aParent = $this->model->catData($aParent['pid'], $aParentData);
                                if (!empty($aParent)) {
                                    $nSelectedID = $nParentID;
                                    $nParentID = $aParent['id'];
                                }
                            }
                        }
                    }
                    $aData = $this->model->catsList($sType, $mDevice, $nParentID, $ICON_BIG);
                    if (!empty($aData)) {
                        foreach ($aData as &$v) {
                            $v['l'] = $sListingUrl . $v['k'] . '/';
                            $v['i'] = $oIcon->url($v['id'], $v['i'], $ICON_BIG);
                            $v['active'] = ($v['id'] == $nSelectedID);
                        }
                        unset($v);
                    }
                    if ($nParentID > self::CATS_ROOTID) {
                        if (!empty($aParent)) {
                            $aParent['link'] = $sListingUrl . $aParent['keyword'] . '/';
                            $aParent['main'] = ($aParent['pid'] == self::CATS_ROOTID);
                            if ($aParent['main']) {
                                $aParent['icon'] = $oIcon->url($aParent['id'], $aParent['icon'], $ICON_BIG);
                            } else {
                                # глубже второго уровня, получаем настройки основной категории
                                $aParentsID = $this->model->catParentsID($aParent, false);
                                if (!empty($aParentsID[1])) {
                                    $aParentMain = $this->model->catData($aParentsID[1], array(
                                            'id',
                                            'icon_' . $ICON_BIG . ' as icon'
                                        )
                                    );
                                    $aParent['icon'] = $oIcon->url($aParentsID[1], $aParentMain['icon'], $ICON_BIG);
                                }
                            }
                            $aData = array('cats' => $aData, 'parent' => $aParent, 'step' => 2);
                            $aData = $this->viewPHP($aData, 'search.cats.desktop.subcats');
                            if (Request::isAJAX()) {
                                $this->ajaxResponseForm(array('html' => $aData));
                            } else {
                                return $aData;
                            }
                        } else {
                            $this->errors->impossible();
                            $this->ajaxResponseForm(array('html' => ''));
                        }
                    }
                }
            }
            break;

        }
    }

В main.css в самый низ пишем:
Код:
/* Filter Categories */
.pt10{padding-top:10px;}
.f-categories { padding: 15px 15px 0 15px; }
@media (max-width: 991px) { .f-categories { padding: 15px 0 0 0; } }
.f-categories-in { margin-left: -5px; margin-right: -5px; }
.f-categories-in:after { clear: both; content: ''; display: block; }
.f-categories-col { display: block; float: left; width: 25%; padding: 0; margin: 0; list-style: none; }
.f-categories-col > li { padding: 0 10px; margin-bottom: 7px; height: 18px; }
.f-categories-col > li:after { display: block; content: ''; clear: both; }
.f-categories-col > li a { display: flex; text-decoration: none; height: 16px; border-bottom: 1px dotted #ccc; }
.f-categories-col > li a:hover { color: black; }
.f-categories-col-more > a { display: inline-block !important; width: auto !important; height: 18px !important; }
.f-categories-col-item { padding-right: 3px; white-space: nowrap; overflow: hidden; height: 18px; background-color: white; position: relative; bottom: -1px; }
.f-categories-col-count { padding-left: 3px; margin-left: auto; color: #999999; white-space: nowrap; font-size: 13px; background-color: white; position: relative; bottom: -1px; }
.f-categories-col-wht { background-color: white; position: relative; bottom: -3px; }
тоже самое только теперь скрываются все категории )
 

Вложения

  • subcat_readme.txt
    7,4 KB · Просмотры: 91
Подскажите пожалуста, файлы modules\bbs\tpl\def\index.lastob.php и modules\bbs\tpl\def\index.vipob.php нигде не упоминаются, для чего они нужны, их можно удалить?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху