Зависимые группы по настройке системы
-
12-12-2019 - |
Вопрос
Я знаю, что создать зависимость для полей, можно использовать узел
<depends />
.
, который сказал, я пробую несколько способов создать групповую зависимость, но я не могу найти способ сделать Magento его использовать, на фактической форме .php-код, который упоминается
$dependent->fieldset
.
Так что это может быть там, но я не смог использовать его.
Редактировать: На дальнейшем расследовании кажется, что он только с полей, чтобы прочитать зависимости, поскольку на Mage_Adminhtml_block_system_config_form :: initields ()
foreach ($group->fields as $elements) {
.
Все равно будет хорошо знать, как достичь этого
Решение
Вы можете поставить JavaScript в области комментариев.Это может быть что-то вроде этого:
<comment><![CDATA[
<script type="text/javascript">
document.observe("dom:loaded",function(){
if($('sections_groups_value').value != some_value){
Element.up($('sections_groups')).hide();
}
});
Event.observe('sections_groups_value', 'change', function(){
if(this.value != some_value){
Element.up($('sections_groups')).hide();
}else if(this.value == some_value){
Element.up($('sections_groups')).show();
}
})
</script>]]>
</comment>
.
Замените «sections_groups_value», «que_value» и "section_groups" соответственно.
Другие советы
Прежде всего, мне нужно уточнить вашу ниже формулировку.
Я пытался несколько способов создать групповую зависимость
Вы действительно пытаетесь добиться групповой зависимости
полевой зависимости ? Чтобы сделать точку более четко,
groups
иfields
различны в конфигурации системы. Группы означают набор смежных полей.Коллекция связанного генеракодицетагода составляют генеракодицетагкод. Сборник связанных групп составляют генеракодицетагкод и сбор таких разделов составляют всю страницу конфигурации системы.
Если вы говорите о полевой зависимости, то это
для Magento 2.1.x, вы можете использовать следующую jQuery для переключения зависимых групп конфигурации:
<comment><![CDATA[
<script type="text/javascript">//<![CDATA[
require(['jquery'], function(){
if (jQuery('#field_id').val() == 'value_to_compare') {
toggleDependantGroups(true);
}
jQuery('#field_id').change(function() {
if (jQuery(this).val() == 'value_to_compare') {
toggleDependantGroups(true);
} else {
toggleDependantGroups(false);
}
});
function toggleDependantGroups(hide=true)
{
if (hide) {
jQuery('#section-id').closest('div.section-config').hide();
jQuery('#section-id').closest('div.section-config').hide();
jQuery('#last-visible-section-id').closest('div.section-config').css('border-bottom-width', '0px');
} else {
jQuery('#section-id').closest('div.section-config').show();
jQuery('#section-id').closest('div.section-config').show();
jQuery('#last-visible-section-id').closest('div.section-config').css('border-bottom-width', '1px');
}
}
});
</script>]]>
.
Заменить идентификаторы, где это необходимо.