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

Рекомендуемые сообщения

Добрый день

Пришла в голову идея, как упростить вставку описаний товара из внешнего файла через директиву 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.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы 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; /* все теги */
Изменено пользователем mstkalenko

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Код 

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

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

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

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

Изменено пользователем Coba2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

$description = $product_info['descriptoin')

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

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

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

//делаем replace

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для этого можно прикрутить 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 подстановка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 03.09.2015 в 14:16, chukcha сказал:

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 03.09.2015 в 03:36, halfhope сказал:

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Изменено пользователем Miha7685776

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От kJlukOo
      Скачать/Купить дополнение


      Автозаполнение мета описания по описанию товара
      Если у товара пустое мета описание то данная модификация присвоит ему первые 2 предложение описания товара, если и оно пусто, то мета описание станет равно названию товара.
      Данная модификация не вносит изменений в бд.
      Смотрите скрины
      Добавил kJlukOo Добавлено 05.05.2017 Категория Модули Системные требования Сайт разработчика cleanphp.ru Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart ocStore OpenCart.Pro, ocShop  
    • От kJlukOo
      Если у товара пустое мета описание то данная модификация присвоит ему первые 2 предложение описания товара, если и оно пусто, то мета описание станет равно названию товара.
      Данная модификация не вносит изменений в бд.
      Смотрите скрины
    • От Techno1og
      Нашел в сети скрипт внутренней перелинковки написанный на php. Интересно стоит и его использовать, интересно ваше мнение: (код в конце под спойлером)
       
      Описание: .........это простой php код, подключаемый на сайт посредством php include. Как утверждает автор -скрипт работает НЕ с базой данных, а с простыми файлами.
      На входе программа получает 2 файла (которые необходимо создать и заполнить):
      Список ключевых слов и релевантных им страниц Околоссылочный текст для внутренней перелинковки  
      Схема работы:
      интегрируем в шаблон сайта, в любое удобное место php include с вызовом скрипта В примере указано — include («perelinkovka.php»); — что подразумевает,  что скрипт находится в корне сайта, если же вы установите его в другое место, то необходимо прописать полный адрес:<?php
      include («perelinkovka.php»);
      ?> Как только открывается страница, инициирующая его вызов — он отправляется в файл, содержащий список ключевых слов и релевантных страниц и выбирает случайное значение. Далее это значение сопоставляется с URL текущей страницы и если они совпадают — происходит новая выборка до тех пор, пока не будет получена ссылка, отличная от адреса текущей страницы. Далее он идет в следующий файл, содержащий околоссылочный текст и делает случайную выборку по нему. На выходе мы получаем ссылку, окруженную околоссылочным текстом (каждый раз новым), что отлично вписывается в концепцию правильной внутренней перелинковки Далее, записывается состояние страницы в отдельный файл, из которого оно будет браться при каждом новом открытии одной и той же страницы. Тоесть ссылка перелинковки, появившееся на странице однажды уже останется там и будет выдаваться при каждом новом открытии. Для правильной работы модуля перелинковки, необходимо создать 2 файла (один, содержащий околоссылочный текст и один, содержащие ключевые слова и релевантные страницы). Файл с окружением создаем вручную, синтаксис следующий...." - текст до! текст после "
       

       
      Далее, необходимо создать файл, содержащий ключевые слова и релевантные стрраницы,  разделитель — «!». Здесь все предельно просто — открываем файл, который мы получили в конце прошлого этапа и удаляем лишние поля (частотность и позиция). Оставшиеся данные копируем и вставляем в блокнот:
       

       
       
      Производим замену табуляций на разделитель, для этого, копируем табуляцию и  выбираем Правка -> Заменить. В поле «Что» вставляем скопированную  табуляцию, а в поле «Чем» вставляем «!» — нажимаем Заменить все. Называем данный файл links.txt
      Далее, необходимо создать пустой файл visited.txt, куда программа перелинковки будет записывать состояния страниц (связь уже построенных перелинковок с URL-адресами вашего сайтта), в принципе, можно данный файл и не создавать — он будет создан автоматически при первом запуске скрипта, но если в директории, куда закачан скрипт не стоят права на запись — возникнет конфликт. Далее, файлу links необходимо дать права на запись. Если вы используете FileZilla, то нажимаем на файл правой кнопкой и в открывшемся меню выбираем пункт -> Права доступа к файлу:
      Итак, далее нам необходимо закачать на сервер следующие файлы:
      сам скрипт (perelinkovka.php) файл с околоссылочным текстом (texts.txt) файл с ключевыми словами (links.txt) файл состояния страниц (visited.txt)  
       
       
       
    • От kur1977
      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 ocStore OpenCart.Pro, ocShop  
    • От 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: модуль обновлен. Исправлены мелкие недочеты.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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