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

Пошук по сайту

Результати пошуку за тегами 'сучасний'.

  • Пошук за тегами

    Введіть теги через кому.
  • Пошук по автору

Тип публікацій


Категорії і розділи

  • Основний
    • Новини та оголошення
    • Пропозиції та побажання
    • Акції, подарунки, конкурси та винагороди
  • Opencart 4.x
    • Opencart 4.x: Загальні питання
    • Opencart 4.x: Встановлення та оновлення
    • Opencart 4.x: Локалізація
    • Opencart 4.x: Налаштування та оптимізація
    • Opencart 4.x: Пісочниця
    • Opencart 4.x: Пошук модулів
    • Opencart 4.x: Звіти про помилки
  • Opencart 3.x
    • Opencart 3.x: Загальні питання
    • Opencart 3.x: Встановлення та оновлення
    • Opencart 3.x: Локалізація
    • Opencart 3.x: Налаштування та оптимізація
    • Opencart 3.x: Пісочниця
    • Opencart 3.x: Пошук модулів
    • Opencart 3.x: Звіти про помилки
  • Opencart 2.x
    • Opencart 2.x: Загальні питання
    • Opencart 2.x: Встановлення та оновлення
    • Opencart 2.x: Локалізація
    • Opencart 2.x: Налаштування та оптимізація
    • Opencart 2.x: Пісочниця
    • Opencart 2.x: Пошук модулів
    • Opencart 2.x / ocStore 2.x: Звіти про помилки
  • Реклама і просування
    • SEO-питання (оптимізація та просування магазину)
    • Контекстна реклама
    • Торговые площадки
    • E-commerce tracking и бизнес аналитика
    • Разное
  • Підтримка та відповіді на запитання.
    • Загальні питання
    • Встановлення, оновлення, налаштування
    • Шаблони, дизайн та оформлення магазину
    • Модулі та розширення
    • Допомога програмістам та розробникам
    • Мобильная витрина
    • Питання безпеки
    • Переклад
    • Отчёты об ошибках
    • Интернет-магазины и электронная коммерция
    • Песочница
  • Послуги
    • Створення магазинів під ключ
    • Дизайн, верстка та шаблони
    • Програмування, створення модулів, зміна функціональності
    • Налаштування та дрібна робота по вже існуючому сайту
    • Оновлення версії двигуна магазина
    • Наповнення магазину
    • Системне адміністрування (налаштування хостингу, серверів, ПЗ)
    • Інші послуги
  • Разное
    • Пользовательские обзоры дополнений
    • Примеры сайтов на OpenCart (ocStore)
    • Курилка
    • Предложения по улучшению

Категорії

  • Шаблони
    • Безкоштовні шаблони
    • Платні шаблони
  • ФІльтри
  • Цены, скидки, акции, подарки
  • Реклама та просування
  • Бонуси, купони, програми лояльності
  • Блоги, новости, статьи
  • Покупки, оформление заказа, корзина
  • Опції
  • Атрибуты
  • Серии, Комплекты
  • Поиск
  • SEO, карта сайта, оптимизация
  • Кэширование, сжатие, ускорение
  • Платіжні системи
  • Доставки
  • Редакторы
  • Меню, дизайн, внешний вид
  • Слайдшоу, баннеры, галереи
  • Письма, почта, рассылки, sms
  • Обратная связь, звонки
  • Обмен данными
  • Учет в заказе
  • Сравнения, закладки
  • Социальные сети
  • Парсеры
  • Модули
  • Инструменты, утилиты
  • Лицензии
  • Локалізації
  • Інші розширення
  • Отчеты
  • Збірки
    • ocStore
  • Послуги
    • Графика и дизайн
    • Маркетинг

Категорії

  • Служебные документы
  • Оплата
  • Документація Opencart

Категорії

  • Загальні питання
  • Купівля доповнень
  • Для розробників
  • Акаунт
  • Технічна підтримка
  • Фінансовий відділ

Категорії

  • Інтерв'ю
  • Статті

Блоги

  • Konorws (Разработка и модификация Opencart)
  • Блог mr.Kent)
  • Прожектор Бритни Спирс
  • Layk
  • Продвижение интернет-магазина, seo оптимизация
  • Записная книжка
  • Блог RGB
  • Модули которые сделают сайт лучше
  • Блог веб-студии NeoSeo
  • Useful IT
  • Записи
  • Найденные решения проблем с Opencart
  • ocdroid blog
  • Заметки на полях...
  • Pimur
  • Серж Ткач
  • О жизни, смерти, о бизнесе и Опенкарте
  • Просто мысли от laim731
  • Маркетинг и продвижение интернет-магазина
  • Мой копирайтинг
  • SEO боксинг специального назначения
  • Get-Web Dev
  • Seok
  • Блоги sitecreator-а
  • Best practice
  • Vlad-Egorov-Blog
  • Блог spectre
  • commanddotcom
  • Внимание мошенники
  • Наблюдения обычного человека
  • Блог Rassol2
  • Блог Exploits
  • блог для натуралов
  • Настюша, тут есть темы
  • Пропитано рекламой
  • Tutorial
  • ОтВинта
  • Tg chnls
  • Блог
  • Блог sv2109
  • КАК ОРГАНИЗОВАТЬ НОВОСТНЫЕ ПОДПИСКИ НА БАЗЕ API OPENCART 3/0/2
  • VDS/VPS, серверы под Linux: установка, настройка, оптимизация
  • IT блог
  • Блог
  • Opencart SEO
  • Путёвые заметки о работе магазина NiceBike на платформе OpenCart
  • Blondi Blog
  • Полезные статьи, новости.
  • Блог владельца магазина
  • разное
  • ПРОДАЖА АКАУНТОВ-binance ВЕРИФИЦИРОВАННЫe ЧИСТЫЕ УСПЕВАЙТЕ КУПИТЬ ПО НИЗКОЙ ЦЕНЕ
  • Диспансеризация
  • wozobat
  • quasarbyte
  • Мой блог
  • Igorych
  • aaaaa
  • 👌🔊Bellsouth CUSTOMER support number 1+(8O8)678=9O64-☎phone number
  • Liudmila marketer
  • Заметки реалиста
  • ocstore на ноліках
  • Про Opencart
  • Блог про рутинні процеси в магазині на ocsote
  • Radaevich
  • Плагіни Opencart
  • Крафтовий OpenCart: Старт пригоди. Ціна створення сайту на Опенкарт
  • Щось про щось
  • Від власника до розробника

Шукати результати в ...

Шукати результати, які ...


Дата створення

  • Почати

    Кінець


Останнє оновлення

  • Почати

    Кінець


Фільтр за кількістю ...

З нами

  • Почати

    Кінець


Група


Сайт


Skype


Місто:


Інтереси

Знайдено 1 результат

  1. Доброго дня! Останнiм часом раз-пораз з'являються дискусії на тему застаріння CMS OpenCart. Порушимо і тут цю тему, але не розкритикувати, чи похвалити, а пропонуючи! Як розгорнути проект з сучасним FrontEnd ми писали ранiше... Зараз-же розглянемо посібник з прикладами, де спробуємо подружити Element-Plus та OpenCart модуль для адмiн панелi Створемо додаток "Список категорiй OpenCart" 1) Клієнтська частина ../upload/admin/view/template/extension/module/multi_categories.twig {{ header }} {{ column_left }} <div id="content"> <div class="page-header"> <div class="container-fluid"> <div class="pull-right"> <a href="{{ cancel }}" data-toggle="tooltip" title="{{ button_cancel }}" class="btn btn-default"><i class="fa fa-reply"></i></a> </div> <h1>{{ heading_title }}</h1> <ul class="breadcrumb"> {% for breadcrumb in breadcrumbs %} <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li> {% endfor %} </ul> </div> </div> <div class="container-fluid"> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"><i class="fa fa-pencil"></i> {{ breadcrumb_last }}</h3> </div> <div class="panel-body"> <div id="app"></div> </div> </div> </div> </div> <script type="module" crossorigin src="{{ base }}view/javascript/product_list.js"></script> <link rel="stylesheet" crossorigin href="{{ base }}view/javascript/product_list.css"> <style> html { height: auto } </style> {{ footer }} 2) Клієнтська частина source for Vue Element-plus ../src/App.vue <template> <el-tree style="max-width: 600px" :data="products" node-key="category_id" > <template #default="{ node, data }"> <span class="custom-tree-node"> <span>{{ data.sort_order }}) {{ node.label }}</span> <span> <a :href="openCategory(data)" target="_blank">_<i class="fa fa-pencil"></i></a> </span> </span> </template> </el-tree> </template> <script setup> import { onMounted, ref } from 'vue'; let productPath = ''; const products = ref({}); const openCategory = (data) => { return data.href.replaceAll('&amp;', '&'); } const appInit = (list = []) => { products.value = list; } const getProducts = async () => { if (!productPath) { console.debug('The error for determining the path to get data!'); } else { let response = await fetch( productPath ); appInit( await response.json() ); } } const appUrl = (route) => { // Sanitize the call route = route?.replace(/[^a-zA-Z0-9_\/]/i, '') || ''; if (!route) return ''; // production or development (variable set: in root on .env.development file) const inputUrl = new URL( import.meta.env.PROD ? document?.location?.href : import.meta.env.VITE_APP_HOME_PATH ); inputUrl?.searchParams?.set('route', route); return inputUrl?.href || ''; } onMounted(() => { productPath = appUrl( 'extension/module/multi_categories/get_categories' ); getProducts(); }) </script> <style> .custom-tree-node { align-items: center; column-gap: 9px; display: flex; flex: 1; justify-content: space-between } </style> 3) Контроллер ../upload/admin/controller/extension/module/multi_categories.php <?php // Read more: https://opencartforum.com/files/developer/678008-sha class ControllerExtensionModuleMultiCategories extends Controller { private $error = []; private $edit_link = ''; public function index() { $this->load->language('extension/module/multi_categories'); $this->document->setTitle( $this->language->get('heading_title') ); $this->getForm(); } protected function getForm() { $data = []; $data['header'] = $this->load->controller('common/header'); $data['column_left'] = $this->load->controller('common/column_left'); $data['footer'] = $this->load->controller('common/footer'); $this->response->setOutput($this->load->view('extension/module/multi_categories', $data)); } public function get_categories() { $this->response->addHeader('Content-Type: application/json'); if (!$this->validate()) $this->response->setOutput([]); $this->load->model('extension/module/multi_categories'); $categories = $this->model_extension_module_multi_categories->get_categories(); $this->edit_link = $this->url->link( 'catalog/category/edit', 'user_token=' . $this->session->data['user_token'], true ); $this->response->setOutput(json_encode( $this->tree( $categories ) )); } private function tree($list, $parent_id = 0) { $children_list = []; foreach ($list as $item) { if ((int)$parent_id !== (int)$item['parent_id']) continue; $item['children'] = $this->tree( $list, $item['category_id'] ); $children_list[] = $this->itemBuild( $item ); } return $children_list; } private function itemBuild($data = []) { $data['label'] = strip_tags(html_entity_decode( $data['name'], ENT_QUOTES, 'UTF-8' )); $data['href'] = $this->edit_link . '&amp;category_id=' . $data['category_id']; return $data; } private function validate() { if (!$this->user->hasPermission('access', 'extension/module/multi_categories')) { $this->error['warning'] = $this->language->get('error_permission'); } return !$this->error; } } 4) Модель ../upload/admin/model/extension/module/multi_categories.php <?php // Read more: https://opencartforum.com/files/developer/678008-sha class ModelExtensionModuleMultiCategories extends Model { public function get_categories() { $query = $this->db->query("SELECT cd.name, c.category_id, c.parent_id, c.sort_order FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) WHERE cd.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY c.parent_id, c.sort_order, cd.name;"); return isset($query->num_rows) ? $query->rows : []; } } 5) Мова ../upload/admin/language/en-gb/extension/module/multi_categories.php <?php // Heading $_['heading_title'] = 'Categories'; Сучасні бібліотеки та фреймворки пропонують широкий вибір готового функціоналу, наприклад, ви легко можете додати можливість перетягування елементів <el-tree ... draggable ... > //... </el-tree> та події <el-tree @node-drag-start="dragStart" @node-drag-enter="dragEnter" @node-drag-leave="dragLeave" @node-drag-over="dragOver" @node-drag-end="dragEnd" @node-drop="drop" > // ... </el-tree> та з легкістю створити модуль зручного сортування дерева категорій перетягуванням OpenCart методом "Drag and Drop". А з нашими прикладами ще й безкоштовно!!! Дякуємо, за прочитання! Тут ви зможете знайти наші модулі, та щє-й зі знижкою!) якщо використаєте купон 678008-30
×
×
  • Створити...

Important Information

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