Как добавить вкладку?
... {capture name="mainbox"}
<form action="{""|fn_url}" enctype="multipart/form-data" method="post" name="points_group_form"
class="form-horizontal form-edit points_group_form">
<input type="hidden" class="cm-no-hide-input" name="point_id" value="{$id}"/>
<input type="hidden" class="cm-no-hide-input" name="selected_section"
value="{$smarty.request.selected_section}"/>
{capture name="tabsbox"}
<div id="content_details">Основной контент</div>
<div id="content_custom" class="hidden">Контент доп вкладки</div>
{/capture}
{include file="common/tabsbox.tpl" content=$smarty.capture.tabsbox active_tab=$smarty.request.selected_section track=true}
...
на странице редактировать объект, отображается только пункт “общее” в <ul class="nav nav-tabs">
, как туда добавить пункт чтобы открывалась доп вкладка?
Всё, разобрался - в контроллере надо было добавить в массив вкладку
другой вопрос, как сделать зависимые поля в форме? например после выбора одной из радио кнопок со значением например 2, отображать ниже доп поле, текстовое, интересует готовое решение из коробки, если такого нет - то я знаю как это сделать самому) просто не хочется писать велосипед)
Просто например при редактировании информации у пользователя (покупателя), внизу есть блок адрес доставки и у него есть такой пункт “Адрес доставки и адрес плательщика совпадают”, если стоит да, то поля заблокированы в адресе доставки, если нет - то можно редактировать. И там такой интересный код по пути: \design\backend\templates\views\profiles\components\profile_fields.tpl
А именно:
<span class="shipping-flag-title">
{if $section == "S"}
{__("shipping_same_as_billing")}
{else}
{__("text_billing_same_with_shipping")}
{/if}
</span>
<label class="radio inline">
<input class="cm-switch-availability cm-switch-inverse " type="radio" name="ship_to_another" value="0" id="sw_{$body_id}_suffix_yes" {if !$ship_to_another}checked="checked"{/if} />
{__("yes")}
</label>
<label class="radio inline">
<input class=" cm-switch-availability" type="radio" name="ship_to_another" value="1" id="sw_{$body_id}_suffix_no" {if $ship_to_another}checked="checked"{/if} />
{__("no")}
</label>
</div>
А потом ниже
{if $shipping_flag && !$ship_to_another}
{assign var="disabled_param" value="disabled=\"disabled\""}
{else}
{assign var="disabled_param" value=""}
{/if}
и я почему то не вижу как / где присваивается эта переменная $ship_to_another + не вижу при переключении каких либо отправок аякса или еще что то, может не там смотрю…
p.s. такой еще вопрос - можно как либо посмотреть готовый собранный запрос mysql который выполняется?
Это в контроллере app/controllers/backend/profiles.php функцией fn_check_shipping_billing проверяется
Запросов нет. Яваскриптом меняется содержимое селектбокса. Изначально в шаблоне есть все штаты для всех стран
имелось ввиду, когда формируешь запрос, например:
// Получим информацию по Даниилу Баженову
$where = array(
'firstname' => 'Даниил',
'lastname' => 'Баженов',
);
$user_data = db_get_row('SELECT * FROM ?:users WHERE ?w', $where);
посмотреть строку, чтобы выдало при fn_print_r :
SELECT * FROM cscart_users WHERE firstname = 'Даниил' AND lastname = 'Баженов'
Можете использовать хук ‘db_query’ в файле
app/Tygh/Database/Connection.php
Спасибо, помогло и возник такой вопрос, а в ?w нельзя соединять поля?
$where = [
array('table_1.social_point_id', '=', 'table_2.point_id'),
array('table_1.url', 'LIKE', $url['host']),
];
В запросе идет: ... WHERE ?w ...
В итоге получается: ... WHERE table_1.social_point_id = 'table_2.point_id' AND table_1.url LIKE '<тут урл>' ...
А хотелось бы: ... WHERE table_1.social_point_id = table_2.point_id AND table_1.url LIKE '%<тут урл>%' ...
т.е. надо делать через ?p
лучше?)
$condition = db_quote(' AND table_1.social_point_id = table_2.point_id');
$condition .= db_quote(' AND table_1.url = ?l', $url['host']);
... WHERE ?p ....", $condition);
Так не пробовали?
$where = [
array('table_1.social_point_id', '=', 'table_2.point_id'),
array('table_1.url', 'LIKE', "%$url[host]%"),
];
с LIKE пробовал да, работает так
А вот со связью столбцов не работает, table_2.point_id в таком случае становится значением а не полем
Да, похоже, что там защита есть для значения