Новости Joomla

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

Zelyonkin

  • Захожу иногда
  • 109
  • 0 / 0
Добрый день! Может кто уже делал. Нужна возможность внедрять в материал некие php вставки использующие поля материала. Эти вставки могут быть в любом месте материала.
Допустим есть какое-то количество материалов где описываются сотрудники организации. В материалах есть поля ФИО, специальность и т.д. Далее эти материалы заполняются и в нужные места по тексту просто должны втыкаться некие шоткоды, например [FIO], которые соответственно при рендере на сайте должны выводит ФИО из поля данного материала.
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Переопределяете макет материала, в нем перед выводом контента делаете в нем замену шоткодов на значения полей (обычным str_replace можно).
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

ShopES

  • Захожу иногда
  • 426
  • 11 / 0
сложно описано
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
сложно описано
Проще будет только готовое решение. Но вопрос был про возможность. Понадобятся подробности - спросит.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Zelyonkin

  • Захожу иногда
  • 109
  • 0 / 0
На самом деле я пока что и делаю str_replace. Возможно есть какие-то более правильные варианты. Вот что у меня сейчас:
Код
foreach($this->item->jcfields as $field) {
$thisCustomFields[$field->name] = $field->value;
}
$replaceShotcodeText=str_replace('[специальность]', $thisCustomFields['spetsialnost'], $this->item->text);
Топорненько :). И если таких вставок 10, то делать массив, в массиве перечислять HTML и т.д.
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Вот. Особо расписывать человеку и не пришлось. Оптимизируйте немного код и все:
Код
$shortCodes = array();
foreach($this->item->jcfields as $field) {
    $shortCodes['['.$field->name.']'] = $field->value;
}
$this->item->text = str_replace(array_keys($shortCodes), array_values($shortCodes), $this->item->text);
в текст вставляйте сразу по именам полей: [spetsialnost]

Хотя, можно можно и по русскому тайтлу, тогда в цикле тоже надо заполнять массив тайтлами, а не нэймами.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Zelyonkin

  • Захожу иногда
  • 109
  • 0 / 0
в текст вставляйте сразу по именам полей: [spetsialnost]
Вот это уже лучше выглядит. Благодарю! Так можно все поля вставлять просто посмотрев название этого поля в админке. И если пойти дальше, то может подскажете как реализовать обёртки для шоткодов? Например [p class=aaa spetsialnost] или [strong class=aaa spetsialnost], чувствую надо делать некий explode и затем разбирать. Или может так [p.aaa spetsialnost]?
*

sivers

  • Живу я здесь
  • 2465
  • 336 / 0
Вот это уже лучше выглядит. Благодарю! Так можно все поля вставлять просто посмотрев название этого поля в админке. И если пойти дальше, то может подскажете как реализовать обёртки для шоткодов? Например [p class=aaa spetsialnost] или [strong class=aaa spetsialnost], чувствую надо делать некий explode и затем разбирать. Или может так [p.aaa spetsialnost]?
для этого регулярные выражения подойдут. Читайте про preg_match_all
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод дополнительного поля материала в модуле

Автор timofe

Ответов: 10
Просмотров: 1522
Последний ответ 06.10.2023, 14:02:24
от Mitriy
Заменить текст - просмотров - на иконку (или свой текст)

Автор all_zer

Ответов: 2
Просмотров: 317
Последний ответ 28.03.2023, 13:32:35
от all_zer
Комментарии в материале

Автор tmpnikl

Ответов: 0
Просмотров: 265
Последний ответ 09.12.2022, 09:09:02
от tmpnikl
Вывести поля профиля Joomla

Автор romagromov

Ответов: 9
Просмотров: 605
Последний ответ 09.12.2022, 08:43:08
от sivers
Добавление поля в форму регистрации

Автор Robert24

Ответов: 3
Просмотров: 446
Последний ответ 10.10.2022, 23:35:04
от Robert24