@novikov__al

Как получить caption у изображения при editor.blocks.renderFromHTML() в editorJS?

Приветствую. Почему то документации именно по editor.blocks.renderFromHTML() я не нашел...
Ситуация такая
Данные из editorjs получаю в json, преобразую в HTML и сохраняю в БД. Полет нормальный.
Далее при редактировании статьи, методом editor.blocks.renderFromHTML() получаю все обратно и могу редактировать.
Единственное, не понимаю, как мне передать из HTML caption для изображений (показал на скрине)
Как мне сохранить исходник, что бы при редактировании я мог получить это описание?
66bb82cd9ccf7976744915.png
  • Вопрос задан
  • 43 просмотра
Решения вопроса 1
@novikov__al Автор вопроса
Сам спросил - сам и отвечу))) Думаю еще пригодится...
Решить задачу с помощью editor.blocks.renderFromHTML() у меня не получилось....
Ситуация такая, что json из editorJS мне нужно передать в БД для корректного отображения в редакторе TinyMCE в панели управления Joomla. Поэтому преобразование из json в html просто необходимо.
Далее встал вопрос, как html обратно сделать json, для чего я и хотел использовать editor.blocks.renderFromHTML(), но документации нет и ни чего у меня сделать из этого не получилось. Вопрос я решил с помощью функции на PHP, которая преобразовывает HTML в массив, а далее из массива я уже построил нужный мне json

function html_to_obj( $html ) {
    $dom = new DOMDocument();
    $dom->loadHTML( $html );
    return element_to_obj( $dom->documentElement );
}

function element_to_obj( $element ) {
	if ( isset( $element->tagName ) ) {
		$obj = array( 'tag' => $element->tagName );
	}
	if ( isset( $element->attributes ) ) {
		foreach ( $element->attributes as $attribute ) {
			$obj[ $attribute->name ] = $attribute->value;
		}
	}
	if ( isset( $element->childNodes ) ) {
		foreach ( $element->childNodes as $subElement ) {
			if ( $subElement->nodeType == XML_TEXT_NODE ) {
				$obj['html'] = $subElement->wholeText;
			} elseif ( $subElement->nodeType == XML_CDATA_SECTION_NODE ) {
				$obj['html'] = $subElement->data;
        	} else {
				$obj['children'][] = element_to_obj( $subElement );
			}
		}
	}
    return ( isset( $obj ) ) ? $obj : null;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
21 нояб. 2024, в 22:21
3000 руб./в час
21 нояб. 2024, в 21:42
100000 руб./за проект
21 нояб. 2024, в 21:30
500 руб./за проект