alexivchenko
-
Публикаций
359 -
Зарегистрирован
Сообщения, опубликованные alexivchenko
-
-
Вопрос решился
-
3 минуты назад, Alex000 сказал:
RewriteCond %{HTTP_HOST} ^www.tbiliso.by [NC] RewriteRule ^(.*)$ http://tbiliso.by/$1 [R=301,L]
Вот этот кусок замените на
# Redirect to HTTPS:
RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]# Redirect from www to without www:
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] -
Пришлите сюда файл .htaccess
-
4 часа назад, yulio сказал:
Пожалуйста, но советую в ближайшее время подправить БД
-
5 часов назад, yulio сказал:
Добрый день! Помогите плз, хоть советом хоть платной помощью.
После смены хостинга перестали создаваться заказы на сайте интернет-магазина.
на 2х интернет магазинах.
Что может быть? хостинг смотрит и ничего не видит...
В 12.11.2021 в 18:00, alexivchenko сказал:В файле config/config.php
заменить
;Режим SQL db_sql_mode =;
на
;Режим SQL db_sql_mode = "NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
-
1 час назад, phukortsin сказал:
Оригинально - смотреть несуществующий файл...
Ошибки, видимо, из-за перехода на новую версию PHP.
В simpla/ProductAdmin.php надо сделать так:
class ProductAdmin extends Simpla { public function fetch() { $product = new stdclass();
И во многих соседних файлах надо провести подобные изменения, так как весьма вероятно, что другие сущности аналогично могли стать не редактируемыми.
Ошибка со значением поля по умолчанию тоже, скорее всего связана с изменением версии БД. И также, скорее всего, аналогичные ошибки могут наличествовать в других сущностях. Проверять надо все... И лучше решать не по каждому полю, а через общие настройки.
Прочие ошибки носят более частный характер, но причины примерно те же...
Ой, ну поспешил и вместо simpla/ProductAdmin.php написал api/ProductAdmin.php прям надо было акцентировать. Одновременно писал инструкцию к модулю и ошибся.
-
[Sun Nov 19 17:47:51.458115 2023] [php7:notice] [pid 20733] [client 188.43.194.125:56570] PHP Notice: Undefined variable: groop_products in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 308, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:51.465958 2023] [php7:notice] [pid 20733] [client 188.43.194.125:56570] PHP Notice: Undefined variable: groop_products in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 453, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin
Надо смотреть api/ProductAdmin.php 308, 453 строку что за переменная groop_products
-
7 часов назад, xikarx сказал:
И снова всем здравствуйте. Давно не обновлял сайт, тутвзялся добавить товар и выяснил, что товары оказывается добавляться не желают или добаляются с ошибкой.
Снова прошу помощи. Основную ошибку, не дававшую создатьновый товар вроде пофиксил (было
PHP Warning: Column 'action' cannot be null [INSERT INTO s_products SET id='0', ........ new=NULL, action=NULL, ned='0', bez='0'] in /var/www/ikar/data/www/astra-omsk.ru/api/Database.php on line 100, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin
Присвоил полю action значение null по умолчанию. Кстати, подскажите, второй вариант как сделать - где в коде сайта разрешить null значение в данном поле?
И второе - имею кучу ошибок (в логах), влияние которых, вроде на работу сайта пока не увидел, но которые раздражают:
https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:51.411838 2023] [php7:warn] [pid 20733] [client 188.43.194.125:56570] PHP Warning: Creating default object from empty value in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 72, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin
собственно указанная сторока (с 67 по 76)
// Свойства товара $options = $this->request->post('options'); if(is_array($options)) { foreach($options as $f_id=>$val) { $po[$f_id]->feature_id = $f_id; $po[$f_id]->value = $val; } $options = $po; }
и еще не понятные мне ошибки:
[Sun Nov 19 17:47:51.458115 2023] [php7:notice] [pid 20733] [client 188.43.194.125:56570] PHP Notice: Undefined variable: groop_products in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 308, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:51.465958 2023] [php7:notice] [pid 20733] [client 188.43.194.125:56570] PHP Notice: Undefined variable: groop_products in /var/www/ikar/data/www/astra-omsk.ru/simpla/ProductAdmin.php on line 453, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:56.216594 2023] [php7:warn] [pid 20737] [client 188.43.194.125:57132] PHP Warning: A non-numeric value encountered in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/f926a1426a3c03df5714da5ede71d26e0e28a930_0.file.product.tpl.php on line 212, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin [Sun Nov 19 17:47:56.217139 2023] [php7:warn] [pid 20737] [client 188.43.194.125:57132] PHP Warning: Parameter 2 to View::get_object_articles_plugin() expected to be a reference, value given in /var/www/ikar/data/www/astra-omsk.ru/compiled/trizzy/f926a1426a3c03df5714da5ede71d26e0e28a930_0.file.product.tpl.php on line 561, referer: https://astra-omsk.ru/simpla/index.php?module=ProductAdmin&return=%2Fsimpla%2Findex.php%3Fmodule%3DProductsAdmin
Кто чем пособит буду очень признателен.
Могу помочь, пишите в ЛС
-
4 часа назад, Chudo сказал:
Благодарю тебя несколько дней копался в поисках проблемы, всё перепробовал - и вот только твой вариант помог.
Была проблема, что не добавлялись новые товары, да и много чего не работало, связанное напрямую с mysql.
Делюсь инструкцией:
Strict mode в MySQL включен по умолчанию. Проверить можно следующей командой:mysql> SHOW VARIABLES LIKE 'sql_mode';
«STRICT_TRANS_TABLES» — это и есть строгий режим.
Отключить его можно в конфигурационном файле my.cnf ( Для Ubuntu — /etc/mysql/my.cnf):
cd /etc/mysql/my.cnf
Добавляем строчку:
sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Перезагрузить демона mysql :
systemctl restart mysql
Эта возможность потребуется вам для конфигурирования VDS или VPS машины под ваш проект
Еще проще
В 12.11.2021 в 18:00, alexivchenko сказал:В файле config/config.php
заменить
;Режим SQL db_sql_mode =;
на
;Режим SQL db_sql_mode = "NO_ZERO_DATE,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
-
1 час назад, Kami сказал:
Ну вот проблема ресурсов решена, а вот всё равно фид грузится 5 минут ти ложится с ошибкой. То есть даже 5 минут не хватает чтоб выполнить запрос к 20 к товарам со свойствами т.д.
Как вы выходили из ситуации? пилить фид?
Сделайте выгрузку товаров экспорт в csv, так же долго формирует файл?
-
В 30.08.2023 в 07:08, Alex000 сказал:
Всем привет, подскажите пожалуйста, а как сделать, чтобы от определённого количества начинала применяться оптовая цена? Например если покупатель указал количество 9 то цена будет 100, если 10 и больше то 80.
Заранее благодарю.
В 03.10.2013 в 09:54, Чудилла сказал:Добавьте в файл Cart.php
После
foreach($items as $variant_id=>$item) { $purchase = null; if(!empty($products[$item->variant->product_id])) { $purchase = new stdClass(); $purchase->product = $products[$item->variant->product_id]; $purchase->variant = $item->variant; $purchase->amount = $item->amount; $cart->purchases[] = $purchase; $cart->total_price += $item->variant->price*$item->amount; $cart->total_products += $item->amount; } }
Функцию
f($cart->total_products >= 10){ /// Скидка если товаров больше 10 $cart->product_discont = 10; /// 10% } if($cart->total_products >= 20){ /// Скидка если товаров больше 10 $cart->product_discont = 15; /// 15% } if($cart->total_products >= 50){ /// Скидка если товаров больше 10 $cart->product_discont = 20; /// 20% } if($cart->product_discont){ $cart->non_discount_total_price = $cart->total_price; $cart->total_price = $cart->total_price-($cart->total_price*($cart->product_discont/100)); //Общая сумма со скидкой $cart->economy = $cart->total_price*($cart->product_discont/100); }
Получаем
[total_price] => 246330 // Цена со скидкой
[total_products] => 20 //Кол-во товаров
[coupon] =>
[discount] => 0
[coupon_discount] => 0
[product_discount] => 15 // Скидка
[non_discount_total_price] => 289800 // Цена без скидки
[economy] => 36949.5 // Экономия -
24 минуты назад, shooroop сказал:
ненадо такого городить ) есть способы проще
и этот способ... продолжите пожалуйста
-
14 минут назад, founder сказал:
Не пойму откуда берется category_brand_id, в коде его вообще нет
в CategoryAdmin.php добавлено:
$category_brands = $this->categories->get_category_brands($category->id); $this->design->assign('category_brands', $category_brands); foreach($category_brands as $brand) { $brand_ids[$brand->brand_id] = $brand->brand_id; } $all_brands = $this->brands->get_brands(); foreach($all_brands as $brand) { if(!isset($brand_ids[$brand->id])) { $brands[] = $brand; } } $this->design->assign('brands', $brands);
напишите в личные сообщения, разберемся. гадать на гуще нет желания.
-
2 часа назад, founder сказал:
Добрый день.
Установлена мультиязычная Simpla, хочу поставить описание брендов в категории
в api/Categories.php
// Страницы описания брендов public function get_category_brand($category_id, $brand_id) { $query = "SELECT * FROM __category_brands WHERE category_id = $category_id AND brand_id = $brand_id"; $this->db->query($query); return $this->db->result(); } public function get_category_brands($id) { $query = "SELECT cb.*, b.name FROM __category_brands cb INNER JOIN __brands b ON (cb.brand_id = b.id) WHERE cb.category_id = $id"; $this->db->query($query); return $this->db->results(); }
Меняю на:
// Страницы описания брендов в категории public function get_category_brand($category_id, $brand_id) { $lang_sql = $this->languages->get_query(array('object'=>'category_brand')); $query = "SELECT cb.id, cb.brand_id, cb.category_id, ".$lang_sql->fields." FROM __category_brands cb ".$lang_sql->join." WHERE category_id = $category_id AND brand_id = $brand_id"; $this->db->query($query); return $this->db->result(); } public function get_category_brands($id) { $lang_sql = $this->languages->get_query(array('object'=>'category_brand')); $query = "SELECT cb.id, cb.brand_id, cb.category_id, ".$lang_sql->fields.", b.name FROM __category_brands cb ".$lang_sql->join." INNER JOIN __brands b ON (cb.brand_id = b.id) WHERE cb.category_id = $id"; $this->db->query($query); return $this->db->results(); }
В админке отображает ошибку что не найдено в БД c.id
Подскажите, пожалуйста, где ошибка?
Помимо мультиязычности, которой стандарно нет в SimplaCMS у вас еще свой функционал вывода категорий и брендов к ним.
Ошибку нужно смотреть на месте, а так попробуйте:// Страницы описания брендов в категории public function get_category_brand($category_id, $brand_id) { $lang_sql = $this->languages->get_query(array('object'=>'category_brand')); $query = $this->db->placehold("SELECT cb.id, cb.brand_id, cb.category_id, $lang_sql->fields FROM __category_brands cb $lang_sql->join WHERE category_id = $category_id AND brand_id = $brand_id "); $this->db->query($query); return $this->db->result(); } public function get_category_brands($id) { $lang_sql = $this->languages->get_query(array('object'=>'category_brand')); $query = $this->db->placehold("SELECT cb.id, cb.brand_id, cb.category_id, b.name, $lang_sql->fields FROM __category_brands cb $lang_sql->join INNER JOIN __brands b ON (cb.brand_id = b.id) WHERE cb.category_id = $id "); $this->db->query($query); return $this->db->results(); }
-
1 час назад, Alex000 сказал:
Спасибо большое. А как добавить вам количество решений, вы уже не первый раз мне помогаете, а количество решений у вас 1 ))
спасибо, думаю что указание решений отключено на этом форуме или в ветке.
-
в main.tpl или index.tpl
{* Список брендов *} {get_brands var=all_brands} {if $all_brands} {* Заголовок блока *} <h1>Все бренды</h1> {foreach $all_brands as $b} {* Если у бренда есть изображение *} {if $b->image} {* Изображение бренда *} <a href="brands/{$b->url}" data-brand="{$b->id}"> <img src="{$config->brands_images_dir}{$b->image}" alt="{$b->name|escape}" title="{$b->name|escape}"> </a> {else} {* Название бренда *} <a href="brands/{$b->url}" data-brand="{$b->id}">{$b->name}</a> {/if} {/foreach} {/if}
-
19 часов назад, megauser сказал:
Есть кто делал интеграцию СБИС и Simpla?
Требуется выгрузка остатков на сайт и выгрузка заказов в сбис.
СБИС работает по формату CommerceML как в 1С
-
4 часа назад, phukortsin сказал:
Можно сделать, если СБИС предоставляет средства для такого.
Для начала попробуйте это выяснить. Я не нашел упоминаний о том, что СБИС хранит товары и заказы. По описанию, это в основном система для ДОКУМЕНТООБОРОТА.
На стр https://onlainkassy.ru/edo/sbis.html описаны основные возможности СБИС так:
Функциональные возможности СБИС
На замену бумажным носителям пришел электронный документооборот. Через СБИС можно работать:Штатным сотрудникам организации.
Организовать внутренний обмен письмами, заявлениями. Проводить совещания, видео конференции. Загружать со сканера, жесткого диска, из 1С или SAP акты, ТОРГ-12, счет-фактуры и выдавать их не распечатывая на принтере.
Руководящим работникам.
Начальникам отделов, директорам, менеджерам доступна функция планирования: календарь задач. Участвовать в торгах, организованных на основании закона № 325-ФЗ от 21.11.2011 года, имея специальный цифровой ключ подписи. Финансистам и главным бухгалтерам: передавать в соответствующие структуры отчетность, отвечать на требования ИФНС, направлять документы для камеральной проверки.Видимо имелось ввиду автоматизация интернет-магазина https://sbis.ru/retail/online_store
-
3 часа назад, Dmitry86 сказал:
Ребят, помогите найти ошибку. На сайте изображения ресайзятся через ImageMagick. Ссылки на изображения без токенов.
Если удалить изображение из товара, и обратиться к нему по той ссылке, по которой оно раньше было доступно, то сервер сваливается с ошибкой 500, а по идее должен либо 404 либо 403 отдавать (?)
В логах у меня следующее:
[cgi:error] [pid 16335] [client 188.225.72.35:34894] AH01215: thrown in /home/username/web/sitename.ru/public_html/api/Image.php on line 338: /home/username/web/sitename.ru/cgi-bin/php, referer: https://webmaster.yandex.ru/...
Строка 338 это:
if(!$thumb->readImage($src_file))
в функции:
private function image_constrain_imagick($src_file, $dst_file, $max_w, $max_h, $watermark=null, $watermark_offet_x=0, $watermark_offet_y=0, $watermark_opacity=1, $sharpen=0.2, $strict=null) { $thumb = new Imagick(); // Читаем изображение if(!$thumb->readImage($src_file)) return false; // Размеры исходного изображения $src_w = $thumb->getImageWidth(); $src_h = $thumb->getImageHeight(); // Нужно ли обрезать? if (!$watermark && !$strict && ($src_w <= $max_w) && ($src_h <= $max_h)) { // Нет - просто скопируем файл if (!copy($src_file, $dst_file)) return false; return true; } if ($strict) { $thumb->thumbnailImage($max_w, $max_h, true, true); } else { // Размеры превью при пропорциональном уменьшении list($dst_w, $dst_h) = $this->calc_contrain_size($src_w, $src_h, $max_w, $max_h); // Уменьшаем $thumb->thumbnailImage($dst_w, $dst_h); } // Устанавливаем водяной знак if($watermark && is_readable($watermark)) { $overlay = new Imagick($watermark); $overlay->evaluateImage(Imagick::EVALUATE_MULTIPLY, $watermark_opacity, Imagick::CHANNEL_ALPHA); // Get the size of overlay $owidth = $overlay->getImageWidth(); $oheight = $overlay->getImageHeight(); if ($strict) { $watermark_x = min(($max_w-$owidth)*$watermark_offet_x/100, $max_w); $watermark_y = min(($max_h-$oheight)*$watermark_offet_y/100, $max_h); } else { $watermark_x = min(($dst_w-$owidth)*$watermark_offet_x/100, $dst_w); $watermark_y = min(($dst_h-$oheight)*$watermark_offet_y/100, $dst_h); } } // Убираем комменты и т.п. из картинки $thumb->stripImage(); // Записываем картинку if(!$thumb->writeImages($dst_file, true)) return false; // Уборка $thumb->destroy(); if(isset($overlay) && is_object($overlay)) $overlay->destroy(); return true; }
Куда копать? Спасибо.
Киньте сюда ваши фалы api/Image.php, api/Design.php и resize/resize.php
-
21 час назад, Rimmel сказал:
Всем привет! После перехода на протокол HTTPS перестал работать выбор по объему внутри одного товара (т.е. выбираешь, а цена не меняется) и не меняются фото товара, т.е. при клике на фото оно не меняется и не увеличивается, так же перестал работать слайдер с баннерами.
Подскажите, пожалуйста, куда смотреть?
Сам редирект работает корректно, ошибок нет, Яндекс главное зеркало выбрал.
смотрите в index.tpl вашего шаблона.
чтобы ссылки на js файлы имели вид design/{$settings->theme|escape}/js/? а не http://site.ru/design/шаблон/js/
-
41 минуту назад, Dmitry86 сказал:
У меня были кое-какие доработки, сейчас в index.php кусок кода с 404 выглядит так:
// Если все хорошо if(($res = $view->fetch()) !== false) { // Выводим результат header("Content-type: text/html; charset=UTF-8"); if($view->last_modified) { $LastModified_unix = strtotime($view->last_modified); // время последнего изменения страницы $LastModified = gmdate("D, d M Y H:i:s \G\M\T", $LastModified_unix); $IfModifiedSince = false; if (isset($_ENV['HTTP_IF_MODIFIED_SINCE'])) $IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5)); if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) $IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5)); if ($IfModifiedSince && $IfModifiedSince >= $LastModified_unix) { header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified'); exit; } header('Last-Modified: '. $LastModified); } print $res; // Сохраняем последнюю просмотренную страницу в переменной $_SESSION['last_visited_page'] if(empty($_SESSION['last_visited_page']) || empty($_SESSION['current_page']) || $_SERVER['REQUEST_URI'] !== $_SESSION['current_page']) { if(!empty($_SESSION['current_page']) && !empty($_SESSION['last_visited_page']) && $_SESSION['last_visited_page'] !== $_SESSION['current_page']) $_SESSION['last_visited_page'] = $_SESSION['current_page']; $_SESSION['current_page'] = $_SERVER['REQUEST_URI']; } } else { // Иначе страница об ошибке header("http/1.0 404 not found"); // Подменим переменную GET, чтобы вывести страницу 404 $_GET['page_url'] = '404'; $_GET['module'] = 'PageView'; print $view->fetch(); }
Видимо, косяк где-то здесь?
На пальцах не понять, может и проблема в Last-Modified, а может и в еще в другом.
я могу вам скинуть кусок кода, который работает через composer, поймете в чем ошибка?Надо смотреть на месте
-
Баг не в ордере, а в обработке 404 страницы. Если такого заказа нет, то и система должна выдать 404.
-
7 часов назад, Dmitry86 сказал:
Тогда такой вопрос: поиск ведь понимает, что тире в запросе AB012 1 нет, но выдает конкретный товар с тире. обратную ситуацию можно сделать? Когда в запросе есть тире, а в названии товара нет тире? Но поиск выдаст нужный резльтат.
При запросе АВ012, поиск нашел первый схожий товар АВ012-1 https://github.com/pikusov/Simpla/blob/master/view/ProductsView.php#L143
Поиск который хотите вы, можно реализовать через API ЯндексПоиск - поиск для сайта или же с помощью Sphinx.
-
6 часов назад, phukortsin сказал:
Много ли у Вас клиентов?
У меня в последний год-два новенькие заказчик почти не появляются, в отличие от того, что было ранее. Я так понимаю, Simpla продолжает хиреть. Да и Okay, по моим представлениям, позиции понемногу теряет...
Постоянных клиентов 4, новые иногда пишут. Больше просят перенести магазин с Simpla на OpenCart. С Okay пишут многие, в частности кто еще сидит на версии до тройки.
Вредоносный скрипт Modification.php в папке api
в Безопасность
Опубликовано
Кто-то вам бяку подложил, стандартно backend/uploader/* такого пути нет в simpla.