pepelxD Опубликовано 9 мая, 2017 Жалоба Поделиться Опубликовано 9 мая, 2017 День добрый, подскажите документацию по симпле. В частности мне нужно аяксом получить объект продукта по его id. Для этого создал в корне темы пхп файл и унаследовал в нем класс Products, используя методget_products(array('id' => $_POST['id']))получаю объект продукта, но в нем отсутствуют кастомные свойства variant, images, features, variants......хотя если сделать var_dump($product) в product.tpl свойства все есть у объекта.Полазил по файлам, за вывод товаров отвечает класс ProductView, который наследуется от View не совсем конечно все понял еще и смарти никогда не испоьзовал...Так вот, объясните пожалуйста всю цепочку по которой в product.tpl у объекта $product все свойства присутствуют. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 9 мая, 2017 Жалоба Поделиться Опубликовано 9 мая, 2017 потому что они выбираються отдельно. в ProductView сначала выбирается товар.затем выбираются варианты (get_variants) и свойства (get_features) Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 9 мая, 2017 Жалоба Поделиться Опубликовано 9 мая, 2017 Примерно так: <?php require_once('api/Simpla.php'); $api = new Simpla(); $product_id=$api->request->get('$product_id', 'integer'); $product = $api->products->get_product(intval($product_id)); $variants = array(); foreach($api->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true)) as $v) $variants[$v->id] = $v; $product->variants = $variants; $product->variant = reset($variants); $product->images = $api->products->get_images(array('product_id'=>$product->id)); $product->image = reset($product->images); $product->features = $api->features->get_product_options(array('product_id'=>$product->id)); Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 9 мая, 2017 Автор Жалоба Поделиться Опубликовано 9 мая, 2017 Примерно так: <?php require_once('api/Simpla.php'); $api = new Simpla(); ........ Т.е. Наследоваться нужно от класса Simpla и уже в нем будут все методы для формирования объекта продукта со всеми свойствами? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 9 мая, 2017 Жалоба Поделиться Опубликовано 9 мая, 2017 Да, именно так Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 День добрый, подскажите документацию по симпле. В частности мне нужно аяксом получить объект продукта по его id. До Симплы добрались фронтенд-разрабы? Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 (изменено) Да, именно так а в ProductView идет наследование от класса View (который тоже наследуется от класса Simpla),правильно понимаю, что это просто дает ПРОФИТ для дизайна (смарти), а если нужны просто данные, то можно как в примере выше сразу от наследоваться от класса Simpla? Изменено 10 мая, 2017 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 Через View получаются настройки, валюты, юзер и т.д. Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 Т.е. Наследоваться нужно от класса Simpla и уже в нем будут все методы для формирования объекта продукта со всеми свойствами? Вместо такого вопроса лучше затратить пару минут и проверить самостоятельно. Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 10 мая, 2017 Автор Жалоба Поделиться Опубликовано 10 мая, 2017 До Симплы добрались фронтенд-разрабы?Да как сказать... приходиться, приходиться... Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 10 мая, 2017 Автор Жалоба Поделиться Опубликовано 10 мая, 2017 Ребят, а существуют в симпле системные переменные, типо путь к текущей теме, корень сайта и т.д.? Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 <?php require_once('api/Simpla.php'); $api = new Simpla(); print_r($api->config); print_r($api->settings); Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 10 мая, 2017 Автор Жалоба Поделиться Опубликовано 10 мая, 2017 (изменено) <?php require_once('api/Simpla.php'); $api = new Simpla(); print_r($api->config); print_r($api->settings);Ну да, все гениальное просто.А где можно почитать про поля variants и variant в объекте продукта, их различия и связь? Смотрю вроде как одинаковые поля у них...Да и в том коде что Вы привели выше они из одного массива копируются..... Изменено 10 мая, 2017 пользователем pepelxD Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 variant - это просто один из variants По умолчанию - первый. Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 Прочитать - вряд ли где.Можно догадаться:1. по названиям: variants - список (массив) вариантов, variant - один из элементов (первый).2. По коду: $product->variant = reset($variants); Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 Не всегда первый, если вызывать с параметром (например из yandex.php) - то может быть любой Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 Не всегда первый, если вызывать с параметром (например из yandex.php) - то может быть любой reset -- Установить внутренний указатель массива на его первый элементreset() перемещает внутренний указатель array к его первому элементу и возвращает значение первого элемента массива или FALSE если массив пуст.http://www.php.su/reset Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 Ну да, ну да...Прокомментируй мне вот этот код // Вариант по умолчанию if(($v_id = $this->request->get('variant', 'integer'))>0 && isset($variants[$v_id])) $product->variant = $variants[$v_id]; else $product->variant = reset($variants); Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 Комментарии можете найти, например, на http://www.php.su/Если Вы по вопросу 'первый или не первый', то Ваша правда, могут быть ситуации, когда не первый.Ибо очевидно, оператор присваивания позволяет программисту присвоить много чего - можно пятый вариант, а можно и двадцатое свойство. А можно и сложную структуру с тремя отзывами и четырьмя брендами. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 reset -- Установить внутренний указатель массива на его первый элементreset() перемещает внутренний указатель array к его первому элементу и возвращает значение первого элемента массива или FALSE если массив пуст.http://www.php.su/resetИ к чему тогда вот этот пост?Если я прав? Про то, как работает reset() - я в курсе)) Что ты хотел сказать этим постом?Код, который я привел - стандартный код из движка, и он активно используется... Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 10 мая, 2017 Жалоба Поделиться Опубликовано 10 мая, 2017 Код, который я привел - стандартный код из движка, и он активно используется... Код, который Вы привели - стандартный. Но из этого кода АКТИВНО используется именно часть с reset(...), которая дает первый элемент.А часть с присваиванием произвольного элемента реально работает крайне мало. На сайте я знаю лишь одно место, где это работает - в ссылках в yandex.php. Знаете другие места - сообщайте... Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 11 мая, 2017 Автор Жалоба Поделиться Опубликовано 11 мая, 2017 (изменено) Ребят, допустим мне в созданном мной file.php необходимо обработать шаблон smarty, мне необходимо в нем отдельно подключать Smarty.class.php или же готовый объект уже где - то доступен? И Вообще, в каких файлах происходит подключение. Вроде разобрался, это метод design экземпляра объекта Simpla. Верно? Изменено 11 мая, 2017 пользователем pepelxD Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 11 мая, 2017 Жалоба Поделиться Опубликовано 11 мая, 2017 Посмотрите как сделано в view/MainView.php Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 11 мая, 2017 Жалоба Поделиться Опубликовано 11 мая, 2017 В темеhttp://forum.simplacms.ru/topic/815-%D0%BE%D1%82%D0%B4%D0%B5%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0-%D0%B2%D1%81%D0%B5%D1%85-%D0%B1%D1%80%D0%B5%D0%BD%D0%B4%D0%BE%D0%B2/довольно хорошо расписан пример создания собственной страницы со своим функционалом.И на форуме, если поискать, можно найти и другие подобные примеры. Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 12 мая, 2017 Автор Жалоба Поделиться Опубликовано 12 мая, 2017 (изменено) Делаю аякс к файлу, в нем необходимо обработать шаблон .tpl и записать в переменную. Использую $html = $api->design->fetch('template.tpl'); Смарти начинает ругаться на запись {$product->variant->price|convert} convert - Unknown modifier Вопрос: в каком файле регистрируется этот модификатор, да и вообще модификаторы? Они для каждого view свои или же есть какойто центральный файл?Еще вопрос про стили и скрипты, предусмотрен ли в симпле механизм загрузки скриптов и стилей? Или только инлайн в шаблонах .tpl? Изменено 12 мая, 2017 пользователем pepelxD Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.