Search the Community
Showing results for tags 'отвечают знатоки'.
-
Сегодня заметил непонятное мне поведение ОС в сабжевой ситуации. Суть в следующем - беру чистую версию 1.5.4.1 (сначала обнаружил это на своей сильно измененной и подумал на свои кривые руки), регистрируюсь как покупатель, выхожу из аккаунта и жму восстановление пароля. Ввожу мыло и вижу ушедшее письмо с новым паролем на локалке. Теперь ключевой момент - если его открыть через разные почтовые клиенты, то увидим такую картинку: С виду все ок, но если попытаться ввести этот восстановленный пароль и залогиниться, ничего не выйдет. Сначала я полез в phpmyadmin и сравнил хеши измененного пароля (ид покупателя 3) и такого же пароля, который я вручную указываю в админке для нового пользователя (4), и какого же было мое удивление, когда у этих паролей все оказалось разным! Тогда я полез в исходники письма, и удивился второй раз за вечер - в исходниках-то пароль длиннее на один символ! ------=_NextPart_bcd3e43fd42e2b764a750d36c87f0cad Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Новый пароль был запрошен от Мой Магазин. Ваш новый пароль: 8d6d93a681 ------=_NextPart_bcd3e43fd42e2b764a750d36c87f0cad-- Оказывается, некоторые почтовые клиенты (из того, что я пробовал и что смогло открыть письмо в виде eml-файла, это оказался Outlook, Live mail, Kernel eml viewer) по каким то причинам обрезают последний символ в пароле, в итоге письмо зрительно выглядит корректно, но пароль таким письмом восстановить никогда не удастся, только если не полезть в исходники. Кто что думает? На почту (гмейл по крайней мере) все приходит как надо, но я очень часто вижу людей, которые до сих пор пользуются The Bat или аутлуком..
-
Всем привет, вопрос скорее к разработчикам, которые зарабатывают в нац. валюте и получают переводы в яндекс.деньгах например. Все видят какой сейчас курс, и ожидать серьезного улучшения ситуации наивно, поэтому интересно кто как спасает заработанное от обесценивания? Я сейчас вижу несколько путей, от действий "в лоб" - вывода денег в наличку и покупки доллара - до каких то более заумных схем с открытием валютного депозита или какой-то экзотики типа перевода части денег в WMZ или биткойны и т.д. Поделитесь пожалуйста опытом, кто как сейчас решает эту проблему и какой способ вы считаете выгоднее?
-
При поступлении новых отзывов на сайте иногда замечаю, что старательно набранный большой и красивый отзыв из-за особенностей публикации и хранения этих самых отзывов в бд, на сайте выглядит ужасно, все переносы удаляются, и получается сплошная каша из текста. Я попробовал сам понять из-за чего так, и столкнулся со странным моментом. В контроллере вывода отзыва есть такая строка text' => strip_tags($result['text']), которая вырезает все html-теги из отзыва. Но зачем это сделано? Ведь при наборе отзыва html преобразовывается в текст, и если убрать strip_tags, то скажем, перенос строки, записанный в отзыв как br /> будет выведен как <br /> Но при этом переносы, сделанные через enter, в бд сохраняются как спецсимволы в духе \n\r Я добавил в первую строку функцию nl2br, получилось так: text' => nl2br(strip_tags($result['text'])), в результате отзывы стали выводится такими, какими их набирают посетители, интересно знать, корректное ли это решение?
- 13 replies
-
- отвечают знатоки
- перенос
-
(and 1 more)
Tagged with:
-
У меня вопрос к опытным разработчикам - надоело ставить костыли в шаблоны и решил приобщиться к таинствам разработки человеческих модулей для перенесения настроек шаблона в админку. Я взял болванку готового модуля, очистил ее от лишнего и получилось нечто, что имеет в настройках лишь переключатель yes/no, соответственно если выбран yes, то значение единственного свойства модуля (mymoduleproperty) равно 1. Потом я добавил в контроллер product.php такой кусок $this->data['mymodule_settings'] = $this->config->get('mymodule_settings'); if ($this->config->get('mymodule_mymoduleproperty')) { $this->data['mymoduleproperty'] = $this->config->get('mymodule_mymoduleproperty'); } else { $this->data['mymoduleproperty'] = false; } и смог в шаблоне вывести в нужном мне месте значение свойства, но это изменение базового контроллера, для чего нужен vqmod (а в некоторых шаблонах, которые я видел, авторы вообще без тени смущения перезаписывают контроллер header.php), а его использовать не хотелось бы. Поэтому вопрос - как правильно это сделать БЕЗ vqmod и перезаписи, если мне модуль нужен лишь как место хранения и изменения настроек шаблона?
-
Всем привет, недавно запустили на самых крупных тематических форумах баннерную рекламу с интересными большими скидками, и то ли лыжи не едут, то ли я переоцениваю количество людей, не знающих про адблок - выхлопа практически ноль, переходов совсем единицы, про заказы лучше вообще не говорить :) Либо это баннерная слепота развилась так сильно, я уж не знаю. У кого как с этим дела обстоят, пробовали ли нечто подобное и как это сработало?
-
Мы работаем с некоторыми бестолковыми дилерами, которые со временем перестают нормально следить за товаром, или его вечно нет, короче появляется задача удалить все товары определенных категорий определенного производителя, и не допустить там появления этих товаров в будущем. Поскольку эти чистки базы придется повторять не раз, мне кажется логичным составить приблизительный запрос и иногда прогонять его по базе, а не заставлять менеджеров удалять все руками из админки каждый раз, когда в этом возникнет необходимость. Я смог скомпоновать запрос, используя модель из модуля фильтра товаров в админке, получилось вот так (мультиязычность и префиксы убрал, так как у меня этого не нужно): SELECT p.product_id FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p2c.category_id = '100' AND p.manufacturer_id = '50'; т.е. здесь выводятся ид всех товаров производителя 50 из категории 100. Для удаления есть запросы из ф-ции deleteProduct, которую вы все знаете $this->db->query("DELETE FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_description WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_discount WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_image WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_option WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_option_value WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE related_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_reward WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_download WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_layout WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "product_to_store WHERE product_id = '" . (int)$product_id . "'"); $this->db->query("DELETE FROM " . DB_PREFIX . "review WHERE product_id = '" . (int)$product_id . "'"); Так вот, вопрос - как можно (и возможно ли вообще) объединить все эти делиты в один (у меня MySQL новее 4), чтобы не дублировать в условии для каждого из них верхний селект, а указать одно общее условие: WHERE ... IN (SELECT p.product_id FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p2c.category_id = '100' AND p.manufacturer_id = '50');
-
Всем привет, предыстория - раньше магазин работал без регистраций, а сейчас решил его перевести на обязательную, но ласковую, регистрацию (с автоотправкой пароля, минимумом полей, короче чтобы покупатели не жаловались и вообще не замечали, что их автоматом регистрируют в магазине). На почве этого столкнулся с очень загадочным разделом ОС - Личный кабинет, куда раньше не смотрел даже. В частности, есть там такая штука, как История заказов, которая выводит список всех заказов, сделанных одним юзером. Есть в этом списке интересное поле с именем Товаров: Интересно оно тем, что вместо, казалось бы, логичного вывода суммарного количества всех товаров в заказе, в этом поле выводится количество уникальных товаров (заказ был на 5 телефонов одной марки, соответственно количество уникальных позиций = 1, но всего телефонов-то 5!): Считается вся эта радость ф-цией getTotalOrderProductsByOrderId из файла \catalog\model\account\order.php Я ее изменил с такого вида $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'"); на такой $query = $this->db->query("SELECT SUM(quantity) AS total FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'"); и считаться стало гораздо логичнее. Вроде бы обращений к этой функции нет в других местах, кроме основного контроллера \catalog\controller\account\order.php А значит изменения должны быть безболезненными (гуру, поправьте меня, если я сделал глупость).
-
Доброго! Реальная ситуация на работе - есть хорошие постоянные покупатели, которым иногда делаем скидку для более красивой суммы заказа, ну или как договоримся, например за все про все получилось 9132.48, а мы скидываем 132.48. Раньше учет заказов не велся в админке, но теперь я решил туда перевести все, и столкнулся с такой проблемой - итоговая сумма привязана к стоимости товаров, и не редактируется. Мне пришла в голову идея реализовать такие скидки в виде купонов на фиксированную сумму, т.е. на каждый такой заказ применять универсальный купон, в котором будет указана каждый раз разная сумма скидки, но вероятно есть способ или модуль удобнее? Может кому-то попадалось на глаза?
- 12 replies
-
- отвечают знатоки
- скидка
-
(and 1 more)
Tagged with:
-
Всем привет! Уже давно интересна эта тема, но все никак не было времени заняться, а сейчас вроде появилось и время, и желание, посему вопрос - с чего начать? Какие книжки/ресурсы посоветуете? Есть небольшой опыт работы с Eclipse. Мне вот знакомые советовали этот сайт как идеальный вариант для тех, кто не хочет писать сложные игры или проги, а просто чтобы быть "в теме" и уметь написать свой калькулятор :-)