Как сделать два окна для добавления материала?

  • 11 Ответов
  • 434 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

goodsanta

  • Осваиваюсь на форуме
  • ***
  • 84
  • -1
Требуется сделать два окна, что бы в одном окне автоматом был подзаголовок h2 с названием блока, а <li> добавлялось как <li itemprop="ingredients">
и второе окно начинающееся <h2>Способ приготовления</h2>
  <ul itemprop="recipeInstructions">

т.е. чтобы в итоге после заполнения окон было что то типа:
<h2>Ингредиенты</h2>
  <ul>
    <li itemprop="ingredients">
      текст первого окна
    </li>
    <li itemprop="ingredients" >
      текст первого окна
    </li>
    <li itemprop="ingredients" >
      текст первого окна
    </li>
    <li itemprop="ingredients" >
     текст первого окна
    </li>
    <li itemprop="ingredients" >
      текст первого окна
    </li>
  </ul>
  <h2>Способ приготовления</h2>
  <ul itemprop="recipeInstructions">

текст второго окна

*

Apoca1ypto

  • Завсегдатай
  • *****
  • 712
  • 69
Самый простой вариант использовать CCK, например Zoo.
Во время спора в Интернете Ваш оппонент приводит неопровержимые доказательства своей точки зрения? Не отчаивайтесь. До...тесь до орфографии.

*

goodsanta

  • Осваиваюсь на форуме
  • ***
  • 84
  • -1
ZOO не подходит, именно то дополнение которое нужно в платной версии.
« Последнее редактирование: 06.05.2015, 19:01:25 от goodsanta »

*

goodsanta

  • Осваиваюсь на форуме
  • ***
  • 84
  • -1
Ладно упростим задачу, в каком файле находится вывод <li> что бы его вывод заменить на <li itemprop="ingredients" >

*

Очередной вебмастер

  • Завсегдатай
  • *****
  • 784
  • 55
  • лысый умный дядя
Ладно упростим задачу, в каком файле находится вывод <li> что бы его вывод заменить на <li itemprop="ingredients" >
он находится в разметке html   :laugh:
Попробуйте воспользоваться чем то наподобие https://www.nonumber.nl/ru/extensions/contenttemplater он вставляет предварительно подготовленный вами шаблон в поле редактора
--------
Блог о Joomla
----------
---------
Помог ответ - жми плюс!

*

goodsanta

  • Осваиваюсь на форуме
  • ***
  • 84
  • -1
т.е. просто в каком файле это переписать никто не знает?

*

Apoca1ypto

  • Завсегдатай
  • *****
  • 712
  • 69
ZOO не подходит, именно то дополнение которое нужно в платной версии.

ZOO бесплатный компонент, если Вы про платные Приложения, то это набор полей, которые Вы можете сделать сами.
Во время спора в Интернете Ваш оппонент приводит неопровержимые доказательства своей точки зрения? Не отчаивайтесь. До...тесь до орфографии.

*

goodsanta

  • Осваиваюсь на форуме
  • ***
  • 84
  • -1
ZOO бесплатный компонент, если Вы про платные Приложения, то это набор полей, которые Вы можете сделать сами.
Именно то поле которое и нужное оно и платное, а то что в бесплатном так это и так все есть.

*

Очередной вебмастер

  • Завсегдатай
  • *****
  • 784
  • 55
  • лысый умный дядя
т.е. просто в каком файле это переписать никто не знает?
т.е. если бы это было просто в рамках com_content вам бы уже об этом написали.
--------
Блог о Joomla
----------
---------
Помог ответ - жми плюс!

*

goodsanta

  • Осваиваюсь на форуме
  • ***
  • 84
  • -1
т.е. если бы это было просто в рамках com_content вам бы уже об этом написали.
Представь себе это именно так просто, но просто человек который разбирается в этом побольше тебя и меня просто не зашел в данную тему, или был занят, и да это именно в com_content
И если вдруг кому интересно как, ну мало ли то вот решение:
Код
$order = '<li>';
$replace = '<li itemprop="ingredients">';
$zamena = str_replace($order, $replace, $this->item->text);
$order2 = 'Приготовление:</h2>';
$replace2 = 'Приготовление:</h2><ul itemprop="recipeInstructions">';
echo str_replace($order2, $replace2, $zamena);

вместо:

echo $this->item->text;
Данное решение было создано для кулинарного сайта, теперь там отображается как надо ингредиенты, и автоматом под Приготовление вставляется recipeInstructions

*

robert

  • Профи
  • ********
  • 4002
  • 371
goodsanta, ваш заголовок темы ввел читателей в заблуждение: на самом деле не было никаких окон для добавления материала, речь шла просто о добавлении микроразметок при выводе материала.
Касаясь вашего решения:
- ко всем li будут добавлены itemprop="ingredients"
- остается лишний незакрытый ul
Корректнее будет так:
Код: php-brief
preg_match('#Ингредиент</h2>((?!</ul>).)*</ul>#s',$this->item->text,$matches1);
preg_match('#Способ приготовления:</h2>((?!</ul>).)*</ul>#s',$this->item->text,$matches2);
$search=array($matches1[0],$matches2[0]);
$replace=array();
$replace[]=str_replace('<li>','<li itemprop="ingredients">',$matches1[0]);
$replace[]=str_replace('<ul>','<ul itemprop="recipeInstructions">',$matches2[0]);
$item_text=str_replace($search,$replace,$this->item->text);
echo $item_text;
Но это решение весьма ресурсоемкое, правильнее включить микроразметки еще на стадии создания материала.
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

goodsanta

  • Осваиваюсь на форуме
  • ***
  • 84
  • -1
goodsanta, ваш заголовок темы ввел читателей в заблуждение
В сообщении ниже я написал
Ладно упростим задачу, в каком файле находится вывод <li> что бы его вывод заменить на <li itemprop="ingredients" >