Недавно я , как можно использовать параметры компонента, задаваемые через шаблоны компонента. [spoiler]
Но тут возникла небольшая проблема. При смене шаблона в настройках компонента не перезагружается форма с параметрами компонента, как это происходит с параметрами, в которых указан REFRESH=Y. Вот и родился небольшой хак, который перезагружает форму с настройками компонента при изменении шаблона. Данный код необходимо вставить в конец файла .parameters.php в папке компонента (не в папке шаблона компонента!).
С JavaScript'ом я особо не дружу, так что писалось как моглось. Данный скрипт просто цепляется к элементу формы со списком шаблонов и при изменении текущего шаблона компонента просто перезагружает форму с параметрами компонента.
Надеюсь, что в будущем этот хак не понадобится и в битриксе исправят эту проблемку.
Но тут возникла небольшая проблема. При смене шаблона в настройках компонента не перезагружается форма с параметрами компонента, как это происходит с параметрами, в которых указан REFRESH=Y. Вот и родился небольшой хак, который перезагружает форму с настройками компонента при изменении шаблона. Данный код необходимо вставить в конец файла .parameters.php в папке компонента (не в папке шаблона компонента!).
if ($_POST['NEW_COMPONENT_TEMPLATE']) $_GET['component_template'] = $_POST['NEW_COMPONENT_TEMPLATE'];
$ar = $_GET;
unset($ar['component_template']);
$parts = array();
foreach ($ar as $k=>$v) $parts[] = $k."=".$v;
$new_url = implode("&", $parts);
?>
<script>
window.onload = bexx_update_template;
function bexx_update_template () {
var x=document.getElementsByName("NEW_COMPONENT_TEMPLATE");
x = x[0];
x.id = "bexx_template_holder";
x.onchange = bexx_reload_component_params;
}
function bexx_reload_component_params () {
jsPopup.PostParameters('<?=$new_url?>&component_template='+document.getElementById('bexx_template_holder').value+'&action=refresh&scroll='+document.getElementById('bx_popup_content').scrollTop);
}
</script> |
С JavaScript'ом я особо не дружу, так что писалось как моглось. Данный скрипт просто цепляется к элементу формы со списком шаблонов и при изменении текущего шаблона компонента просто перезагружает форму с параметрами компонента.
Надеюсь, что в будущем этот хак не понадобится и в битриксе исправят эту проблемку.