Замена шаблонов страниц личного кабинета

Skip to end of metadata
Go to start of metadata

В личном кабинете возможна замена шаблонов модулей.

Разберем на примере нескольких модулей, как это делать.

Warning
Не называйте шаблон так же, как это сделано в стандартном модуле, если у Вас на это нет веской причины!
Ограничения
У некоторых модулей параметр "template" не работает. В таком случае нужно называть шаблон так же, как модуль, чтобы он заменял стандартный.

Список:

Так же есть возможность редактирования модулей

Замена шаблона страницы обещанных платежей

Если вас не устраивает количество информации об обещанном платеже, то имеется возможность изменить это.

На примере разберем, как добавить шаблон, отображающий страницу так:


Это делается с помощью следующего шаблона:

 <style>
    .promise_pay {
        margin-top: 10px;
        margin-bottom: 10px;
    }
</style>
<?if(count($data['promise_pays']) < 1) {?>
    <div>
        Обещанный платеж для вашего тарифа недоступен
    </div>
<?}?>

<? foreach($data['promise_pays'] as $promise_pay){?>
    <div>
        <form action="" method="post">
                <?$this->module_token()?>
                <label>Наименование: <?=$promise_pay->name?></label><br />
                <label>Обещанный платеж на сумму <?=$promise_pay->promise_summ?>.</label><br />
                <?if ($promise_pay->summa > 0) {?>
                <label>Стоимость подключения услуги: <?=$promise_pay->summa?></label><br/>
                <?}?>
                <button type="submit" value="<?=$promise_pay->id?>" name="add_promise_pay" class="btn btn-primary">
                Активировать обещанный платеж. Стоимость активации: <?=$promise_pay->activate_pay?>
                </button>
                <br />
        </form>
    </div>
<?}

Переменная $data['promise_pays'] содержит все доступные пользователю обещанные платежи.

Пользовательские шаблоны необходимо сохранять в каталоге:

/app/asr_cabinet/var/cabinet_tmpl/

Например, этот файл шаблона называется PromisePay_Detailed.php и тогда полный путь к нему будет:

/app/asr_cabinet/var/cabinet_tmpl/PromisePay_Detailed.php

Для включения его в личном кабинете на странице обещанного платежа строку:

[cabinet_promise_pay]

необходимо заменить на:

[cabinet_promise_pay template="PromisePay_Detailed"]

Иллюстрация:

Замена шаблона страницы текущий тариф

Стандартная страница выглядит так:

Её код в WordPress:

[cabinet_tarif_info]

Уберем нижнюю часть с солнышком, луной и молнией.
Приводим стандартный шаблон к следующему виду:

<table class="table tarif">
    <tr class="tarif-header">
        <td>Услуга</td>
        <td colspan="">Ваш тариф</td>
        <td>
            <span><a href="">Рекомендуем</a></span>
            <span><a href="">Популярные</a></span>
        </td>
    </tr>
    <!--  Current tarif info  -->
    <tr>
        <td></td>
        <td class="tarif-head tarif-current">
            <h4><?=$data['user_info']->tarif?></h4>

            <div class="tarif-desc">
                <?= $data['admin.tarif'][0]->fields->plan_comment ?>
            </div>
            <div class="actions">
                <a href="/cabinet/смена_тарифа/" class="btn btn-primary">Поменять тариф</a>
            </div>
        </td>
        <td class="tarif-recommend">
            <h4><?=$data['best_tarif']->name?></h4>

            <div class="tarif-desc">
                <?=$data['best_tarif']->plan_comment?>
            </div>
        </td>
    </tr>
</table>

И сохраняем на сервере:

/app/asr_cabinet/var/cabinet_tmpl/my_tarif_info.php

После этого в WordPress меняем шорткод модуля на:

[cabinet_tarif_info template="my_tarif_info"]

После этого страница будет выглядеть так:

Замена шаблона страницы заявки на подключение

Создадим шаблон my_tpl_connection.php , в котором нет поля почта, но используется капча

<?php
/**
 * Created by PhpStorm.
 * User: alexander
 * Date: 19.03.15
 * Time: 14:29
 */
$legend = strlen($this->options['form_header']) > 0 ? $this->options['form_header'] : false;
$messages=new \carbon\modules\Message();
echo $messages->getHtml();
?>

<div class="col-xs-15">
    <div class="clearfix">
        <form action="" class="form-horizontal" method="post">
            <?$this->module_token()?>
            <fieldset>
                <?if($legend){?>
                    <!-- Form Name -->
                    <legend><?=$legend?></legend>
                <?}?>

                <!-- Text input-->
                <div class="form-group">
                    <label class="col-xs-7 control-label" for="street">Улица</label>
                    <div class="col-xs-7">
                        <input id="street" value="<?php echo $_GET['street_val']?>" name="street" type="text" placeholder="Например, Ленина" class="form-control input-md">

                    </div>
                </div>

                <!-- Text input-->
                <div class="form-group">
                    <label class="col-xs-7 control-label" for="house_n">Номер дома</label>
                    <div class="col-xs-7">
                        <input id="house_n" name="house_n" value="<?php echo $_GET['home_num_val']?>" type="text" placeholder="Например, 1" class="form-control input-md">

                    </div>
                </div>

                <!-- Text input-->
                <div class="form-group">
                    <label class="col-xs-7 control-label" for="korpus">Корпус</label>
                    <div class="col-xs-7">
                        <input id="korpus" name="korpus" type="text" value="<?php echo $_GET['home_liter_val']?>" placeholder="Например, Б" class="form-control input-md">
                    </div>
                </div>

                <!-- Text input-->
                <div class="form-group">
                    <label class="col-xs-7 control-label" for="contact_name">Контактное лицо</label>
                    <div class="col-xs-7">
                        <input id="contact_name" name="contact_name" type="text" placeholder="Иван Иванович Иванов" class="form-control input-md">

                    </div>
                </div>

                <!-- Prepended text-->
                <div class="form-group">
                    <label class="col-xs-7 control-label" for="phone_number">Номер телефона</label>
                    <div class="col-xs-7">
                        <div class="input-group">
                            <span class="input-group-addon">+7</span>
                            <input id="phone_number" name="phone_number" class="form-control" placeholder="1234567890" type="text">
                        </div>

                    </div>
                </div>

                <!-- Text input-->
                <div class="form-group">
                    <label class="col-xs-7 control-label" for="captcha">Капча</label>
                    <div class="col-xs-7">
                        <img src="/wp-content/themes/carbonsoft/library/captcha.php" id="captcha" width="150px"
                             alt="Введите сюда текст с картинки в поле ниже" title="Введите сюда текст с картинки в поле ниже" />
                        <!-- CHANGE TEXT LINK -->
                        <a href="#" onclick="
                                document.getElementById('captcha').src='/wp-content/themes/carbonsoft/library/captcha.php?'+Math.random();
                                document.getElementById('captcha-form').focus();" id="change-image">
                            Сложно? Сменить текст!
                        </a>
                        <input id="captcha-form" name="captcha" type="text" autocomplete="off" placeholder="Введите сюда текст с картинки" class="form-control input-md" >
                    </div>
                </div>

                <!-- Button -->
                <div class="form-group">
                    <label class="col-xs-7 control-label" for="submit"></label>
                    <div class="col-xs-7">
                        <button id="submit" name="submit" class="btn btn-primary">Отправить</button>
                    </div>
                </div>

            </fieldset>
        </form>
    </div>
</div>

Сохраним файл в каталоге пользовательских шаблонов:

/app/asr_cabinet/var/cabinet_tmpl/my_tpl_connection.php

И изменим шорткод страницы с формой заявки:

[cabinet_apply_for_connection captcha=1 template='my_tpl_connection']

Сумма расхода за месяц

Выводит сумму элементов из шорткода cabinet_current_month_expenses

Код измененного шаблона:

<h4>Расход за месяц</h4>
<?php if(count($data['expenses']) < 1){ ?>
    <div class="alert alert-info">
        Нет списаний
    </div>
<?php }
$summa = 0;
foreach ($data['expenses'] as $expense) {
    $summa += $expense->summ;
}
echo ca_util()->format_money($summa);

Сохраним файл в каталоге пользовательских шаблонов:

/app/asr_cabinet/var/cabinet_tmpl/current_month_expenses_summ.php

Шорткод страницы:

[cabinet_current_month_expenses template='current_month_expenses_summ']

Замена шаблона страницы смены номера SMS-информирования

Добавим на форму ввода номера ограничение по маске, чтобы можно было вводить номера типа "+9 (999) 999-99-99"

Скачать шаблон:
PhoneForm.php

Выгружаем его в каталог шаблонов, путь будет:

/app/asr_cabinet/var/cabinet_tmpl/PhoneForm.php

И на странице смены номера для оповещений меняем шорткод на:

[cabinet_set_user_info sms='Номер для SMS-Информирования' template='PhoneForm']

Стандартные пути к файлам

Модули располагаются по следующему пути:

/app/asr_cabinet/usr/local/lib/cabinet_modules/modules/

Шаблоны располагаются здесь:

/app/asr_cabinet/usr/local/lib/cabinet_modules/modules/tpls/

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.