
sergeevizh
-
Content Count
383 -
Joined
Posts posted by sergeevizh
-
-
Привет!
Не вижу проблемы подключить SSD диск или даже как сделал я подключил Yandex.Disk
Но вот проблема правильно указать путь до папки /files
Допустим, новый диск монтирован и имеет фс ext4 создаем папку прям в корне /files
Вроде имеем путь (представим) /dev/sdb/files
Дальше либо nginx либо /api/config.php править и прописывать путь к /files
-
function email($to, $subject, $message, $from = '', $reply_to = '') { if (!$this->config->phpmailer_enable) { $this->php_mail($to, $subject, $message, $from, $reply_to); } else { $mailer = new Phpmailer(); $mailer->IsHTML(true); $mailer->CharSet = "utf-8"; $mailer->IsSMTP(); $mailer->Host = $this->config->phpmailer_host; $mailer->Port = $this->config->phpmailer_port; if ($this->config->phpmailer_ssl == true) { $mailer->SMTPSecure = "ssl"; $mailer->SMTPAutoTLS = "false"; // Отключить проверку сертификата - https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting#updating-ca-certificates if ($this->config->phpmailer_ssl_verify != true) { $mailer->SMTPOptions = [ 'ssl' => [ 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ] ]; } } $mailer->SMTPAuth = true; $mailer->Username = $this->config->phpmailer_user; $mailer->Password = $this->config->phpmailer_password; foreach(preg_split('/[\s,;]+/', $to) as $e) { $mailer->AddAddress($e); } $mailer->From = $mailer->Username; // $from $mailer->FromName = $this->settings->company_name; $mailer->Sender = $mailer->Username; $mailer->Subject = $subject; $mailer->Body = $message; $mailer->SMTPDebug = $this->SMTPDebug; // 3 if (!$mailer->Send()) { if ($this->SMTPDebug) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mailer->ErrorInfo; } $this->php_email($to, $subject, $message, $mailer->From); } } } function php_email($to, $subject, $message, $from = '', $reply_to = '') { $headers = "MIME-Version: 1.0\n"; $headers .= "Content-type: text/html; charset=utf-8; \r\n"; $headers .= "From: " . $this->settings->company_name . "<$from> \r\n"; if (!empty($reply_to)) $headers .= "reply-to: $reply_to\r\n"; $subject = "=?utf-8?B?" . base64_encode($subject) . "?="; @mail($to, $subject, $message, $headers); }
Поменяйте местами
-
Ошибку надо искать тут https://github.com/pikusov/Simpla/blob/master/simpla/design/html/product.tpl#L224-L253
А еще бы jquery.js обновить
-
Переполнение стека вызовов JavaScript https://habr.com/ru/post/167033/
-
Подскажите, как переложить комиссию на магазин, при оплате картой, если ты не ИП?
И получить статус оплачено?
Пробовал решение от Нохтер и пару решений с форума, ничего не помогает.
Проблема в том, как сейчас работает, если товар 1500, то при оплате сумма суммируется с % от Яндекс.Деньги и клиент получает сумму 1530 рублей. Как-то не правильно, перекладывать комиссию на клиента.
Если закомментировать добавление процента клиент видит сумму полностью 1500, а после оплаты мы получаем 1470 рублей
Система же сравнивает сумму в заказе 1500 и 1470 которую получил после оплаты и так как суммы разные статус ОПЛАЧЕНО не ставится.
Помогите решить эту проблему.
-
Нашел вот такой код
$('input[name=url]').keyup(function () { if ( ($(this).val().length >=5) && ($(this).val().substr(0, 5) != 'http:') && ($(this).val().substr(0, 5) != 'https') ) { $(this).val('http://' + $(this).val()); } });
Все конечно хорошо и работает
Что если в это поле вставляют ссылку типа mailto: и tel:?
Дописал так
$('input[name=url]').keyup(function () { if ( ($(this).val().length >=5) && ($(this).val().substr(0, 5) != 'http:') && ($(this).val().substr(0, 5) != 'https') && ($(this).val().substr(0, 7) != 'mailto:') && ($(this).val().substr(0, 4) != 'tel:') ) { $(this).val('http://' + $(this).val()); } });
Тоже работает
Теперь вопрос другой, так как эта форма заполняется поставщиком или представителем, то возможно будут и глубокие ссылки типа tg://, whatsapp://, skype:// viber://
В админке я создал поле с разрешенными префиксами и сохраняю их в json типа ["mailto","tel"]
Далее проверка на php
function validate_url_format($url) { $parsed_url = parse_url($url); if(!$parsed_url) { return false; } if(!isset($parsed_url['scheme'])) { return false; } if(!isset($parsed_url['host']) && !isset($parsed_url['path'])) { return false; } $prefix = $parsed_url['scheme']; if(!in_array($prefix, get_links_allowed_prefixes())) { return false; } return true; } function get_links_allowed_prefixes() { global $settings; return array_merge(['http', 'https'], $settings->links_allowed_prefixes); }
Как мне лучше сделать, думаю, что не на JS, а на php
Проверку, если scheme пустая и не prefix добавить http://
-
Здравствуйте!
На странице с формой есть поле input name="url" для указания веб-сайта
Ссылки указываются без http
Как при нажатии кнопки "отправить" произвести проверку, если в поле name="url" введена ссылка на веб-сайт без http, тогда добавить и сохранить.
Пробовал что-то придумать по типу масок для телефона и даты, но ничего не вышло
-
Скорее всего, на новом хостинге более новая версия PHP (7 вместо 5), и эти сообщения - следствие использования устаревшего кода.
Есть два основных пути:
1. Отключить выводд предупреждений
2. Исправлять PHP-код. Обычно мест возникновения таких ошибок много и проявляются не сразу...
Версия PHP на сайте 5.6
Кажется тут Smarty надо обновить
-
Пути в файле /simpla/.htaccess изменили?
-
<?php require_once('api/Simpla.php'); $simpla = new Simpla(); header("Content-type: text/xml; charset=UTF-8"); print '<?xml version="1.0" encoding="UTF-8"?>'."\n"; // Заголовок print '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">'."\n"; $simpla->db->query("SET SQL_BIG_SELECTS=1"); // Товары $simpla->db->query("SELECT v.id as variant_id, p.id AS product_id, p.name as product_name, v.name as variant_name, p.url FROM __variants v LEFT JOIN __products p ON v.product_id = p.id WHERE p.visible GROUP BY v.id ORDER BY p.id"); $products = $simpla->db->results(); $prev_product_id = null; foreach($products as $p) { print "<url> "; //тут массив с картинками $p_images = array(); foreach($simpla->products->get_images(array('product_id' => $p->product_id)) as $image) { $p_images[$image->product_id][] = $image->filename; } $variant_url = ''; if ($prev_product_id === $p->product_id) $variant_url = '?variant='.$p->variant_id; $prev_product_id = $p->product_id; print "<loc>".$simpla->config->root_url.'/products/'.$p->url.$variant_url."</loc>"; //выводим картинки if(!empty($p_images[$p->product_id])) { foreach($p_images[$p->product_id] as $img) { $string = htmlspecialchars($simpla->config->root_url.'/files/originals/'.$img); print " <image:image> <image:loc>".$string."</image:loc>"; print "<image:title>".htmlspecialchars($p->product_name).($p->variant_name?' '.htmlspecialchars($p->variant_name):'')."</image:title>"; print "</image:image>"; } } print "</url> "; } print "</urlset> "; ?>
Выводит <image:title> и добавляет название варианта
-
Вот именно не кодер!
На кой чёрт браться, сделать лишь бы как, как минимум удвоить кол-во запросов к БД и радоваться что у тебя работает?
Идиотизм...
Дядь, а так?
<?php require_once('api/Simpla.php'); $simpla = new Simpla(); header("Content-type: text/xml; charset=UTF-8"); print '<?xml version="1.0" encoding="UTF-8"?>'."\n"; // Заголовок print '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">'."\n"; $simpla->db->query("SET SQL_BIG_SELECTS=1"); // Товары $simpla->db->query("SELECT v.id as variant_id, p.id AS product_id, p.url FROM __variants v LEFT JOIN __products p ON v.product_id = p.id WHERE p.visible GROUP BY v.id ORDER BY p.id"); $products = $simpla->db->results(); $prev_product_id = null; foreach($products as $p) { print "<url> "; //тут массив с картинками $p_images = array(); foreach($simpla->products->get_images(array('product_id' => $p->product_id)) as $image) { $p_images[$image->product_id][] = $image->filename; } $variant_url = ''; if ($prev_product_id === $p->product_id) $variant_url = '?variant='.$p->variant_id; $prev_product_id = $p->product_id; print "<loc>".$simpla->config->root_url.'/products/'.$p->url.$variant_url."</loc>"; //выводим картинки if(!empty($p_images[$p->product_id])) { foreach($p_images[$p->product_id] as $img) { $string = htmlspecialchars($simpla->config->root_url.'/files/originals/'.$img); print " <image:image> <image:loc>".$string."</image:loc>"; print "</image:image>"; } } print "</url> "; } print "</urlset> "; ?>
Выводит оригинальные картинки к товару, а если у товара есть варианты, то и номер варианта добавляет к ссылке
-
Вот из-за таких криворуких "кодеров" всё больше проблем появляется у клиентов.
Я не кодер, а лишь собрал из того, что нашел в посте http://forum.simplacms.ru/topic/4543-генерация-sitemap-для-картинок/ и генерация вывода yandex.php и вроде работает. Да дублирует вывод, если у товара есть варианты.
Вместо того, чтобы набирать счетчик количества бестолковых символов, подправили бы код.
-
<?php
require_once('api/Simpla.php');
$simpla = new Simpla();
header("Content-type: text/xml; charset=UTF-8");
print '<?xml version="1.0" encoding="UTF-8"?>'."\n";
// Заголовок
print '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">'."\n";
$simpla->db->query("SET SQL_BIG_SELECTS=1");
// Товары
$simpla->db->query("SELECT
p.id AS product_id,
p.url,
i.filename AS image
FROM __variants v
LEFT JOIN __products p ON v.product_id = p.id
LEFT JOIN __images i ON p.id = i.product_id
WHERE p.visible
GROUP BY v.id
ORDER BY p.id");
$products = $simpla->db->results();
$p_ids = array();
foreach ($products as $p) {
if (!in_array($p->product_id, $p_ids)) {
$p_ids[] = $p->product_id;
}
}
$p_images = array();
foreach($simpla->products->get_images(array('product_id' => $p_ids)) as $image) {
$p_images[$image->product_id][] = $image->filename;
}
foreach($products as $p) {
print "<url>
<loc>".$simpla->config->root_url.'/products/'.$p->url."</loc>";
if(!empty($p_images[$p->product_id])) {
foreach($p_images[$p->product_id] as $img) {
print "
<image:image>
<image:loc>".$simpla->design->resize_modifier($img, 800, 600)."</image:loc>";
print "</image:image>";
}
}
print "</url>";
}
print "</urlset>";
?>
-
После создания этого топика, исполнитель со мной больше не связывался и каких либо попыток урегулировать данную историю не предпринимал. Заявление в полиции было написано и пока оно находится в ЮАО Москвы для регистрации и далее будет передано в центральный отдел УМВД России по городу Курску. Я это дело просто так не оставлю.
-
Что тут непонятного, человек хочет маркеплейс за две тыщи, лэндинг дороже стоит.
В том то и дело, что хотел получить полное готовое решение.
А получил копию файлов отвечающих за действия пользователей, которые переименованы в seller и добавлено 2 записи в базу.
Я как и говорил, написал обращение в Сбербанк и обращение в МВД https://xn--b1aew.xn--p1ai/request_main с номером обращения от Сбербанк. Увидимся при встрече твоего участка.
-
22 сентября я написал комментарий в топике с готовым решением от Mишани [2.*] Marketplace Pack
http://forum.simplacms.ru/topic/10255-2-marketplace-pack/?p=112226 с просьбой написать мне, если решение еще продается.
23 сентября мне в личные сообщения написал yaskin, что он готов продать мне решение.
дальше выдержка из личной переписки:
yaskin
Привет, ты интересовался Marketplace Pack для симплыготов продатьalexivchenkoДобрый день!Какая будет цена?yaskin10 тысalexivchenkoСтранно конечно, перепродажа за 10 тыс.За 8,5 еще понимаю, да и инструкции нет, Мишаня сам ставит.Как происходит передача файлов и денег, чтобы мне не быть обманутым?yaskin
к централ парку с флэшкой подходи, все покажу и передам
такая гарантия устроит?
alexivchenko
Смешно, а если серьезно?
yaskin
у тебя в профиле написано, что ты из Курска, это так?
alexivchenko
Я из Курска, точнее Поныри. Но работаю и проживаю в Москве
yaskin
Тогда смотри отзывы обо мне как о разработчике. Смысл мне кидать. Я дорабатывал магазин клиенту, Клиент забил на свой маркетлейс. Остался бэкап. Я его продаю, цена 10 тыс, это на 7 тыс дешевле, чем у мишани, который с западной Украины. Я из Курска, могу вживую все показать, поэтому и написал так, что можно при личной встрече передать. Поскольку ты в Москве, то ты кидаешь 10 тыс на карту, я тебе передаю ссылку на архив в облаке или яндексдиске. Инструкцию по установке напишу. Скопировать на хостинг файлы и базу думаю сам сможешь
alexivchenko
Не нашёл на форуме отзывов и в разделе Фриланс отдельного топика. Ну да ладно, будет на совести.Я готов купить, сделка будет в конце недели.Главное, чтобы все функционировало должным образом и работало как надо.yaskinокalexivchenkoПоследние вопросыКак я понял, что у вас уже сборка, а не отдельные файлы.Чтобы понять, вообще стоящая вещь?Функционал работает нормально, базу не сильно грузит?Ветка Simpla последняя?yaskinДа это полностью рабочая сборка, бэкап готового сайта. То есть не нужно танцевать с бубном при установке. Ставил клиенту ее мишаня, клиент даже каких-то продавцов привлек на сайт. Почему он его забросил, не знаю. Меня привлекал немножко функционал поправить. Симпла вообще сервер не грузит, может работать на обычном хостинге, там просто несколько доп. полей в базе добавлено. Поправите шаблон под себя и можно пользоваться.alexivchenkoЯ готов сегодня оплатитьПеревод на карту конечно рисково, можно сделать через гарант передачуПросто был опыт обмана и на большую ценуКидайте карту тогдаСбер, Тинькофф или Альфаyaskin
4276 .... .... 2231Нина АнатольевнаПереводите, в течении часа скину архивalexivchenkoОтправилyaskinПришли, сейчас соберу все в архив, отправлюalexivchenkoХорошо, только без обмана. Я эти деньги в долг взялyaskinсмысл обманывать), как есть так и отдам,сейчас только readme по установке допишу и скинуyaskin
readme по установке внутрискачаешь, отпишись, удалюalexivchenkoСкачалalexivchenkoЧто-то я не пойму, судя по описанию http://forum.simplac...e-pack/?p=77560Продавец не может сам зарегистрироваться так как нет файла view/SellerRegisterView.phpТак же, продавец не может указать контактные данные и платежные данныеНе происходит блокировка данных после активации продавцаПродавца не возможно сделать VIP такого функционала вообще нетПри добавлении продавцом товара нет выбора брендаНет возможности указывать несколько магазиновВ админке у продавца не отображаются товарыВ заказе не отображается кто продавецНет ввода наценки на товарНет переписки покупателя с продавцомНет оплаты для продавцаЧто-то вы мне продали за 10 тыс не рабочую копиюalexivchenko
Давайте я лучше к чертям удалю эту копию и обращусь к Мишане
yaskin
Я и не обещал, что будет все заявленное, я отдал вам бэкап готового рабочего сайта, сборку, которую мишаня ставил клиенту, под его хотелки, как есть.
alexivchenko
Стоп, в начальном сообщении вы написали, что готовы продать.И не указали, что у вас не полный модуль, а лишь часть из потребности какого-то заказчика.Я всю переписку просмотрел и вы нигде не указали, что не полный комплект, тем самым дали мне понять, что я приобрету модуль Мишани.Мне такой модуль не нужен, я брал заявленный по списку Мишаней.Мне и нужен он был именно из за того, чего не хватает.Получается вы продали мне не модуль который должен нормально работать, хрен пойми что.Я еще должен в него не мало вложить, чтобы дописали мне в него недостающий функционал.Возвращайте сумму!5469 .... .... 2901yaskinСимпла не модульная система, я отдал полный комплект файлов и базу, то есть полностью рабочий сайт, все то что установил туда мишаня. Со своей стороны я обещание выполнил.ps Файлы и база это не штаны, которые можно вернуть если не понравились. Поэтому манибака не будет, я не благотворительный фонд раздавать скрипты бесплатноyaskin
при покупке скрипта обычно демку просят посмотреть, вам это наверно не нужно было, значит все устроило
alexivchenko
Слушайте, я тоже не миллионер и не благотворительный фонд, чтобы платить за не полное готовое решение 10 тыс и потом понимать, что купил штаны без карман и молнии.Я написал в топике с готовым решением и готов был купить рабочее ГОТОВОЕ РЕШЕНИЕ в котором есть список того, что решение может. Вы мне написали, что у вас решение есть и готовы продать. А о том, что решение не полное и еще кучу надо переделывать не слова.В общем либо возвращайте сумму за вычетом 2000₽ ( за не до решение ) и расходимсяЛибо полную на карту, что писал выше.Иначе я составлю пост на форуме и напишу заявление в правоохранительные органы раз не понимаете.alexivchenkoЕще раз объясняю вамЯ написал комментарий в топике "Готового решения"Вы написали, что готовы продать мне и тем самым я понял, что у вас именно готовое решение.Вы не написали, что решение под хотелки заказчика и можете перед продажей показать демо.Так же я в ходе общения, спрашивал, что все ли работает, все ли функционирует.Ваш ответ был однозначным, что все работает как описано в топике от Мишани.Вы писалиДа это полностью рабочая сборка... Ставил клиенту ее мишаня...Тем самым я не просил демо, понимая, что ставил Мишаня и вы как человек "Фрилансер" должен давать себе отчет, что продаетЭтим постом хочу сказать, что yaskin не прав и должен вернуть деньги!
Я готов, чтобы он оставил себе 2000 рублей
Иначе я напишу заявление в Сбербанк и полицию
-
Готов купить, напишите мне
-
а где сама загрузка изображения на сервер
$image = $this->request->files('avatar'); if(!empty($image['name']) && in_array(strtolower(pathinfo($image['name'], PATHINFO_EXTENSION)), $this->allowed_image_extentions)) { move_uploaded_file($image['tmp_name'], $this->root_dir.$this->config->avatar_images_dir.$image['name']); $this->users->update_user($this->user->id, array('avatar'=>$image['name'])); }
ну и удаление изображения
$this->users->delete_image($user->id);
Спасибо вам огромное! А не подскажите еще, как сделать ресайз для аватарок?
-
Как сделать загрузку и сохранение фото клиента в папку files/avatars?
И вывод на странице user.tpl по типу аватар?
В БД s_users создал avatar varchar(38) NULL (нет) Default (default_avatar.png)
В config.php прописал
;Директория аватаров avatar_images_dir = files/avatar/;
В api/Users.php -> $query = $this->db->placehold (...) добавил u.avatarВ шаблоне/user.tplдобавил{if $user->avatar}<img src="{$config->avatar_images_dir}{$user->avatar}" alt="" />{/if} <input class='upload_image' name="avatar" type="file">
Форме прописал enctype="multipart/form-data"В view/UserView.phpПослеclass UserView extends View {
Добавилprivate $allowed_image_extentions = array('png', 'gif', 'jpg', 'jpeg', 'ico', 'bmp');
Вот тут и нужна помощь. Что дальше делать? -
Ну например это в view/ProductView.php
if($this->user) { $query = $this->db->placehold(" SELECT COUNT(p.product_id) as count FROM __purchases p LEFT JOIN __orders o ON o.id = p.order_id WHERE o.status = 2 AND o.user_id = ? AND p.product_id = ? ", $this->user->id, $product->id); $this->db->query($query); $this->design->assign('can_comment', $this->db->result('count')); }
И в файле шаблона сделать проверку
{if $can_comment} форма для комментария {/if}
Спасибо! Куда кинуть на кофе?
-
Привет!
Подскажите как сделать, чтобы комментировать могли только те, кто купил этот товар.
То есть, если заказ клиента ( авторизованного ) перешел в статус "Выполнен", то на странице купленного товара происходит проверка, что такой товар он приобрел и ему будет доступна форма комментариев, а гости могли только читать.
-
Кто-то делал под ТамТам?
-
Подскажите как сделать, чтобы {$product_purchase_count} отображался и в main.tpl и так же продажи считались если статус заказа в админке "Выполнен"
-
Спасибо @phukortsin
Во View/ProductView.php
перед
return $this->design->fetch('product.tpl');
вставить
// в заказах $q=$this->db->placehold('SELECT sum(pu.amount) am from __purchases pu, __orders o WHERE pu.order_id=o.id and pu.product_id=?', $product->id); $this->db->query($q); $am=(int)$this->db->result('am'); $this->design->assign('product_purchase_count', $am);
Для вывода в шаблоне product.tpl
В нужное место
Продаж - {$product_purchase_count}.
Подключение дополнительного диска к VDS и перенос папки files на него
in Общие вопросы по функционалу и дизайну
Posted
Указать путь к папке в config/config.php лишь часть, поэтому нужно ещё прописать именно в api/Config.php функцию которая будет обращаться в этот путь.
Как это сделать я ещё не знаю, но стало интересно.
Можно попробовать посмотреть как это сделано на других движках типа Wordpress или Livestreet.
Я находил лишь хранение файлов в папке на другом домене, а вот внутри одного локального хоста ещё не нашёл.