Просмотр Исходного

{toc}

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

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

{warning:title=Warning}
Не называйте шаблон так же, как это сделано в стандартном модуле, если у Вас на это нет веской причины\!
{warning}

{info:title=Ограничения}
У некоторых модулей параметр "template" не работает. В таком случае нужно называть шаблон так же, как модуль, чтобы он заменял стандартный.

Список:
* [Authorize|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=50659482#WordPress.%D0%9A%D0%B0%D0%BA%D0%BE%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%22%D0%9B%D0%B8%D1%87%D0%BD%D1%8B%D0%B9%D0%BA%D0%B0%D0%B1%D0%B8%D0%BD%D0%B5%D1%82%22.%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%B2%D0%B5%D0%B1-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C%D1%84%D0%BE%D1%80%D0%BC%D1%83%D0%B2%D0%B5%D0%B1%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8]
{info}

Так же есть возможность [редактирования модулей|CarbonBilling:Пользовательские модули в cabinet_modules]

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

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

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

!promisepay.png|border=1!
Это делается с помощью следующего шаблона:


{code}
<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>
<?}
{code}
Переменная _$data\['promise_pays'\]_ содержит все доступные пользователю обещанные платежи.


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



{code}
/app/asr_cabinet/var/cabinet_tmpl/
{code}
Например, этот файл шаблона называется _PromisePay_Detailed.php_ и тогда полный путь к нему будет:


{code}
/app/asr_cabinet/var/cabinet_tmpl/PromisePay_Detailed.php
{code}
Для включения его в личном кабинете на странице обещанного платежа строку:

{code}
[cabinet_promise_pay]
{code}
необходимо заменить на:


{code}
[cabinet_promise_pay template="PromisePay_Detailed"]
{code}
Иллюстрация:
!promisepay_detailed.png|border=1!

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

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


!trarif_info_standart.png|border=1!

Её код в WordPress:

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

{code}
<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>
{code}
И сохраняем на сервере:


{code}
/app/asr_cabinet/var/cabinet_tmpl/my_tarif_info.php
{code}
После этого в WordPress меняем шорткод модуля на:


{code}
[cabinet_tarif_info template="my_tarif_info"]
{code}
После этого страница будет выглядеть так:
!tarif_info_new.png|border=1!


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

Создадим шаблон *my_tpl_connection.php* , в котором нет поля почта, но используется капча
{code}
<?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>
{code}

Сохраним файл в каталоге пользовательских шаблонов:
{code}
/app/asr_cabinet/var/cabinet_tmpl/my_tpl_connection.php
{code}

И изменим шорткод страницы с формой заявки:
{code}
[cabinet_apply_for_connection captcha=1 template='my_tpl_connection']
{code}


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

Выводит сумму элементов из шорткода [cabinet_current_month_expenses|CarbonBilling:Wordpress. Список шорткодов ЛК.]

Код измененного шаблона:
{code}
<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);
{code}

Сохраним файл в каталоге пользовательских шаблонов:
{code}
/app/asr_cabinet/var/cabinet_tmpl/current_month_expenses_summ.php
{code}

Шорткод страницы:
{code}
[cabinet_current_month_expenses template='current_month_expenses_summ']
{code}



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

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


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


Выгружаем его в каталог шаблонов, путь будет:
{code}
/app/asr_cabinet/var/cabinet_tmpl/PhoneForm.php
{code}

И на странице смены номера для оповещений меняем шорткод на:
{code}
[cabinet_set_user_info sms='Номер для SMS-Информирования' template='PhoneForm']
{code}

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

Модули располагаются по следующему пути:
{panel}
/app/asr_cabinet/usr/local/lib/cabinet_modules/modules/
{panel}

Шаблоны располагаются здесь:
{panel}
/app/asr_cabinet/usr/local/lib/cabinet_modules/modules/tpls/
{panel}