Symfony получает изображение, переданное через форму внутри статьи - PullRequest
1 голос
/ 24 октября 2019

Итак, я работаю разработчиком внешнего интерфейса, и мне сказали сделать изображения внутри статьи отзывчивыми. Наш бэкэнд работает на Symfony 2.X, и, к сожалению, я мало что знаю об этом ... Проблема в том, как эта статья отображается. Это выглядит так:

{{ article.content|raw }}

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

Ответы [ 2 ]

0 голосов
/ 26 октября 2019

Итак, мне удалось создать javascript, который просто находит все изображения и применяет к ним класс, чтобы сделать их отзывчивыми. Вот код:

$(document).ready(function(){
          for(var i=3; i < document.getElementsByTagName("IMG").length; i++){
            var image= document.getElementsByTagName("IMG")[i]
            if(image.classList.contains("img-responsive")){

            }
            else{
              image.classList.add("image-article");
            }
          }});

Цикл начинается с четвертого элемента, потому что первые три тега img - это просто некоторый фиктивный код, вставленный CMS. Он также проверяет, есть ли изображения с img-отзывчивым классом, чтобы предотвратить поломку CSS.

0 голосов
/ 24 октября 2019

Нет такой функции / фильтра, доступной в Twig (или Symfony в этом отношении).

Возможно, вы могли бы написать собственную функцию / фильтр для достижения этой цели, но это может быть сложной задачей, если выВы не знакомы с Symfony.

Самый быстрый способ отсортировать это, вероятно, будет одним из следующих:

  1. Если контент связан с WYSIWYG в CMS, выможет быть возможность отредактировать html в исходном представлении редактора WYSIWYG.

  2. Если это невозможно, вы можете перейти на базу данных и отредактировать там html-контент.

...