ahmed Опубликовано 12 мая, 2017 Жалоба Поделиться Опубликовано 12 мая, 2017 Проведите поиск в файлах на текст 'registerPlugin'.Файлы стилей и JS-скриптов задаются обычным образом в шаблонах без хитростей. Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 12 мая, 2017 Автор Жалоба Поделиться Опубликовано 12 мая, 2017 Проведите поиск в файлах на текст 'registerPlugin'.Файлы стилей и JS-скриптов задаются обычным образом в шаблонах без хитростей.Ага, нашел, спасибо.А как получить текущего пользователя просматривающего страницу? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 12 мая, 2017 Жалоба Поделиться Опубликовано 12 мая, 2017 Ага, нашел, спасибо.А как получить текущего пользователя просматривающего страницу?Смотря где.Можно через сессию, как в View.php Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 12 мая, 2017 Автор Жалоба Поделиться Опубликовано 12 мая, 2017 Смотря где.Можно через сессию, как в View.phpНа страницах с товарами, что бы получить скидки для пользователя и прочу инфу...Спасибо за подсказку Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 12 мая, 2017 Жалоба Поделиться Опубликовано 12 мая, 2017 Там это все доступно через шаблон {$user} Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 12 мая, 2017 Автор Жалоба Поделиться Опубликовано 12 мая, 2017 (изменено) Там это все доступно через шаблон {$user} Да в шаблоне да, доступно. Мне аяксом нужно это инфу взять.Хотя если сделать print_r($api->design->smarty->getTemplateVars()); То юзера не показывает, хотя залогинен. Т.е. Обращаюсь к файлу, он мне отдает объект: responыe = { 'product': 'объект продукта со всеми свойствами', 'html'; 'результат обработки шаблона', 'user': 'объект текущего пользователя если есть, иначе null' } Изменено 12 мая, 2017 пользователем pepelxD Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 12 мая, 2017 Жалоба Поделиться Опубликовано 12 мая, 2017 $this->user->name Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 12 мая, 2017 Жалоба Поделиться Опубликовано 12 мая, 2017 Если б Вы выложили свой ajax-файл, может, скорее подсказали бы.Чтобы иметь данные об авторизованном пользователе, надо разные моменты контролировать, как минимум1. Чтоб сессия была подключена,2. Чтобы был сделан запрос на данные пользователя (непосредственно или через наследование от класса View). Примерно так <?php session_start(); require_once('api/Simpla.php'); $api = new Simpla(); $u = $api->users->get_user(intval($_SESSION['user_id'])); print_r($u); Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 12 мая, 2017 Автор Жалоба Поделиться Опубликовано 12 мая, 2017 Да уже сделал все по наводке про сессию.Вот что получилось: if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($_POST['id']) { session_start(); require_once($_SERVER['DOCUMENT_ROOT'] . '/api/Simpla.php'); $api = new Simpla(); // без этого модификатор convert о котором писал выше не работал... require_once($_SERVER['DOCUMENT_ROOT'] . '/api/Money.php'); $money = new Money(); // получаю объект продукта $product_id = intval($_POST['id']); $product = $api->products->get_product($product_id); $product->variants = array(); foreach($api->variants->get_variants(array('product_id'=>$product->id, 'in_stock'=>true)) as $v) { $product->variants[$v->id] = $v; } $product->variant = reset($product->variants); $product->features = $api->features->get_product_options(array('product_id'=>$product->id)); // получаю юзера $user = null; if(isset($_SESSION['user_id'])) { $user = $api->users->get_user(intval($_SESSION['user_id'])); if($user && $user->enabled) { $user->group = $api->users->get_group($user->group_id); } } // передаю в шаблон объект продукта, записываю в переменную результат обработки шаблона $api->design->assign('product', $product); try{ $html = $api->design->fetch('product_cart.tpl'); if(!$html) throw new Exception('error'); $product->html = $html; }catch(Exception $e) { echo $e->getMessage() . '<br>' . $e->getFile() . '<br>' . $e->getLine(); } // формирую ответ $response = array('product' => $product, 'user'=> $user); echo json_encode($response); } } Думаю еще сделать определение страницы с которой пришел запрос, так как не всегда нужно будет обрабатывать шаблон. Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 12 мая, 2017 Жалоба Поделиться Опубликовано 12 мая, 2017 1. Первый if - лишний. И без него сработает так же.2. Если сработает catch(Exception $e), то в ответе будет мешанина обычного текста и данных в виде json. Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 12 мая, 2017 Автор Жалоба Поделиться Опубликовано 12 мая, 2017 1. Первый if - лишний. И без него сработает так же.2. Если сработает catch(Exception $e), то в ответе будет мешанина обычного текста и данных в виде json.Кстати да. catch(Exception $e) делал когда шаблон не обрабатывался выводил на что ругается.... так и осталось.. нужно будет в ответ поле ошибка добавить, спасибо за подсказку. Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 14 мая, 2017 Автор Жалоба Поделиться Опубликовано 14 мая, 2017 А не кажется ли вам, что было бы логично если бы при загрузке файлов из каталога view и api симпла смотрела есть ли такие каталоги с файлами в текущей теме? Т.е. не править при необходимости исходные файлы, а наследоваться от них и расширять.И еще на мой взгляд бы ло бы логично, если объект $page доступен на любой странице и у него есть метод $page->get_current_page() который возвращает объект текущей страницы будь то каталог или отдельная страница товара? Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 14 мая, 2017 Жалоба Поделиться Опубликовано 14 мая, 2017 Вместо того, чтоб задавать такие глобальные вопросы, Вы бы реализовали свой вариант, а потом выложили бы тут результаты: описание предложения, готовый код, рассказ о преимуществах в работе и прочее. А абстрактно фантазировать - мечты одни... Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 15 мая, 2017 Автор Жалоба Поделиться Опубликовано 15 мая, 2017 (изменено) Как уже писал выше сайт я скопировал с хостинга на локальный сервер OpenServer, возникла такая проблема: не отображаются картинки.... при чем изначально они отображались, затем редактировал файл product.tpl изменил размер изображения и все пропало. При переносе базы данных некоторые не отображались, но это видать проблемы кирилицы..Значит на хостинге все работает, проверил. Здесь же пропали абсолютно все изображения из папки products. В админке пытаюсь добавить новое изображение к товару - безрезультатно. В паку originals изображение сохраняется, в папку produts нет.src изображению присваивается правильно.Ставлю симплу в другую папку на дефолтной теме все работает.P.S. заливаю с хостинга в локальную папку products заново все изображения они отображаются. Пытаюсь изменить размер не работает. Изменено 15 мая, 2017 пользователем pepelxD Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 15 мая, 2017 Жалоба Поделиться Опубликовано 15 мая, 2017 Видимо, дело в настройках на локальном сервере. Причин может быть разных много. надо проверять все детали. Начиная от тривиальных - установлен ли Imagick,установлена ли библиотека GD, какой из двух способов резайза используется.Лучше всего проверять в недрах скрипта нарезки изображений... Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 15 мая, 2017 Автор Жалоба Поделиться Опубликовано 15 мая, 2017 Видимо, дело в настройках на локальном сервере. Причин может быть разных много. надо проверять все детали. Начиная от тривиальных - установлен ли Imagick,установлена ли библиотека GD, какой из двух способов резайза используется.Лучше всего проверять в недрах скрипта нарезки изображений...В чистой симпле, с дефолтной темой все работает независимо от способа. Значит дело не в настройках сервера, я так понимаю.С другой стороны на хосте так же все работает....скрипт нарезки - Image.php, правильно я понимаю?Да, заметил еще ошибку яваскрипта в админке, при перетаскивании файлов, не определена переменная clone_input, хотя в дефолтной теме сохраняет и нарезает с этой ошибкой. Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 15 мая, 2017 Жалоба Поделиться Опубликовано 15 мая, 2017 В чистой симпле, с дефолтной темой все работает независимо от способа. Значит дело не в настройках сервера, я так понимаю. С другой стороны на хосте так же все работает.... Надо не гадать, а проверять все точно и находить конкретные места с ошибкой. И связывать вопрос картинок с темой не стоит, все можно и нужно проверять в админке. Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 16 мая, 2017 Автор Жалоба Поделиться Опубликовано 16 мая, 2017 В общем проблему я решил, только некоторые моменты мне не понятны:1. зачем необходимо token($resized_filename)2. Исходя из resize.php image->resize($filenamе) запускается каждый раз, когда $_GET['file'], но в resize($filenamе) я не увидел проверку на то, что файл уже есть Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 16 мая, 2017 Жалоба Поделиться Опубликовано 16 мая, 2017 Проверка происходит в .htaccessА токен нужен для безопасности, запрещает нарезку произвольных размеров Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 16 мая, 2017 Жалоба Поделиться Опубликовано 16 мая, 2017 1.http://forum.simplacms.ru/topic/8424-%D1%83%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC-%D1%82%D0%BE%D0%BA%D0%B5%D0%BD-%D0%B8%D0%B7-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/http://forum.simplacms.ru/topic/11991-token-%D1%83-%D1%80%D0%B8%D1%81%D1%83%D0%BD%D0%BA%D0%BE%D0%B2-%D0%B8%D0%B4%D0%B5%D1%8F-%D0%BF%D0%BE-%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%BA%D0%B5/ Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 16 мая, 2017 Автор Жалоба Поделиться Опубликовано 16 мая, 2017 1.http://forum.simplacms.ru/topic/8424-%D1%83%D0%B1%D0%B8%D1%80%D0%B0%D0%B5%D0%BC-%D1%82%D0%BE%D0%BA%D0%B5%D0%BD-%D0%B8%D0%B7-%D0%B0%D0%B4%D1%80%D0%B5%D1%81%D0%B0-%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F/http://forum.simplacms.ru/topic/11991-token-%D1%83-%D1%80%D0%B8%D1%81%D1%83%D0%BD%D0%BA%D0%BE%D0%B2-%D0%B8%D0%B4%D0%B5%D1%8F-%D0%BF%D0%BE-%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%BA%D0%B5/Хм, изучил... В моем случае тема которая используется как раз содержит вариант Давинчи, а не работало потому-что resize.php был заводской, я копировал с хоста только папки api, design, files, view.Так вот к теме. Почему все что я прочитал крутится вокруг resize.php, image->rezize, resize_modifier и никто не глянул в сторону upload_image, загружает пользователь картинку - нарезались все необходимые размеры? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 16 мая, 2017 Жалоба Поделиться Опубликовано 16 мая, 2017 Потому что так было в первой версии, а сейчас в шаблоне можно указывать нужный размерВ одном шаблоне 200 на 200, а в другом 400 на 400 Цитата Ссылка на сообщение Поделиться на другие сайты
ahmed Опубликовано 16 мая, 2017 Жалоба Поделиться Опубликовано 16 мая, 2017 Смотря что понимаете под "все необходимые размеры"... А размер может измениться в шаблоне в любой момент - поэтому необходимы ВСЕ теоретически возможные размеры.Хотите, что нарезались сразу МИЛЛИОН картинок - от 1х1 до 1000х1000 и даже больше? Ни один сервер не выдержит... Цитата Ссылка на сообщение Поделиться на другие сайты
pepelxD Опубликовано 16 мая, 2017 Автор Жалоба Поделиться Опубликовано 16 мая, 2017 Потому что так было в первой версии, а сейчас в шаблоне можно указывать нужный размерВ одном шаблоне 200 на 200, а в другом 400 на 400 Смотря что понимаете под "все необходимые размеры"... А размер может измениться в шаблоне в любой момент - поэтому необходимы ВСЕ теоретически возможные размеры.Хотите, что нарезались сразу МИЛЛИОН картинок - от 1х1 до 1000х1000 и даже больше? Ни один сервер не выдержит...Ну не бывает же магии и чудес, задача избавиться от токена, при этом что-бы не нарезались неиспользуемые размеры и в добавок с минимальной нагрузкой....В варианте Давинчи используя settings->image_sizes картинки режутся всех размеров указанных в настройке. Ну так они же и используются, не так ли? в тот или иной момент она загружается, не важно в какой промежуток времени.Ну так почему бы размеры не брать от туда?Преимущества на мой взгляд в том, что добавляя картинку к товару используемые размеры нарезались и лежат себе ждут своего часа.Вопрос каким образом эту настройку задавать - это уже другой вопрос, на который как мне кажется можно найти адекватное решение. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 16 мая, 2017 Жалоба Поделиться Опубликовано 16 мая, 2017 Вы смысла не понимаете))Вот у вас стоит шаблон, внем картинки 200 на 200Вы их грузите - они нарезаютсяА потом вы шаблон сменили - нужны картинки 400 на 400 - где вы их возьмете???А про токен - это глупости, он никому не мешает Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.