https://wiki.umisoft.ru/api.php?action=feedcontributions&user=Williwaw&feedformat=atom
Umicms - Вклад участника [ru]
2024-03-28T12:14:46Z
Вклад участника
MediaWiki 1.31.0
https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F_%D0%98%D0%9B%D0%98_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8F&diff=7883
Выборка с использованием условия ИЛИ для системного поля
2014-06-02T10:13:34Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Предположим необходимо отобрать страницы(например товары) у которых либо id входит в множество определенных значений, либо у этой страницы любое другое поле равно определенному значению. Для выборки с условием "ИЛИ" используется or-mode, но дело в том, что для системных полей данный режим не сработает. Системные поля - это:<br />
*'id'<br />
*'name' <br />
*'owner' <br />
*'domain' <br />
*'lang' <br />
*'is_deleted'<br />
*'is_active' <br />
*'is_visible' <br />
*'updatetime' <br />
*'is_default' <br />
*'template_id'<br />
<br />
== Решение ==<br />
Реализовать такую выборку в UMI.CMS можно, сделав два запроса к базе и получить объединение их результатов, т.е. id страниц, а затем отобрать в результирующем запросе страницы с данными id<br />
Предположим, будем искать страницы товаров, у которых либо идентификатор находится в определенном диапазоне, либо страница отмечена чекбоксом, который создал пользователь. На самом деле, режим or-mode в данном случае не понадобится. Выбираем страницы по системному полю id:<br />
<br />
<source lang="php"><br />
<br />
$pages = new selector('pages');<br />
$pages->types('object-type')->name('catalog', 'object');<br />
$pages->where('id')->equals(array('идентификаторы страниц через запятую'));<br />
//запишем id полученных страниц в массив<br />
foreach($pages as $page){ <br />
<br />
$mass[] = $page->id;<br />
<br />
} <br />
</source><br />
<br />
Теперь выберем страницы отмеченные чекбоксом:<br />
<br />
<source lang="php"><br />
<br />
$pages1 = new selector('pages');<br />
$pages1->types('object-type')->name('catalog', 'object');<br />
$pages1->where('идентификатор поля')->equals(1);<br />
//запишем id полученных страниц в массив<br />
foreach($pages1 as $page1){<br />
<br />
$mass2[] = $page1->id;<br />
} <br />
</source><br />
<br />
Теперь необходимо объединить полученные множества идентификаторов, воспользуемся функцией array_merge(), получим новый массив идентификаторов, затем, уберем повторяющиеся значения и сделаем выборку объектов по id из результирующего массива:<br />
<br />
<br />
<source lang="php"><br />
<br />
$diff = array_merge($mass,$mass2);<br />
$diff = array_unique($diff);<br />
<br />
$final = new selector('pages'); <br />
$final->types('object-type')->name('catalog', 'object'); <br />
$final->where('id')->equals($diff);<br />
<br />
</source><br />
<br />
Таким образом можно осуществлять выборки с выполнением условия "ИЛИ" для любого системного и "обычного" поля.</div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F_%D0%98%D0%9B%D0%98_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8F&diff=7882
Выборка с использованием условия ИЛИ для системного поля
2014-06-02T10:12:29Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Предположим необходимо отобрать страницы(например товары) у которых либо id входит в множество определенных значений, либо у этой страницы любое другое поле равно определенному значению. Для выборки с условием "ИЛИ" используется or-mode, но дело в том, что для системных полей данный режим не сработает. Системные поля - это:<br />
*'id'<br />
*'name' <br />
*'owner' <br />
*'domain' <br />
*'lang' <br />
*'is_deleted'<br />
*'is_active' <br />
*'is_visible' <br />
*'updatetime' <br />
*'is_default' <br />
*'template_id'<br />
<br />
== Решение ==<br />
Реализовать такую выборку в UMI.CMS можно, сделав два запроса к базе и получить объединение их результатов, т.е. id страниц, а затем отобрать в результирующем запросе страницы с данными id<br />
Предположим, будем искать страницы товаров, у которых либо идентификатор находится в определенном диапазоне, либо страница отмечена чекбоксом, который создал пользователь. На самом деле, режим or-mode в данном случае не понадобится. Выбираем страницы по системному полю id:<br />
<br />
<source lang="php"><br />
<br />
$pages = new selector('pages');<br />
$pages->types('object-type')->name('catalog', 'object');<br />
$pages->where('id')->equals(array('идентификаторы страниц через запятую'));<br />
//запишем id полученных страниц в массив<br />
foreach($pages as $page){ <br />
<br />
$mass[]=$page->id;<br />
<br />
} <br />
</source><br />
<br />
Теперь выберем страницы отмеченные чекбоксом:<br />
<br />
<source lang="php"><br />
<br />
$pages1 = new selector('pages');<br />
$pages1->types('object-type')->name('catalog', 'object');<br />
$pages1->where('идентификатор поля')->equals(1);<br />
//запишем id полученных страниц в массив<br />
foreach($pages1 as $page1){<br />
<br />
$mass2[]=$page1->id;<br />
} <br />
</source><br />
<br />
Теперь необходимо объединить полученные множества идентификаторов, воспользуемся функцией array_merge(), получим новый массив идентификаторов, затем, уберем повторяющиеся значения и сделаем выборку объектов по id из результирующего массива:<br />
<br />
<br />
<source lang="php"><br />
<br />
$diff = array_merge($mass,$mass2);<br />
$diff=array_unique($diff);<br />
<br />
$final = new selector('pages'); <br />
$final->types('object-type')->name('catalog', 'object'); <br />
$final->where('id')->equals($diff);<br />
<br />
</source><br />
<br />
Таким образом можно осуществлять выборки с выполнением условия "ИЛИ" для любого системного и "обычного" поля.</div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F_%D0%98%D0%9B%D0%98_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8F&diff=7881
Выборка с использованием условия ИЛИ для системного поля
2014-06-02T10:12:07Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Предположим необходимо отобрать страницы(например товары) у которых либо id входит в множество определенных значений, либо у этой страницы любое другое поле равно определенному значению. Для выборки с условием "ИЛИ" используется or-mode, но дело в том, что для системных полей данный режим не сработает. Системные поля - это:<br />
*'id'<br />
*'name' <br />
*'owner' <br />
*'domain' <br />
*'lang' <br />
*'is_deleted'<br />
*'is_active' <br />
*'is_visible' <br />
*'updatetime' <br />
*'is_default' <br />
*'template_id'<br />
<br />
== Решение ==<br />
Реализовать такую выборку в UMI.CMS можно, сделав два запроса к базе и получить объединение их результатов, т.е. id страниц, а затем отобрать в результирующем запросе страницы с данными id<br />
Предположим, будем искать страницы товаров, у которых либо идентификатор находится в определенном диапазоне, либо страница отмечена чекбоксом, который создал пользователь. На самом деле, режим or-mode в данном случае не понадобится. Выбираем страницы по системному полю id:<br />
<br />
<source lang="php"><br />
<br />
$pages = new selector('pages');<br />
$pages->types('object-type')->name('catalog', 'object');<br />
$pages->where('id')->equals(array('идентификаторы страниц через запятую'));<br />
//запишем id полученных страниц в массив<br />
foreach($pages as $page){ <br />
<br />
$mass[]=$page->id;<br />
<br />
} <br />
</source><br />
<br />
Теперь выберем страницы отмеченные чекбоксом:<br />
<br />
<source lang="php"><br />
<br />
$pages1 = new selector('pages');<br />
$pages1->types('object-type')->name('catalog', 'object');<br />
$pages1->where('идентификатор поля')->equals(1);<br />
//запишем id полученных страниц в массив<br />
foreach($pages1 as $page1){<br />
<br />
$mass2[]=$page1->id;<br />
} <br />
</source><br />
<br />
Теперь необходимо объединить полученные множества идентификаторов, воспользуемся функцией array_merge(), получим новый массив идентификаторов, затем, уберем повторяющиеся значения и сделаем выборку объектов по id из результирующего массива:<br />
<br />
<br />
<source lang="php"><br />
<br />
$diff = array_merge($mass,$mass2);<br />
$diff=array_unique($diff);<br />
<br />
$final = new selector('pages'); <br />
$final->types('object-type')->name('catalog', 'object'); <br />
$final->where('id')->equals($diff);<br />
<br />
</source><br />
<br />
Таким образом можно осуществлять выборки с выполнением условия "ИЛИ" для любого системного и "обычного" поля.</div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F_%D0%98%D0%9B%D0%98_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8F&diff=7880
Выборка с использованием условия ИЛИ для системного поля
2014-06-02T09:55:07Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Предположим необходимо отобрать страницы(например товары) у которых либо id входит в множество определенных значений, либо у этой страницы любое другое поле равно определенному значению. Для выборки с условием "ИЛИ" используется or-mode, но дело в том, что для системных полей данный режим не сработает. Системные поля - это:<br />
*'id'<br />
*'name' <br />
*'owner' <br />
*'domain' <br />
*'lang' <br />
*'is_deleted'<br />
*'is_active' <br />
*'is_visible' <br />
*'updatetime' <br />
*'is_default' <br />
*'template_id'<br />
<br />
== Решение ==<br />
Реализовать такую выборку в UMI.CMS можно, сделав два запроса к базе и получить "пересечение" их результатов, т.е. id страниц, а затем отобрать в результирующем запросе страницы с данными id<br />
Предположим, будем искать страницы товаров, у которых либо идентификатор находится в определенном диапазоне, либо страница отмечена чекбоксом, который создал пользователь. На самом деле, режим or-mode в данном случае не понадобится. Выбираем страницы по системному полю id:<br />
<br />
<source lang="php"><br />
<br />
$pages = new selector('pages');<br />
$pages->types('object-type')->name('catalog', 'object');<br />
$pages->where('id')->equals(array('идентификаторы страниц через запятую'));<br />
<br />
</source><br />
<br />
Теперь выберем страницы отмеченные чекбоксом:<br />
<br />
<source lang="php"><br />
<br />
$pages = new selector('pages');<br />
$pages->types('object-type')->name('catalog', 'object');<br />
$pages->where('идентификатор поля')->equals(1);<br />
<br />
</source></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F_%D0%98%D0%9B%D0%98_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8F&diff=7879
Выборка с использованием условия ИЛИ для системного поля
2014-06-02T09:52:05Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Предположим необходимо отобрать страницы(например товары) у которых либо id входит в множество определенных значений, либо у этой страницы любое другое поле равно определенному значению. Для выборки с условием "ИЛИ" используется or-mode, но дело в том, что для системных полей данный режим не сработает. Системные поля - это:<br />
*'id'<br />
*'name' <br />
*'owner' <br />
*'domain' <br />
*'lang' <br />
*'is_deleted'<br />
*'is_active' <br />
*'is_visible' <br />
*'updatetime' <br />
*'is_default' <br />
*'template_id'<br />
<br />
== Решение ==<br />
Реализовать такую выборку в UMI.CMS можно, сделав два запроса к базе и получить "пересечение" их результатов, т.е. id страниц, а затем отобрать в результирующем запросе страницы с данными id<br />
Предположим, будем искать страницы, у которых либо идентификатор находится в определенном диапазоне, либо страница отмечена чекбоксом, который создал пользователь. На самом деле, режим or-mode в данном случае не понадобится:<br />
<br />
<source lang="php"><br />
<br />
<br />
</source></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%D0%BC_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D1%8F_%D0%98%D0%9B%D0%98_%D0%B4%D0%BB%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%BE%D0%BB%D1%8F&diff=7878
Выборка с использованием условия ИЛИ для системного поля
2014-06-02T09:41:19Z
<p>Williwaw: Новая страница: «'''Актуально для версии 2.9.6''' == Задача == Предположим необходимо отобрать страницы(наприме…»</p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Предположим необходимо отобрать страницы(например товары) у которых либо id входит в множество определенных значений, либо у этой страницы любое другое поле равно определенному значению. Для выборки с условием "ИЛИ" используется or-mode, но дело в том, что для системных полей данный режим не сработает. Системные поля - это:<br />
*'id'<br />
*'name' <br />
*'owner' <br />
*'domain' <br />
*'lang' <br />
*'is_deleted'<br />
*'is_active' <br />
*'is_visible' <br />
*'updatetime' <br />
*'is_default' <br />
*'template_id'<br />
<br />
== Решение ==<br />
Реализовать такую выборку в UMI.CMS можно сделав два запроса к базе и получить "пересечение" их результатов, т.е. id товаров, а затем отобрать в результирующем запросе товары с данными id:<br />
<br />
<source lang="php"><br />
<br />
$pages = new selector('pages'); <br />
$pages->types('object-type')->id('идентификатор нужного типа данных'); <br />
<br />
$pages->option('or-mode')->fields('поле_первой_группы1','поле_первой_группы2');<br />
<br />
$pages->where('поле_первой_группы1')->equals('значение');<br />
<br />
$pages->where('поле_первой_группы2')->equals('значение');<br />
<br />
<br />
foreach($pages as $page){ <br />
<br />
$mass[]=$page->id;<br />
<br />
} <br />
<br />
<br />
$pages1 = new selector('pages'); <br />
$pages1->types('object-type')->id('идентификатор нужного типа данных'); <br />
<br />
$pages1->option('or-mode')->fields('поле_второй_группы1','поле_второй_группы2');<br />
<br />
$pages1->where('поле_второй_группы1')->equals('значение');<br />
<br />
$pages1->where('поле_второй_группы2')->equals('значение');<br />
<br />
<br />
foreach($pages1 as $page1){<br />
<br />
$mass2[]=$page1->id;<br />
} <br />
<br />
<br />
$diff = array_intersect($mass,$mass2);<br />
<br />
$final = new selector('pages'); <br />
$final->types('object-type')->id('идентификатор нужного типа данных'); <br />
$final->where('id')->equals($diff);<br />
<br />
<br />
foreach($final as $object){<br />
<br />
echo "<a href=\"{$object->link}\">{$object->name}</a>\n";<br />
} <br />
echo "Pages found: {$final->length}"; <br />
<br />
</source></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Williwaw&diff=7875
Участник:Williwaw
2014-06-02T09:33:51Z
<p>Williwaw: /* Май: */</p>
<hr />
<div>== Май: ==<br />
<br />
<ul><br />
<li>[[Выборка с использованием условия ИЛИ для системного поля ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выборка с одновременным выполнением двух условий ИЛИ ]]</li><br />
</ul><br />
<br />
== Апрель: ==<br />
<br />
<ul><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Альтернативное использование метода actAsUser() ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс payment модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discount модуля emarket]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Класс delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Кастомизация макроса content redirect()]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс order модуля emarket]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<br />
<ul><br />
<li>[[Режим or-mode в selector]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
</ul><br />
<br />
<br />
<br />
== Январь: ==<br />
<br />
<br />
<ul><br />
<li>[[Опционные свойства в виде выпадающих списков с сохранением добавления товара в корзину без перезагрузки(demodizzy)]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выбор группы пользователем из выпадающего списка при регистрации]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Смена адреса для сообщений формы обратной связи в зависимости от значения поля]]</li><br />
</ul><br />
<br />
<br />
== Декабрь: ==<br />
<br />
<ul><br />
<li>[[Использование selector в режиме or-mode для выборки по опционному свойству.]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Автоматическое формирование даты при создании страницы на примере работы с каталогом.]]</li><br />
</ul><br />
<br />
<br />
== Актуализовано за июнь: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
#добавлены категории и плашка 2.9<br />
</ul><br />
<br />
<br />
== Июль: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод своего опроса на каждой странице новости (xslt).]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(xslt).]]</li><br />
</ul><br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Williwaw&diff=7872
Участник:Williwaw
2014-06-02T09:29:51Z
<p>Williwaw: </p>
<hr />
<div>== Май: ==<br />
<br />
<ul><br />
<li>[[Выборка с использованием условия "ИЛИ" для системного поля ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выборка с одновременным выполнением двух условий "ИЛИ" ]]</li><br />
</ul><br />
<br />
<br />
== Апрель: ==<br />
<br />
<ul><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Альтернативное использование метода actAsUser() ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс payment модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discount модуля emarket]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Класс delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Кастомизация макроса content redirect()]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс order модуля emarket]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<br />
<ul><br />
<li>[[Режим or-mode в selector]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
</ul><br />
<br />
<br />
<br />
== Январь: ==<br />
<br />
<br />
<ul><br />
<li>[[Опционные свойства в виде выпадающих списков с сохранением добавления товара в корзину без перезагрузки(demodizzy)]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выбор группы пользователем из выпадающего списка при регистрации]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Смена адреса для сообщений формы обратной связи в зависимости от значения поля]]</li><br />
</ul><br />
<br />
<br />
== Декабрь: ==<br />
<br />
<ul><br />
<li>[[Использование selector в режиме or-mode для выборки по опционному свойству.]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Автоматическое формирование даты при создании страницы на примере работы с каталогом.]]</li><br />
</ul><br />
<br />
<br />
== Актуализовано за июнь: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
#добавлены категории и плашка 2.9<br />
</ul><br />
<br />
<br />
== Июль: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод своего опроса на каждой странице новости (xslt).]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(xslt).]]</li><br />
</ul><br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC_%D0%B4%D0%B2%D1%83%D1%85_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B9_%D0%98%D0%9B%D0%98&diff=7835
Выборка с одновременным выполнением двух условий ИЛИ
2014-05-29T16:25:44Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Предположим у товаров по группам заданы некие поля и необходимо выбрать те товары, у которых в одной группе полей либо одно поле равно указанному значению, либо другое, при этом, одновременно должно выполняться условие, что в другой группе полей одно или второе поле равно заданному значению, т.е. получится условие вида (А или В) и (С или D). Одним запросом при помощи selector, используя два раза режим or-mode такую выборку сделать не получится, так как между двумя условиями "ИЛИ" система поставит еще одно.<br />
<br />
== Решение ==<br />
Реализовать такую выборку в UMI.CMS можно сделав два запроса к базе и получить "пересечение" их результатов, т.е. id товаров, а затем отобрать в результирующем запросе товары с данными id:<br />
<br />
<source lang="php"><br />
<br />
$pages = new selector('pages'); <br />
$pages->types('object-type')->id('идентификатор нужного типа данных'); <br />
<br />
$pages->option('or-mode')->fields('поле_первой_группы1','поле_первой_группы2');<br />
<br />
$pages->where('поле_первой_группы1')->equals('значение');<br />
<br />
$pages->where('поле_первой_группы2')->equals('значение');<br />
<br />
<br />
foreach($pages as $page){ <br />
<br />
$mass[]=$page->id;<br />
<br />
} <br />
<br />
<br />
$pages1 = new selector('pages'); <br />
$pages1->types('object-type')->id('идентификатор нужного типа данных'); <br />
<br />
$pages1->option('or-mode')->fields('поле_второй_группы1','поле_второй_группы2');<br />
<br />
$pages1->where('поле_второй_группы1')->equals('значение');<br />
<br />
$pages1->where('поле_второй_группы2')->equals('значение');<br />
<br />
<br />
foreach($pages1 as $page1){<br />
<br />
$mass2[]=$page1->id;<br />
} <br />
<br />
<br />
$diff = array_intersect($mass,$mass2);<br />
<br />
$final = new selector('pages'); <br />
$final->types('object-type')->id('идентификатор нужного типа данных'); <br />
$final->where('id')->equals($diff);<br />
<br />
<br />
foreach($final as $object){<br />
<br />
echo "<a href=\"{$object->link}\">{$object->name}</a>\n";<br />
} <br />
echo "Pages found: {$final->length}"; <br />
<br />
</source></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC_%D0%B4%D0%B2%D1%83%D1%85_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B9_%D0%98%D0%9B%D0%98&diff=7834
Выборка с одновременным выполнением двух условий ИЛИ
2014-05-29T16:23:04Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Предположим у товаров по группам заданы некие поля и необходимо выбрать те товары, у которых в одной группе полей либо одно поле равно указанному значению, либо другое, при этом, одновременно должно выполняться условие, что в другой группе полей одно или второе поле равно заданному значению, т.е. получится условие вида (А или В) и (С или D). Одним запросом при помощи selector, используя два раза режим or-mode такую выборку сделать не получится, так как между двумя условиями "ИЛИ" система поставит еще одно.<br />
<br />
== Решение ==<br />
Реализовать такую выборку в UMI.CMS можно сделав два запроса к базе и получить "пересечение" их результатов, т.е. id товаров, а затем отобрать в результирующем запросе товары с данными id:<br />
<br />
<source lang="php"><br />
<br />
$pages = new selector('pages'); <br />
$pages->types('object-type')->id(121); <br />
<br />
$pages->option('or-mode')->fields('kolichestvo_podklyuchenij','weight');<br />
<br />
$pages->where('weight')->equals('7');<br />
<br />
$pages->where('kolichestvo_podklyuchenij')->equals('7');<br />
<br />
<br />
foreach($pages as $page){ <br />
<br />
$mass[]=$page->id;<br />
<br />
} <br />
<br />
<br />
$pages1 = new selector('pages'); <br />
$pages1->types('object-type')->id(121); <br />
<br />
$pages1->option('or-mode')->fields('testovoe_pole_1','testovoe_pole_2');<br />
<br />
$pages1->where('testovoe_pole_1')->equals('7');<br />
<br />
$pages1->where('testovoe_pole_2')->equals('7');<br />
<br />
<br />
foreach($pages1 as $page1){<br />
<br />
$mass2[]=$page1->id;<br />
} <br />
<br />
<br />
$diff = array_intersect($mass,$mass2);<br />
<br />
$final = new selector('pages'); <br />
$final->types('object-type')->id(121); <br />
$final->where('id')->equals($diff);<br />
<br />
<br />
foreach($final as $object){<br />
<br />
echo "<a href=\"{$object->link}\">{$object->name}</a>\n";<br />
} <br />
echo "Pages found: {$final->length}"; <br />
<br />
</source></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%92%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D0%B0_%D1%81_%D0%BE%D0%B4%D0%BD%D0%BE%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%BC_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC_%D0%B4%D0%B2%D1%83%D1%85_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B9_%D0%98%D0%9B%D0%98&diff=7833
Выборка с одновременным выполнением двух условий ИЛИ
2014-05-29T16:20:16Z
<p>Williwaw: Новая страница: «'''Актуально для версии 2.9.6''' == Задача == Предположим у товаров по группам заданы некие поля…»</p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Предположим у товаров по группам заданы некие поля и необходимо выбрать те товары, у которых в одной группе полей либо одно поле равно указанному значению, либо другое, при этом, одновременно должно выполняться условие, что в другой группе полей одно или второе поле равно заданному значению, т.е. получится условие вида (А или В) и (С или D). Одним запросом при помощи selector, использую два раза режим or-mode такую выборку сделать не получится.<br />
<br />
== Решение ==<br />
Например, найдем все объекты каталога,у которых либо поле "цена", либо поле "вес" равно 310(fields)<br />
Важно: необходимо точно идентификатор типа в выборке. Т.е., если у Вас родительский тип-"объект каталога", а поля, по которым производится выборка находятся, например, в типе "холодильники", и идентификатор типа в выборке указывается как идентификатор родительского типа, то в результате получим ошибку: <span style="font-weight:bold">Ошибка (selectorException): Field "имя_поля" is not presented in selected object types</span>:<br />
<br />
<source lang="php"><br />
$pages = new selector('objects');<br />
$pages->types('object-type')->id(119); <br />
$pages->option('or-mode')->fields('price','weight'); <br />
$pages->where('price')->equals(310); <br />
$pages->where('weight')->equals(310);<br />
</source></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Williwaw&diff=7832
Участник:Williwaw
2014-05-29T16:14:55Z
<p>Williwaw: </p>
<hr />
<div>== Май: ==<br />
<br />
<ul><br />
<li>[[Использование menu draw() при мультисайтовости ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выборка с одновременным выполнением двух условий "ИЛИ" ]]</li><br />
</ul><br />
<br />
<br />
== Апрель: ==<br />
<br />
<ul><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Альтернативное использование метода actAsUser() ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс payment модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discount модуля emarket]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Класс delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Кастомизация макроса content redirect()]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс order модуля emarket]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<br />
<ul><br />
<li>[[Режим or-mode в selector]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
</ul><br />
<br />
<br />
<br />
== Январь: ==<br />
<br />
<br />
<ul><br />
<li>[[Опционные свойства в виде выпадающих списков с сохранением добавления товара в корзину без перезагрузки(demodizzy)]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выбор группы пользователем из выпадающего списка при регистрации]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Смена адреса для сообщений формы обратной связи в зависимости от значения поля]]</li><br />
</ul><br />
<br />
<br />
== Декабрь: ==<br />
<br />
<ul><br />
<li>[[Использование selector в режиме or-mode для выборки по опционному свойству.]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Автоматическое формирование даты при создании страницы на примере работы с каталогом.]]</li><br />
</ul><br />
<br />
<br />
== Актуализовано за июнь: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
#добавлены категории и плашка 2.9<br />
</ul><br />
<br />
<br />
== Июль: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод своего опроса на каждой странице новости (xslt).]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(xslt).]]</li><br />
</ul><br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%A4%D0%B0%D0%B9%D0%BB:%D0%9C%D0%B5%D0%BD%D1%8E.png&diff=7829
Файл:Меню.png
2014-05-29T15:55:54Z
<p>Williwaw: </p>
<hr />
<div></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Williwaw&diff=7827
Участник:Williwaw
2014-05-28T16:01:53Z
<p>Williwaw: </p>
<hr />
<div>== Май: ==<br />
<br />
<ul><br />
<li>[[Использование menu draw() при мультисайтовости ]]</li><br />
</ul><br />
<br />
<br />
== Апрель: ==<br />
<br />
<ul><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Альтернативное использование метода actAsUser() ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс payment модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discount модуля emarket]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Класс delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Кастомизация макроса content redirect()]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс order модуля emarket]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<br />
<ul><br />
<li>[[Режим or-mode в selector]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
</ul><br />
<br />
<br />
<br />
== Январь: ==<br />
<br />
<br />
<ul><br />
<li>[[Опционные свойства в виде выпадающих списков с сохранением добавления товара в корзину без перезагрузки(demodizzy)]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выбор группы пользователем из выпадающего списка при регистрации]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Смена адреса для сообщений формы обратной связи в зависимости от значения поля]]</li><br />
</ul><br />
<br />
<br />
== Декабрь: ==<br />
<br />
<ul><br />
<li>[[Использование selector в режиме or-mode для выборки по опционному свойству.]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Автоматическое формирование даты при создании страницы на примере работы с каталогом.]]</li><br />
</ul><br />
<br />
<br />
== Актуализовано за июнь: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
#добавлены категории и плашка 2.9<br />
</ul><br />
<br />
<br />
== Июль: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод своего опроса на каждой странице новости (xslt).]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(xslt).]]</li><br />
</ul><br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Williwaw&diff=7826
Участник:Williwaw
2014-05-28T16:01:43Z
<p>Williwaw: </p>
<hr />
<div>== Май: ==<br />
<br />
<ul><br />
<li>[[Использование menu draw() при мультисатовости ]]</li><br />
</ul><br />
<br />
<br />
== Апрель: ==<br />
<br />
<ul><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Альтернативное использование метода actAsUser() ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс payment модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discount модуля emarket]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Класс delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Кастомизация макроса content redirect()]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс order модуля emarket]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<br />
<ul><br />
<li>[[Режим or-mode в selector]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
</ul><br />
<br />
<br />
<br />
== Январь: ==<br />
<br />
<br />
<ul><br />
<li>[[Опционные свойства в виде выпадающих списков с сохранением добавления товара в корзину без перезагрузки(demodizzy)]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выбор группы пользователем из выпадающего списка при регистрации]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Смена адреса для сообщений формы обратной связи в зависимости от значения поля]]</li><br />
</ul><br />
<br />
<br />
== Декабрь: ==<br />
<br />
<ul><br />
<li>[[Использование selector в режиме or-mode для выборки по опционному свойству.]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Автоматическое формирование даты при создании страницы на примере работы с каталогом.]]</li><br />
</ul><br />
<br />
<br />
== Актуализовано за июнь: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
#добавлены категории и плашка 2.9<br />
</ul><br />
<br />
<br />
== Июль: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод своего опроса на каждой странице новости (xslt).]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(xslt).]]</li><br />
</ul><br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Williwaw&diff=7825
Участник:Williwaw
2014-05-28T15:47:47Z
<p>Williwaw: </p>
<hr />
<div>== Май: ==<br />
<br />
<br />
== Апрель: ==<br />
<br />
<ul><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Альтернативное использование метода actAsUser() ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс payment модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discount модуля emarket]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Класс delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Кастомизация макроса content redirect()]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс order модуля emarket]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<br />
<ul><br />
<li>[[Режим or-mode в selector]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
</ul><br />
<br />
<br />
<br />
== Январь: ==<br />
<br />
<br />
<ul><br />
<li>[[Опционные свойства в виде выпадающих списков с сохранением добавления товара в корзину без перезагрузки(demodizzy)]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выбор группы пользователем из выпадающего списка при регистрации]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Смена адреса для сообщений формы обратной связи в зависимости от значения поля]]</li><br />
</ul><br />
<br />
<br />
== Декабрь: ==<br />
<br />
<ul><br />
<li>[[Использование selector в режиме or-mode для выборки по опционному свойству.]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Автоматическое формирование даты при создании страницы на примере работы с каталогом.]]</li><br />
</ul><br />
<br />
<br />
== Актуализовано за июнь: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
#добавлены категории и плашка 2.9<br />
</ul><br />
<br />
<br />
== Июль: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод своего опроса на каждой странице новости (xslt).]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(xslt).]]</li><br />
</ul><br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_currencyUpdater_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7768
Класс currencyUpdater модуля emarket
2014-05-05T11:50:33Z
<p>Williwaw: </p>
<hr />
<div>=Класс currencyUpdater=<br />
<br />
== Описание ==<br />
<br />
Класс currencyUpdater является абстрактным. Он создает объекты-обновляторы нужного класса валюты(дочерние классы).<br />
Обновление курса осуществляется из внешнего источника - специальной xml ЦБ РФ.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\currency\currencyUpdater.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== __construct ===<br />
<br />
Конструктор <span style="font-weight:bold">__construct()</span> создает объект валюты нужного класса<br />
<br />
<p>'''Параметры:''' </p><br />
iUmiObject<span style="font-weight:bold"> $currencyObject</span>:<br />
<br />
<p>'''Результат:'''не возвращает ничего, записывает объект в специальную защищенную переменную класса</p><br />
<br/><br />
<br />
=== update() ===<br />
<br />
Метод <span style="font-weight:bold">update()</span> обновляет курс объекта валюты<br />
<br />
<p>'''Параметры:''' </p> <br />
отсутствуют<br />
<p>'''Результат:''' $rate курс валюты</p><br />
<br/><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает обновлятор курса нужной валюты(класса)<br />
<p>'''Параметры:''' </p><br />
iUmiObject<span style="font-weight:bold"> $currencyObject</span>:<br />
<br />
<p>'''Результат:'''$updater обновлятор нужного класса валюты</p><br />
<br/><br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_emarketTop_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7767
Класс emarketTop модуля emarket
2014-05-05T11:50:22Z
<p>Williwaw: </p>
<hr />
<div>=Класс emarketTop=<br />
<br />
== Описание ==<br />
<br />
Класс emarketTop позволяет вести статистику по интернет-магазину.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\stat\emarketTop.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== addOrder() ===<br />
<br />
Метод <span style="font-weight:bold">addOrder()</span> добавляет в таблицу cms3_emarket_top статистику по заказу<br />
<br />
<p>'''Параметры:''' </p><br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== delOrder() ===<br />
<br />
Метод <span style="font-weight:bold">delOrder()</span> удаляет из таблицы cms3_emarket_top<br />
статистику по заказу<br />
<p>'''Параметры:''' </p> <br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== getTop() ===<br />
<br />
Метод <span style="font-weight:bold">getTop()</span> получает топ популярных товаров<br />
<p>'''Параметры:''' </p><br />
array<span style="font-weight:bold"> $range</span>:<br />
здесь необходимо передать массив, состоящий из двух элементов с ключами fromDate и toDate<br />
int<span style="font-weight:bold"> $numberItems</span>:<br />
количество возвращаемых популярных товаров<br />
string<span style="font-weight:bold"> $sort</span>:<br />
поле сортировки<br />
<p>'''Результат:'''array список популярных товаров</p><br />
<br/><br />
<br />
=== clearTableTop()===<br />
<br />
Метод <span style="font-weight:bold">clearTableTop()</span> удалит всю статистику<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== allOrdersRecalculate() ===<br />
<br />
Метод <span style="font-weight:bold">allOrdersRecalculate()</span><br />
вернет количество заказов со статусом "готов", оформленных до текущей даты<br />
<p>'''Параметры:''' </p> <br />
отсутствуют<br />
<br />
<p>'''Результат:'''int количество заказов</p><br />
<br/><br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_payment_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7766
Класс payment модуля emarket
2014-05-05T11:49:57Z
<p>Williwaw: </p>
<hr />
<div>=Класс payment=<br />
<br />
== Описание ==<br />
<br />
Класс является абстрактным - базовый класс для способов оплаты. Классами наследниками являются классы, представляющие типы способов оплаты - курьеру при получении, платежная квитанция и т.д.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\payment\payment.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== create() ===<br />
<br />
Метод <span style="font-weight:bold">create()</span> создает объект способа оплаты нужного типа(класса)<br />
<br />
<p>'''Параметры:''' </p><br />
iUmiObject<span style="font-weight:bold"> $paymentTypeObject</span>:<br />
объект представляющий тип оплаты<br />
<p>'''Результат:'''объект представляющий способ оплаты</p><br />
<br/><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает объект способа оплаты. Вызывается внутри метода create().<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $objectId</span>:<br />
идентификатор объекта способа оплаты<br />
order<span style="font-weight:bold"> $order=null</span>:<br />
объект заказ<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== getList() ===<br />
<br />
Метод <span style="font-weight:bold">getList()</span> получает список способов оплаты<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:'''array список способов оплаты</p><br />
<br/><br />
<br />
=== getResponseOrderId()===<br />
<br />
Метод <span style="font-weight:bold">getResponseOrderId()</span> ищет идентификатор заказа в ответе платежной системы.<br />
<br />
<p>'''Параметры:''' </p> <br />
discountRule<span style="font-weight:bold"> $discountRule</span>:<br />
правило скидки<br />
<p>'''Результат:'''Integer идентификатор заказа либо boolean false</p><br />
<br/><br />
<br />
=== getCodeName()===<br />
<br />
Метод <span style="font-weight:bold">getCodeName()</span> получает строковый идентификатор типа оплаты<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:''' string строковый идентификатор типа оплаты или boolean false</p><br />
<br/><br />
<br />
=== getOrderId() ===<br />
<br />
Метод <span style="font-weight:bold">getOrderId()</span> ищет идентификатор заказа в параметре специфичном для платежной системы. Здесь метод всегда возвращает false. Данную функцию необходимо переопредилить в файле платежной системы.<br />
<p>'''Параметры:''' </p> <br />
отсутствуют<br />
<p>'''Результат:''' boolean false</p><br />
<br/><br />
<br />
Также, в данном классе имеется три абстрактных метода:<br />
*process()<br />
*validate()<br />
*poll()<br />
<br />
Определяются, соответственно, в дочерних классах<br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_discountRule_%D0%B8_%D0%B5%D0%B3%D0%BE_%D0%B4%D0%BE%D1%87%D0%B5%D1%80%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B_(%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_emarket)&diff=7765
Класс discountRule и его дочерние классы (модуль emarket)
2014-05-05T11:49:44Z
<p>Williwaw: </p>
<hr />
<div>=Класс discountRule и его дочерние классы=<br />
<br />
== Описание ==<br />
<br />
Класс является абстрактным - базовый класс для правил скидок. Классами наследниками являются классы, представляющие типы правил:<br />
<br />
*На определенные товары<br />
*На временной промежуток<br />
*На сумму покупок пользователя<br />
*На группу пользователей<br />
*На пользователей<br />
*На связанные товары<br />
*На сумму заказа<br />
<br />
Исходный код класса находится в файле classes\modules\emarket\classes\discount\discountRule.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== create() ===<br />
<br />
Метод <span style="font-weight:bold">create()</span> создает объект правила скидки нужного типа(класса)<br />
<br />
<p>'''Параметры:''' </p> <br />
discount<span style="font-weight:bold"> $discount</span>:<br />
объект представляющий собой скидку<br />
umiObject<span style="font-weight:bold"> $ruleTypeObject</span>:<br />
объект представляющий тип правила<br />
<p>'''Результат:''' объект правило скидки нужного типа</p><br />
<br/><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает объект скидки<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $modObjectId</span>:<br />
идентификатор объекта модификатора скидки<br />
discount<span style="font-weight:bold"> $discount</span>:<br />
объект представляющий собой скидку<br />
<p>'''Результат:''' объект правило скидки нужного типа</p><br />
<br/><br />
<br />
=== getList() ===<br />
<br />
Метод <span style="font-weight:bold">getList()</span> получает список доступных правил скидки<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $discountTypeId=false</span>:<br />
идентификатор типа скидки<br />
<p>'''Результат:'''array список правил</p><br />
<br/><br />
<br />
== Интерфейсы ==<br />
<br />
Здесь также описаны два интерфейса:<br />
<br />
*orderDiscountRule, в котором описан метод validateOrder()<br />
*itemDiscountRule, в котором описан validateItem()<br />
<br />
<br />
== Дочерние классы ==<br />
<br />
Стандартно у класса discountRule имеются следующие дочерние классы:<br />
<br />
*usersDiscountRule<br />
*userGroupsDiscountRule<br />
*relatedItemsDiscountRule<br />
*orderPriceDiscountRule<br />
*itemsDiscountRule<br />
*dateRangeDiscountRule<br />
*allOrdersPricesDiscountRule<br />
<br />
<br />
Каждый из дочерних классов реализует либо оба вышеуказанных интерфейса, либо один из них:<br />
<br />
<table border=1><br />
<tr><br />
<td><br />
Интерфейсы/классы<br />
</td><br />
<td><br />
usersDiscountRule<br />
</td><br />
<td><br />
userGroupsDiscountRule<br />
</td><br />
<td><br />
relatedItemsDiscountRule<br />
</td><br />
<td><br />
orderPriceDiscountRule<br />
</td><br />
<td><br />
itemsDiscountRule<br />
</td><br />
<td><br />
dateRangeDiscountRule<br />
</td><br />
<td><br />
allOrdersPricesDiscountRule<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
orderDiscountRule<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
itemDiscountRule<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
</table><br />
<br />
В дочерних классах могут быть определены, соответственно - validateOrder(),validateItem(), оба или один из них.<br />
Также, в некоторых классах имеется метод validate()<br />
<br />
<table border=1><br />
<tr><br />
<td><br />
Методы/классы<br />
</td><br />
<td><br />
usersDiscountRule<br />
</td><br />
<td><br />
userGroupsDiscountRule<br />
</td><br />
<td><br />
relatedItemsDiscountRule<br />
</td><br />
<td><br />
orderPriceDiscountRule<br />
</td><br />
<td><br />
itemsDiscountRule<br />
</td><br />
<td><br />
dateRangeDiscountRule<br />
</td><br />
<td><br />
allOrdersPricesDiscountRule<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
validateItem()<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
validateOrder()<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
validate()<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
</tr><br />
</table><br />
<br />
=== validate()===<br />
<br />
<br />
Метод <span style="font-weight:bold">validate()</span> проверяет применимо ли данное правило к заказу или товару в каталоге.<br />
Он используется в тех классах, в которых описаны оба метода - validateOrder() и validateItem(), и просто вызывается внутри них<br />
<br />
<p>'''Параметры:''' </p> <br />
отсутсвтвуют<br />
<p>'''Результат:''' boolean true|false</p><br />
<br />
<br />
=== validateOrder()===<br />
<br />
<br />
Метод <span style="font-weight:bold">validateOrder()</span> проверяет применимо ли данное правило к заказу.<br />
<br />
<p>'''Параметры:''' </p> <br />
order<span style="font-weight:bold"> $order</span>:<br />
объект представляющий заказ<br />
<p>'''Результат:''' boolean true|false</p><br />
<br />
<br />
=== validateItem()===<br />
<br />
<br />
Метод <span style="font-weight:bold">validateItem()</span> проверяет применимо ли данное правило к товару в каталоге.<br />
<br />
<p>'''Параметры:''' </p> <br />
iUmiHierarchyElement<span style="font-weight:bold"> $element</span>:<br />
страница товара в каталоге<br />
<p>'''Результат:''' boolean true|false</p><br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D1%87%D0%B5%D1%80%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0_discount_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7764
Дочерние классы класса discount модуля emarket
2014-05-05T11:49:24Z
<p>Williwaw: </p>
<hr />
<div>=Дочерние классы класса discount=<br />
<br />
== Описание ==<br />
<br />
Стандартно у класса discount имеется три дочерних класса - orderDiscount,itemDiscount и bonusDiscount<br />
Исходные коды классов находятся в директории classes\modules\emarket\classes\discounts\discounts в файлах orderDiscount.php, itemDiscount.php и bonusDiscount.php соответственно.<br />
В каждом из этих классов определено всего два метода - это validate() и search()<br />
<br />
:Класс orderDiscount предоставляет доступ к объектам- скидкам на заказ в интернет-магазине<br />
:Класс itemDiscount предоставляет доступ к объектам- скидкам на товары в интернет-магазине<br />
:Класс bonusDiscount предоставляет доступ к объектам- накопительным скидкам в интернет-магазине<br />
<br />
== Методы ==<br />
<br />
<br />
=== validate() ===<br />
<br />
Метод <span style="font-weight:bold">validate()</span>: <br />
<br />
*для класса orderDiscount проверяет применима ли скидка к заказу<br />
*для класса itemDiscount проверяет подходит ли скидка для товара<br />
*для класса bonusDiscount проверяет начислять ли бонусы при оплате заказа<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
*для класса orderDiscount<br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br/><br />
<br />
*для класса itemDiscount<br />
iUmiHierarchyElement<span style="font-weight:bold"> $element</span>:<br />
товар в каталоге<br/><br />
<br />
*для класса bonusDiscount<br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br/><br />
<br />
<p>'''Результат:'''Boolean true|false</p><br />
<br />
=== search()===<br />
<br />
Метод <span style="font-weight:bold">search()</span>:<br />
<br />
*для класса orderDiscount находит наиболее подходящую скидку для заказа<br />
*для класса itemDiscount находит наиболее оптимальную скидку для товара<br />
*для класса bonusDiscount находит наиболее подходящую скидку для заказа<br />
<br />
<br />
*для класса orderDiscount<br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br/><br />
<br />
*для класса itemDiscount<br />
iUmiHierarchyElement<span style="font-weight:bold"> $element</span>:<br />
товар в каталоге<br/><br />
<br />
*для класса bonusDiscount<br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br/><br />
<br />
<p>'''Результат:'''</p><br />
<br />
*для класса orderDiscount - orderDiscount самая подходящая скидка для заказа $order<br />
*для класса itemDiscount - itemDiscount скидка на товар<br />
*для класса bonusDiscount - bonusDiscount самая подходящая скидка для заказа $order<br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_discountModificator_%D0%B8_%D0%B5%D0%B3%D0%BE_%D0%B4%D0%BE%D1%87%D0%B5%D1%80%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B_(%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_emarket)&diff=7763
Класс discountModificator и его дочерние классы (модуль emarket)
2014-05-05T11:49:04Z
<p>Williwaw: </p>
<hr />
<div>=Класс discountModificator и его дочерние классы=<br />
<br />
== Описание ==<br />
<br />
Класс является абстрактным - базовый класс для модификаторов цен скидок. Классами наследниками являются классы, представляющие типы модификаторов цен - процентный модификатор и абсолютный.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\discount\discountModificator.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== create() ===<br />
<br />
Метод <span style="font-weight:bold">create()</span> создает объект скидки нужного типа(класса)<br />
<br />
<p>'''Параметры:''' </p> <br />
discount<span style="font-weight:bold"> $discount</span>:<br />
объект представляющий собой скидку<br />
umiObject<span style="font-weight:bold"> $modTypeObject</span>:<br />
объект представляющий тип модификатора<br />
<p>'''Результат:''' объект модификатор цены скидки нужного типа</p><br />
<br/><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает объект скидки<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $modObjectId</span>:<br />
идентификатор объекта модификатора скидки<br />
discount<span style="font-weight:bold"> $discount</span>:<br />
объект представляющий собой скидку<br />
<p>'''Результат:''' объект модификатор цены скидки нужного типа</p><br />
<br/><br />
<br />
=== getList() ===<br />
<br />
Метод <span style="font-weight:bold">getList()</span> получает список доступных можификаторов типа скидки<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $discountTypeId=false</span>:<br />
идентификатор типа скидки<br />
<p>'''Результат:'''array список модификаторов</p><br />
<br/><br />
<br />
=== recalcPrice()===<br />
<br />
Метод <span style="font-weight:bold">recalcPrice()</span> пересчитывает цену с учетом модификатора.<br />
Метод является абстрактным и определяется в дочерних классах<br />
<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $price</span>:<br />
цена на товар, заказ <br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
== Дочерние классы ==<br />
<br />
Стандартно у класса discountModificator имеется два дочерних класса procDiscountModificator и absoluteDiscountModificator, которые изменяют цену, соответственно, на заданный процент скидки либо <br />
на фиксированное число. В каждом классе описан один публичный метод - recalcPrice<br />
<br />
=== recalcPrice()===<br />
<br />
<br />
Метод <span style="font-weight:bold">recalcPrice()</span> пересчитывает цену с учетом модификатора.<br />
<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $originalPrice</span>:<br />
цена на товар, заказ без учета скидки<br />
<p>'''Результат:''' int цена с учетом скидки</p><br />
<br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%94%D0%BE%D1%87%D0%B5%D1%80%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B0_delivery_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7762
Дочерние классы класса delivery модуля emarket
2014-05-05T11:48:44Z
<p>Williwaw: </p>
<hr />
<div>=Дочерние классы класса delivery=<br />
<br />
== Описание ==<br />
<br />
Стандартно у класса delivery имеется три дочерних класса - courierDelivery, russianpostDelivery, selfDelivery<br />
Исходные коды классов находятся в директории classes\modules\emarket\classes\delivery\systems в файлах courier.php, russianpost.php и self.php соответственно.<br />
В каждом из этих классов определено всего два метода - это validate() и getDeliveryPrice(), которые объявлены в качестве абстрактных в родительском классе delivery<br />
<br />
<br />
<br />
== Методы ==<br />
<br />
<br />
=== validate()===<br />
<br />
Метод <span style="font-weight:bold">validate()</span> подтверждает заказ в качестве текущего. <br />
<p>'''Параметры:''' </p><br/> <br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br/><br />
<p>'''Результат:'''true</p><br />
<br />
=== getDeliveryPrice()===<br />
<br />
Метод <span style="font-weight:bold">getDeliveryPrice()</span> получает цену данного способа доставки<br />
<p>'''Параметры:''' </p><br/> <br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br/><br />
<p>'''Результат:'''0 - всегда для класса selfDelivery<br> int $deliveryPrice - для класса courierDelivery<br> string $flag = " {$price} руб. (займет от {$min} до {$max} дней)"</p><br />
<br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_discount_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7761
Класс discount модуля emarket
2014-05-05T11:48:17Z
<p>Williwaw: </p>
<hr />
<div>=Класс discount=<br />
<br />
== Описание ==<br />
<br />
Класс является абстрактным - базовый класс для скидок. Классами наследниками являются классы, представляющие типы скидок - скидка на заказ, на товары, накопительная скидка. <br />
Исходный код класса находится в файле classes\modules\emarket\classes\discount\discount.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== getName() ===<br />
<br />
Метод <span style="font-weight:bold">getName()</span> получает название скидки<br />
<br />
<p>'''Параметры:''' </p><br />
отсутсвуют<br />
<p>'''Результат:'''String название скидки</p><br />
<br/><br />
<br />
=== setName() ===<br />
<br />
Метод <span style="font-weight:bold">setName()</span> изменяет название скидки<br />
<p>'''Параметры:''' </p> <br />
String<span style="font-weight:bold"> $name</span>:<br />
новое название скидки<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== getDiscountRules() ===<br />
<br />
Метод <span style="font-weight:bold">getDiscountRules()</span> получает список правил скидки<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:'''array список правил скидки (массив объектов класса discountRule)</p><br />
<br/><br />
<br />
=== appendDiscountRule()===<br />
<br />
Метод <span style="font-weight:bold">appendDiscountRule()</span> добавляет правило скидки<br />
<br />
<p>'''Параметры:''' </p> <br />
discountRule<span style="font-weight:bold"> $discountRule</span>:<br />
правило скидки<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== getDiscountModificator()===<br />
<br />
Метод <span style="font-weight:bold">getDiscountModificator()</span> получает модификатор цены скидки<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:''' объект класса discountModificator - модификатор цены</p><br />
<br/><br />
<br />
=== setDiscountModificator() ===<br />
<br />
Метод <span style="font-weight:bold">setDiscountModificator()</span> устанавливает модификатор цены скидки<br />
<p>'''Параметры:''' </p> <br />
discountModificator<span style="font-weight:bold"> $discountModificator</span>:<br />
модификатор цены скидки<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== recalcPrice() ===<br />
<br />
Метод <span style="font-weight:bold">recalcPrice()</span> выполняет пересчет цены $price<br />
<p>'''Параметры:''' </p> <br />
Float<span style="font-weight:bold"> $price</span>:<br />
цена<br />
<p>'''Результат:''' Float пересчитанная цена с учетом скидки</p><br />
<br/><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает экземпляр скидки по ее id<br />
<p>'''Параметры:''' </p> <br />
Integer<span style="font-weight:bold"> $discountId</span>:<br />
id скидки<br />
<p>'''Результат:'''discount объект скидки, экземпляр класса-потомка discount </p><br />
<br/><br />
<br />
=== add() ===<br />
<br />
Метод <span style="font-weight:bold">add()</span> создает новую скидку<br />
<p>'''Параметры:''' </p> <br />
String<span style="font-weight:bold"> $discountName</span>:<br />
название скидки<br/> <br />
Integer<span style="font-weight:bold"> $discountTypeId</span>:<br />
тип скидки<br />
<p>'''Результат:'''discount скидка </p><br />
<br/><br />
<br />
=== getTypeId() ===<br />
<br />
Метод <span style="font-weight:bold">getTypeId()</span> получает id типа скидки по ее идентификатору<br />
<p>'''Параметры:''' </p> <br />
String<span style="font-weight:bold"> $discountCode</span>:<br />
строковой идентификатор типа скидки<br />
<p>'''Результат:''' Integer id типа скидки или false, если тип получить не удалось</p><br />
<br/><br />
<br />
=== init() ===<br />
<br />
Метод <span style="font-weight:bold">init()</span> инициализирует систему скидок<br />
<p>'''Параметры:''' </p> <br />
отсутствуют<br />
<p>'''Результат:''' </p><br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_delivery_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7760
Класс delivery модуля emarket
2014-05-05T11:47:57Z
<p>Williwaw: </p>
<hr />
<div>=Класс delivery=<br />
<br />
== Описание ==<br />
<br />
Класс является абстрактным. Классами наследниками являются классы, представляющие типы доставки. <br />
Исходный код класса находится в файле classes\modules\emarket\classes\delivery\delivery.php<br />
<br />
<br />
<br />
== Методы ==<br />
<br />
=== create() ===<br />
<br />
Метод <span style="font-weight:bold">create()</span> создает объект доставки нужного типа(класса).<br />
Сначала создается экземпляр umiObject, затем на его основании создается экземпляр нужного класса(типа доставки) с помощью метода get()<br />
<p>'''Параметры:''' </p><br/> <br />
umiObject<span style="font-weight:bold"> $deliveryTypeObject</span>:<br />
объект тип доставки<br />
<p>'''Результат:'''$object объект доставки нужного типа</p><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает объект доставки нужного типа(класса)<br />
<p>'''Параметры:''' </p><br/> <br />
iUmiObject<span style="font-weight:bold"> $objectId</span>:<br />
идентификатор umiObject объекта доставки<br />
<p>'''Результат:'''$object объект доставки нужного типа </p><br />
<br />
<br />
=== getList() ===<br />
<br />
Метод <span style="font-weight:bold">getList()</span> получает список объектов способов доставки<br />
<p>'''Параметры:''' </p><br/> <br />
boolean<span style="font-weight:bold"> $selfDeliveryOnly=false</span>:<br />
только самовывоз<br/><br />
<br />
<p>'''Результат:'''array результат выборки объектов способов доставки</p><br />
<br />
=== validate()===<br />
<br />
Метод <span style="font-weight:bold">validate()</span> подтверждает заказ в качестве текущего. <br />
Метод является абстрактным и определяется в дочерних классах<br />
<p>'''Параметры:''' </p><br/> <br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br/><br />
<br />
=== getDeliveryPrice()===<br />
<br />
Метод <span style="font-weight:bold">getDeliveryPrice()</span> получает цену данного способа доставки<br />
Метод является абстрактным и определяется в дочерних классах<br />
<p>'''Параметры:''' </p><br/> <br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br/><br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_optionedOrderItem_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7759
Класс optionedOrderItem модуля emarket
2014-05-05T11:47:41Z
<p>Williwaw: </p>
<hr />
<div>=Класс optionedOrderItem=<br />
<br />
== Описание ==<br />
<br />
Расширенная версия класса orderItem с учетом возможных опций.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\order\items\ooptioned.php<br />
<br />
== Свойства класса ==<br />
<br />
$options, хранит информацию о свойствах наименования<br />
<source lang="php"><br />
protected $options = Array();<br />
</source><br />
<br />
<br />
<br />
== Методы ==<br />
<br />
=== create() ===<br />
<br />
Экземпляр класса создается с помощью конструктора <span style="font-weight:bold">__construct</span><br />
<p>'''Параметры:''' </p><br/> <br />
umiObject<span style="font-weight:bold"> $object</span><br />
<p>'''Результат:'''</p><br />
<br />
=== getOptions() ===<br />
<br />
Метод <span style="font-weight:bold">getOptions()</span> вернет список опций наименования<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
отсутствуют<br />
<br />
<p>'''Результат:'''Array $options </p><br />
<br />
<br />
=== appendOption() ===<br />
<br />
Метод <span style="font-weight:bold">appendOption()</span> подключает опцию к товару в заказе<br />
<p>'''Параметры:''' </p><br/> <br />
String <span style="font-weight:bold"> $propertyName</span>:<br />
название свойства, к которому применяется опция<br/><br />
Integer <span style="font-weight:bold"> $optionId</span>:<br />
id объекта, который соответствует значению опции<br/><br />
<p>'''Результат:'''вернет true, если применение опции прошло без ошибок </p><br />
<br />
=== removeOption() ===<br />
<br />
Метод <span style="font-weight:bold">removeOption()</span> удалит опцию из описания товара в заказе.<br />
<p>'''Параметры:''' </p><br/> <br />
String <span style="font-weight:bold"> $propertyName</span>:<br />
название свойства, к которому привязана опция<br/><br />
<p>'''Результат:'''вернет true, если опция успешно удалена </p><br />
<br />
<br />
=== getItemPrice() ===<br />
<br />
Метод <span style="font-weight:bold">getItemPrice()</span> получает цену на товар с учетом опций<br />
<p>'''Параметры:''' </p><br/> <br />
отсутствуют<br />
<p>'''Результат:''' float $price</p><br />
<br />
=== setOptionPrice() ===<br />
<br />
Метод <span style="font-weight:bold">setOptionPrice()</span> установит<br />
"цену опции"<br />
<p>'''Параметры:''' </p><br/> <br />
String <span style="font-weight:bold"> $propertyName</span>:<br />
название свойства, к которому применяется опция<br/><br />
Float<span style="font-weight:bold"> $price = false</span>:<br />
стоимость опции<br/><br />
<p>'''Результат:'''вернет true, если применение цены опции прошло без ошибок </p><br />
<br />
=== refresh() ===<br />
<br />
Метод <span style="font-weight:bold">refresh()</span> обновит информацию об опциях товара<br />
<p>'''Параметры:''' </p><br/> <br />
отсутствуют<br />
<p>'''Результат:''' </p><br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_order_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7758
Класс order модуля emarket
2014-05-05T11:47:23Z
<p>Williwaw: </p>
<hr />
<div>=Класс order=<br />
<br />
== Описание ==<br />
<br />
Данный класс предоставляет доступ к заказу интернет-магазина либо к текущей корзине.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\order\order.php<br />
<br />
== Свойства класса ==<br />
<br />
$items, хранит информацию о предметах в заказе или корзине<br />
<source lang="php"><br />
protected $items = Array();<br />
</source><br />
<br />
$actualPrice хранит актуальную цену на заказ(с учетом скидки)<br />
<source lang="php"><br />
protected $actualPrice;<br />
</source><br />
<br />
$originalPrice хранит цену заказа с учетом скидки<br />
<source lang="php"><br />
protected $originalPrice;<br />
</source><br />
<br />
$totalAmount хранит общее количество предметов в заказе или корзине товаров<br />
<source lang="php"><br />
protected $totalAmount;<br />
</source><br />
<br />
<br />
<br />
$discount хранит объект "скидка на заказ"<br />
<source lang="php"><br />
protected $discount;<br />
</source><br />
<br />
<br />
$domain хранит объект "текущий домен"<br />
<source lang="php"><br />
protected $domain;<br />
</source><br />
<br />
<br />
<br />
== Методы ==<br />
<br />
=== create() ===<br />
<br />
Экземпляр класса создается с помощью функции <span style="font-weight:bold">create()</span><br />
<p>'''Параметры:''' </p><br/> <br />
boolean<span style="font-weight:bold"> $useDummyOrder</span>:<br />
по умолчанию false<br/><br />
<p>'''Результат:'''Int $orderId - id нового заказа </p><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получит экземпляр заказа по его id. Если id заказа false, то метод вернет текущий объект со статусом "в корзине".<br />
Если такого объекта еще нет, то он его создаст<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $orderId</span>:<br />
по умолчанию false<br/><br />
<p>'''Результат:'''iUmiObject $order - новый объект заказ </p><br />
<br />
=== getStatusByCode() ===<br />
<br />
Метод <span style="font-weight:bold">getStatusByCode()</span> получит id объекта статуса заказа.<br />
<p>'''Параметры:''' </p><br/> <br />
String <span style="font-weight:bold"> $codename</span>:<br />
код статуса заказа<br/><br />
String <span style="font-weight:bold"> $statusClass = 'order_status'</span>:<br />
группа статуса<br/><br />
<p>'''Результат:'''Integer id объекта статуса заказа </p><br />
<br />
=== getCodeByStatus() ===<br />
<br />
Метод <span style="font-weight:bold">getCodeByStatus()</span> получит код статуса заказа.<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $id</span>:<br />
<br />
идентификатор объекта статуса заказа<br/><br />
<br />
<p>'''Результат:'''String codename код статуса заказа </p><br />
<br />
=== getItems() ===<br />
<br />
Метод <span style="font-weight:bold">getItems()</span> получит список наименований в заказе.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<p>'''Результат:'''Array массив, состоящий из экземпляров класса orderItem </p><br />
<br />
=== appendItem() ===<br />
<br />
Метод <span style="font-weight:bold">appendItem()</span> добавит наименование в заказ.<br />
<p>'''Параметры:''' </p><br/> <br />
orderItem <span style="font-weight:bold"> $orderItem</span>:<br />
<br />
наименование заказа<br/><br />
<br />
<p>'''Результат:''' вернет false, если наименование с таким id уже есть в заказе</p><br />
<br />
<br />
=== removeItem() ===<br />
<br />
Метод <span style="font-weight:bold">removeItem()</span> удалит наименование из заказа.После удаления из заказа объект orderItem будет уничтожен<br />
<p>'''Параметры:''' </p><br/> <br />
orderItem <span style="font-weight:bold"> $orderItem</span>:<br />
<br />
наименование в заказе<br/><br />
<br />
<p>'''Результат:''' вернет true, если наименование было удалено, false в противном случае</p><br />
<br />
=== getItem() ===<br />
<br />
Метод <span style="font-weight:bold">getItem()</span> получит <br />
экземпляр наименования заказа по id<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $itemId</span>:<br />
<br />
id наименования<br/><br />
<br />
<p>'''Результат:''' orderItem, если наименование получить не удалось - false</p><br />
<br />
<br />
=== isEmpty() ===<br />
<br />
Метод <span style="font-weight:bold">isEmpty()</span> проверяет есть ли наименования в заказе<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' bool true, если заказ пустой, иначе false</p><br />
<br />
<br />
=== earse() ===<br />
<br />
Метод <span style="font-weight:bold">earse()</span> очистит<br />
список товаров в заказе. При этом будут уничтожены все orderItem'ы<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<p>'''Результат:'''</p><br />
<br />
<br />
=== getOrderStatus() ===<br />
<br />
Метод <span style="font-weight:bold">getOrderStatus()</span> получит текущий статус заказа<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Integer id объекта статуса заказа</p><br />
<br />
<br />
=== setOrderStatus() ===<br />
<br />
Метод <span style="font-weight:bold">setOrderStatus()</span> изменит текущий статус заказа<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $newStatusId</span>:<br />
<br />
id объекта-статуса заказа<br/><br />
<br />
<p>'''Результат:''' </p><br />
<br />
<br />
=== getPaymentStatus() ===<br />
<br />
Метод <span style="font-weight:bold">getPaymentStatus()</span> получит текущий статус оплаты заказа<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Integer id объекта-статуса оплаты</p><br />
<br />
<br />
=== setPaymentStatus() ===<br />
<br />
Метод <span style="font-weight:bold">getItem()</span> изменит текущий статус оплаты заказа<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $statusId</span>:<br />
<br />
id объекта-статуса оплаты<br/><br />
<br />
<p>'''Результат:'''</p><br />
<br />
<br />
=== getDeliveryStatus() ===<br />
<br />
Метод <span style="font-weight:bold">getDeliveryStatus()</span> Получить текущий статус доставки заказа<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Integerid объекта-статуса доставки</p><br />
<br />
<br />
=== setDeliveryStatus() ===<br />
<br />
Метод <span style="font-weight:bold">setDeliveryStatus()</span> изменит текущий статус доставки заказа<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $statusId</span>:<br />
<br />
id объекта-статуса доставки<br/><br />
<br />
<p>'''Результат:'''</p><br />
<br />
<br />
=== getActualPrice() ===<br />
<br />
Метод <span style="font-weight:bold">getActualPrice()</span> Получит цену всего заказа с учетом скидки на этот заказ<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Float actualPrice - цена с учетом скидки на заказ </p><br />
<br />
<br />
=== getOriginalPrice() ===<br />
<br />
Метод <span style="font-weight:bold">getOriginalPrice()</span> Получит цену всего заказа без учета скидки на этот заказ<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Float originalPrice - цена без учета скидки на заказ</p><br />
<br />
<br />
<br />
=== getTotalAmount() ===<br />
<br />
Метод <span style="font-weight:bold">getTotalAmount()</span> получит количество наименований в заказе<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Integer totalAmount - количество наименований в заказе</p><br />
<br />
<br />
=== getDeliveryPrice() ===<br />
<br />
Метод <span style="font-weight:bold">getDeliveryPrice()</span> получит стоимость доставки<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Integer delivery_price стоимость доставки</p><br />
<br />
<br />
=== refresh() ===<br />
<br />
Метод <span style="font-weight:bold">refresh()</span> пересчитает содержимое корзины<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''</p><br />
<br />
<br />
=== getCustomerId() ===<br />
<br />
Метод <span style="font-weight:bold">getCustomerId()</span> получит <br />
id клиента. Это может быть как id пользователя, так и id объекта временного покупателя<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<p>'''Результат:''' Integer id объекта-клиента</p><br />
<br />
<br />
=== getDomain() ===<br />
<br />
Метод <span style="font-weight:bold">getDomain()</span> получит <br />
домен, в котором производится заказ<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' $domain</p><br />
<br />
<br />
=== setDomainId() ===<br />
<br />
Метод <span style="font-weight:bold">setDomainId()</span> изменит домен, в котором производится заказ<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
domain <span style="font-weight:bold"> $domain</span>:<br />
<br />
<br/><br />
<br />
<p>'''Результат:''' </p><br />
<br />
<br />
=== getDiscount() ===<br />
<br />
Метод <span style="font-weight:bold">getDiscount()</span> получит <br />
текущую скидку на этот заказ<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' discount скидка на заказ</p><br />
<br />
<br />
=== setDiscount() ===<br />
<br />
Метод <span style="font-weight:bold">setDiscount()</span> Назначит скидку на заказ<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
discount <span style="font-weight:bold"> $discount</span>:<br />
<br />
скидка на заказ, по умолчанию null<br/><br />
<br />
<p>'''Результат:''' </p><br />
<br />
<br />
=== getBonusDiscount() ===<br />
<br />
Метод <span style="font-weight:bold">getBonusDiscount()</span> получит размер оплаты бонусами.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' float размер оплаты </p><br />
<br />
<br />
<br />
=== setBonusDiscount() ===<br />
<br />
Метод <span style="font-weight:bold">setBonusDiscount()</span> установит оплату бонусом.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $id</span>:<br />
<br />
идентификатор объекта статуса заказа<br/><br />
<br />
<p>'''Результат:'''String codename код статуса заказа </p><br />
<br />
=== getCodeByStatus() ===<br />
<br />
Метод <span style="font-weight:bold">getCodeByStatus()</span> получит код статуса заказа.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
float <span style="font-weight:bold"> $bonus</span>:<br />
<br />
сумма списываемых баллов<br/><br />
<br />
<p>'''Результат:'''</p><br />
<br />
<br />
<br />
=== generateNumber() ===<br />
<br />
Метод <span style="font-weight:bold">generateNumber()</span> сгенерирует номер заказа.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''</p><br />
<br />
<br />
<br />
=== order() ===<br />
<br />
Метод <span style="font-weight:bold">order()</span> сохранит заказ в базе со статусом "в обработке(waiting)", т.е. этот заказ уже не будет являтсья "текущей корзиной товаров"<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''true в случае сохранения заказа, false в противном случае </p><br />
<br />
<br />
=== searchDiscount() ===<br />
<br />
Метод <span style="font-weight:bold">searchDiscount()</span> определит скидку для заказа.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' orderDiscount $discount - скидка заказа </p><br />
<br />
<br />
<br />
=== reserve() ===<br />
<br />
Метод <span style="font-weight:bold">reserve()</span> зарезервирует наименования в заказе<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''</p><br />
<br />
<br />
<br />
=== unreserve() ===<br />
<br />
Метод <span style="font-weight:bold">unreserve()</span> отменить резервирование наименований в заказе.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''</p><br />
<br />
<br />
<br />
=== writeOff() ===<br />
<br />
Метод <span style="font-weight:bold">writeOff()</span> спишет из магазина зарезервированные наименования<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' true, если наименования списаны, false в противном случае </p><br />
<br />
<br />
=== getAdvParamFromUrl() ===<br />
<br />
Метод <span style="font-weight:bold">getAdvParamFromUrl()</span> получит параметры рекламной компании.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<span style="font-weight:bold"> $url</span>:<br />
адрес на который пришёл пользователь<br/><br />
<br />
<span style="font-weight:bold"> $refer</span>:<br />
адрес с которого пришёл пользователь, по умолчанию null<br/><br />
<br />
<p>'''Результат:''' array $params </p><br />
<br />
<br />
=== parseUrlReferer() ===<br />
<br />
Метод <span style="font-weight:bold">parseUrlReferer()</span> найдет в URL ключевые слова и источник перехода<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<span style="font-weight:bold"> $url</span>:<br />
адрес с которого пришёл пользователь (referer)<br/><br />
<br />
<p>'''Результат:''' array $query </p><br />
br/<br />
br//p<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_customer_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7757
Класс customer модуля emarket
2014-05-05T11:46:58Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.5'''<br />
<br />
=Класс customer=<br />
<br />
== Описание ==<br />
<br />
Одним из классов, который необходим для работы модуля "интернет-магазин" является класс customer.<br />
Данный класс предоставляет доступ к управлению объектами-покупателями интернет-магазина.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\customer\customer.php<br />
<br />
== Свойства класса ==<br />
<br />
<br />
$defaultExpiration хранит время жизни cookie <br />
<source lang="php"><br />
public static $defaultExpiration = 2678400; // 31 days<br />
</source><br />
<br />
$isAuth хранит id пользователя, если покупатель - авторизованный пользователь, false в противном случае<br />
<source lang="php"><br />
protected $isAuth;<br />
</source><br />
<br />
== Методы ==<br />
<br />
=== __construct() ===<br />
<br />
Экземпляр класса создается с помощью <span style="font-weight:bold">__construct()</span><br />
<p>'''Параметры:''' </p><br/> <br />
iUmiObject<span style="font-weight:bold"> $object</span>:<br />
содержит в себе либо объект "зарегистрированный пользователь" либо объект "незарегистрированный покупатель"<br/><br />
<p>'''Результат:''' экземпляр класса customer</p><br />
<br />
При создании объекта, методом определяется, какое значение будет хранить переменная $isAuth:<br />
<br />
<source lang="php"><br />
<br />
public function __construct(iUmiObject $object) {<br />
$permissions = permissionsCollection::getInstance();<br />
//получить id текущего пользователя<br />
$userId = $permissions->getUserId();<br />
//получить id гостя<br />
$guestId = permissionsCollection::getGuestId();<br />
// если id гостя равен id текущего пользователя записать в переменную $isAuth false, в противном <br />
случае записать id текущего пользователя<br />
$this->isAuth = ($userId == $guestId) ? false : $userId;<br />
//создать экземпляр класса покупатель<br />
parent::__construct($object);<br />
}<br />
</source><br />
<br />
=== get() ===<br />
Получить экземпляр класса можно с помощью функции <span style="font-weight:bold">get()</span>, если покупатель не существует, то метод создаст новый экземпляр класса <br />
<p>'''Параметры:''' </p><br/> <br />
bool<span style="font-weight:bold"> $nocache</span>:<br />
не использовать данные кэша, по умолчанию false<br/><br />
<p>'''Результат:''' экземпляр класса customer</p><br />
<br />
<source lang="php"><br />
public static function get($nocache = false) {<br />
static $customer;<br />
//Сначала функция get() проверит создан ли уже объект покупатель<br />
if(!$nocache && !is_null($customer)) {<br />
<br />
//вернет объект покупатель, если он существует<br />
return $customer; <br />
}<br />
<br />
<br />
$objects = umiObjectsCollection::getInstance(); <br />
$permissions = permissionsCollection::getInstance();<br />
<br />
// если объект не существует, проверит авторизован ли пользователь<br />
if($permissions->isAuth()) {<br />
$userId = $permissions->getUserId();<br />
<br />
//авторизован - запишет в переменную $object(входной параметр для конструктора класса)<br />
объект текущего пользователя<br />
$object = $objects->getObject($userId);<br />
} else {<br />
//не авторизован - запишет в переменную $object объект покупателя-гостя, <br />
получает этот объект функция getCustomerId()<br />
$object = self::getCustomerId();<br />
<br />
//выполнить повторную проверку, это может быть полезно при конфликтах после перезагрузки сервера<br />
if($object === false) $object = self::getCustomerId(true);<br />
}<br />
<br />
if($object instanceof iUmiObject) {<br />
//будет создан экземпляр класса customer, на основе объекта переданного в переменную $object<br />
$customer = new customer($object);<br />
//только что созданный экземпляр класса обратиться к функции tryMerge()<br />
$customer->tryMerge();<br />
return $customer;<br />
}<br />
}<br />
</source><br />
<br />
<br />
=== IsUser() ===<br />
<br />
Метод <span style="font-weight:bold">isUser()</span> вернет значение типа boolean, 1 или 0, в зависимости от того является ли покупатель зарегистрированным пользователем, т.е. будет проверено содержит ли переменная $isAuth идентификатор пользователя, или же, содержит false<br />
<p>'''Параметры:''' </p><br />
<p>'''Результат:''' boolean</p><br />
<br />
<br />
=== getCustomerId() ===<br />
<br />
Метод <span style="font-weight:bold">getCustomerId()</span> вернет объект покупателя-гостя, если объект не существует, обратится к методу <span style="font-weight:bold">createGuestCustomer()</span>, который создаст нового покупателя-гостя<br />
<p>'''Параметры:''' </p><br/> <br />
bool <span style="font-weight:bold">$noCookie</span>:<br />
"не использовать данные кук", по умолчанию false<br/><br />
<p>'''Результат:''' объект "покупатель-гость", записанный в переменную $customer</p><br />
<br />
<source lang="php"><br />
<br />
protected static function getCustomerId($noCookie = false) {<br />
<br />
//в переменную $customerId записывается id покупателя-гостя<br />
static $customerId;<br />
<br />
//проверка на то, содержит ли переменная значение<br />
if(is_null($customerId)) {<br />
<br />
//Если переменная $customerId пуста, получит id покупателя из кук<br />
$customerId = (int) getCookie('customer-id');<br />
}<br />
//получить существующий объект "покупатель" по id<br />
$customer = selector::get('object')->id($customerId);<br />
<br />
if($customer instanceof iUmiObject != false) {<br />
<br />
//если полученный объект является экземпляром класса iUmiObject, получим тип объекта<br />
$type = selector::get('object-type')->id($customer->getTypeId());<br />
//получим метод, по которому был создан объект<br />
if($type->getMethod() != 'customer') {<br />
<br />
//если метод не customer, в переменную $customer запишем null<br />
$customer = null;<br />
}<br />
} else {<br />
//если полученный объект не является экземпляром класса iUmiObject, в переменную $customer <br />
также запишем null<br />
$customer = null;<br />
}<br />
//если $customer не определена, создадим новый объект "покупатель-гость"<br />
if(!$customer) {<br />
$customerId = self::createGuestCustomer();<br />
//получим id объекта<br />
$customer = selector::get('object')->id($customerId);<br />
}<br />
// если у объекта не задан id(т.е. объект не сущетсвует),создадим новый объект "покупатель-гость"<br />
if(!$customerId) {<br />
$customerId = self::createGuestCustomer();<br />
}<br />
//если не активен консольный режим, создаем куку в браузере пользователя<br />
if (!defined('UMICMS_CLI_MODE') || !UMICMS_CLI_MODE) {<br />
setcookie('customer-id', $customerId, (time() + self::$defaultExpiration), '/');<br />
}<br />
// устанавливаем "время жизни" объекта "покупатель-гость"<br />
$expirations = umiObjectsExpiration::getInstance();<br />
$expirations->set($customerId, self::$defaultExpiration);<br />
<br />
//возвращаем объект "покупатель-гость"<br />
return $customer;<br />
}<br />
</source><br />
<br />
=== createGuestCustomer() ===<br />
<br />
<br />
Метод <span style="font-weight:bold">createGuestCustomer()</span> создаст новый объект "покупатель-гость"<br />
<p>'''Параметры:''' </p><br />
<p>'''Результат:''' id "покупателя-гость", записанный в переменную $customer</p><br />
<br />
<source lang="php"><br />
protected static function createGuestCustomer() {<br />
//получить коллекцию типов объектов<br />
$objectTypes = umiObjectTypesCollection::getInstance();<br />
<br />
//получить коллекцию объектов<br />
$objects = umiObjectsCollection::getInstance();<br />
<br />
//получить тип данных "покупатель"<br />
$objectTypeId = $objectTypes->getBaseType('emarket', 'customer');<br />
<br />
//добавить объект "покупатель-гость", имеющий тип данных "покупатель", записать в переменную $customerId<br />
id "покупателя-гостя"<br />
$customerId = $objects->addObject(getServer('REMOTE_ADDR'), $objectTypeId);<br />
<br />
//получить объект "покупатель-гость"<br />
$customer = $objects->getObject($customerId);<br />
<br />
//установить владельцем объекта пользователя гость<br />
$customer->setOwnerId($objects->getObjectIdByGUID('system-guest'));<br />
<br />
//вернуть id объекта "покупатель-гость"<br />
return $customerId;<br />
}<br />
<br />
</source><br />
<br />
=== tryMerge() ===<br />
<br />
Метод <span style="font-weight:bold">tryMerge()</span> попытается перенести товары "покупателя-гостя" авторизованному покупателю(пользователю), обратившись к методу <span style="font-weight:bold">merge()</span><br />
<p>'''Параметры:''' </p><br />
<p>'''Результат:''' </p><br />
<br />
Данная функция используется, например, если пользователь положил товары в корзину, будучи не авторизован, а потом авторизовался на сайте<br />
<source lang="php"><br />
public function tryMerge() {<br />
//проверяет является ли текущий экземпляр класса авторизованным пользователем и есть лиу него в браузере кука<br />
if($this->isUser() && getCookie('customer-id')) {<br />
<br />
//получает объект "покупателя-гостя"<br />
$guestCustomer = self::getCustomerId();<br />
<br />
//если объект является экземпляром класса iUmiObject, обратится к функции merge()<br />
if($guestCustomer instanceof iUmiObject) {<br />
$this->merge($guestCustomer);<br />
}<br />
}<br />
}<br />
</source><br />
<br />
=== merge() ===<br />
<br />
Метод <span style="font-weight:bold">merge()</span> "переносит" товары "покупателя-гостя" авторизованному покупателю(пользователю), обратившись к методу <span style="font-weight:bold">mergeBasket()</span><br />
<p>'''Параметры:''' </p><br/> <br />
iUmiObject <span style="font-weight:bold">$customer</span>:<br />
содержит в себе объект "покупатель"<br/><br />
<p>'''Результат:''' </p><br />
<br />
<br />
<source lang="php"><br />
public function merge(umiObject $customer) {<br />
//получаем id текущего домена<br />
$cmsController = cmsController::getInstance();<br />
$domain = $cmsController->getCurrentDomain();<br />
$domainId = $domain->getId();<br />
<br />
//получаем список всех заказов текущего объекта "покупатель"<br />
$sel = new selector('objects');<br />
$sel->types('object-type')->name('emarket', 'order');<br />
$sel->where('customer_id')->equals($customer->id);<br />
$sel->where('domain_id')->equals($domainId);<br />
$sel->order('id')->desc();<br />
<br />
<br />
//получаем id текущего авторизованного пользователя<br />
$permissions = permissionsCollection::getInstance();<br />
$userId = $permissions->getUserId();<br />
<br />
foreach($sel as $order) {<br />
//ищем заказ, у которого нет статуса<br />
if(!$order->status_id) {<br />
//обращаемся к методу mergeBasket(), передавая в качестве параметра текущий объект заказа<br />
$this->mergeBasket($order);<br />
continue;<br />
}<br />
<br />
//присваиваем для текущего заказа в качестве id покупателя,id авторизованного пользователя<br />
$order->customer_id = $userId;<br />
//сохраняем изменения<br />
$order->commit();<br />
}<br />
//если не активен консольный режим, создаем куку в браузере пользователя<br />
if (!defined('UMICMS_CLI_MODE') || !UMICMS_CLI_MODE) {<br />
setcookie('customer-id', 0, 1, '/');<br />
}<br />
//удаляем экземпляр класса "покупатель"<br />
$customer->delete();<br />
}<br />
</source> <br />
<br />
<br />
=== mergeBasket() ===<br />
<br />
Метод <span style="font-weight:bold">mergeBasket()</span> "переносит" товары "покупателя-гостя" авторизованному покупателю(пользователю), удаляя по завершению переноса объект "заказ"(корзина гостя)<br />
<p>'''Параметры:''' </p><br/> <br />
umiObject <span style="font-weight:bold">$guestBasket</span>:<br />
содержит в себе текущий объект "заказ"(корзина покупателя)<br/><br />
<p>'''Результат:''' </p><br />
<br />
<br />
<source lang="php"><br />
protected function mergeBasket(umiObject $guestBasket) {<br />
//получить все товары в корзине покупателя-гостя<br />
$orderItems = $guestBasket->order_items;<br />
<br />
//проверить являются ли полученные товары массивом<br />
if(is_array($orderItems)) {<br />
//передать в переменную $userBasket заказ, который представляет текущую корзину товаров<br />
$userBasket = __emarket_purchasing::getBasketOrder(false);<br />
<br />
// проверить задана ли $userBasket<br />
if($userBasket) {<br />
<br />
<br />
foreach($orderItems as $orderItemId) {<br />
$orderItem = orderItem::get($orderItemId);<br />
if($orderItem) {<br />
//добавить в текущую корзину товаров, товары из корзины покупателя-гостя<br />
$userBasket->appendItem($orderItem);<br />
}<br />
}<br />
//сохранить текущую корзину товаров<br />
$userBasket->commit();<br />
}<br />
}<br />
//удалить корзину покупателя-гостя<br />
$guestBasket->delete();<br />
}<br />
</source> <br />
<br />
=== freeze() ===<br />
<br />
Метод <span style="font-weight:bold">freeze()</span> "заморозит" покупателя, т.е. не удалит его по истечении 31 дня<br />
<p>'''Параметры:''' </p><br />
<p>'''Результат:''' </p><br />
<br />
<source lang="php"><br />
public function freeze() {<br />
//получить коллекцию "сроков жизни" объектов<br />
$expirations = umiObjectsExpiration::getInstance();<br />
//обнулить "срок жизни" для текущего экземпляра класса<br />
$expirations->clear($this->id);<br />
}<br />
</source><br />
<br />
=== __toString() ===<br />
<br />
Метод <span style="font-weight:bold">__toString()</span> вернет id текущего экземпляра класса в качестве строки<br />
<p>'''Параметры:''' </p><br />
<p>'''Результат:''' </p><br />
<br />
<source lang="php"><br />
public function __toString() {<br />
//вернуть id покупателя в строковом виде<br />
return (string) $this->object->id;<br />
}<br />
</source><br />
<br />
<br />
<br />
=== getLastOrder() ===<br />
<br />
<br />
<br />
<br />
Метод <span style="font-weight:bold">getLastOrder()</span> получит id последнего заказа пользователя<br />
<p>'''Параметры:''' </p><br/> <br />
int <span style="font-weight:bold">$domainId</span>:<br />
id домена заказа<br/><br />
<p>'''Результат:'''<br/>int $orderId идентификатор последнего заказа пользователя или false</p> <br />
<br />
<br />
<br />
<source lang="php"><br />
public function getLastOrder($domainId) {<br />
//присвоить id заказа идентификатор сессии админа(редактирование заказа под администратором). Если запишется не пустое значение, вернуть $orderId<br />
if ($orderId = getSession('admin-editing-order')) return $orderId;<br />
//присвоим переменной $lastOrders значение поля "последний заказ" у покупателя(является составным)<br />
if ($lastOrders = $this->last_order) {<br />
foreach($lastOrders as $lastOrder) {<br />
if (isset($lastOrder['float']) && $lastOrder['float'] == $domainId) {<br />
//если $lastOrders не окажется пустым, присвоим в переменную $orderId номер последнего заказа<br />
$orderId = $lastOrder['rel'];<br />
//получим объект последнего заказа<br />
$order = order::get($orderId);<br />
//если $order пустая, функция возвращает false<br />
if (!$order) return false;<br />
//получим код код статуса последнего заказа<br />
$status = order::getCodeByStatus($order->status_id);<br />
//если $status пустая, или статус заказа - "редактируется", или "оплачивается" и, при <br />
этом, оплата "инициализирована", метод вернет id последнего заказа<br />
if (!$status || $status == 'executing' || ($status == 'payment' && order::getCodeByStatus($order->payment_status_id) == 'initialized') ) return $orderId;<br />
}<br />
}<br />
}<br />
//при невыполнении вышеперечисленных условий метод вернет false<br />
return false;<br />
}<br />
</source><br />
<br />
=== setLastOrder() ===<br />
<br />
Метод <span style="font-weight:bold">setLastOrder()</span> установит последний заказ пользователя<br />
<p>'''Параметры:''' </p><br/> <br />
int <span style="font-weight:bold">$domainId</span>:<br />
id домена заказа<br/><br />
int <span style="font-weight:bold">$orderId</span>:<br />
id заказа<br/><br />
<p>'''Результат:'''</p> <br />
<br />
<br />
<source lang="php"><br />
public function setLastOrder($orderId, $domainId) {<br />
<br />
//получим значение поля last_order(составное) у покупателя<br />
$lastOrders = $this->last_order;<br />
//объявим переменную $matchDomain, присвоив значение false<br />
$matchDomain = false;<br />
foreach($lastOrders as &$lastOrder) {<br />
//если у составного поля last_order существует float и float равен переданному в качестве параметра <br />
id домена, установим в качестве id последнего заказа, переданный в функцию id<br />
if (isset($lastOrder['float']) && $lastOrder['float'] == $domainId) {<br />
$lastOrder['rel'] = $orderId;<br />
//установим значение $matchDomain как true<br />
$matchDomain = true;<br />
}<br />
}<br />
//если $matchDomain содержит false, в id последнего заказа устанавливаем переданный в функцию id заказа<br />
в поле float запишем переданный id домена<br />
if (!$matchDomain) $lastOrders[] = array("rel" => $orderId, "float" => $domainId);<br />
$this->last_order = $lastOrders;<br />
//сохраним внесенные изменения<br />
$this->commit();<br />
<br />
}<br />
</source><br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul><br />
[[Категория:API]][[Категория:Модуль Интернет магазин]]</div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_orderItem_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7756
Класс orderItem модуля emarket
2014-05-05T11:46:26Z
<p>Williwaw: </p>
<hr />
<div>=Класс orderItem=<br />
<br />
== Описание ==<br />
<br />
Класс orderItem связывает объекты каталога в магазине и непосредственно заказ (корзину товаров).<br />
Исходный код класса находится в файле classes\modules\emarket\classes\order\orderItem.php<br />
<br />
== Методы ==<br />
<br />
=== create() ===<br />
<br />
Экземпляр класса создается с помощью функции <span style="font-weight:bold">create()</span><br />
<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $elementId</span>:<br />
id страницы-объекта каталога<br/><br />
Integer|Boolean <span style="font-weight:bold"> $storeId</span>:<br />
id склада, на котором находится товар, по умолчанию false<br/><br />
<p>'''Результат:'''orderItem товар в заказе </p><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> экземпляр наименования в заказе с учетом текущих настроек интернет-магазина и типа товара.<br />
<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $objectId</span>:<br />
id объекта<br/><br />
<br />
<p>'''Результат:'''orderItem объект наименования в заказе </p><br />
<br />
<br />
=== remove() ===<br />
<br />
Метод <span style="font-weight:bold">remove()</span> удалит объект, представляющий товар в заказе<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''</p><br />
<br />
<br />
=== getName() ===<br />
<br />
Метод <span style="font-weight:bold">getName()</span> получит название наименования<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' String название наименования заказа</p><br />
<br />
<br />
=== getAmount() ===<br />
<br />
Метод <span style="font-weight:bold">getAmount()</span> получит количество товара, которое добавлено к заказу<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Integer количество товаров в заказе</p><br />
<br />
<br />
=== setAmount() ===<br />
<br />
Метод <span style="font-weight:bold">setAmount()</span> изменит количество товаров в заказе<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $amount</span>:<br />
новое значение количества товаров в заказе<br/><br />
<br />
<p>'''Результат:'''</p><br />
<br />
=== getTotalOriginalPrice() ===<br />
<br />
Метод <span style="font-weight:bold">getTotalOriginalPrice()</span> получит стоимость всего наименования без учета скидок<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''Float стоимость наименования без учета скидок</p><br />
<br />
=== getTotalActualPrice() ===<br />
<br />
Метод <span style="font-weight:bold">getTotalActualPrice()</span> получит стоимость всего наименования с учетом скидок<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''Float стоимость наименования с учетом скидок</p><br />
<br />
=== getItemPrice() ===<br />
<br />
Метод <span style="font-weight:bold">getItemPrice()</span> получитп стоимость одной единицы товара (без скидок)<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Float стоимость 1 единицы товара без скидки</p><br />
<br />
<br />
=== getIsDigital() ===<br />
<br />
Метод <span style="font-weight:bold">getIsDigital()</span> проверит, является ли товар цифровым.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Boolean true|false</p><br />
<br />
<br />
=== getItemElement() ===<br />
<br />
Метод <span style="font-weight:bold">getItemElement()</span> получит страницу-объект каталога, которая является товаром этого наименования.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' iUmiHierarchyElement объект в каталоге</p><br />
<br />
<br />
=== getDiscount() ===<br />
<br />
Метод <span style="font-weight:bold">getDiscount()</span><br />
получит скидку, которая действует на наименование<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<p>'''Результат:'''itemDiscount скидка на наименование </p><br />
<br />
<br />
=== setDiscount() ===<br />
<br />
Метод <span style="font-weight:bold">setDiscount()</span> установит скидку на наименование<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
itemDiscount<span style="font-weight:bold"> $discount</span>:<br />
объект скидка на товар<br/><br />
<br />
<p>'''Результат:''' </p><br />
<br />
<br />
=== refresh() ===<br />
<br />
Метод <span style="font-weight:bold">refresh()</span> пересчитает параметры наименования и обновит свойства наименования в БД<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''вернет true в случае, если наименование существует и было обновлено, false в противном случае </p><br />
<br />
<br />
== Дополнительно ==<br />
<br />
Другие статьи по классам emarket:<br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
<li>[[Класс order модуля emarket]]</li><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
<li>[[Класс delivery модуля emarket]]</li><br />
<li>[[Класс discount модуля emarket]]</li><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
<li>[[Класс payment модуля emarket ]]</li><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_orderItem_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7755
Класс orderItem модуля emarket
2014-05-05T09:51:57Z
<p>Williwaw: </p>
<hr />
<div>=Класс orderItem=<br />
<br />
== Описание ==<br />
<br />
Класс orderItem связывает объекты каталога в магазине и непосредственно заказ (корзину товаров).<br />
Исходный код класса находится в файле classes\modules\emarket\classes\order\orderItem.php<br />
<br />
== Методы ==<br />
<br />
=== create() ===<br />
<br />
Экземпляр класса создается с помощью функции <span style="font-weight:bold">create()</span><br />
<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $elementId</span>:<br />
id страницы-объекта каталога<br/><br />
Integer|Boolean <span style="font-weight:bold"> $storeId</span>:<br />
id склада, на котором находится товар, по умолчанию false<br/><br />
<p>'''Результат:'''orderItem товар в заказе </p><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> экземпляр наименования в заказе с учетом текущих настроек интернет-магазина и типа товара.<br />
<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $objectId</span>:<br />
id объекта<br/><br />
<br />
<p>'''Результат:'''orderItem объект наименования в заказе </p><br />
<br />
<br />
=== remove() ===<br />
<br />
Метод <span style="font-weight:bold">remove()</span> удалит объект, представляющий товар в заказе<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''</p><br />
<br />
<br />
=== getName() ===<br />
<br />
Метод <span style="font-weight:bold">getName()</span> получит название наименования<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' String название наименования заказа</p><br />
<br />
<br />
=== getAmount() ===<br />
<br />
Метод <span style="font-weight:bold">getAmount()</span> получит количество товара, которое добавлено к заказу<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Integer количество товаров в заказе</p><br />
<br />
<br />
=== setAmount() ===<br />
<br />
Метод <span style="font-weight:bold">setAmount()</span> изменит количество товаров в заказе<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
Integer <span style="font-weight:bold"> $amount</span>:<br />
новое значение количества товаров в заказе<br/><br />
<br />
<p>'''Результат:'''</p><br />
<br />
=== getTotalOriginalPrice() ===<br />
<br />
Метод <span style="font-weight:bold">getTotalOriginalPrice()</span> получит стоимость всего наименования без учета скидок<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''Float стоимость наименования без учета скидок</p><br />
<br />
=== getTotalActualPrice() ===<br />
<br />
Метод <span style="font-weight:bold">getTotalActualPrice()</span> получит стоимость всего наименования с учетом скидок<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''Float стоимость наименования с учетом скидок</p><br />
<br />
=== getItemPrice() ===<br />
<br />
Метод <span style="font-weight:bold">getItemPrice()</span> получитп стоимость одной единицы товара (без скидок)<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Float стоимость 1 единицы товара без скидки</p><br />
<br />
<br />
=== getIsDigital() ===<br />
<br />
Метод <span style="font-weight:bold">getIsDigital()</span> проверит, является ли товар цифровым.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' Boolean true|false</p><br />
<br />
<br />
=== getItemElement() ===<br />
<br />
Метод <span style="font-weight:bold">getItemElement()</span> получит страницу-объект каталога, которая является товаром этого наименования.<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:''' iUmiHierarchyElement объект в каталоге</p><br />
<br />
<br />
=== getDiscount() ===<br />
<br />
Метод <span style="font-weight:bold">getDiscount()</span><br />
получит скидку, которая действует на наименование<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<p>'''Результат:'''itemDiscount скидка на наименование </p><br />
<br />
<br />
=== setDiscount() ===<br />
<br />
Метод <span style="font-weight:bold">setDiscount()</span> установит скидку на наименование<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
itemDiscount<span style="font-weight:bold"> $discount</span>:<br />
объект скидка на товар<br/><br />
<br />
<p>'''Результат:''' </p><br />
<br />
<br />
=== refresh() ===<br />
<br />
Метод <span style="font-weight:bold">refresh()</span> пересчитает параметры наименования и обновит свойства наименования в БД<br />
<br />
<p>'''Параметры:''' </p><br/> <br />
<br />
<br />
<p>'''Результат:'''вернет true в случае, если наименование существует и было обновлено, false в противном случае </p></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_currencyUpdater_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7749
Класс currencyUpdater модуля emarket
2014-05-01T13:29:43Z
<p>Williwaw: </p>
<hr />
<div>=Класс currencyUpdater=<br />
<br />
== Описание ==<br />
<br />
Класс currencyUpdater является абстрактным. Он создает объекты-обновляторы нужного класса валюты(дочерние классы).<br />
Обновление курса осуществляется из внешнего источника - специальной xml ЦБ РФ.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\currency\currencyUpdater.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== __construct ===<br />
<br />
Конструктор <span style="font-weight:bold">__construct()</span> создает объект валюты нужного класса<br />
<br />
<p>'''Параметры:''' </p><br />
iUmiObject<span style="font-weight:bold"> $currencyObject</span>:<br />
<br />
<p>'''Результат:'''не возвращает ничего, записывает объект в специальную защищенную переменную класса</p><br />
<br/><br />
<br />
=== update() ===<br />
<br />
Метод <span style="font-weight:bold">update()</span> обновляет курс объекта валюты<br />
<br />
<p>'''Параметры:''' </p> <br />
отсутствуют<br />
<p>'''Результат:''' $rate курс валюты</p><br />
<br/><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает обновлятор курса нужной валюты(класса)<br />
<p>'''Параметры:''' </p><br />
iUmiObject<span style="font-weight:bold"> $currencyObject</span>:<br />
<br />
<p>'''Результат:'''$updater обновлятор нужного класса валюты</p><br />
<br/></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_currencyUpdater_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7748
Класс currencyUpdater модуля emarket
2014-04-30T16:26:21Z
<p>Williwaw: Новая страница: «=Класс currencyUpdater= == Описание == Класс currencyUpdater Исходный код класса находится в файле classes\modul…»</p>
<hr />
<div>=Класс currencyUpdater=<br />
<br />
== Описание ==<br />
<br />
Класс currencyUpdater <br />
Исходный код класса находится в файле classes\modules\emarket\classes\currency\currencyUpdater.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== __construct ===<br />
<br />
Конструктор <span style="font-weight:bold">__construct()</span> создает объект валюты нужного класса<br />
<br />
<p>'''Параметры:''' </p><br />
iUmiObject<span style="font-weight:bold"> $currencyObject</span>:<br />
<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== delOrder() ===<br />
<br />
Метод <span style="font-weight:bold">delOrder()</span> удаляет из таблицы cms3_emarket_top<br />
статистику по заказу<br />
<p>'''Параметры:''' </p> <br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== getTop() ===<br />
<br />
Метод <span style="font-weight:bold">getTop()</span> получает топ популярных товаров<br />
<p>'''Параметры:''' </p><br />
array<span style="font-weight:bold"> $range</span>:<br />
здесь необходимо передать массив, состоящий из двух элементов с ключами fromDate и toDate<br />
int<span style="font-weight:bold"> $numberItems</span>:<br />
количество возвращаемых популярных товаров<br />
string<span style="font-weight:bold"> $sort</span>:<br />
поле сортировки<br />
<p>'''Результат:'''array список популярных товаров</p><br />
<br/><br />
<br />
=== clearTableTop()===<br />
<br />
Метод <span style="font-weight:bold">clearTableTop()</span> удалит всю статистику<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== allOrdersRecalculate() ===<br />
<br />
Метод <span style="font-weight:bold">allOrdersRecalculate()</span><br />
вернет количество заказов со статусом "готов", оформленных до текущей даты<br />
<p>'''Параметры:''' </p> <br />
отсутствуют<br />
<br />
<p>'''Результат:'''int количество заказов</p><br />
<br/></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Williwaw&diff=7747
Участник:Williwaw
2014-04-30T15:01:26Z
<p>Williwaw: </p>
<hr />
<div>== Апрель: ==<br />
<br />
<ul><br />
<li>[[Класс currencyUpdater модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Альтернативное использование метода actAsUser() ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс payment модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discount модуля emarket]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Класс delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Кастомизация макроса content redirect()]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс order модуля emarket]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<br />
<ul><br />
<li>[[Режим or-mode в selector]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
</ul><br />
<br />
<br />
<br />
== Январь: ==<br />
<br />
<br />
<ul><br />
<li>[[Опционные свойства в виде выпадающих списков с сохранением добавления товара в корзину без перезагрузки(demodizzy)]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выбор группы пользователем из выпадающего списка при регистрации]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Смена адреса для сообщений формы обратной связи в зависимости от значения поля]]</li><br />
</ul><br />
<br />
<br />
== Декабрь: ==<br />
<br />
<ul><br />
<li>[[Использование selector в режиме or-mode для выборки по опционному свойству.]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Автоматическое формирование даты при создании страницы на примере работы с каталогом.]]</li><br />
</ul><br />
<br />
<br />
== Актуализовано за июнь: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
#добавлены категории и плашка 2.9<br />
</ul><br />
<br />
<br />
== Июль: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод своего опроса на каждой странице новости (xslt).]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(xslt).]]</li><br />
</ul><br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_emarketTop_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7746
Класс emarketTop модуля emarket
2014-04-30T14:59:30Z
<p>Williwaw: </p>
<hr />
<div>=Класс emarketTop=<br />
<br />
== Описание ==<br />
<br />
Класс emarketTop позволяет вести статистику по интернет-магазину.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\stat\emarketTop.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== addOrder() ===<br />
<br />
Метод <span style="font-weight:bold">addOrder()</span> добавляет в таблицу cms3_emarket_top статистику по заказу<br />
<br />
<p>'''Параметры:''' </p><br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== delOrder() ===<br />
<br />
Метод <span style="font-weight:bold">delOrder()</span> удаляет из таблицы cms3_emarket_top<br />
статистику по заказу<br />
<p>'''Параметры:''' </p> <br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== getTop() ===<br />
<br />
Метод <span style="font-weight:bold">getTop()</span> получает топ популярных товаров<br />
<p>'''Параметры:''' </p><br />
array<span style="font-weight:bold"> $range</span>:<br />
здесь необходимо передать массив, состоящий из двух элементов с ключами fromDate и toDate<br />
int<span style="font-weight:bold"> $numberItems</span>:<br />
количество возвращаемых популярных товаров<br />
string<span style="font-weight:bold"> $sort</span>:<br />
поле сортировки<br />
<p>'''Результат:'''array список популярных товаров</p><br />
<br/><br />
<br />
=== clearTableTop()===<br />
<br />
Метод <span style="font-weight:bold">clearTableTop()</span> удалит всю статистику<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== allOrdersRecalculate() ===<br />
<br />
Метод <span style="font-weight:bold">allOrdersRecalculate()</span><br />
вернет количество заказов со статусом "готов", оформленных до текущей даты<br />
<p>'''Параметры:''' </p> <br />
отсутствуют<br />
<br />
<p>'''Результат:'''int количество заказов</p><br />
<br/></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%90%D0%BB%D1%8C%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0_actAsUser()&diff=7745
Альтернативное использование метода actAsUser()
2014-04-30T14:52:05Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Необходимо для менеджера интернет-магазина добавить возможность оформлять заказ от лица пользователя Гость с сайта,будучи при этом авторизованным в системе как менеджер(например, клиент звонит по телефону).<br />
<br />
== Решение ==<br />
В системе есть возможность оформления заказа от имени пользователя из уже существующего заказа и от лица именно этого пользователя.<br />
Необходимо немного изменить код данного метода, вынести его в файл _custom.php для модуля emarket и указать его в качестве action для кнопки, которую можно разместить в основном шаблоне страниц. Для кнопки можно будет добавить условие отображения, чтобы ее не было видно обычным посетителям сайта.<br />
<br />
Итоговый код метода после внесения изменений:<br />
<source lang="php"><br />
public function actAsUserCustom() {<br />
<br />
$permissions = permissionsCollection::getInstance();<br />
$oldUserId = $permissions->getUserId(); <br />
$userId = $permissions->getGuestId();<br />
$objects = umiObjectsCollection::getInstance();<br />
$user = $objects->getObject($userId);<br />
session_destroy();<br />
<br />
setcookie('u-login', "", time() - 3600, "/");<br />
setcookie('u-password', "", time() - 3600, "/");<br />
setcookie('u-password-md5', "", time() - 3600, "/");<br />
setcookie ('eip-panel-state-first', "", time() - 3600, "/");<br />
setcookie('customer-id', "", time() - 3600, "/");<br />
<br />
session_start();<br />
<br />
if ($user->getTypeGUID() == 'users-user') {<br />
<br />
$login = $user->getValue("login");<br />
$password = $user->getValue("password");<br />
<br />
$_SESSION['user_id'] = $userId;<br />
$_SESSION['cms_login'] = $login;<br />
$_SESSION['cms_pass'] = $password;<br />
<br />
setcookie('u-login', $login, time() - 3600, "/");<br />
setcookie('u-password-md5', $password, time() - 3600, "/");<br />
}<br />
<br />
$_SESSION['fake-user'] = 1; <br />
$_SESSION['old_user_id'] = $oldUserId; <br />
<br />
setcookie('customer-id', $userId, (time() + customer::$defaultExpiration), '/');<br />
<br />
$this->chooseRedirect("/");<br />
}<br />
<br />
</source></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%90%D0%BB%D1%8C%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0_actAsUser()&diff=7744
Альтернативное использование метода actAsUser()
2014-04-30T14:51:05Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Необходимо для менеджера интернет-магазина добавить возможность оформлять заказ от лица пользователя Гость с сайта,будучи при этом авторизованным в системе как менеджер(например, клиент звонит по телефону).<br />
<br />
== Решение ==<br />
В системе есть возможность оформления заказа от имени пользователя из уже существующего заказа и от лица именно этого пользователя.<br />
Необходимо немного изменить код данного метода, вынести его в файл _custom.php для модуля emarket и указать его в качестве action для кнопки, которую можно разместить в основном шаблоне страниц. Для кнопки можно будет добавить условие отображения, чтобы ее не было видно обычным посетителям сайта.<br />
<br />
Итоговый код метода после внесения изменений:<br />
<source lang="php"><br />
public function actAsUserCustom() {<br />
<br />
$permissions = permissionsCollection::getInstance();<br />
$oldUserId = $permissions->getUserId(); <br />
$userId = $permissions->getGuestId();<br />
$objects = umiObjectsCollection::getInstance();<br />
$user = $objects->getObject($userId);<br />
session_destroy();<br />
<br />
setcookie('u-login', "", time() - 3600, "/");<br />
setcookie('u-password', "", time() - 3600, "/");<br />
setcookie('u-password-md5', "", time() - 3600, "/");<br />
setcookie ('eip-panel-state-first', "", time() - 3600, "/");<br />
setcookie('customer-id', "", time() - 3600, "/");<br />
<br />
session_start();<br />
<br />
if ($user->getTypeGUID() == 'users-user') {<br />
<br />
$login = $user->getValue("login");<br />
$password = $user->getValue("password");<br />
<br />
$_SESSION['user_id'] = $userId;<br />
$_SESSION['cms_login'] = $login;<br />
$_SESSION['cms_pass'] = $password;<br />
<br />
setcookie('u-login', $login, time() - 3600, "/");<br />
setcookie('u-password-md5', $password, time() - 3600, "/");<br />
}<br />
<br />
$_SESSION['fake-user'] = 1; <br />
$_SESSION['old_user_id'] = $oldUserId; <br />
<br />
setcookie('customer-id', $userId, (time() + customer::$defaultExpiration), '/');<br />
<br />
$this->chooseRedirect("/");<br />
}<br />
</source></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%90%D0%BB%D1%8C%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0_actAsUser()&diff=7743
Альтернативное использование метода actAsUser()
2014-04-30T14:47:40Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Необходимо для менеджера интернет-магазина добавить возможность оформлять заказ от лица пользователя Гость с сайта,будучи при этом авторизованным в системе как менеджер(например, клиент звонит по телефону).<br />
<br />
== Решение ==<br />
В системе есть возможность оформления заказа от имени пользователя из уже существующего заказа и от лица именно этого пользователя.<br />
Необходимо немного изменить код данного метода, вынести его в файл _custom.php для модуля emarket и указать его в качестве action для кнопки, которую можно разместить в основном шаблоне страниц. Для кнопки можно будет добавить условие отображения, чтобы ее не было видно обычным посетителям сайта.<br />
<br />
Итоговый код метода после внесения изменений:<br />
<source lang="php"><br />
<br />
</source></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%90%D0%BB%D1%8C%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0_actAsUser()&diff=7721
Альтернативное использование метода actAsUser()
2014-04-29T14:00:23Z
<p>Williwaw: </p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
Необходимо для менеджера интернет-магазина добавить возможность оформлять заказ от лица пользователя Гость с сайта,будучи при этом авторизованным в системе как менеджер(например, клиент звонит по телефону).<br />
<br />
== Решение ==<br />
В системе есть возможность оформления заказа от имени пользователя из уже существующего заказа и от лица именно этого пользователя.<br />
<br />
<source lang="php"><br />
<br />
</source><br />
<br />
<br />
<source lang="php"><br />
<br />
</source></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%90%D0%BB%D1%8C%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B0_actAsUser()&diff=7720
Альтернативное использование метода actAsUser()
2014-04-29T13:52:13Z
<p>Williwaw: Новая страница: «'''Актуально для версии 2.9.6''' == Задача == == Решение == <source lang="php"> </source> <source lang="php"> </source>»</p>
<hr />
<div>'''Актуально для версии 2.9.6'''<br />
<br />
== Задача ==<br />
<br />
<br />
<br />
== Решение ==<br />
<br />
<br />
<source lang="php"><br />
<br />
</source><br />
<br />
<br />
<source lang="php"><br />
<br />
</source></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Williwaw&diff=7719
Участник:Williwaw
2014-04-29T13:50:31Z
<p>Williwaw: </p>
<hr />
<div>== Апрель: ==<br />
<br />
<ul><br />
<li>[[Альтернативное использование метода actAsUser() ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс payment модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discount модуля emarket]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Класс delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Кастомизация макроса content redirect()]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс order модуля emarket]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<br />
<ul><br />
<li>[[Режим or-mode в selector]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
</ul><br />
<br />
<br />
<br />
== Январь: ==<br />
<br />
<br />
<ul><br />
<li>[[Опционные свойства в виде выпадающих списков с сохранением добавления товара в корзину без перезагрузки(demodizzy)]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выбор группы пользователем из выпадающего списка при регистрации]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Смена адреса для сообщений формы обратной связи в зависимости от значения поля]]</li><br />
</ul><br />
<br />
<br />
== Декабрь: ==<br />
<br />
<ul><br />
<li>[[Использование selector в режиме or-mode для выборки по опционному свойству.]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Автоматическое формирование даты при создании страницы на примере работы с каталогом.]]</li><br />
</ul><br />
<br />
<br />
== Актуализовано за июнь: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
#добавлены категории и плашка 2.9<br />
</ul><br />
<br />
<br />
== Июль: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод своего опроса на каждой странице новости (xslt).]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(xslt).]]</li><br />
</ul><br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_emarketTop_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7669
Класс emarketTop модуля emarket
2014-04-23T16:12:43Z
<p>Williwaw: </p>
<hr />
<div>=Класс emarketTop=<br />
<br />
== Описание ==<br />
<br />
Класс emarketTop позволяет вести статистику по интернет-магазину.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\stat\emarketTop.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== addOrder() ===<br />
<br />
Метод <span style="font-weight:bold">addOrder()</span> добавляет в таблицу cms3_emarket_top статистику по заказу<br />
<br />
<p>'''Параметры:''' </p><br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== delOrder() ===<br />
<br />
Метод <span style="font-weight:bold">delOrder()</span> удаляет из таблицы cms3_emarket_top<br />
статистику по заказу<br />
<p>'''Параметры:''' </p> <br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== getTop() ===<br />
<br />
Метод <span style="font-weight:bold">getTop()</span> получает топ популярных товаров<br />
<p>'''Параметры:''' </p><br />
array<span style="font-weight:bold"> $range</span>:<br />
здесь необходимо передать массив, состоящий из двух элементов с ключами fromDate и toDate<br />
int<span style="font-weight:bold"> $numberItems</span>:<br />
количество возвращаемых популярных товаров<br />
string<span style="font-weight:bold"> $sort</span>:<br />
поле сортировки<br />
<p>'''Результат:'''array список популярных товаров</p><br />
<br/><br />
<br />
=== recalculation()===<br />
<br />
Метод <span style="font-weight:bold">recalculation()</span> обновляет статистику по заказам. Найдет выполненные заказы, оформленные <br />
<br />
<p>'''Параметры:''' </p> <br />
<span style="font-weight:bold"> </span>:<br />
<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== clearTableTop()===<br />
<br />
Метод <span style="font-weight:bold">clearTableTop()</span> удалит всю статистику<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== allOrdersRecalculate() ===<br />
<br />
Метод <span style="font-weight:bold">allOrdersRecalculate()</span><br />
<p>'''Параметры:''' </p> <br />
<span style="font-weight:bold"> </span>:<br />
<br />
<p>'''Результат:''' </p><br />
<br/></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_emarketTop_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7668
Класс emarketTop модуля emarket
2014-04-23T16:06:50Z
<p>Williwaw: </p>
<hr />
<div>=Класс emarketTop=<br />
<br />
== Описание ==<br />
<br />
Класс emarketTop позволяет вести статистику по интернет-магазину.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\stat\emarketTop.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== addOrder() ===<br />
<br />
Метод <span style="font-weight:bold">addOrder()</span> добавляет в таблицу cms3_emarket_top статистику по заказу<br />
<br />
<p>'''Параметры:''' </p><br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== delOrder() ===<br />
<br />
Метод <span style="font-weight:bold">delOrder()</span> удаляет из таблицы cms3_emarket_top<br />
статистику по заказу<br />
<p>'''Параметры:''' </p> <br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== getTop() ===<br />
<br />
Метод <span style="font-weight:bold">getTop()</span> получает топ популярных товаров<br />
<p>'''Параметры:''' </p><br />
array<span style="font-weight:bold"> $range</span>:<br />
здесь необходимо передать массив, состоящий из двух элементов с ключами fromDate и toDate<br />
int<span style="font-weight:bold"> $numberItems</span>:<br />
количество возвращаемых популярных товаров<br />
string<span style="font-weight:bold"> $sort</span>:<br />
поле сортировки<br />
<p>'''Результат:'''array список популярных товаров</p><br />
<br/><br />
<br />
=== appendDiscountRule()===<br />
<br />
Метод <span style="font-weight:bold">appendDiscountRule()</span> добавляет правило скидки<br />
<br />
<p>'''Параметры:''' </p> <br />
discountRule<span style="font-weight:bold"> $discountRule</span>:<br />
правило скидки<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== getDiscountModificator()===<br />
<br />
Метод <span style="font-weight:bold">getDiscountModificator()</span> получает модификатор цены скидки<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:''' объект класса discountModificator - модификатор цены</p><br />
<br/><br />
<br />
=== setDiscountModificator() ===<br />
<br />
Метод <span style="font-weight:bold">setDiscountModificator()</span> устанавливает модификатор цены скидки<br />
<p>'''Параметры:''' </p> <br />
discountModificator<span style="font-weight:bold"> $discountModificator</span>:<br />
модификатор цены скидки<br />
<p>'''Результат:''' </p><br />
<br/></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_emarketTop_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7667
Класс emarketTop модуля emarket
2014-04-23T15:42:16Z
<p>Williwaw: </p>
<hr />
<div>=Класс emarketTop=<br />
<br />
== Описание ==<br />
<br />
Класс emarketTop позволяет вести статистику по интернет-магазину.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\stat\emarketTop.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== addOrder() ===<br />
<br />
Метод <span style="font-weight:bold">addOrder()</span> добавляет в таблицу cms3_emarket_top статистику по заказу<br />
<br />
<p>'''Параметры:''' </p><br />
order<span style="font-weight:bold"> $order</span>:<br />
объект заказ<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== setName() ===<br />
<br />
Метод <span style="font-weight:bold">setName()</span> изменяет название скидки<br />
<p>'''Параметры:''' </p> <br />
String<span style="font-weight:bold"> $name</span>:<br />
новое название скидки<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== getDiscountRules() ===<br />
<br />
Метод <span style="font-weight:bold">getDiscountRules()</span> получает список правил скидки<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:'''array список правил скидки (массив объектов класса discountRule)</p><br />
<br/><br />
<br />
=== appendDiscountRule()===<br />
<br />
Метод <span style="font-weight:bold">appendDiscountRule()</span> добавляет правило скидки<br />
<br />
<p>'''Параметры:''' </p> <br />
discountRule<span style="font-weight:bold"> $discountRule</span>:<br />
правило скидки<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== getDiscountModificator()===<br />
<br />
Метод <span style="font-weight:bold">getDiscountModificator()</span> получает модификатор цены скидки<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:''' объект класса discountModificator - модификатор цены</p><br />
<br/><br />
<br />
=== setDiscountModificator() ===<br />
<br />
Метод <span style="font-weight:bold">setDiscountModificator()</span> устанавливает модификатор цены скидки<br />
<p>'''Параметры:''' </p> <br />
discountModificator<span style="font-weight:bold"> $discountModificator</span>:<br />
модификатор цены скидки<br />
<p>'''Результат:''' </p><br />
<br/></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_emarketTop_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7666
Класс emarketTop модуля emarket
2014-04-23T15:40:00Z
<p>Williwaw: Новая страница: «=Класс emarketTop= == Описание == Класс emarketTop позволяет вести статистику по интернет-магазину. И…»</p>
<hr />
<div>=Класс emarketTop=<br />
<br />
== Описание ==<br />
<br />
Класс emarketTop позволяет вести статистику по интернет-магазину.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\stat\emarketTop.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== getName() ===<br />
<br />
Метод <span style="font-weight:bold">getName()</span> получает название скидки<br />
<br />
<p>'''Параметры:''' </p><br />
отсутсвуют<br />
<p>'''Результат:'''String название скидки</p><br />
<br/><br />
<br />
=== setName() ===<br />
<br />
Метод <span style="font-weight:bold">setName()</span> изменяет название скидки<br />
<p>'''Параметры:''' </p> <br />
String<span style="font-weight:bold"> $name</span>:<br />
новое название скидки<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== getDiscountRules() ===<br />
<br />
Метод <span style="font-weight:bold">getDiscountRules()</span> получает список правил скидки<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:'''array список правил скидки (массив объектов класса discountRule)</p><br />
<br/><br />
<br />
=== appendDiscountRule()===<br />
<br />
Метод <span style="font-weight:bold">appendDiscountRule()</span> добавляет правило скидки<br />
<br />
<p>'''Параметры:''' </p> <br />
discountRule<span style="font-weight:bold"> $discountRule</span>:<br />
правило скидки<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== getDiscountModificator()===<br />
<br />
Метод <span style="font-weight:bold">getDiscountModificator()</span> получает модификатор цены скидки<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:''' объект класса discountModificator - модификатор цены</p><br />
<br/><br />
<br />
=== setDiscountModificator() ===<br />
<br />
Метод <span style="font-weight:bold">setDiscountModificator()</span> устанавливает модификатор цены скидки<br />
<p>'''Параметры:''' </p> <br />
discountModificator<span style="font-weight:bold"> $discountModificator</span>:<br />
модификатор цены скидки<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== recalcPrice() ===<br />
<br />
Метод <span style="font-weight:bold">recalcPrice()</span> выполняет пересчет цены $price<br />
<p>'''Параметры:''' </p> <br />
Float<span style="font-weight:bold"> $price</span>:<br />
цена<br />
<p>'''Результат:''' Float пересчитанная цена с учетом скидки</p><br />
<br/><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает экземпляр скидки по ее id<br />
<p>'''Параметры:''' </p> <br />
Integer<span style="font-weight:bold"> $discountId</span>:<br />
id скидки<br />
<p>'''Результат:'''discount объект скидки, экземпляр класса-потомка discount </p><br />
<br/><br />
<br />
=== add() ===<br />
<br />
Метод <span style="font-weight:bold">add()</span> создает новую скидку<br />
<p>'''Параметры:''' </p> <br />
String<span style="font-weight:bold"> $discountName</span>:<br />
название скидки<br/> <br />
Integer<span style="font-weight:bold"> $discountTypeId</span>:<br />
тип скидки<br />
<p>'''Результат:'''discount скидка </p><br />
<br/><br />
<br />
=== getTypeId() ===<br />
<br />
Метод <span style="font-weight:bold">getTypeId()</span> получает id типа скидки по ее идентификатору<br />
<p>'''Параметры:''' </p> <br />
String<span style="font-weight:bold"> $discountCode</span>:<br />
строковой идентификатор типа скидки<br />
<p>'''Результат:''' Integer id типа скидки или false, если тип получить не удалось</p><br />
<br/><br />
<br />
=== init() ===<br />
<br />
Метод <span style="font-weight:bold">init()</span> инициализирует систему скидок<br />
<p>'''Параметры:''' </p> <br />
отсутствуют<br />
<p>'''Результат:''' </p></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Williwaw&diff=7665
Участник:Williwaw
2014-04-23T15:35:34Z
<p>Williwaw: </p>
<hr />
<div>== Апрель: ==<br />
<br />
<ul><br />
<li>[[Класс emarketTop модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс payment модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discount модуля emarket]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Класс delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Кастомизация макроса content redirect()]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс order модуля emarket]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<br />
<ul><br />
<li>[[Режим or-mode в selector]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
</ul><br />
<br />
<br />
<br />
== Январь: ==<br />
<br />
<br />
<ul><br />
<li>[[Опционные свойства в виде выпадающих списков с сохранением добавления товара в корзину без перезагрузки(demodizzy)]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выбор группы пользователем из выпадающего списка при регистрации]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Смена адреса для сообщений формы обратной связи в зависимости от значения поля]]</li><br />
</ul><br />
<br />
<br />
== Декабрь: ==<br />
<br />
<ul><br />
<li>[[Использование selector в режиме or-mode для выборки по опционному свойству.]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Автоматическое формирование даты при создании страницы на примере работы с каталогом.]]</li><br />
</ul><br />
<br />
<br />
== Актуализовано за июнь: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
#добавлены категории и плашка 2.9<br />
</ul><br />
<br />
<br />
== Июль: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод своего опроса на каждой странице новости (xslt).]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(xslt).]]</li><br />
</ul><br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_payment_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7664
Класс payment модуля emarket
2014-04-23T15:30:49Z
<p>Williwaw: </p>
<hr />
<div>=Класс payment=<br />
<br />
== Описание ==<br />
<br />
Класс является абстрактным - базовый класс для способов оплаты. Классами наследниками являются классы, представляющие типы способов оплаты - курьеру при получении, платежная квитанция и т.д.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\payment\payment.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== create() ===<br />
<br />
Метод <span style="font-weight:bold">create()</span> создает объект способа оплаты нужного типа(класса)<br />
<br />
<p>'''Параметры:''' </p><br />
iUmiObject<span style="font-weight:bold"> $paymentTypeObject</span>:<br />
объект представляющий тип оплаты<br />
<p>'''Результат:'''объект представляющий способ оплаты</p><br />
<br/><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает объект способа оплаты. Вызывается внутри метода create().<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $objectId</span>:<br />
идентификатор объекта способа оплаты<br />
order<span style="font-weight:bold"> $order=null</span>:<br />
объект заказ<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== getList() ===<br />
<br />
Метод <span style="font-weight:bold">getList()</span> получает список способов оплаты<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:'''array список способов оплаты</p><br />
<br/><br />
<br />
=== getResponseOrderId()===<br />
<br />
Метод <span style="font-weight:bold">getResponseOrderId()</span> ищет идентификатор заказа в ответе платежной системы.<br />
<br />
<p>'''Параметры:''' </p> <br />
discountRule<span style="font-weight:bold"> $discountRule</span>:<br />
правило скидки<br />
<p>'''Результат:'''Integer идентификатор заказа либо boolean false</p><br />
<br/><br />
<br />
=== getCodeName()===<br />
<br />
Метод <span style="font-weight:bold">getCodeName()</span> получает строковый идентификатор типа оплаты<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:''' string строковый идентификатор типа оплаты или boolean false</p><br />
<br/><br />
<br />
=== getOrderId() ===<br />
<br />
Метод <span style="font-weight:bold">getOrderId()</span> ищет идентификатор заказа в параметре специфичном для платежной системы. Здесь метод всегда возвращает false. Данную функцию необходимо переопредилить в файле платежной системы.<br />
<p>'''Параметры:''' </p> <br />
отсутствуют<br />
<p>'''Результат:''' boolean false</p><br />
<br/><br />
<br />
Также, в данном классе имеется три абстрактных метода:<br />
*process()<br />
*validate()<br />
*poll()<br />
<br />
Определяются, соответственно, в дочерних классах</div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_payment_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8F_emarket&diff=7663
Класс payment модуля emarket
2014-04-23T14:51:28Z
<p>Williwaw: Новая страница: «=Класс payment= == Описание == Класс является абстрактным - базовый класс для способов оплаты. К…»</p>
<hr />
<div>=Класс payment=<br />
<br />
== Описание ==<br />
<br />
Класс является абстрактным - базовый класс для способов оплаты. Классами наследниками являются классы, представляющие типы способов оплаты - курьеру при получении, платежная квитанция и т.д.<br />
Исходный код класса находится в файле classes\modules\emarket\classes\payment\payment.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== getName() ===<br />
<br />
Метод <span style="font-weight:bold">getName()</span> получает название скидки<br />
<br />
<p>'''Параметры:''' </p><br />
отсутсвуют<br />
<p>'''Результат:'''String название скидки</p><br />
<br/><br />
<br />
=== setName() ===<br />
<br />
Метод <span style="font-weight:bold">setName()</span> изменяет название скидки<br />
<p>'''Параметры:''' </p> <br />
String<span style="font-weight:bold"> $name</span>:<br />
новое название скидки<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== getDiscountRules() ===<br />
<br />
Метод <span style="font-weight:bold">getDiscountRules()</span> получает список правил скидки<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:'''array список правил скидки (массив объектов класса discountRule)</p><br />
<br/><br />
<br />
=== appendDiscountRule()===<br />
<br />
Метод <span style="font-weight:bold">appendDiscountRule()</span> добавляет правило скидки<br />
<br />
<p>'''Параметры:''' </p> <br />
discountRule<span style="font-weight:bold"> $discountRule</span>:<br />
правило скидки<br />
<p>'''Результат:'''</p><br />
<br/><br />
<br />
=== getDiscountModificator()===<br />
<br />
Метод <span style="font-weight:bold">getDiscountModificator()</span> получает модификатор цены скидки<br />
<p>'''Параметры:''' </p><br />
отсутствуют<br />
<p>'''Результат:''' объект класса discountModificator - модификатор цены</p><br />
<br/><br />
<br />
=== setDiscountModificator() ===<br />
<br />
Метод <span style="font-weight:bold">setDiscountModificator()</span> устанавливает модификатор цены скидки<br />
<p>'''Параметры:''' </p> <br />
discountModificator<span style="font-weight:bold"> $discountModificator</span>:<br />
модификатор цены скидки<br />
<p>'''Результат:''' </p><br />
<br/><br />
<br />
=== recalcPrice() ===<br />
<br />
Метод <span style="font-weight:bold">recalcPrice()</span> выполняет пересчет цены $price<br />
<p>'''Параметры:''' </p> <br />
Float<span style="font-weight:bold"> $price</span>:<br />
цена<br />
<p>'''Результат:''' Float пересчитанная цена с учетом скидки</p><br />
<br/><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает экземпляр скидки по ее id<br />
<p>'''Параметры:''' </p> <br />
Integer<span style="font-weight:bold"> $discountId</span>:<br />
id скидки<br />
<p>'''Результат:'''discount объект скидки, экземпляр класса-потомка discount </p><br />
<br/><br />
<br />
=== add() ===<br />
<br />
Метод <span style="font-weight:bold">add()</span> создает новую скидку<br />
<p>'''Параметры:''' </p> <br />
String<span style="font-weight:bold"> $discountName</span>:<br />
название скидки<br/> <br />
Integer<span style="font-weight:bold"> $discountTypeId</span>:<br />
тип скидки<br />
<p>'''Результат:'''discount скидка </p><br />
<br/><br />
<br />
=== getTypeId() ===<br />
<br />
Метод <span style="font-weight:bold">getTypeId()</span> получает id типа скидки по ее идентификатору<br />
<p>'''Параметры:''' </p> <br />
String<span style="font-weight:bold"> $discountCode</span>:<br />
строковой идентификатор типа скидки<br />
<p>'''Результат:''' Integer id типа скидки или false, если тип получить не удалось</p><br />
<br/><br />
<br />
=== init() ===<br />
<br />
Метод <span style="font-weight:bold">init()</span> инициализирует систему скидок<br />
<p>'''Параметры:''' </p> <br />
отсутствуют<br />
<p>'''Результат:''' </p></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA:Williwaw&diff=7662
Участник:Williwaw
2014-04-23T14:41:08Z
<p>Williwaw: /* Апрель: */</p>
<hr />
<div>== Апрель: ==<br />
<br />
<br />
<ul><br />
<li>[[Класс payment модуля emarket ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountRule и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса discount модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discountModificator и его дочерние классы (модуль emarket) ]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Дочерние классы класса delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс discount модуля emarket]]</li><br />
</ul><br />
<br />
== Март: ==<br />
<br />
<ul><br />
<li>[[Класс delivery модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Кастомизация макроса content redirect()]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс optionedOrderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс orderItem модуля emarket]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс order модуля emarket]]</li><br />
</ul><br />
<br />
== Февраль: ==<br />
<br />
<br />
<ul><br />
<li>[[Режим or-mode в selector]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Класс customer модуля emarket]]</li><br />
</ul><br />
<br />
<br />
<br />
== Январь: ==<br />
<br />
<br />
<ul><br />
<li>[[Опционные свойства в виде выпадающих списков с сохранением добавления товара в корзину без перезагрузки(demodizzy)]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Выбор группы пользователем из выпадающего списка при регистрации]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Смена адреса для сообщений формы обратной связи в зависимости от значения поля]]</li><br />
</ul><br />
<br />
<br />
== Декабрь: ==<br />
<br />
<ul><br />
<li>[[Использование selector в режиме or-mode для выборки по опционному свойству.]]</li><br />
</ul><br />
<br />
== Октябрь: ==<br />
<br />
<ul><br />
<li>[[Автоматическое формирование даты при создании страницы на примере работы с каталогом.]]</li><br />
</ul><br />
<br />
<br />
== Актуализовано за июнь: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
#добавлены категории и плашка 2.9<br />
</ul><br />
<br />
<br />
== Июль: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод вместо объектов каталога раздела, в котором он содержится в результатах поиска (tpl).]]</li><br />
</ul><br />
<br />
<ul><br />
<li>[[Вывод своего опроса на каждой странице новости (xslt).]]</li><br />
</ul><br />
<br />
== Июнь: ==<br />
<br />
<ul><br />
<li>[[Вывод зачеркнутой старой цены рядом с ценой по скидке(xslt).]]</li><br />
</ul><br />
<br />
== Май: ==<br />
<br />
<ul><br />
<li>[[Вариант_создания_шаблона_письма-_уведомления_о_заказе_для_мультиязычного_сайта(xslt).]]</li><br />
</ul></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_discountRule_%D0%B8_%D0%B5%D0%B3%D0%BE_%D0%B4%D0%BE%D1%87%D0%B5%D1%80%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B_(%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_emarket)&diff=7643
Класс discountRule и его дочерние классы (модуль emarket)
2014-04-21T14:12:05Z
<p>Williwaw: </p>
<hr />
<div>=Класс discountRule и его дочерние классы=<br />
<br />
== Описание ==<br />
<br />
Класс является абстрактным - базовый класс для правил скидок. Классами наследниками являются классы, представляющие типы правил:<br />
<br />
*На определенные товары<br />
*На временной промежуток<br />
*На сумму покупок пользователя<br />
*На группу пользователей<br />
*На пользователей<br />
*На связанные товары<br />
*На сумму заказа<br />
<br />
Исходный код класса находится в файле classes\modules\emarket\classes\discount\discountRule.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== create() ===<br />
<br />
Метод <span style="font-weight:bold">create()</span> создает объект правила скидки нужного типа(класса)<br />
<br />
<p>'''Параметры:''' </p> <br />
discount<span style="font-weight:bold"> $discount</span>:<br />
объект представляющий собой скидку<br />
umiObject<span style="font-weight:bold"> $ruleTypeObject</span>:<br />
объект представляющий тип правила<br />
<p>'''Результат:''' объект правило скидки нужного типа</p><br />
<br/><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает объект скидки<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $modObjectId</span>:<br />
идентификатор объекта модификатора скидки<br />
discount<span style="font-weight:bold"> $discount</span>:<br />
объект представляющий собой скидку<br />
<p>'''Результат:''' объект правило скидки нужного типа</p><br />
<br/><br />
<br />
=== getList() ===<br />
<br />
Метод <span style="font-weight:bold">getList()</span> получает список доступных правил скидки<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $discountTypeId=false</span>:<br />
идентификатор типа скидки<br />
<p>'''Результат:'''array список правил</p><br />
<br/><br />
<br />
== Интерфейсы ==<br />
<br />
Здесь также описаны два интерфейса:<br />
<br />
*orderDiscountRule, в котором описан метод validateOrder()<br />
*itemDiscountRule, в котором описан validateItem()<br />
<br />
<br />
== Дочерние классы ==<br />
<br />
Стандартно у класса discountRule имеются следующие дочерние классы:<br />
<br />
*usersDiscountRule<br />
*userGroupsDiscountRule<br />
*relatedItemsDiscountRule<br />
*orderPriceDiscountRule<br />
*itemsDiscountRule<br />
*dateRangeDiscountRule<br />
*allOrdersPricesDiscountRule<br />
<br />
<br />
Каждый из дочерних классов реализует либо оба вышеуказанных интерфейса, либо один из них:<br />
<br />
<table border=1><br />
<tr><br />
<td><br />
Интерфейсы/классы<br />
</td><br />
<td><br />
usersDiscountRule<br />
</td><br />
<td><br />
userGroupsDiscountRule<br />
</td><br />
<td><br />
relatedItemsDiscountRule<br />
</td><br />
<td><br />
orderPriceDiscountRule<br />
</td><br />
<td><br />
itemsDiscountRule<br />
</td><br />
<td><br />
dateRangeDiscountRule<br />
</td><br />
<td><br />
allOrdersPricesDiscountRule<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
orderDiscountRule<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
itemDiscountRule<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
</table><br />
<br />
В дочерних классах могут быть определены, соответственно - validateOrder(),validateItem(), оба или один из них.<br />
Также, в некоторых классах имеется метод validate()<br />
<br />
<table border=1><br />
<tr><br />
<td><br />
Методы/классы<br />
</td><br />
<td><br />
usersDiscountRule<br />
</td><br />
<td><br />
userGroupsDiscountRule<br />
</td><br />
<td><br />
relatedItemsDiscountRule<br />
</td><br />
<td><br />
orderPriceDiscountRule<br />
</td><br />
<td><br />
itemsDiscountRule<br />
</td><br />
<td><br />
dateRangeDiscountRule<br />
</td><br />
<td><br />
allOrdersPricesDiscountRule<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
validateItem()<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
validateOrder()<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
validate()<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
</tr><br />
</table><br />
<br />
=== validate()===<br />
<br />
<br />
Метод <span style="font-weight:bold">validate()</span> проверяет применимо ли данное правило к заказу или товару в каталоге.<br />
Он используется в тех классах, в которых описаны оба метода - validateOrder() и validateItem(), и просто вызывается внутри них<br />
<br />
<p>'''Параметры:''' </p> <br />
отсутсвтвуют<br />
<p>'''Результат:''' boolean true|false</p><br />
<br />
<br />
=== validateOrder()===<br />
<br />
<br />
Метод <span style="font-weight:bold">validateOrder()</span> проверяет применимо ли данное правило к заказу.<br />
<br />
<p>'''Параметры:''' </p> <br />
order<span style="font-weight:bold"> $order</span>:<br />
объект представляющий заказ<br />
<p>'''Результат:''' boolean true|false</p><br />
<br />
<br />
=== validateItem()===<br />
<br />
<br />
Метод <span style="font-weight:bold">validateItem()</span> проверяет применимо ли данное правило к товару в каталоге.<br />
<br />
<p>'''Параметры:''' </p> <br />
iUmiHierarchyElement<span style="font-weight:bold"> $element</span>:<br />
страница товара в каталоге<br />
<p>'''Результат:''' boolean true|false</p></div>
Williwaw
https://wiki.umisoft.ru/index.php?title=%D0%9A%D0%BB%D0%B0%D1%81%D1%81_discountRule_%D0%B8_%D0%B5%D0%B3%D0%BE_%D0%B4%D0%BE%D1%87%D0%B5%D1%80%D0%BD%D0%B8%D0%B5_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D1%8B_(%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_emarket)&diff=7642
Класс discountRule и его дочерние классы (модуль emarket)
2014-04-21T14:03:07Z
<p>Williwaw: </p>
<hr />
<div>=Класс discountRule и его дочерние классы=<br />
<br />
== Описание ==<br />
<br />
Класс является абстрактным - базовый класс для правил скидок. Классами наследниками являются классы, представляющие типы правил:<br />
<br />
*На определенные товары<br />
*На временной промежуток<br />
*На сумму покупок пользователя<br />
*На группу пользователей<br />
*На пользователей<br />
*На связанные товары<br />
*На сумму заказа<br />
<br />
Исходный код класса находится в файле classes\modules\emarket\classes\discount\discountRule.php<br />
<br />
<br />
== Методы ==<br />
<br />
=== create() ===<br />
<br />
Метод <span style="font-weight:bold">create()</span> создает объект правила скидки нужного типа(класса)<br />
<br />
<p>'''Параметры:''' </p> <br />
discount<span style="font-weight:bold"> $discount</span>:<br />
объект представляющий собой скидку<br />
umiObject<span style="font-weight:bold"> $ruleTypeObject</span>:<br />
объект представляющий тип правила<br />
<p>'''Результат:''' объект правило скидки нужного типа</p><br />
<br/><br />
<br />
=== get() ===<br />
<br />
Метод <span style="font-weight:bold">get()</span> получает объект скидки<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $modObjectId</span>:<br />
идентификатор объекта модификатора скидки<br />
discount<span style="font-weight:bold"> $discount</span>:<br />
объект представляющий собой скидку<br />
<p>'''Результат:''' объект правило скидки нужного типа</p><br />
<br/><br />
<br />
=== getList() ===<br />
<br />
Метод <span style="font-weight:bold">getList()</span> получает список доступных правил скидки<br />
<p>'''Параметры:''' </p> <br />
int<span style="font-weight:bold"> $discountTypeId=false</span>:<br />
идентификатор типа скидки<br />
<p>'''Результат:'''array список правил</p><br />
<br/><br />
<br />
== Интерфейсы ==<br />
<br />
Здесь также описаны два интерфейса:<br />
<br />
*orderDiscountRule, в котором описан метод validateOrder()<br />
*itemDiscountRule, в котором описан validateItem()<br />
<br />
<br />
== Дочерние классы ==<br />
<br />
Стандартно у класса discountRule имеются следующие дочерние классы:<br />
<br />
*usersDiscountRule<br />
*userGroupsDiscountRule<br />
*relatedItemsDiscountRule<br />
*orderPriceDiscountRule<br />
*itemsDiscountRule<br />
*dateRangeDiscountRule<br />
*allOrdersPricesDiscountRule<br />
<br />
<br />
Каждый из дочерних классов реализует либо оба вышеуказанных интерфейса, либо один из них:<br />
<br />
<table border=1><br />
<tr><br />
<td><br />
Интерфейсы/классы<br />
</td><br />
<td><br />
usersDiscountRule<br />
</td><br />
<td><br />
userGroupsDiscountRule<br />
</td><br />
<td><br />
relatedItemsDiscountRule<br />
</td><br />
<td><br />
orderPriceDiscountRule<br />
</td><br />
<td><br />
itemsDiscountRule<br />
</td><br />
<td><br />
dateRangeDiscountRule<br />
</td><br />
<td><br />
allOrdersPricesDiscountRule<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
orderDiscountRule<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
itemDiscountRule<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
</table><br />
<br />
В дочерних классах могут быть определены, соответственно - validateOrder(),validateItem(), оба или один из них.<br />
Также, в некоторых классах имеется метод validate()<br />
<br />
<table border=1><br />
<tr><br />
<td><br />
Методы/классы<br />
</td><br />
<td><br />
usersDiscountRule<br />
</td><br />
<td><br />
userGroupsDiscountRule<br />
</td><br />
<td><br />
relatedItemsDiscountRule<br />
</td><br />
<td><br />
orderPriceDiscountRule<br />
</td><br />
<td><br />
itemsDiscountRule<br />
</td><br />
<td><br />
dateRangeDiscountRule<br />
</td><br />
<td><br />
allOrdersPricesDiscountRule<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
validateItem()<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
validateOrder()<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
</tr><br />
<tr><br />
<td><br />
validate()<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
<td align="center"><br />
+<br />
</td><br />
<td align="center"><br />
-<br />
</td><br />
</tr><br />
</table><br />
<br />
=== validate()===<br />
<br />
<br />
Метод <span style="font-weight:bold">validate()</span> проверяет применимо ли данное правило к заказу или товару в каталоге.<br />
Он используется в тех классах, в которых описаны оба метода - validateOrder() и validateItem(), и просто вызывается внутри них<br />
<br />
<p>'''Параметры:''' </p> <br />
отсутсвтвуют<br />
<p>'''Результат:''' boolean true|false</p></div>
Williwaw