Jump to content

Recommended Posts

Добрый день

Пришла в голову идея, как упростить вставку описаний товара из внешнего файла через директиву include PHP и последующее массовое обновление этих описаний, но, как оказалось, редактор, встроенный в Opencart, режет вставку скриптов.

 

Если непонятно объяснил...

Хочу создать файл description.php c HTML кодом описания товара. Потом через 

 

<?php

include 'description.php';

?>

 

вставить этот скрипт в описание товара в Opencart. Таким образом, если нужно что-то изменить в описании сотен аналогичных товаров (в моем случае - постельного белья), достаточно просто отредактировать HTML в файле description.php.

 

В Joomla есть плагин Sourcerer, который предоставляет решение через вставку кода между тегами {source} {/source}.

 

Может кто-то знает, есть ли что-то подобное для Opencart/OcStore? Использую версию OcStore 1.5.5.1.2.

Или может кто-то мог бы реализовать?

Share this post


Link to post
Share on other sites

нет, не то... (

Share this post


Link to post
Share on other sites

Чтобы CKEditor не затирал код в файл config.js дабавьте

CKEDITOR.config.indentClasses = ["ul-grey", "ul-red", "text-red", "ul-content-red", "circle", "style-none", "decimal", "paragraph-portfolio-top", "ul-portfolio-top", "url-portfolio-top", "text-grey"];
    CKEDITOR.config.protectedSource.push(/<(style)[^>]*>.*<\/style>/ig);// разрешить теги <style>
    CKEDITOR.config.protectedSource.push(/<(script)[^>]*>.*<\/script>/ig);// разрешить теги <script>
    CKEDITOR.config.protectedSource.push(/<\?[\s\S]*?\?>/g);// разрешить php-код
    CKEDITOR.config.protectedSource.push(/<!--dev-->[\s\S]*<!--\/dev-->/g);
    CKEDITOR.config.allowedContent = true; /* все теги */
Edited by mstkalenko

Share this post


Link to post
Share on other sites

Я вставил этот код в файл admin/view/javascript/ckecditor/config.js

Не работает, все равно в результате получается 

 

<!--?
include 'description/viluta.php';
?-->
 
Но выбор способа решения мне нравится... Может где-то в Вашем коде ошибка? Имеет значение куда вставлять: в начало файла, в конец и т.п.? Пробовал разные способы

Share this post


Link to post
Share on other sites

Вот мой файл с тестового магаза https://yadi.sk/d/BiRKtFHyiHXBY

 

Код 

<?php
include 'description/viluta.php';
?>

после сохранения не режет, только что проверил.

 

PS. Сборка эдитора кастомная с оф. сайта

Share this post


Link to post
Share on other sites

скачал, установил последний CKEditor. Добавил Ваш код.

Результата нет. Но теперь при повторном входе в редактор код не обрезанный, а вот в режиме отладки все то же

 

<!--?php
include "description/viluta.php";
?-->
 
У Вас работает функция include? Выполняется код, который включается?
Edited by vpvs

Share this post


Link to post
Share on other sites

Удалось ли решить проблему?. То же оч нужно.

Share this post


Link to post
Share on other sites

вы там чего курите? С какого перепугу php код должен вообще выполняться в редакторе?

Share this post


Link to post
Share on other sites

вы там чего курите? 

курю такой бамбук, используя для этих целей статьи:

<?php
$thistitle = $this->model_catalog_information->getInformation(5);
echo $display= html_entity_decode($thistitle['description']);
?>

Share this post


Link to post
Share on other sites

А не проще ли тогда в контроллере поймать {php_file=description.php} и его выполнить? Получается, что тогда в редакторе нужно будет вставлять {php_file=description.php}. 

Share this post


Link to post
Share on other sites

вы там чего курите? С какого перепугу php код должен вообще выполняться в редакторе?

Есть такая необходимость.

Share this post


Link to post
Share on other sites

 

курю такой бамбук, используя для этих целей статьи:

<?php
$thistitle = $this->model_catalog_information->getInformation(5);
echo $display= html_entity_decode($thistitle['description']);
?>

Не могли бы Вы описать по подробнее. Что куда прописать,

Edited by Coba2

Share this post


Link to post
Share on other sites

А не проще ли тогда в контроллере поймать {php_file=description.php} и его выполнить? Получается, что тогда в редакторе нужно будет вставлять {php_file=description.php}. 

Интересная мысль. Как она может быть реализована?

Share this post


Link to post
Share on other sites

для этого можно прикрутить shortcode - бесплатный модуль, тогда можно прописывать свои shortcod'ы и методы

 

А реально, если это нужно для одноразового

 

$description = $product_info['descriptoin')

if (preg_match('#регулярка посика php_file=description.php}#',$description, $matches{

// находим нужный,

//принимаем решение

//делаем replace

}

Share this post


Link to post
Share on other sites

для этого можно прикрутить shortcode - бесплатный модуль, тогда можно прописывать свои shortcod'ы и методы

 

 

Тут все кратки. shortcode что этот модуль даёт? Приписывает к каждому продукту код через который его можно вызывать?

 

 

А реально, если это нужно для одноразового

 

$description = $product_info['descriptoin')

if (preg_match('#регулярка посика php_file=description.php}#',$description, $matches{

// находим нужный,

//принимаем решение

//делаем replace

}

 

Нужно на постоянно. Опишите подробно пожалуйста как данный.

 

 

Разговор немого пошёл в другую сторону.

Опишу подробнее.

 

Есть 2 задачи.

 

1) В шаблоне header.tpl нужно вызвать парметры товара, такие как

вес,длина, ширина, глубина.

Это нужно чтобы подставлять их в виджет и цена доставки считалась бы динамично при заходе на каждую страницу.

 

2) Есть product.tpl где находится аналогичный виджет(в редакторе). В данном шаблоне параметры(вес,длина и т.д) выводятся нормально но их не получается подставить в редактор, потому что php не работает в нём, а виджет выводить хочется в редакторе. Получилось сделать подстановку в параметры но они подставлялись после формирования виджета, а не до поэтому получалось не то что нужно.(Использовался javascript)

Поэтому как я вижу единственный способ это php подстановка.

Share this post


Link to post
Share on other sites
В 03.09.2015 в 14:16, chukcha сказал:

для этого можно прикрутить shortcode - бесплатный модуль, тогда можно прописывать свои shortcod'ы и методы

 

Как бы подробнее услышать (увидеть) реализацию к примеру текстовой страницы - поставленную в нужное место на сайте с помощью шорткодов?

Поясните как - так сделать, пожалуйста.

Share this post


Link to post
Share on other sites
В 03.09.2015 в 03:36, halfhope сказал:

А не проще ли тогда в контроллере поймать {php_file=description.php} и его выполнить? Получается, что тогда в редакторе нужно будет вставлять {php_file=description.php}. 

 

И как поймать метод передачи страницы Html, что бы потом вставить в шорткод и сам шорткод прописать в нужном месте?

Сообщите  будь-те любезны, очень нужна такая схема реализации.

Share this post


Link to post
Share on other sites

да капец. что за пхп на редактор?

если хочешь одно описание, только с подставкой имени или что-то, то напиши в шаблон, и подставляй имя или еще что-то. если 5 разных описаний, для 100 категорий, то делай условия и выводи. куча разных вариантов, вплоть до создания собственных полей.

 делал на одном, там мама не горюй.

купить (тут хлебная крошка) в городе (тут имя города с гео айпи)

Edited by Miha7685776

Share this post


Link to post
Share on other sites

Реализовывал такую штуку через Ajax функцией load, работает.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By vova26
      Здраствуйте.
      Написали мне такой скрипт для актуализации наличия по ссилкам на товар донора,он все роботает,но почему-то иногда не всегда меняет состояние товаров на актуальное.
      Может кто то поможет разобраться с кодом и поправить немножко?
      и появилась такая проблема,у донора имеется товар с опциями а скрипт проверяет просто ссилку на товар и меняет состояние..
       
      <?php
      set_time_limit(0);
      $start = microtime(true);
      ini_set('error_reporting', E_ALL);
      ini_set('display_errors', 1);
      ini_set('display_startup_errors', 1);
      require_once('../config.php');
      require_once('mysqli.php');
      include_once('simple_html_dom.php');
      $db = new mysqli_db();
      $products = $db->multi_query("SELECT * FROM `oc_product` WHERE donor_url != ''",1);
      if(count($products) > 0) {
          foreach($products as $product){
              $html = file_get_html($product['donor_url'],true);
              if (is_object($html)) {
                  $stock_wrap = $html->find('span.stock-wrap',0);
                  if($stock_wrap) {
                      $status = trim($stock_wrap->plaintext);
                      if($status == 'В наличии' && $product['stock_status_id'] != 7) {
                          $db->query("UPDATE `oc_product` SET stock_status_id = 7, quantity = 50 WHERE product_id = '{$product['product_id']}'");
                          echo $product['product_id']." set status 7 <br>";
                      } else if($status != 'В наличии' && $product['stock_status_id'] == 7) {
                          $db->query("UPDATE `oc_product` SET stock_status_id = 5, quantity = 0 WHERE product_id = '{$product['product_id']}'");
                          echo $product['product_id']." set status 5 <br>";
                      }
                  }
                  $html->clear(); 
              }
          }
      }
      echo '<br>Время выполнения скрипта: '.round(microtime(true) - $start, 4).' сек.';
    • By Viktor2010
      Исчез редактор описаний! Вроде ни каких манипуляций не делал. Кто сталкивался подскажите как вернуть пожалуйста

    • By kur1977
      1 500.00 руб
      Скачать/Купить дополнение


      Генератор SEO описаний для товаров для OcStore
      Представляю Вашему вниманию генератор описаний товаров.
      Суть модуля в том, что он позволяет генерировать описание, HTML-тег H1, HTML-тег Title, Мета-тег Keywords и Мета-тег Description для товаров определенной категории.
      Обычно все товары определенной категории обладают какими-то общими свойствами. Так вот на основании этих общих свойств можно сгенерировать описания товаров массово.
      Суть модуля проще объяснить на примере:
      {{Гармоничный|Современный|Интересный|Завораживающий|Элегантный|Эргономичный|Стильный|Комфортный|Удобный|Максимально удобный|Уникальный|Бескомпромиссный|Абсолютный} {внешний вид|дизайн}|{Гармоничная|Современная|Интересная|Завораживающая|Элегантная|Эргономичная|Абсолютная|Стильная|Комфортная|Удобная|Максимально удобная|Уникальная|Бескомпромиссная} {форма|эстетика|модель|серия}} <strong>смесителя [brand] [name]</strong> {станет {маленькой|яркой} звездой на вашей {кухне|мойке}|{поможет расставить|расставит} акценты на {кухне|мойке}}. {Тип|Вид|Формат} {данного|этого} смесителя - [Тип смесителя], что {положительно|хорошо|заметно|неплохо|позитивно} {влияет|воздействует} на его {функциональность|полезность|работоспособность}. {При высоте|Высота} излива [Высота излива (мм)] мм, длинне [Длина излива (мм)] мм <i>смеситель [brand] [name]</i> имеет материал корпуса [Материал корпуса], покрытие [Покрытие] и цвет [Цвет]. {У данного смесителя|Данный смеситель|Этот смеситель} имеет [Тип излива] и форму [Форма смесителя]. {При|При всем при} этом {имеет гарантию|обладает гарантией|на него распространяется гарантия} в [Гарантия (мес.)] мес. {во время|в течении} которой все {недостатки|изъяны|проблемы}, которые {произошли|возникли|появились} по вине производителя, будут {устранены|исправлены} {бесплатно|за счет производителя}.   конструкции вида [текст] на значения соответствующих параметров товара. Список возможных параметров:
      [name] - наименование товара;
      [model] - модель товара;
      [sku] - sku товара;
      [seo_title] - HTML-тег Title товара;
      [seo_h1] - HTML-тег H1 товара;
      [brand] - наименование производителя;
      [cat_name] - наименование выбранной категории;
      [cat_title] - HTML-тег Title выбранной категории;
      [cat_h1] - HTML-тег H1 выбранной категории;
      [categories] - все категории, в которые входит товар, кроме текущей
      [price] - цена товара
      Также внутри [] можно подставлять атрибуты товара:
      [название группы атрибутов::название атрибута]
      При этом желательно, чтобы у всех товаров выбранной категории был заполнен этот атрибут. Иначе в этом месте для товара без этого атрибута ничего не выведется.
      Для этого рекомендую использовать модуль https://opencartforum.com/files/file/526-attribute-category/ Он позволяет для категории проставить список необходимых атрибутов. И потом, при занесении атрибутов в товар, вы будете видеть весь этот список и не упустите ни одного атрибута. Так же очень удобен в работе с атрибутами модуль https://opencartforum.com/files/file/525-attribute-select/ .
      Конструкции вида {текст1|текст2|текст3|.....} обрабатываются следующим образом:
      Из всех фраз, разделенных вертикальной чертой выбирается случайным образом одна и вся конструкция заменяется на нее.
      Количество вложенности таких конструкций друг в друга теоретически не ограничено.
      Видео-руководство по установке и настройке модуля:
      Модуль предназначен для OcStore 1.5.x
      Внимание! Не используйте html внутри конструкций [] и {}. Все теги будут удалены.
      В архиве 2 папки - upload и important. Папку upload можно смело копировать на сервер. В папке important находится readme, в котором описано, что нужно сделать для установки модуля.
      UPD: Модуль обновлен. Теперь модуль не затрагивает таблицу товаров, а все настройки и сгенерированные описания хранит в своих собственных таблицах.
      Также добавлена возможность делать замены фраз из названий атрибутов при генерации.
      При обновлении модуля, предварительно удалите его в настройках в админке. После того как скопируете новую версию на сайт - снова установите модуль в админке. При этом, сохраненные шаблоны будут удалены.
      UD2: модуль обновлен. Исправлены мелкие недочеты.
      Добавил kur1977 Добавлено 15.12.2014 Категория SEO, карта сайта, оптимизация Системные требования Сайт разработчика http://finesites.ru Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет  
    • By kur1977
      Представляю Вашему вниманию генератор описаний товаров.
      Суть модуля в том, что он позволяет генерировать описание, HTML-тег H1, HTML-тег Title, Мета-тег Keywords и Мета-тег Description для товаров определенной категории.
      Обычно все товары определенной категории обладают какими-то общими свойствами. Так вот на основании этих общих свойств можно сгенерировать описания товаров массово.
      Суть модуля проще объяснить на примере:
      {{Гармоничный|Современный|Интересный|Завораживающий|Элегантный|Эргономичный|Стильный|Комфортный|Удобный|Максимально удобный|Уникальный|Бескомпромиссный|Абсолютный} {внешний вид|дизайн}|{Гармоничная|Современная|Интересная|Завораживающая|Элегантная|Эргономичная|Абсолютная|Стильная|Комфортная|Удобная|Максимально удобная|Уникальная|Бескомпромиссная} {форма|эстетика|модель|серия}} <strong>смесителя [brand] [name]</strong> {станет {маленькой|яркой} звездой на вашей {кухне|мойке}|{поможет расставить|расставит} акценты на {кухне|мойке}}. {Тип|Вид|Формат} {данного|этого} смесителя - [Тип смесителя], что {положительно|хорошо|заметно|неплохо|позитивно} {влияет|воздействует} на его {функциональность|полезность|работоспособность}. {При высоте|Высота} излива [Высота излива (мм)] мм, длинне [Длина излива (мм)] мм <i>смеситель [brand] [name]</i> имеет материал корпуса [Материал корпуса], покрытие [Покрытие] и цвет [Цвет]. {У данного смесителя|Данный смеситель|Этот смеситель} имеет [Тип излива] и форму [Форма смесителя]. {При|При всем при} этом {имеет гарантию|обладает гарантией|на него распространяется гарантия} в [Гарантия (мес.)] мес. {во время|в течении} которой все {недостатки|изъяны|проблемы}, которые {произошли|возникли|появились} по вине производителя, будут {устранены|исправлены} {бесплатно|за счет производителя}.   конструкции вида [текст] на значения соответствующих параметров товара. Список возможных параметров:
      [name] - наименование товара;
      [model] - модель товара;
      [sku] - sku товара;
      [seo_title] - HTML-тег Title товара;
      [seo_h1] - HTML-тег H1 товара;
      [brand] - наименование производителя;
      [cat_name] - наименование выбранной категории;
      [cat_title] - HTML-тег Title выбранной категории;
      [cat_h1] - HTML-тег H1 выбранной категории;
      [categories] - все категории, в которые входит товар, кроме текущей
      [price] - цена товара
      Также внутри [] можно подставлять атрибуты товара:
      [название группы атрибутов::название атрибута]
      При этом желательно, чтобы у всех товаров выбранной категории был заполнен этот атрибут. Иначе в этом месте для товара без этого атрибута ничего не выведется.
      Для этого рекомендую использовать модуль https://opencartforum.com/files/file/526-attribute-category/ Он позволяет для категории проставить список необходимых атрибутов. И потом, при занесении атрибутов в товар, вы будете видеть весь этот список и не упустите ни одного атрибута. Так же очень удобен в работе с атрибутами модуль https://opencartforum.com/files/file/525-attribute-select/ .
      Конструкции вида {текст1|текст2|текст3|.....} обрабатываются следующим образом:
      Из всех фраз, разделенных вертикальной чертой выбирается случайным образом одна и вся конструкция заменяется на нее.
      Количество вложенности таких конструкций друг в друга теоретически не ограничено.
      Видео-руководство по установке и настройке модуля:
      Модуль предназначен для OcStore 1.5.x
      Внимание! Не используйте html внутри конструкций [] и {}. Все теги будут удалены.
      В архиве 2 папки - upload и important. Папку upload можно смело копировать на сервер. В папке important находится readme, в котором описано, что нужно сделать для установки модуля.
      UPD: Модуль обновлен. Теперь модуль не затрагивает таблицу товаров, а все настройки и сгенерированные описания хранит в своих собственных таблицах.
      Также добавлена возможность делать замены фраз из названий атрибутов при генерации.
      При обновлении модуля, предварительно удалите его в настройках в админке. После того как скопируете новую версию на сайт - снова установите модуль в админке. При этом, сохраненные шаблоны будут удалены.
      UD2: модуль обновлен. Исправлены мелкие недочеты.
    • By kJlukOo
      Если у товара пустое мета описание то данная модификация присвоит ему первые 2 предложение описания товара, если и оно пусто, то мета описание станет равно названию товара.
      Данная модификация не вносит изменений в бд.
      Смотрите скрины
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.