Jump to content

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


Recommended Posts

Действительно, я перепутал с таким же параметров но в выборке вариантов.

Тогда почему автор не учел это везде где происходит процедура get_products?

Link to post
Share on other sites
  • Replies 131
  • Created
  • Last Reply

Top Posters In This Topic

Действительно, я перепутал с таким же параметров но в выборке вариантов.

Тогда почему автор не учел это везде где происходит процедура get_products?

 

Ответ напрашивается сам собой: потому что когда автор писал свой код, он не знал, что через несколько лет Вы что-то перепутаете...

Link to post
Share on other sites

Ответ напрашивается сам собой: потому что когда автор писал свой код, он не знал, что через несколько лет Вы что-то перепутаете...

Корс ты всегда такой идиот или так чисто случай?
Link to post
Share on other sites

Добрый день. Вы меня простите, что пишу в эту тему. Вот такой вопрос:

стоит симпла 2.1.0, паленая. Сейчас Купилилицензию. Как теперь правильно обновиться? Заранее спасибо.

Link to post
Share on other sites

Если нет доработок - то как обычно, а потом лицензию в админку вставить.

а если есть, то как обычно, потом лицензию в админку, потом накатить сверху все доработки. Так? 

Link to post
Share on other sites

Да, так, но лучше бекапы сперва сделать файлов и базы.

ну надо быть идиотом, чтобы так не делать=))) бэкап снимать всегда надо, и лучше систематически, чтобы не забывать, хотя хостинги обычно сами делают

Link to post
Share on other sites
  • 3 weeks later...

Смотрите демо сайт, там не работает.

И вообще уже пока бы привыкнуть к тому, что этот функционал то работает, то не работает.

В настоящий момент побеждает Яндекс...

Link to post
Share on other sites

На моем сайте перестал работать!

Демо-версию даже не смотрел.

Похоже что все таки Яндекс блочит.

Link to post
Share on other sites
  • 4 weeks later...

Скажите, а кто нибудь разобрался как передать скалярные параметры, а не массив?

 

Вот пытаюсь динамически получать вариант товара, зная его id:

{api module=variants method=get_variant var=variant id=$id} 

и логично, что не получаю, т.к. получается

get_variant(array('id' => $id));

Не могу понять, как уйти от передачи массива в сторону передачи скалярной величины.

Edited by Middy
Link to post
Share on other sites

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

Link to post
Share on other sites

Скажите, а кто нибудь разобрался как передать скалярные параметры, а не массив?

 

Вот пытаюсь динамически получать вариант товара, зная его id:

{api module=variants method=get_variant var=variant id=$id} 

и логично, что не получаю, т.к. получается

get_variant(array('id' => $id));

Не могу понять, как уйти от передачи массива в сторону передачи скалярной величины.

 

я за неимением времени просто переделал функцию для приема массива. я так понимаю скалярно не получится.

Link to post
Share on other sites

Очень интересный вопрос.

В начале этой темы в описании изменений новой версии сказано, что добавлена " 6) Возможность вызывать любые методы api из шаблона".

Оказывается, это совсем не так. Добавлена возможность вызывать вовсе не ЛЮБЫЕ методы, а лишь некоторые. А именно те, которые не имеют параметров или имеют ОДИН параметр, и этот параметр - обязательно массив. Те, у которых больше одного параметра, увы, нельзя. Те, у которые один параметр, но не массив, тоже нельзя.  

Таким образом, имеем очередную серьезную недоработку автора. 

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

Link to post
Share on other sites

Вызывать функцию с одним параметром, в том числе скалярным, у меня получилось так:

В api/Design.php   добавить

		if($params['single_parameter'])
			$params=$params['single_parameter'];

перед

		$res = $this->$module->$method($params);

После этого вызов можно делать так:

{api module=variants method=get_variant var=variant single_parameter=7}
 

Link to post
Share on other sites

Может в админке раскраску стро сделать через CSS? так быстрее бы грузилась страница с товарами.

Да и вообще весь JS можно было бы в 1 файл засунуть. А то как-то много кода.

 

Ну это уже больше придирки

Link to post
Share on other sites

я за неимением времени просто переделал функцию для приема массива. я так понимаю скалярно не получится.

 

Поступил так же. Теперь у меня метод get_variant($id) начинается со строк

if (is_array($id))
    $id = strval($id['id'][0]);

Так хочется иногда услышать комментарии автора.

Edited by Middy
Link to post
Share on other sites

Вызывать функцию с одним параметром, в том числе скалярным, у меня получилось так:

В api/Design.php   добавить

		if($params['single_parameter'])
			$params=$params['single_parameter'];

перед
		$res = $this->$module->$method($params);
После этого вызов можно делать так:

{api module=variants method=get_variant var=variant single_parameter=7}

 

 

Наконец то!

Корс ты заслужил от меня благодарность и думаю еще много кто оценит твой скромный вклад в сообщество.

Link to post
Share on other sites

Поступил так же. Теперь у меня метод get_variant($id) начинается со строк

if (is_array($id))
    $id = strval($id['id'][0]);

Так хочется иногда услышать комментарии автора.

 

Хоть я и не автор, но позволю себе дать комментарий.

 

Метод, видимо, рабочий и для Ваших конкретных целей вполне годится.

 

1. А теперь взглянем на проблему пошире. В примере переделана функция get_variant($id). А если надо работать с другой подобной функцией, например, get_product($id), то и ее аналогично  переделывать?  А в api найдется еще десяток или больше аналогичных функций - их тоже переделывать? Пойдет дублирование одинакового кода, а это всегда повод задуматься над рациональностью. Выходит, метод довольно затратный и неудобный.

 

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

 

В посте #40 написано более краткое и более универсальное решение. 

Link to post
Share on other sites

Хоть я и не автор, но позволю себе дать комментарий.

 

Метод, видимо, рабочий и для Ваших конкретных целей вполне годится.

 

1. А теперь взглянем на проблему пошире. В примере переделана функция get_variant($id). А если надо работать с другой подобной функцией, например, get_product($id), то и ее аналогично  переделывать?  А в api найдется еще десяток или больше аналогичных функций - их тоже переделывать? Пойдет дублирование одинакового кода, а это всегда повод задуматься над рациональностью. Выходит, метод довольно затратный и неудобный.

 

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

 

В посте #40 написано более краткое и более универсальное решение. 

 

Согласен по всем пунктам. Более того, уже в своём коде убрал свой костыль и поставил Ваш :)

Link to post
Share on other sites
  • 2 weeks later...

По поводу плагина API, хорошо бы сделать так чтобы объекты можно было присоединять.

К примеру для вывода товаров на текущий момент нельзя присоединить фотографии товара и его варианты, пока что толку с этого плагина почти никакого.

Link to post
Share on other sites
×
×
  • Create New...