Leaderboard
Popular Content
Showing content with the highest reputation on 06/30/2023 in all areas
-
Version 1.0.0
Зручний мультимовний візуальний редактор CKEditor для оформлення тексту товарів, категорії, блогу та інших описів з розширеним функціоналом та можливостями в які входять до 80 функцій. DEMO 2х: http://opencart-2.parallax.com.ua/admin/ DEMO 3х: http://opencart-3.parallax.com.ua/admin/ Логін і пароль: demo Основні переваги візуального редактора CKEditor Full: - Легкість в встановленні - Підтримується на всіх сторінках адмінки (товари, статті/ блоги або сторонніх модулях) - Мультимовність редактора (в залежності якою совою буде адмінка, такою буде і редактор) - Неймовірна великий набір функцій для роботи з описом (приблизно 80 функцій), невеликий перелік з них: Робота з текстом фон/розмір/колір/стиль Вставляти відео як mp4 та із youtube (з налаштуваннями розміру або увімкнення адаптивності та інші) Вставляти форми/поля/кнопки Можливість зберігати опис в PDF форматі Вирізати/Вставляти/Вставляти лише текст Та багато інших приємних дрібниць з якими Ви можете ознайомитись в демо Texпідтримка Ліцензія угода$101 point -
Version 1.2
Зручний файл менеджер для роботи із зображеннями - пакетним завантаженням фотографій, редагуванням зображень, зручним пошуком, сортування та багато іншого для спрощення і пришвидшення роботи із зображенням товарів. New update: - Додано мультивибір (декілька зображення одночасно) для товару. Тепер це стало ще зручніше, завантажили декілька зображень і зразу вставили їх або при редагуванні товару зразу можете декілька зображень нових додати/вибрати. - Додано автоматичну транслітерацію назв з кирилиці в латиницю під час завантаження файлів. - Додано підтримку SVG файлів. ОПИС ФУНКЦІОНАЛУ ФАЙЛ МЕНЕДЖЕР ЗОБРАЖЕНЬ Основні переваги Файл Менеджера Зображень: - Завантаження декількох зображень одночасно - Можливість завантаження зразу всю папку з файлами - Мультимовність файл менеджера - Мультивибір (декілька зображення одночасно) для товару - Можна перейменовувати фали папки - Змінювати розташування файлів/папок - Змінювати найменування файлів/папок - Сортування файлів/папок - Швидкий і якісний пошук - Зручна система каталогу - Можливість створювати та редагувати папки каталогу - Можливість редагування зображення розміри, обрізати, повертати зображення - Та багато інших дрібних та приємних дрібниць які полегшують роботу з файлами Texпідтримка Ліцензія угода$101 point -
Version 2.1 / 2.3.x / 3.0.x / 4.0.x
15,287 downloads
Повна українська локалізація магазину та адміністративної частини. Працездатність перевірена. Апострофи коректні. Відсутні будь-які копірайти у файлах перекладу. Відсутнє невиправдане використання великих літер і знаків оклику. Наприклад: "Вы вышли из Вашего Личного Кабинета" = "Ви вийшли з особистого кабінету" и "...благодарим Вас за регистрацию!!" = "...дякуємо за реєстрацію". Архіви і відповідність версіям OpenCart: ukrainian-clear-install_OC23.ocmod.zip - призначений для використання на чистій установці магазину на базі OpenCart версії 2.3.* ukrainian-ocstore_opencart-2.1.x.zip - призначений для використання на OpenCart або ocStore версії 2.1.* ukrainian-ocstore_opencart-2.3.x.zip - призначений для використання на OpenCart або ocStore версії 2.3.* ukrainian-ocstore_opencart-3.0.x.zip - призначений для використання на OpenCart або ocStore версії 3.0.* ukrainian_language.ocmod.zip - призначений для використання на OpenCart версії 4.0.1.1 language_ukrainian.ocmod.zip - призначений для використання на OpenCart версії 4.0.2.3 Установка: Скопіюйте вміст папки upload в корневий каталог вашого сайту. Перейдіть в меню Система (System) -> Локализация (Localisation) -> Языки (Languages) -> Добавить язык (Add New) Використовуйте наступні параметри для нової мови: Для версій 2.3.х та 3.0.х Назва: Українська Код: uk-ua Кодування: uk_UA.UTF-8,uk_UA,ukrainian Статус: Включено Для версії 2.1.х Назва: Українська Код: uk Кодування: uk_UA.UTF-8,uk_UA,ukrainian Директорія: ukrainian Зображення: ua.png Статус: Включено Після установки пакету локалізації необхідно додати переклад для всіх обов'язкових полів в налаштуваннях модулів, шаблону, тощо. Це необхідно для уникнення реєстрації помилок виду Undefined offset Для версії 3.0.х також необхідно додати ЧПУ для української мови всюди де це доступно (товари, категорії, статті, тощо) Установка на OpenCart 4.0.x Файл перекладу для версії 4.0.1.1: ukrainian_language.ocmod.zip Файл перекладу для версії 4.0.2.3: language_ukrainian.ocmod.zip Перейдіть в меню Extensions -> Installer Натисніть кнопку Upload та оберіть файл language_ukrainian.ocmod.zip Натисніть кнопку Install на доповненні "OpenCart 4 Ukrainian Language" Перейдіть в меню Extensions -> Extensions, оберіть тип доповнень Languages та натисніть кнопку Install доповнення "Українська локалізація" В процесі установки доповнення локалізації будуть внесені такі зміни у базу даних: - Додано SEO URL для української мови, з префіксом /ua (у разі її відсутності) - Додано валюту Гривня (у разі її відсутності) - Додано переклад назви групи покупців за замовчуванням - Додано переклад стандартних одиниць виміру - Додано переклад стандартних одиниць ваги - Додано переклад назв стандартних статей - Додано переклад стандартних опцій - Додано переклад стандартних статусів замовлень - Додано переклад стандартних статусів наявності на складі - Додано переклад стандартних статусів повернення - Додано переклад стандартних операцій повернення - Додано переклад стандартних причин повернення - Додано переклад стандартних тем подарункових сертифікатів 5. Перейдіть у налаштування перекладу та переведіть у стан Включено параметри "Статус перекладу" та "Статус модуля", та збережіть зміни 6. За потреби зробіть українську мову основною у налаштуваннях магазину: System -> Settings -> Налаштування магазину -> вкладка Local Після установки пакету локалізації необхідно додати переклад для всіх обов'язкових полів в налаштуваннях модулів, шаблону, тощо. Також необхідно додати ЧПУ для української мови всюди де це доступно (товари, категорії, статті, тощо) =================================== Додатково В архів з перекладом ukrainian-ocstore_opencart-3.0.x.zip поміщений файл для перекладу областей, статусів замовлень та іншого, з розділу Локалізація - localization.sql. Файл створений для застосування імпортом в phpMyAdmin. Він не інсталюється разом з модифікатором та не призначений для застосування інструментом імпорту в самому Opencart. Увага! При застосуванні файлу назви областей України будуть заміщені. Це означає, що області України будут названі українською незалежно від обраної мови інтерфейсу сайту. Інші зміни в БД будуть застосовані тільки для української мови, значення для інших мов залишаться незмінними. Файл ukrainian-clear-install_OC23.ocmod.zip призначений ТІЛЬКИ для використання на чистій установці магазину на базі OpenCart версії 2.3.* Оскільки даний пакет локалізації вносить зміни в базу даних, це може призвести до непередбачуваних наслідків в існуючих магазинах. Перед установкою пакету ОБОВЯ'ЗКОВО зробіть резервну копію бази даних. В установку включено: Порядок установки: Працює з: ocStore 2.1.* / 2.3.* / 3.0.* OpenCart 2.1.* / 2.3.* / 3.0.* / 4.0.* OPENCART.PRO 2.1.* / 2.3.* OpenCart Русская сборка 2.1.* / 2.3.* / 3.0.* Пропозиції та зауваження пишіть в тему підтримки. Запити на локалізацію шаблонів/модулів/доповнень - в особисті повідомлення. Зроблено з вFree1 point -
Модуль "Счет-фактура" позволяет загружать открывать Счет-фактуру, Расходную накладную и Гарантию в виде PDF-файла. Также модуль имеет множество дополнительных параметров PDF-файла. Особенности: 1. Список заказов с функционалом печати 2. Печать "Счет-фактура", "Расходная накладная", "Гарантия" 3. Скачивание "Счет-фактура", "Расходная накладная", "Гарантия" 4. Форматы печати А4 или А5 5. Добавление нескольких продавцов 6. Смена продавцов для новых заказов (если продаете от 2 фирм) 7. Печать и подпись - доступны в модуле для загрузки изображений печати и подписи, чтобы они накладывались на документ 8. Настройка размера печати и подписи и позиционирование их в документе 9. Интеграция в стандартные заказы: Заменяет стандартные HTML счет и доставку на PDF от модуля (Поддержка модулей: Быстрая обработка заказа) 10. Отображение статусов Загружено и Распечатано при выполнении определенных действий. 11. Поддержка полей модуля Simple быстрое оформление заказа 12. Настройка шаблона информации о получателе для отображения в PDF 13. Настройка обрезки названия товара 14. Отражение "Счет-фактура" и "Расходная накладная" в личном кабинете покупателя. 15. Настройка отображения "Расходная накладная" только при определенном статусе заказа 16. Настройка отображения "Файлов PDF" только при определенном способе оплаты (если вы продаете только B2B) 17. А также указание места составления, текст договора и прочее. 18. Массовая загрузка или печать PDF заказов. 19. Настраивать гарантии для каждого товара 20. Печатать гарантии вместе с расходной накладной 21. Настраивается текст гарантии, отключения и включения, голотип, информация о магазине, таблица заметок о ремонте Инструкция по установке внутри архива. Вывод кнопок модуля в личный кабинет, если у вас не стандартный шаблон, производится бесплатно. Все остальные наработки модуля выполняются за дополнительную плату. Так же если вам не нужна гарантия есть модуль без гарантии.$251 point
-
Цей огляд заснований на diff найпростіших вбудованих модулів. Але все перевірено на простому власному модулі, в якому немає ані подій, ані vQmod. Основні зміни у коді стандартного модуля * Примітка Слово Opencart, виділене жовтим кольором — це код модуля (!). Але, мабуть, ви й самі здогадалися У контролері OpenCart 3 OpenCart 4 class ControllerExtensionModuleAccount extends Controller { namespace Opencart\Admin\Controller\Extension\Opencart\Module; class Account extends \Opencart\System\Engine\Controller { protected function validate() { public function save(): void { // ... $this->response->addHeader('Content-Type: application/json'); $this->response->setOutput(json_encode($json)); } private $error = array(); Більше не потрібно. Всі помилки обробляються відразу в методі save() if (isset($this->error['warning'])) { $data['error_warning'] = $this->error['warning']; } else { $data['error_warning'] = ''; } Не потрібно. Обробка помилок відбувається у методі save(). також Обробка помилок if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) { Більше не використовується. Збереження форми відбувається шляхом надсилання AJAX-запиту до методу save() $data['action'] = $this->url->link('extension/module/account', 'user_token=' . $this->session->data['user_token'], true); // 4.0.0.0 $data['save'] = $this->url->link('extension/opencart/module/account|save', 'user_token=' . $this->session->data['user_token']); // 4.0.2.0 $data['save'] = $this->url->link('extension/opencart/module/account.save', 'user_token=' . $this->session->data['user_token']); *Зміни у побудові шляхів впливають на будь-які посилання всередині модуля. Ну, це і так зрозуміло. $data['cancel'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=module', true); $data['back'] = $this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'] . '&type=module'); $this->load->model('extension/dashboard/map'); $this->load->model('extension/opencart/dashboard/map'); $results = $this->model_extension_dashboard_map->getTotalOrdersByCountry(); $results = $this->model_extension_opencart_dashboard_map->getTotalOrdersByCountry(); if (isset($this->request->post['module_account_status'])) { $data['module_account_status'] = $this->request->post['module_account_status']; } else { $data['module_account_status'] = $this->config->get('module_account_status'); } $data['module_account_status'] = $this->config->get('module_account_status'); У моделі OpenCart 3 OpenCart 4 class ModelExtensionDashboardMap extends Model { namespace Opencart\Admin\Model\Extension\Opencart\Dashboard; class Map extends \Opencart\System\Engine\Model { У в'юшці В OpenCart 4.0.0.0 був FontAwesome 5.15.4, а в OpenCart 4.0.2.0 FontAwesome 6.1.1. Це впливає на класи іконок. OpenCart 3 OpenCart 4 pull-right float-end data-toggle="tooltip" data-bs-toggle="tooltip" <i class="fa fa-save"></i> <!-- 4.0.0.0 --> <i class="fas fa-save"></i> <!-- 4.0.2.0 --> <i class="fa-solid fa-save"></i> {{ cancel }} {{ button_cancel }} {{ back }} {{ button_back }} <ul class="breadcrumb"> <ol class="breadcrumb"> <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> <li class="breadcrumb-item"><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% if error_warning %} <div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> {{ error_warning }} <button type="button" class="close" data-dismiss="alert">×</button> </div> {% endif %}{% if error_warning %} -- (AJAX) <div class="panel panel-default"> <div class="card"> <div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-pencil"></i> {{ text_edit }}</h3> </div> <!-- 4.0.0.0 --> <div class="card-header"><i class="fas fa-pencil-alt"></i> {{ text_edit }}</div> <!-- 4.0.2.0 --> <div class="card-header"><i class="fa-solid fa-pencil"></i> {{ text_edit }}</div> <div class="panel-body"> <div class="card-body"> <form action="{{ action }}" method="post" enctype="multipart/form-data" id="form-module" class="form-horizontal"> <form id="form-module" action="{{ save }}" method="post" data-oc-toggle="ajax"> * Якщо пропустити data-oc-toggle="ajax", то форма обробиться по-старому з повним завантаженням сторінки (принаймні у версії 4.0.0.0). Хоча сам .alert у bootstrap 5 трохи змінився. <div class="form-group"> <div class="row mb-3"> control-label col-form-label <select name="module_account_status" ... <!-- 4.0.2.0 --> <input type="checkbox" name="module_account_status" ... Шляхи в AJAX-запитах url: 'index.php?route=extension/module/imagescanner/getNotUsedImagesList <!-- 4.0.0.0 --> url: 'index.php?route=extension/imagescanner/module/imagescanner|getNotUsedImagesList <!-- 4.0.2.0 --> url: 'index.php?route=extension/imagescanner/module/imagescanner.getNotUsedImagesList Шляхи до зображень var img_loader = new Image().src='view/image/imagescanner-loader.gif'; var img_loader = new Image().src='extension/imagescanner/admin/view/image/imagescanner-loader.gif'; А воно запитує: http://opencart-4000.loc/admin/extension/imagescanner/admin/view/image/imagescanner-loader.gif Значить треба вказати повний шлях до файлу var img_loader = new Image().src='{{ constant('HTTP_CATALOG') }}extension/imagescanner/admin/view/image/imagescanner-loader.gif'; Обробка помилок Щоб поля з помилками підсвічувалися і до них були пояснювальні підписи, першою дією у в'юшці необхідно вписати порожні контейнери для текстів помилок. <div id="error-field" class="invalid-feedback"></div> Далі, при обробці форми по AJAX можна отримати наступний формат відповіді: { "error": { "name_1": "Product Name must be greater than 1 and less than 255 characters!", "keyword_0_1": "SEO URL keyword required!", "warning": "Warning: Please check the form carefully for errors!" } } Потім воно буде універсально оброблено в admin/view/javascript/common.js з урахуванням того, чи це рядок, чи це об'єкт, та чи є там редірект. Також воно автоматично переведе under_score індекси массиву з помилками в kebab-case html-ідентифікаторів, в яких потрібно показати відповідні тексти червоним кольором. TypeError: Cannot access offset of type string on string in при обробці помилок У js при обробці відповіді AJAX-запиту робиться розмежування між отриманим рядком та об'єктом. Все тому, що в найпростішому "модулі" (наприклад, account) в помилки потрапляє лише рядок з текстом без зайвих проблем. І ось я скопіпастив звідти, а потім побачив, що в товарах йде інакше, і скопіпастив шматок коду ще й звідти. У результаті напоровся на помилку: TypeError: Cannot access offset of type string on string in ... $json['error'] = $this->language->get('error_text'); // В найпростішому модулі присвоюється рядок ... if (isset($json['error']) && !isset($json['error']['warning'])) { $json['error']['warning'] = $this->language->get('error_warning'); // Намагається рядку присвоїти індекс масиву, але це ж PHP 8... } Власні бібліотеки у складі модуля Якщо ваш модуль використовує бібліотеку, яка зазвичай завантажувалася в system/library, то зараз при розпакуванні архіву вона потрапить до extnension/modulecode/system/library/ . OpenCart автоматично створює простори імен, як для контролерів з моделями, так і для бібілотек: // 4.0.0.0 [Opencart\Admin\Controller\Extension\Imagescanner] => Array ( [directory] => .../opencart-4000.loc/extension/imagescanner/admin/controller/ [psr4] => ) [Opencart\Admin\Model\Extension\Imagescanner] => Array ( [directory] => .../opencart-4000.loc/extension/imagescanner/admin/model/ [psr4] => ) [Opencart\System\Extension\Imagescanner] => Array ( [directory] => .../opencart-4000.loc/extension/imagescanner/system/ [psr4] => ) // 4.0.2.0 [Opencart\System\Library\Extension\Imagescanner] => Array ( [directory] => .../opencart-4021.loc/extension/imagescanner/system/library/ [psr4] => ) Зверніть увагу, що варіант іменування класу бібліотеки ImageScanner при підключенні перетвориться на image_scanner.php (system/engine/autoloader.php). Тоді як Imagescanner відповідатиме imagescanner.php. Це при тому, що в контролері назва класу в стилі CamelCase працює ок. А чому так — це вже окрема історія. У файлі бібліотеки Задамо простір імен: // 4.0.0.0 namespace Opencart\System\Extension\Modulecode\Library; // 4.0.2.0 namespace Opencart\System\Library\Extension\Imagescanner; Називаємо клас: class Yourclassname { У файлі контролера Створюємо екземпляр класу бібліотеки у нашому контролері: // 4.0.0.0 $this->instance = new \Opencart\System\Extension\Modulecode\Library\Yourclassname(); // 4.0.2.0 $this->stdelog = new \Opencart\System\Library\Extension\Imagescanner\Stdelog('imagescanner'); З іншого боку чудово відпрацює і по-старому, і ще й ніяких приколів зі змінами в системі: require_once DIR_EXTENSION . 'modulecode/system/library/modulecode.php'; $this->instance = new Yourclassname(); // и не паритися Папка модуля На прикладі присутньої в системі папки extension/opencart (де складені всі дефолтні модулі) здавалося, що OpenCart 4 з'явилося поняття "папка постачальника". Але потім з'ясувалося, що при спробі встановити в ту ж папку інший свій модуль, воно не працює До речі, якщо в інсталяційному архіві будуть нестандартні шляхи до файлів (я, наприклад, пробував modulecode/library/file.php на 4.0.0.0), то при видаленні модуля з адмінки папка модуля не видаляється, хоча всі стандартні файли та папки звідти видалені. Тобто це може створити проблеми при оновленні модуля, адже в існуючу папку модуля установник не хоче записувати. І ще з цією папкою є один приємний момент: щоб упакувати модуль, досить просто скопіювати папку та заархівувати. Більше не потрібно ритися в папках і копіювати кожен файл окремо. P.S. На преший погляд, адаптація модуль під OpenCart 4 має бути досить простою. Я цю статтю довше писав, ніж адаптував модуль. Але огляд поки що не повний. Дописуватиму згодом. Також буду додавати в текст статті зауваження з коментарів. --1 point
-
Начебто WayForPay - єдиний, хто таке раніше дозволяв. Зараз - не впевнений, але перевірити не складно1 point
-
А в чем суть задумки для чего именно вы хотите это применить? Какие данные хотите передать ?1 point
-
Проверьте таблицу в базе oc_session, есть ли она и не повреждена ли. А так же проверьте правильные ли пути к папке storage в конфигах сайта. Так же проверьте везде ли сменили в кфг адрес https на http, а так же уточните со стороны хостинга нет ли настроек перенаправления, если что могу посмотреть, пишите.1 point
-
Нет. Ну почитайте же ошибку... У вас сайт "заперт" в каталоге /var/www/marketkismpw/data А какой-то скрипт зачем-то пытается выйти выше, в корень / Проверить место на диске видимо таким чудным образом. И вот собственно возникает ошибка предупреждение. Очевидно выходов всего два - убрать open_basedir ограничение (но видимо это вам делает панель управления или хостинг). Или поправить ту строчку, например так: $disk_space = disk_free_space("/var/www/marketkismpw/data"); Но кто знает что это за скрипт и может ли он однажды обновиться и снова будет та же проблема.1 point
-
Доброго дня Якщо просто змінити назву надпису - то в папці language дивіться Або як варіант ставити додатковий модуль - запит ціни, або щось інше підібравши модуль1 point