pikusov Posted April 21, 2015 Report Share Posted April 21, 2015 1) Исправлена работа тега {debug}Ранее debug зацикливался при выводе дерева категорий. 2) Обновлен парсер товаров get_info.php 3) Добавлен платежный модуль DeltaKey 4) Новая каптчаИз-за частых жалоб на спам пришлось усложнить каптчу. 5) Исправлена ошибка с возможностью скачивания цифровых файлов, которых нет в оплаченном заказе 6) Возможность вызывать любые методы api из шаблона Пример: {api module=delivery method=get_deliveries var=deliveries enabled=1} {foreach $deliveries as $d} {$d->name} {/foreach} module: название модуля (config, settings, design, products, variants, categories, brands, features, money, pages, blog, cart, image, delivery, payment, orders, users, coupons, comments, feedbacks, notify, managers); method: название метода соответствующего модуля var: имя переменной, в которой будет сохранен результат вызова далее идут параметры, которые нужно передать Приведенный пример аналогичен добавлению в обработчик шаблона такого кода: $results = $this->deliveries->get_deliveries(array('enabled'=>1)) $this->design->assign('deliveries', $results); 7) Исправлена ошибка добавления товаров к заказуhttp://forum.simplacms.ru/topic/9579-подбор-товаров-к-заказу-в-админке/ Link to post Share on other sites
Noxter Posted April 21, 2015 Report Share Posted April 21, 2015 5) Возможность вызывать любые методы api из шаблона Пример: {api module=delivery method=get_deliveries var=deliveries enabled=1} {foreach $deliveries as $d} {$d->name} {/foreach} module: название модуля (config, settings, design, products, variants, categories, brands, features, money, pages, blog, cart, image, delivery, payment, orders, users, coupons, comments, feedbacks, notify, managers); method: название метода соответствующего модуля var: имя переменной, в которой будет сохранен результат вызова далее идут параметры, которые нужно передать Приведенный пример аналогичен добавлению в обработчик шаблона такого кода: $results = $this->deliveries->get_deliveries(array('enabled'=>1)) $this->design->assign('deliveries', $results); По сути то же самое что и http://simpla-addons.org/blog/modules/universalnyj-plagin-dlya-simpla-cms только вот мое решение более упрощенное. Link to post Share on other sites
Noxter Posted April 21, 2015 Report Share Posted April 21, 2015 6) Возможность вызывать любые методы api из шаблонаТем не менее в новой версии в шаблонах почему то так не задействовано и прописано как и прежде: {* Доставка *} {if $deliveries} <h2>Выберите способ доставки:</h2> <ul id="deliveries"> {foreach $deliveries as $delivery} <li> <div class="checkbox"> <input type="radio" name="delivery_id" value="{$delivery->id}" {if $delivery_id==$delivery->id}checked{elseif $delivery@first}checked{/if} id="deliveries_{$delivery->id}"> </div> <h3> <label for="deliveries_{$delivery->id}"> {$delivery->name} {if $cart->total_price < $delivery->free_from && $delivery->price>0} ({$delivery->price|convert} {$currency->sign}) {elseif $cart->total_price >= $delivery->free_from} (бесплатно) {/if} </label> </h3> <div class="description"> {$delivery->description} </div> </li> {/foreach} </ul> {/if} в файле cart.tpl. Link to post Share on other sites
Noxter Posted April 21, 2015 Report Share Posted April 21, 2015 Небольшое обновление Simpla 2.3.7 от 21 апреля 2014Опечатка, сегодня 21 апреля 2015. Link to post Share on other sites
mishanya Posted April 21, 2015 Report Share Posted April 21, 2015 Тем не менее в новой версии в шаблонах почему то так не задействовано и прописано как и прежде: {* Доставка *} {if $deliveries} <h2>Выберите способ доставки:</h2> <ul id="deliveries"> {foreach $deliveries as $delivery} <li> <div class="checkbox"> <input type="radio" name="delivery_id" value="{$delivery->id}" {if $delivery_id==$delivery->id}checked{elseif $delivery@first}checked{/if} id="deliveries_{$delivery->id}"> </div> <h3> <label for="deliveries_{$delivery->id}"> {$delivery->name} {if $cart->total_price < $delivery->free_from && $delivery->price>0} ({$delivery->price|convert} {$currency->sign}) {elseif $cart->total_price >= $delivery->free_from} (бесплатно) {/if} </label> </h3> <div class="description"> {$delivery->description} </div> </li> {/foreach} </ul> {/if} в файле cart.tpl.подскажите, а зачем использовать еще один вызов, если $deliveries уже у CartView выбраны? Link to post Share on other sites
Noxter Posted April 21, 2015 Report Share Posted April 21, 2015 подскажите, а зачем использовать еще один вызов, если $deliveries уже у CartView выбраны?Это Вы не у меня спрашивайте, а у автора Simpla CMS.Я бы убрал вызов из view/CartView.php и использовал бы глобальную функцию в шаблоне: {api module=delivery method=get_deliveries var=deliveries enabled=1} Link to post Share on other sites
mishanya Posted April 21, 2015 Report Share Posted April 21, 2015 Это Вы не у меня спрашивайте, а у автора Simpla CMS.Я бы убрал вызов из view/CartView.php и использовал бы глобальную функцию в шаблоне: {api module=delivery method=get_deliveries var=deliveries enabled=1} если можна, объясните, чем этот метод лучше или быстрее того, что используется в CartView.php, просто интересно, если действительно есть разница, то буду пользоваться таким. получается так можно половину всего изменить, даже больше Link to post Share on other sites
Noxter Posted April 21, 2015 Report Share Posted April 21, 2015 если можна, объясните, чем этот метод лучше или быстрее того, что используется в CartView.php, просто интересно, если действительно есть разница, то буду пользоваться таким. получается так можно половину всего изменить, даже большеЭтот метод предназначен для людей которые не сильны в PHP и не сильны в иерархии псевдо MVC симплы. Link to post Share on other sites
mishanya Posted April 21, 2015 Report Share Posted April 21, 2015 Этот метод предназначен для людей которые не сильны в PHP и не сильны в иерархии псевдо MVC симплы.да но, если не ошибаюсь, поправьте конечно если что, в таком случае лучше вообще убрать дублирующие методы из всех view, т.к. получитсья что все запросы в базу будут дублироваться, что повлияет на скорость работы сайта. насколько я понял таким способом можно делать и фильтрацию товаров например, передавая в {api module=products method=get_products var=products ...} параметры фильтра. Link to post Share on other sites
Noxter Posted April 21, 2015 Report Share Posted April 21, 2015 Каким образом Вы хотите передавать параметры фильтра в функцию {api module=products method=get_products var=products ...} которая записана в шаблоне? Link to post Share on other sites
mishanya Posted April 21, 2015 Report Share Posted April 21, 2015 (edited) Каким образом Вы хотите передавать параметры фильтра в функцию {api module=products method=get_products var=products ...} которая записана в шаблоне?в ProductsView принимаем значение например бренда из формы или что-то другое что нам нужно, категорию, и передаем его обратно в шаблон, дальше вызывается эта функция с уже переданым параметром который нам нужен. Edited April 21, 2015 by mishanya Link to post Share on other sites
Noxter Posted April 21, 2015 Report Share Posted April 21, 2015 в ProductsView принимаем значение например бренда из формы или что-то другое что нам нужно, категорию, и передаем его обратно в шаблон, дальше вызывается эта функция с уже переданым параметром который нам нужен.Мне интересно как же Вы такое реализуете. Честно сказать я ни то что не знаю как подобное сделать, а считаю подобные танцы с бубном крайне топорны как в подходе так и в реализации идеи. Link to post Share on other sites
mishanya Posted April 21, 2015 Report Share Posted April 21, 2015 Мне интересно как же Вы такое реализуете.Честно сказать я ни то что не знаю как подобное сделать, а считаю подобные танцы с бубном крайне топорны как в подходе так и в реализации идеи.возможно я не прав, кстати, да, такая идея это немного извращение. 1. вот у нас есть форма с выбором бренда и например категории,2. на странице в шаблоне у нас написано {api module=products method=get_products var=products}3. жмем сабмит, вю принимает форму, и передает обратно в шаблон эти поля бренда и категории,4. дальше проверяем {if !$curr_brand && !$curr_category} {api module=products method=get_products var=products} {else} {api module=products method=get_products var=products category_id=$curr_category brand_id=$curr_brand} {/if}или {$filter = [ 'category_id' => $curr_category, 'brand_id' => $curr_brand, ]} {api module=products method=get_products var=products filter=$filter}таким образом не будет работать разве? Link to post Share on other sites
Noxter Posted April 21, 2015 Report Share Posted April 21, 2015 Это одним просто секс какой то) {api module=products method=get_products var=products category_id=$curr_category brand_id=$curr_brand} Ладно бренд и категория, ну а что Вы будете вписывать туда для опций, если для опций функция будет выглядеть примерно так: {api module=products method=get_products var=products 2=телефон} где "2" - ID свойства, а "телефон" параметр (значение) свойства.Я уже не говорю о фильтрации по цене и прочих других фильтрациях. Link to post Share on other sites
mishanya Posted April 21, 2015 Report Share Posted April 21, 2015 Это одним просто секс какой то) {api module=products method=get_products var=products category_id=$curr_category brand_id=$curr_brand} Ладно бренд и категория, ну а что Вы будете вписывать туда для опций, если для опций функция будет выглядеть примерно так: {api module=products method=get_products var=products 2=телефон} где "2" - ID свойства, а "телефон" параметр (значение) свойства.Я уже не говорю о фильтрации по цене и прочих других фильтрациях. поэтому я и пишу что походу можно, но не стоит, это из разряда интересно что выйдет с этого). но мороки от этого больше чем пользы. насчет фильтрации по цене - делаем мин-макс и передаем так-же как бренд и категорию). Link to post Share on other sites
osto Posted April 25, 2015 Report Share Posted April 25, 2015 парсер товаров когда-нибудь почините??? Link to post Share on other sites
Kors Posted April 26, 2015 Report Share Posted April 26, 2015 да но, если не ошибаюсь, поправьте конечно если что, в таком случае лучше вообще убрать дублирующие методы из всех view, т.к. получитсья что все запросы в базу будут дублироваться, что повлияет на скорость работы сайта. насколько я понял таким способом можно делать и фильтрацию товаров например, передавая в {api module=products method=get_products var=products ...} параметры фильтра. С новым функционалом {api ...} действительно в принципе можно заменить вызовы API из файлов view на вызовы из шаблона.Другой вопрос, будет ли это рационально и экономно. Сейчас во view в одном месте формируются данные для шаблона, а если их перенести в шаблон, то будет много вызовов из разных мест. А если при изменении шаблона новичок накопирует эти вызовы в разные места, то и может получиться дублирование запросов в базу.А в остальном разницы почти никакой.Передавать параметры, в том числе выбранные опции свойств - сложностей особых нет... А идея вообще заманчивая - изменил только в шаблоне - и все работает. Но для этого надо еще API дорабатывать. Например, текущее {api ...} не позволяет корректно работать, например, с методом get_page, так как у него принимаемый параметр скалярный, а не массив... Link to post Share on other sites
osben Posted April 27, 2015 Report Share Posted April 27, 2015 1) Исправлена работа тега {debug}Ранее debug зацикливался при выводе дерева категорий. 2) Обновлен парсер товаров get_info.php 3) Добавлен платежный модуль DeltaKey 4) Новая каптчаИз-за частых жалоб на спам пришлось усложнить каптчу. 5) Исправлена ошибка с возможностью скачивания цифровых файлов, которых нет в оплаченном заказе 6) Возможность вызывать любые методы api из шаблона Пример: {api module=delivery method=get_deliveries var=deliveries enabled=1} {foreach $deliveries as $d} {$d->name} {/foreach} module: название модуля (config, settings, design, products, variants, categories, brands, features, money, pages, blog, cart, image, delivery, payment, orders, users, coupons, comments, feedbacks, notify, managers); method: название метода соответствующего модуля var: имя переменной, в которой будет сохранен результат вызова далее идут параметры, которые нужно передать Приведенный пример аналогичен добавлению в обработчик шаблона такого кода: $results = $this->deliveries->get_deliveries(array('enabled'=>1)) $this->design->assign('deliveries', $results); 7) Исправлена ошибка добавления товаров к заказуhttp://forum.simplacms.ru/topic/9579-подбор-товаров-к-заказу-в-админке/ Простите за наглость, почему в changelog.txt не указанны мои pull requests. Как то обидно что ли, одного человека добавили а мои нет, хотя я вижу что некоторая часть была включена. Простой человеческий интерес. Link to post Share on other sites
osben Posted April 27, 2015 Report Share Posted April 27, 2015 ой до боли мне знакома идея сама универсального плагина, как давно ето было Link to post Share on other sites
ABSORBER Posted April 28, 2015 Report Share Posted April 28, 2015 Простите за наглость, почему в changelog.txt не указанны мои pull requests. Как то обидно что ли, одного человека добавили а мои нет, хотя я вижу что некоторая часть была включена. Простой человеческий интерес. Видел на github твои реквесты. Жаль у этого движка нет сообщества, что бы разрабатывало его несколько человек, а не один.Может быть он вырос в более мощный инструмент из коробки. Link to post Share on other sites
osben Posted April 28, 2015 Report Share Posted April 28, 2015 Видел на github твои реквесты. Жаль у этого движка нет сообщества, что бы разрабатывало его несколько человек, а не один.Может быть он вырос в более мощный инструмент из коробки.я и в коде их вижу, а в ченж логе нет. Link to post Share on other sites
ABSORBER Posted May 4, 2015 Report Share Posted May 4, 2015 Нашел парочку ошибок в brandsadmin.php и categoryadmin.phpдобавил pull request на гитхабе Link to post Share on other sites
Kors Posted May 4, 2015 Report Share Posted May 4, 2015 Видимо, исправлялись ошибки, когда можно было создать категорию или бренд без УРЛ и названия категории.Есть еще близкие ошибки:1. Если при импорте указать бренд как текст из нескольких пробелов, то создается как раз бренд без названия.2. Если при импорте указать категорию как текст из нескольких пробелов, то импорт прерывается с ошибкой... Link to post Share on other sites
Noxter Posted May 20, 2015 Report Share Posted May 20, 2015 Нашел незначительную ошибку.Файл view/ProductsView.php строка 112, код: foreach($this->products->get_products(array('id'=>$related_ids, 'in_stock'=>1, 'visible'=>1)) as $p) тут лишний параметр in_stock=>1, скорее всего машинально был прописан. Link to post Share on other sites
Kors Posted May 21, 2015 Report Share Posted May 21, 2015 Нашел незначительную ошибку.Файл view/ProductsView.php строка 112, код: foreach($this->products->get_products(array('id'=>$related_ids, 'in_stock'=>1, 'visible'=>1)) as $p) тут лишний параметр in_stock=>1, скорее всего машинально был прописан. 1. Нет такого кода в указанном файле, видимо, имеется в виду файл view/ProductView.php2. ИМХО, это совсем не ошибка, а так и задумано, чтобы показывать в связанных лишь те товары, которые реально имеются в наличии.3. Если указанный параметр убрать, то возможна такая ситуация: если у связанного товара все варианты отсутствуют, то этот связанный товар будет показываться без цены и с сообщением Нет в наличии. Это выглядит как будто сказать "Вот тебе детка, конфетка", предложив пустой фантик.4. Ситуация п.3 имеет место в списках товаров категории. Я бы сказал, скорее стоило и там добавить такой параметр, чтобы не показывать отсутствующие товары.5. Или даже ввести параметр в настройках - показывать или не показывать отсутствующие.6. Это было уже в версии 2.2.0. Поэтому, если считаете, что это ошибка, надо писать об этом в разделе общих ошибок, а не в теме конкретной версии... Link to post Share on other sites
Recommended Posts