<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум ReadyScript &mdash; Как получить список складов в админке]]></title>
	<link rel="self" href="https://forum.readyscript.ru/feed/atom/topic/1037/" />
	<updated>2016-12-27T13:53:15Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.readyscript.ru/topic/1037/kak-poluchit-spisok-skladov-v-adminke/</id>
		<entry>
			<title type="html"><![CDATA[Re: Как получить список складов в админке]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5689/#p5689" />
			<content type="html"><![CDATA[<p>Можно конечно.<br />Нужно, чтобы вместо Вашего поля выдавался какой либо шаблон с нужной логикой, где при помощи <a href="https://readyscript.ru/dev-manual/dev_smarty_rsplugins.html#dev_smarty_rsplugins_function_static_call">static_call</a> вы подгрузите склады.<br />У Вас будет 2 поля. Одно показывает шаблон, а второе скрытое, которое обрабатывается на <a href="https://readyscript.ru/dev-manual/dev_hooks.html">2-х хуках</a>:<br />orm.afterload.КОРОТКОЕ_ИМЯ_ORM_ОБЪЕКТА - для того, чтобы получить список из подгруженного объекта<br />orm.afterwrite.КОРОТКОЕ_ИМЯ_ORM_ОБЪЕКТА - для того, чтобы сохранить список.<br />Где в отдельную таблицу сохраняется связь <strong>Ваш ORM объект-id склада</strong></p><p>Например:<br /></p><div class="codebox"><pre><code>&#039;warehouse_ids_arr&#039; =&gt; new Type\ArrayList(array(
       &#039;description&#039; =&gt; t(&#039;Массив складов&#039;),
       &#039;template&#039; =&gt; &#039;%имяпапкимодуля%/forms/warehouses/warehouses.tpl&#039;
)),
&#039;warehouse_ids&#039; =&gt; new Type\ArrayList(array(
       &#039;description&#039; =&gt; t(&#039;Склады сериализованное поле&#039;),
       &#039;visible&#039; =&gt; false
)),</code></pre></div><p>В шаблоне через <a href="https://readyscript.ru/dev-manual/dev_smarty_rsplugins.html#dev_smarty_rsplugins_function_static_call">static_call</a> загружаем список.<br /></p><div class="codebox"><pre><code>{static_call var=mylist callback=[&#039;\Catalog\Model\WarehouseApi&#039;, &#039;staticSelectList&#039;]}</code></pre></div><p>В этом же шаблону нужно будет вывести галочки и проверить отмеченные в поле <strong>warehouse_ids_arr</strong>.</p><p>В <strong>afterwrite</strong> хуке собираем галочки:<br /></p><div class="codebox"><pre><code>$orm[&#039;warehouse_ids&#039;] = @serialize($orm[&#039;warehouse_ids_arr&#039;]);</code></pre></div><p>В beforewrite хуке получаем отмеченные после сохранения:<br /></p><div class="codebox"><pre><code>$orm[&#039;warehouse_ids_arr&#039;] = @unserialize($orm[&#039;warehouse_ids&#039;]);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-12-27T13:53:15Z</updated>
			<id>https://forum.readyscript.ru/post/5689/#p5689</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как получить список складов в админке]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5686/#p5686" />
			<content type="html"><![CDATA[<p>сработало, но нужно прятать больше одного, соответственно лист не подходит.<br />насколько понимаю, нужно вывести список названий и айдишников + контрол к каждому из них в виде чекбокса и, соответственно, при включении чекбокса айдишник должен добавляться в текстовое поле в базу при сохранении.</p><p>при переоткрытии окна должно читаться поле из базы и соответствующие чекбоксы должны проставляться включёнными.</p><p>ну это мне так видится, но я думаю вы можете подсказать способ получше, если он есть.</p>]]></content>
			<author>
				<name><![CDATA[Алексей]]></name>
				<uri>https://forum.readyscript.ru/user/498/</uri>
			</author>
			<updated>2016-12-27T11:33:30Z</updated>
			<id>https://forum.readyscript.ru/post/5686/#p5686</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Как получить список складов в админке]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5685/#p5685" />
			<content type="html"><![CDATA[<p>Вы можете вызвать метод API <strong>staticSelectList</strong> он есть в любом апи которое нужно. В данном случае<br /><strong>\Catalog\Model\WarehouseApi</strong>.<br />Например в ORM объекте<br /></p><div class="codebox"><pre><code>&#039;warehouse_id&#039; =&gt; new Type\Integer(array(
                    &#039;description&#039; =&gt; t(&#039;Склад&#039;),
                    &#039;list&#039; =&gt; array(array(&#039;\Catalog\Model\WarehouseApi&#039;, &#039;staticSelectList&#039;)))
                ))</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Закусило Александр]]></name>
				<uri>https://forum.readyscript.ru/user/20/</uri>
			</author>
			<updated>2016-12-27T08:01:08Z</updated>
			<id>https://forum.readyscript.ru/post/5685/#p5685</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Как получить список складов в админке]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/5679/#p5679" />
			<content type="html"><![CDATA[<p>Добрый день,<br />Хочу написать модуль который будет скриптом проходить по любой странице магазина и в зависимости от категории убирать из вёрстки определённые склады.<br />Сам скрипт уже есть и работает, но теперь хочу прикрутить к нему управление из админки.<br />Как добавлять вкладки категориям разобрался (спасибо роликам Александра), но теперь неясно как в одну из вкладок вывести список всех складов с их id.</p><p>Подскажите пожалуйста.<br />Спасибо</p><p>PS: в идеале, конечно, нужен функционал отображения складов для категорий, но, я так понимаю, такой функционал не планируется.</p>]]></content>
			<author>
				<name><![CDATA[Алексей]]></name>
				<uri>https://forum.readyscript.ru/user/498/</uri>
			</author>
			<updated>2016-12-26T14:25:20Z</updated>
			<id>https://forum.readyscript.ru/post/5679/#p5679</id>
		</entry>
</feed>
