Перейти к содержанию

Engineer

Пользователи
  • Публикаций

    69
  • Зарегистрирован

  • Посещение

Репутация

7 Обычный

Информация о Engineer

  • Звание
    Пользователь

Информация

  • Пол
    Мужчина
  • Город:
    на трассе Черноморск-Удоевск :)

Контакты

  • Skype
    andrey.od

Посетители профиля

2 190 просмотров профиля
  1. Engineer

    Баги на форуме

    При указании разметки в ответе новый форум, похоже, чихал с высокой колокольни на нее Переводы строки, блок кода точно в упор не видит. А на выходных это еще работало.
  2. Engineer

    Вопросы по корзине.

    Новый форум - это нечто. Полностью сожрало разметку. Попробую повторить. Правильно поняли, что "что-то не так" $json['total'] - это не число товаров в корзине, а уже отформатированная строка ответа " Икс товаров на Игрек тугриков". Число товаров в корзине - это $this->cart->countProducts(), код который вам нужен должен выглядеть где-то так Например: if($this->cart->countProducts() == 0) $json['total'] = ... if($this->cart->countProducts() == 1) $json['total'] = ... Обратите внимание, сравнение в php не = (как у вас в коде - это присвоить значение), а == $data['text_items'] - это, тащем-та, тот самый шаблон, вида "%s товаров - %s денег". Он вообще не для правки в коде :) На вашем месте я бы вообще определил в языковом файле language/(язык)/checkout/cart.php несколько текстов для разных вариантов вида: $_['text_items1'] = "%s товаров - %s денежных единиц. Немного подкреплюсь" и использовал бы их.if($this->cart->countProducts() == 1) $json['total'] = sprintf($this->language->get('text_items1'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total)); Что делает код: если число товаров в корзине равно единице, то в заполняет места в шаблоне (первый аргумент функции sprintf, до первой запятой) для подстановки ( %s ) параметрами. Первый - от первой до второй запятой в функции sprintf (второй аргумент) считает число товаров и купонов, второй - после второй запятой (третий аргумент), сумма. Если не нужен вывод числа товаров, суммы - правите шаблоны и убираете из sprintf ненужные параметры.
  3. Engineer

    Вопросы по корзине.

    Правильно поняли, что "что-то не так" $json['total'] - это не число товаров в корзине, а уже отформатированная строка ответа " Икс товаров на Игрек тугриков". Число товаров в корзине - это $this->cart->countProducts(), код который вам нужен должен выглядеть где-то так. if($this->cart->countProducts() == 0) $json['total'] = ... if($this->cart->countProducts() == 1) $json['total'] = ... Обратите внимание, сравнение в php не = (как у вас в коде - это присвоить значение), а == $data['text_items'] - это, тащем-та, тот самый шаблон, вида "%s товаров - %s денег". Он вообще не для правки в коде :) На вашем месте я бы вообще определил в языковом файле language/(язык)/checkout/cart.php несколько текстов для разных вариантов: $_['text_items1'] = "%s товаров - %s денежных единиц. Немного подкреплюсь" и использовал бы их. Например:if($this->cart->countProducts() == 1) $json['total'] = sprintf($this->language->get('text_items1'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total)); Что делает этот код: если число товаров в корзине равно единице, то в заполняет места в шаблоне (первый аргумент функции sprintf, до первой запятой) для подстановки ( %s ) параметрами. Первый - от первой до второй запятой в функции sprintf (второй аргумент) считает число товаров и купонов, второй - после второй запятой (третий аргумент), сумма. Если не нужен вывод числа товаров, суммы - правите шаблоны и убираете из sprintf ненужные параметры.
  4. Да, разумно и справедливо. Владелец может быть и не в курсе, как выполнена работа. Если нормальный человек - купит и извинится, потому что все понимает. А если не понимает или очень жадный - и на таких есть методы. Кстати, в рамках борьбы с варезом можно было бы ввести услугу аудита за символическую плату (сколько там той работы проверить дополнения). И владелец магазина может после этого спать спокойно, и можно даже какие-то плюшки за это предусмотреть.
  5. Спрос рождает предложение. Убейте спрос на варез, и тогда предложение ворованных у вас модулей даже задаром никому не будет интересно. Владельцам магазинов, в раскрутку которых вложено и времени, и средств, и которые пойманы за руку на использовании вареза, куда проще "сделать предложение, от которого они не смогут отказаться", чем анонимусу-нулевику. С них есть, что взять, на них проще надавить. Те же "письма счастья" провайдерам, в гугл с просьбой блокировать выдачу в поиске за нарушение цопирайта - это перебои в работе магазина даже до суда, это больно. И да, за урегулирование вопроса и мирное соглашение брать в разы больше цены модуля. Тогда и финансирование разных "комиссий" и "комитетов" по защите будет не с авторов, и не с добросовестных покупателей, а с воров/юзеров вареза. И это устроит всех, кроме последних :)
  6. На самом деле вопрос напрямую связан с ioncube и другими шифровальщиками/обфускаторами. ПО с открытым кодом не панацея, но сила его в том, что из толпы пользующихся рано или поздно десяток заметят подобные бекдоры, ошибки, и это будет поправлено. Поэтому, кстати, опенсорсные сервера теснят проприетарные - ошибки, критические уязвимости находятся и устраняются быстрее. Шифрование убивает это на корню и означает, что все это отдается на произвол одного человека, а значит подобные ситуацию могут раз за разом повторяться. И пока возникнут подозрения, пока подозрения перерастут в уверенность, пройдет достаточно времени, чтобы "обрадовать" часть владельцев магазинов с таким "подарком". Ну и да, куб - нарушение лицензии, под которой распространяется Opencart. Это радужная перспектива анальных кар, как для разработчиков кубированых модулей, так и владельцев магазинов (их конечный скрипт тоже производная от кода под GPL) Пусть ставят свечки за здоровье Даниэля, который пока не следует примеру "всемирно известных компаний" с их рейдами за чистоту лицензирования. Имхо, правильный ответ надо искать в другой плоскости: как "палить" магазины с ворованными модулям. Тогда и в модулях останется открытый код, что будет лучшей гарантией против подобных ситуаций, и разработчики модулей получат свое вознаграждение.
  7. Engineer

    Вопросы по корзине.

    Блин, парни, откуда такая любовь удалять гланды через задний проход? Чуть теории. Манипуляции с содержимым виджета корзины происходят с помощью функций add и remove контроллера catalog/controller/checkout/cart.php. Если "не сложилось", например попытались добавить товар без обязательной опции, в ответе будет json['redirect'] на страницу товара. Если все хорошо, в ответе json будет поле total, которое скрипт на странице подхватывает и вставляет как текст в виджет корзины. $json['total'] = .... это оно. По умолчанию, "из коробки" вывод формируется в виде "{количество} товаров - {сумма}", независимо от количества товаров и суммы, даже нулевого. Если хочется, чтобы в зависимости от количества выводились разные надписи, то вместо коробочного единого текста делаете if или switch по $this->cart->countProducts() (это функция подсчета числа товаров в корзине) и там уже по вариантам количества ( ноль, не ноль, другие цифры) делаете свой вывод. В итоге вместо дефолтного присваивания у вас будет конструкция вида: Если А $json['total'] = ... Если B $json['total'] = .... и т.д. Можно добавить в языковый файл корзины разных текстов и их использовать для таких случаев. Вышеизложенное для опенкарта из коробки. Если стоит тема и что-то правит по-своему, надо разбирать ее и править по тому же принципу
  8. Не должно быть критично. А вообще, для опорных цифр, ориентиров, сделайте копию магазина, соберите все товары в одну категорию и в файле catalog/model/catalog/product.php сделайте маленькую правку: 1. найдите функцию getProducts 2. и строчку в ней, где задаются лимиты на вывод закомментируйте ее и вместо нее пробуйте $sql .= " LIMIT 0,100" 200,300...1000, 5000, 10000 и т.п. Открывайте ту категорию, куда все собрали, и смотрите, как быстро выводит. Тк скзать, научным тыком определите, когда ваш магазин на вашем хостинге в ваших условиях начнет захлебываться.
  9. Скорее всего этим вы просто убьете магазин. В опенкарте есть одна особенность реализации получения списка товаров : после предварительного запроса для получения списка товаров подходящих по условиям(категория и т.д.) для каждого(!) товара из этого списка потом вызывается функция с отдельным sql-запросом к БД. Из-за этого стандартные 20-50 товаров на странице еще не так болезненно, но если в категории сотни товаров и вы захотите получить все сразу, то получите бешеную нагрузку на сервер сзади и тормоза на выходе спереди. Если товаров еще больше, то "стремительным домкратом" растут шансы на то, что вывода вообще не будет. Сервер просто убьет по таймауту php скрипт, пока тот дожидается ответа от БД. Если же вывод всех товаров так критичен, что просто жить без этого никак, надо в первую очередь переписывать модель( и возможно оптимизировать под вас). Все остальное - внешняя возможность выбора "все товары", использование ее по умолчанию, передача этого нового параметра внутрь для исполнения - только вершина айсберга.
  10. Скорее всего у блока вылетевшего в шапку в стиле position: absolute, а у его родителя-контейнера не выставлен position: relative. Вот его и позиционирует по координатам не внутри родителя, а на странице
  11. 1. Хотелось бы взглянуть на сайт (ссылку). 2. Какая тема/шаблон использованы. 3. Чем пользовались для стикеров (модуль, что-то свое)
  12. Вывод задается в шаблоне: catalog/view/theme/default/template/product/category.tpl Если тема не дефолтная, соответственно меняется путь. Там ищете $description - переменная в которой описание категории, будет выглядеть как-то так. Смысл фрагмента: если есть картинка для категории $thumb или описание $description - вывести их. Смотрите по разметке, куда его вам хочется перенести - переносите код туда, и вуаля!
  13. У меня знакомая из РФ, из Е-бурга влетела на Гепатит С. Пренеприятнейшая дрянь. Ну и по ходу лечения начала узнавать цены. Софосбувир(кажется) стоил чуть ли не на порядок дороже ( раз в 6-7) чем дженерик из Индии. Та же формула, то же действующее вещество, просто без раскрутки, рекламы, бренда, лейбла и т.п. Дженериком, ну нонейм, торгуют чуть ли не из под полы, всячески стопорят лицензирование, разрешения. Вот на этой накрутке в 6-7 раз и можно проводить семинары для врачей, приплачивать дилерские аптекам и прочее. Нужен только лох, который будет за все это платить. А тему принудительного лицензирования, как в Индии, когда изобретателю платят фиксированный процент от сбыта и делают у себя, почему и выходит в разы дешевле, прикрыли, что в России, что в Украине - "снижает инвестиционную привлекательность". Такие дела.
×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.