Добрый день.
Я хочу передать в шаблон массив, сформированный в php.
как правильно сформировать массив, чтобы xml-элементы получали атрибуты?
например: <city_name><name id="2">Город</name></city_name>
если массив формировать примерно как $external_propertys['city_name']['name id='.$id]="Город", то строиться неправильная структура <city_name><name id="2">Город</name id="2"></city_name>
на первый способ идет ругань по причине того, что тип элемента начинается с цифры, что недопустимо в xml. во втором способе результат надо присвоить $param['external_xml'] я так понимаю? при этом он не передается в xml(по крайней мере его там нет). в мануале сказано, что должен добавиться блоком в начало документа. отсюда вопрос: какого документа и куда он должен добавиться?
да, примерно это я и хочу сделать
в мануале сказано, что $param этого метода - это массив доп. параметров. так как не указано его особенностей, то скорее всего стандартный. мне показалось, что 'external_xml' относится к стандартным параметрам
опыт работы подсказывает мне, что $param у каждого метода свой.
По сути желаемого, я аналогичную проблему решил немного "в обход", но конструкция получилась рабочей.
У меня было есть условие доставки, при котором форма адреса не нужна. Это условие я определил по умолчанию
И вызывал стандартный метод ShowTypeOfDelivery().
В xsl после полей доставки создал пустой div с некоторым id
Потом написал ajax-загрузчик/перехватчик для содержимого формы адреса.
И при выборе способа доставки, которому нужно задавать адрес, с сервера в этот div подгружались кусочки формы для ввода адреса.
Решение с одной точки зрения можно счесть грязным, а с другой - наоборот оптимизированным.
Демки сейчас к сожалению нет (
ну тогда только один правильный способ - собирать весь xml полностью с нуля и применять к нему шаблон методом build() класса xsl
Xml для городов у вас уже, как я понимаю, есть, осталось сформировать xml для методов доставки, объединить их, оформить xml-заголовком и корневым тегом.