Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

auditor

Користувачі
  
  • Публікації

    186
  • З нами

  • Відвідування

Усі публікації користувача auditor

  1. тогда самое время начать собирать свою базу fingerprint и банить по современным методам.
  2. Не нашел в своем архиве дистрибутива 1.5.4, нашел предыдущую версию, глянул в модель, там действительно, выцепляет только данные с таблицы oc_category: public function getCategory($category_id) { $query = $this->db->query("SELECT DISTINCT *, (SELECT keyword FROM " . DB_PREFIX . "url_alias WHERE query = 'category_id=" . (int)$category_id . "') AS keyword FROM " . DB_PREFIX . "category WHERE category_id = '" . (int)$category_id . "'"); return $query->row; } решением же для вашего вопроса, могу предложить добавить метод выборки данных раздела (файл: admin\model\catalog\category.php) перед функцией, что описана ранее: public function getFullCategory($category_id) { $query = $this->db->query("SELECT DISTINCT *, (SELECT GROUP_CONCAT(cd1.name ORDER BY level SEPARATOR ' > ') FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "category_description cd1 ON (cp.path_id = cd1.category_id AND cp.category_id != cp.path_id) WHERE cp.category_id = c.category_id AND cd1.language_id = '" . (int)$this->config->get('config_language_id') . "' GROUP BY cp.category_id) AS path, (SELECT keyword FROM " . DB_PREFIX . "url_alias WHERE query = 'category_id=" . (int)$category_id . "') AS keyword FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd2 ON (c.category_id = cd2.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd2.language_id = '" . (int)$this->config->get('config_language_id') . "'"); return $query->row; } ну и в самом файле, там где ошибка в 74 строке, заменить: $category = $this->model_catalog_category->getCategory($category['category_id']); на: $category = $this->model_catalog_category->getFullCategory($category['category_id']); ~~~ по опциям же, надо смотреть функцию, в том же файле, где ошибки, под названием optionValues, а действовать - по аналогии, в общем - направление дал, вместо вас делать не буду... за лайк решения, заранее спасибо.
  3. В шапке сайта дублируется вывод корзины в 2-х местах, соотв. дублируются и id="cart" и зависимые блоки, наведите порядок с версткой, потом задайте вопрос по новой.
  4. перепроверил, все верно, посмотрите и вы, правильно ли заменили учаток выше, на: if ($result['image'] && file_exists(DIR_IMAGE . $result['image'])) { $my_dop_image = $result['image']; } else { $my_dop_image = 'no_image.png'; } $data['images'][] = array( 'popup' => $this->model_tool_image->resize($my_dop_image, $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_height')), 'thumb' => $this->model_tool_image->resize($my_dop_image, $this->config->get('theme_' . $this->config->get('config_theme') . '_image_additional_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_additional_height')) ); если ошибка не пропадает, то добавьте, пожалуйста, под спойлер, код модифицированного файла, что бы увидеть строку 317 с ошибкой или отпишите в ЛС, с указанием данных для подключения по TeamViewer
  5. для товара находим 2-ва места в которых есть следующий код: if ($product_info['image']) { и заменяем на (это для главного изображения): if ($product_info['image'] && file_exists(DIR_IMAGE . $product_info['image'])) { а для доп. изображений, находим участок: $data['images'][] = array( 'popup' => $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_height')), 'thumb' => $this->model_tool_image->resize($result['image'], $this->config->get('theme_' . $this->config->get('config_theme') . '_image_additional_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_additional_height')) ); и заменяем на: if ($result['image'] && file_exists(DIR_IMAGE . $result['image'])) { $my_dop_image = $result['image']; } else { $my_dop_image = 'no_image.png'; } $data['images'][] = array( 'popup' => $this->model_tool_image->resize($my_dop_image, $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_popup_height')), 'thumb' => $this->model_tool_image->resize($my_dop_image, $this->config->get('theme_' . $this->config->get('config_theme') . '_image_additional_width'), $this->config->get('theme_' . $this->config->get('config_theme') . '_image_additional_height')) ); p.s. для очистки "битых ссылок" (удаление из базы путей, файлов которых нет на сервере), то надо дополнительно в админке прописать блок, с перебором поля рисунок таблицы товара, объединив массив с таблицей доп. рисунков, и добавить аналогичную проверку на file_exists и в случае не нахождения файла по пути - DELETE запись из базы по ключу product_id
  6. в контроллере, который вызывает товар для отображения (например контроллер модуля последние [latest]): находим: if ($result['image']) { и заменяем на: if ($result['image'] && file_exists(DIR_IMAGE . $result['image'])) { тогда получится не просто проверка на наличие ссылки из базы но и наличие файла по указанному пути из базы, только в этом случае выводить будет изображение, в противном случае, под данное условие не попадает и соотв. будет выведен } else { - тоесть вывод изображения no_image
  7. на скрине отображено "related" - тоесть связанные товары, которые выводятся во вкладке товара под названием "рекомендуемые", контроллера как такового нет, весь код интегрирован в коде товара. Если речь идёт о "автоподборе", то логика подтягивания товаров через метод autocomplete происходит.
  8. доброго времени, от 350 $ возьмусь командой, более точная сумма зависит от ТЗ, версии движка, шаблона.
  9. что бы получить массив с отзывами, следуем дальнейшему алгоритму: шаг 0: подключаем модель отзыва в нужном контроллере (файле) $this->load->model('catalog/review'); шаг 1: добавляем параметры выбора отзывов (можно проставить $limit = 0, если надо выводить все, так же можно переменную с config админки подключить) $limit_reviews = 33; шаг 2: получаемс сам массив: $this->data['reviews'] = array(); $reviews = $this->model_catalog_review->getAllReviews($limit_reviews); foreach ($reviews as $review) { $this->data['reviews'][] = array( 'author' => $review['author'], 'text' => $review['text'], 'rating' => (int)$review['rating'], 'date_added' => date($this->language->get('date_format_short'), strtotime($review['date_added'])) ); } шаг 3: добавь в файл модели (catalog\model\catalog\review.php) новый метод, перед public function getTotalReviewsByProductId($product_id) { public function getAllReviews($limit = 0) { $query = $this->db->query("SELECT review_id, author, rating, text, date_added FROM " . DB_PREFIX . "review WHERE status = '1' ORDER BY date_added DESC LIMIT " . (int)$limit); return $query->rows; } шаг 4: в нужном .TPL файле у тебя будет переменная $reviews содержащая все отзывы магазина, отсортированные по последней дате добавления и в органиченном кол-ве $limit P.S. Вместо спасибо, нажми просто + в репутацию, если помог или понравилось решение. Сорян, с первого раза не понял ТС, набросал универсальное решение для вывода отзывов в любом месте магазина.
  10. Квалификация есть: более 8 лет узкоспециализированной работы с опенкарт разных версий, а вот по поводу времени, то вопрос к Вам: есть ли ТЗ (технические задачи) касательно каждого проекта в отдельности и по общим просьбам, сотрудничаю командой, есть и семантисты, и програмеры, и копирайтеры, с верстальщиком сложно, постоянного пока в штате нет, обращаемся на фриланс.
  11. в журнале ошибок есть какая то запись ?
  12. Вітаю, прошу тут ознайомитись з деякими рішеннями, щоб не дублювати готовий код:
  13. Во первых, создать отдельно группу от админов, например "редакторы", во вторых - заказать дополнительно разработку, под свою версию ОС, которая будет выглядеть примерно вот так: где выделенными пунктами обозначены категории, которые разрешены для редактирования, при попытке редактировать неразрешенный раздел - переброс на общий список с товарами.
  14. мой копирайтер подправил: 3 раза повтор ключа в тексте (максималка, больше - переспамленность), нет перелинковок на каталог по СЧ\ВЧ, а так, то вполне читабельно, лишь бы антиплагиат уникальность принял, остальное - норм., фото перед заливкой советую обрабатывать через XnConvert
  15. 1. Смотря за какое кол-во знаков оплата 2. Будет ли вхождение при рерайте с ключевиками (тоесть проработка семантики) 3. Фото для статьи или для самого товара ... огласите цену, по которой Вам предложили ? у моих копирайтеров (не рерайт) СЕО статьи от 200 р. за 1500 збп, с вхождение по ключам, без фото., если заказ на более чем 15 статей, то цена 190 р. за 1500 збп.
  16. Согласен на постоянку, при условии написания задач, оплата - по факту выполненных задач, при постоянном сотрудничестве - скидка.
  17. KeePass, не, не слышал... + автогенератор паролей, юзернейм моеш один иметь, но прописывать под отдельный портал с регой - отдельный пасс
  18. я эти письма уже более 3-х месяцев тому получаю, кстати, пароль оригинальный высылают, НО... зарегистрированный на определённом ресурсе, если есть практика использования при каждой реге новый уникальный пасс - то можно отследить, откуда слито, а вот если ты пользуешся бабской методикой паролирования (один логин\пасс на все реги) то тут таки сложно будет держать самообладание, а вдруг не фейк ? у меня так у знакомой, когда меня вызвали, угнали не только все средства с електронных кошелей, но и рассылку по мылу, скайпу и вайберу... и все из за чего ? правильно... хакнули мыло и с этими же авторизационными данными - пошли по списку, где оказалось - универсальным логином с паролем. так что будьте бдительны, регистрируясь на "трастовых" сайтах, хотя бы элементарно "мастер-пароль" не используйте.
  19. помню несколько лет тому, был взломан опенкартфорум, тогда перепрописали файл response и продвигали свой портал, но что то особой шумихи тогда небыло, переписали сборку, попросили перезаписать файл и всего то, вот и тут, автор заверил что в новых версиях фикс экранирован, а кто варезом пользуется - пусть имеет дыры - это их бремя, а порядочные пользователи - автоматом обновят патч, а владельцу сайта скажите, что бы покупал модули, а если есть чего под кубом, пусть переплатит грамотному кодеру, тот методом исключения проверит, через какой файл шелл вливается и пожертвует модулем или - подберёт аналог, толку из мухи слона тут лепить ?!
  20. Хороший анализ на XSS, а если нет VPS и большинство на обычном тарифе ? Есть ли настройки у мода, не автообновлять данные (не делать запрос на сервер) ? Единственное, что мог бы посоветовать автору - использовать CSRF токен, при валидации автообновления или формы, что бы внешним обращением не обойти валидатор.
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.