highlight.js 라이브러리를 기반으로 기사의 코드 샘플을 강조 표시하는 모듈을 만들었습니다. 이 라이브러리는 <> < 코드> ... </code> </pre> 태그에 코드 샘플을 삽입해야합니다. 기사를 쓸 때 < pre> 태그를 추가하고 싶지 않습니다. 다른 형광펜 라이브러리는 필요 없기 때문에 기사를 수정하지 않고 라이브러리를 전환 할 수 있기를 원합니다. 그래서 동적으로 < 코드> 태그 < 미리 포장해야합니다. 내가 성공하지 _node_view (그리고 _node_view_alter (후크를 구현하기 위해 노력했다. 내가Drupal 8의 모듈을 통해 노드 본문을 수정하는 방법
<pre>
<?php
ob_start("minimal_htmlspecialchars_callback");
print_r($content);
ob_end_flush();
?>
</pre>
내 템플릿의 내용을 인쇄 할 경우
이
function highlight_node_view($node, $view_mode, $langcode) {
$node->content['body']['und'][0]['safe_value'] = "test";
$node->body['und'][0]['safe_value'] = "test";
$node->content['body']['und'][0]['value'] = "test";
$node->body['und'][0]['value'] = "test";
}
function highlight_node_view_alter($build, $node) {
$build["body"]["#items"]["0"]["value"] = "TEST";
$build["body"]["#items"]["0"]["safe_value"] = "TEST";
$build["body"]["#formater"]["0"]["#markup"] = "TEST";
}
같은 내 코드를 보면 내가 확인할 수 있습니다
모든 값은 "test"로 올바르게 바뀌지 만<?php print render($content['body']); ?>
으로 전화하면 원래의 문제가 여전히 해결됩니다. 시험 대신에 텐트
기사의 내용을 모듈에서 바꾸는 적절한 방법은 무엇입니까?
드루팔 (8)는 아직 안정 버전이없는 및 테스트 이외의 사용하지 않아야합니다 ... 당신은 드루팔 7을 의미하지 않는다 당신이 확인되어 사용하고 있습니다? – Clive
드루팔 (Drupal 8)은 아직 준비가 안됐지만 실험을 좋아합니다. 나는 Symfony2로 자신 만의 매우 기본적인 블록 시스템을 개발하고 있었기 때문에 Drupal 8이이 프레임 워크를 기반으로한다는 사실을 발견했을 때 나는 그것을 시도하기로 결정했다. – MathieuLescure