Интересный вопрос на самом деле. Мне так же часто приходится делать интернет-магазины, и кастомизация шаблонов каталога, корзины и оформления заказов это просто жуть. А если клиент захотел ещё какой-нибудь "нюансик", то переделывание стандартных шаблонов перерастает в такую Ж, что проклянёшь всё.
По этому я использую следующую схему. Компонент стандартный, шаблон копирую, стираю всё его содержимое, оставляю только пустой template.php. Далее и спользую самописную фукнцию:
function pr($var, $type = false) {
echo '<pre style="font-size:10px; border:1px solid #000; background:#FFF; text-align:left; line-height: 10px;">';
if ($type)
var_dump($var);
else
print_r($var);
echo '</pre>';
}
Эта функция у меня прописана в init.php, и показывает она что находится в переменной.
Так вот первой строкой я смотрю что пришло в arResult. Практически всегда там всё понятно, не смотря на то, что данных иной раз столько, что чёрт голову сломит.
Затем проставляю нужные данный в нужные блоки вёрстки.
Если требуется ajax перезагрузка, я использую топорный метод. Вызов компонента я делаю в отдельном файле (например block1.php). А в месте, где требуется вызов компонента, я подрубаю этот файл через include. Подключение файла я прячу в div с id="BLOCK_CONTAINER" (id естественно может быть другим). Аjax запрос я делаю некоторому файлу ajaxBlock1.php, в котором я сначала выполняю требуемые операции, а затем так же подключаю тот самый block1.php. Результат закидываю в div с id="BLOCK_CONTAINER". Можно возвращать json, если требуется обновлять несколько блоков (например содержимое корзины в рабочей области страницы и в шапке). Метод конечно топорный, но работает и не занимает много времени на реализацию.
Тем не менее каждый раз делаю так, задаю себе вопрос: может стоит всё-таки разобраться, как делать правильно? ...т.к. чую одним местом, что такой колхоз рано или поздно мне аукнется.
По этому я использую следующую схему. Компонент стандартный, шаблон копирую, стираю всё его содержимое, оставляю только пустой template.php. Далее и спользую самописную фукнцию:
function pr($var, $type = false) {
echo '<pre style="font-size:10px; border:1px solid #000; background:#FFF; text-align:left; line-height: 10px;">';
if ($type)
var_dump($var);
else
print_r($var);
echo '</pre>';
}
Эта функция у меня прописана в init.php, и показывает она что находится в переменной.
Так вот первой строкой я смотрю что пришло в arResult. Практически всегда там всё понятно, не смотря на то, что данных иной раз столько, что чёрт голову сломит.
Затем проставляю нужные данный в нужные блоки вёрстки.
Если требуется ajax перезагрузка, я использую топорный метод. Вызов компонента я делаю в отдельном файле (например block1.php). А в месте, где требуется вызов компонента, я подрубаю этот файл через include. Подключение файла я прячу в div с id="BLOCK_CONTAINER" (id естественно может быть другим). Аjax запрос я делаю некоторому файлу ajaxBlock1.php, в котором я сначала выполняю требуемые операции, а затем так же подключаю тот самый block1.php. Результат закидываю в div с id="BLOCK_CONTAINER". Можно возвращать json, если требуется обновлять несколько блоков (например содержимое корзины в рабочей области страницы и в шапке). Метод конечно топорный, но работает и не занимает много времени на реализацию.
Тем не менее каждый раз делаю так, задаю себе вопрос: может стоит всё-таки разобраться, как делать правильно? ...т.к. чую одним местом, что такой колхоз рано или поздно мне аукнется.