Перейти к содержимому


Фото
- - - - -

Небольшое обновление Simpla 2.3.7 от 21 апреля 2015


  • Закрыто Тема закрыта
95 ответов в теме

#1 pikusov

pikusov

    Автор Simpla CMS

  • Администратор
  • 946 сообщений

Опубликовано 21.04.2015 - 21:53

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) Исправлена ошибка добавления товаров к заказу


#2 Noxter

Noxter
  • Фрилансер
  • 5 765 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 21.04.2015 - 21:56

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...dlya-simpla-cms только вот мое решение более упрощенное.

#3 Noxter

Noxter
  • Фрилансер
  • 5 765 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 21.04.2015 - 22:00

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}&nbsp;{$currency->sign})
			{elseif $cart->total_price >= $delivery->free_from}
				(бесплатно)
			{/if}
			</label>
			</h3>
			<div class="description">
			{$delivery->description}
			</div>
	</li>
	{/foreach}
</ul>
{/if}
в файле cart.tpl.

#4 Noxter

Noxter
  • Фрилансер
  • 5 765 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 21.04.2015 - 22:19

Небольшое обновление Simpla 2.3.7 от 21 апреля 2014

Опечатка, сегодня 21 апреля 2015.

#5 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 21.04.2015 - 22:20

Тем не менее в новой версии в шаблонах почему то так не задействовано и прописано как и прежде:

{* Доставка *}
{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}&nbsp;{$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 выбраны?



#6 Noxter

Noxter
  • Фрилансер
  • 5 765 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 21.04.2015 - 22:29

подскажите, а зачем использовать еще один вызов, если $deliveries уже у CartView выбраны?

Это Вы не у меня спрашивайте, а у автора Simpla CMS.
Я бы убрал вызов из view/CartView.php и использовал бы глобальную функцию в шаблоне:
{api module=delivery method=get_deliveries var=deliveries enabled=1}


#7 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 21.04.2015 - 22:33

Это Вы не у меня спрашивайте, а у автора Simpla CMS.
Я бы убрал вызов из view/CartView.php и использовал бы глобальную функцию в шаблоне:

{api module=delivery method=get_deliveries var=deliveries enabled=1}

если можна, объясните, чем этот метод лучше или быстрее того, что используется в CartView.php, просто интересно, если действительно есть разница, то буду пользоваться таким. получается так можно половину всего изменить, даже больше



#8 Noxter

Noxter
  • Фрилансер
  • 5 765 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 21.04.2015 - 22:38

если можна, объясните, чем этот метод лучше или быстрее того, что используется в CartView.php, просто интересно, если действительно есть разница, то буду пользоваться таким. получается так можно половину всего изменить, даже больше

Этот метод предназначен для людей которые не сильны в PHP и не сильны в иерархии псевдо MVC симплы.

#9 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 21.04.2015 - 22:46

Этот метод предназначен для людей которые не сильны в PHP и не сильны в иерархии псевдо MVC симплы.

да но, если не ошибаюсь, поправьте конечно если что, в таком случае лучше вообще убрать дублирующие методы из всех view, т.к. получитсья что все запросы в базу будут дублироваться, что повлияет на скорость работы сайта. насколько я понял таким способом можно делать и фильтрацию товаров например, передавая в {api module=products method=get_products var=products ...} параметры фильтра.



#10 Noxter

Noxter
  • Фрилансер
  • 5 765 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 21.04.2015 - 22:53

Каким образом Вы хотите передавать параметры фильтра в функцию {api module=products method=get_products var=products ...} которая записана в шаблоне?

#11 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 21.04.2015 - 23:53

Каким образом Вы хотите передавать параметры фильтра в функцию {api module=products method=get_products var=products ...} которая записана в шаблоне?

в ProductsView принимаем значение например бренда из формы или что-то другое что нам нужно, категорию, и передаем его обратно в шаблон, дальше вызывается эта функция с уже переданым параметром который нам нужен.


Изменено: mishanya, 21.04.2015 - 23:57


#12 Noxter

Noxter
  • Фрилансер
  • 5 765 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 22.04.2015 - 00:06

в ProductsView принимаем значение например бренда из формы или что-то другое что нам нужно, категорию, и передаем его обратно в шаблон, дальше вызывается эта функция с уже переданым параметром который нам нужен.

Мне интересно как же Вы такое реализуете.
Честно сказать я ни то что не знаю как подобное сделать, а считаю подобные танцы с бубном крайне топорны как в подходе так и в реализации идеи.

#13 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 22.04.2015 - 00:20

Мне интересно как же Вы такое реализуете.
Честно сказать я ни то что не знаю как подобное сделать, а считаю подобные танцы с бубном крайне топорны как в подходе так и в реализации идеи.

возможно я не прав, кстати, да, такая идея это немного извращение.

 

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}

таким образом не будет работать разве?



#14 Noxter

Noxter
  • Фрилансер
  • 5 765 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 22.04.2015 - 00:27

Это одним просто секс какой то)
{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 свойства, а "телефон" параметр (значение) свойства.
Я уже не говорю о фильтрации по цене и прочих других фильтрациях.

#15 mishanya

mishanya
  • Фрилансер
  • 2 409 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 22.04.2015 - 00:45

Это одним просто секс какой то)

{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 свойства, а "телефон" параметр (значение) свойства.
Я уже не говорю о фильтрации по цене и прочих других фильтрациях.

 

поэтому я и пишу что походу можно, но не стоит, это из разряда интересно что выйдет с этого). но мороки от этого больше чем пользы. насчет фильтрации по цене - делаем мин-макс и передаем так-же как бренд и категорию). 



#16 osto

osto
  • Пользователь
  • 16 сообщений
  • Программирование
  • Версия CMS:2.x

Опубликовано 25.04.2015 - 15:35

парсер товаров когда-нибудь почините???



#17 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 26.04.2015 - 08:45

да но, если не ошибаюсь, поправьте конечно если что, в таком случае лучше вообще убрать дублирующие методы из всех view, т.к. получитсья что все запросы в базу будут дублироваться, что повлияет на скорость работы сайта. насколько я понял таким способом можно делать и фильтрацию товаров например, передавая в {api module=products method=get_products var=products ...} параметры фильтра.

 
С новым функционалом {api ...действительно в принципе можно заменить вызовы API  из файлов view на вызовы из шаблона.
Другой вопрос, будет ли это рационально и экономно. Сейчас во view в одном месте формируются данные для шаблона, а если их перенести в шаблон, то будет много вызовов из разных мест.  А если при изменении шаблона новичок накопирует эти вызовы в разные места, то и может получиться дублирование запросов в базу.
А в остальном разницы почти никакой.
Передавать параметры, в том числе выбранные опции свойств - сложностей особых нет...
 
А идея вообще заманчивая - изменил только в шаблоне - и все работает. Но для этого надо еще API дорабатывать.  Например, текущее  {api ...} не позволяет корректно работать, например, с методом  get_page, так как у него принимаемый параметр скалярный, а не массив...



#18 osben

osben
  • Фрилансер
  • 774 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:UA, RU

Опубликовано 28.04.2015 - 00:30

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) Исправлена ошибка добавления товаров к заказу

 

Простите за наглость, почему в changelog.txt не указанны мои pull requests. Как то обидно что ли, одного человека добавили а мои нет, хотя я вижу что некоторая часть была включена.  
Простой человеческий интерес. 



#19 osben

osben
  • Фрилансер
  • 774 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:UA, RU

Опубликовано 28.04.2015 - 00:34

ой до боли мне знакома идея сама универсального плагина, как давно ето было  ;)



#20 ABSORBER

ABSORBER
  • Модератор
  • 383 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Хабаровск

Опубликовано 28.04.2015 - 18:56

Простите за наглость, почему в changelog.txt не указанны мои pull requests. Как то обидно что ли, одного человека добавили а мои нет, хотя я вижу что некоторая часть была включена.  
Простой человеческий интерес. 

Видел на github твои реквесты.

 

Жаль у этого движка нет сообщества, что бы разрабатывало его несколько человек, а не один.

Может быть он вырос в более мощный инструмент из коробки.






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых