これは、元のテンプレートに余分なマークアップを追加する方法です。特定のデータオブジェクトの拡張機能
public function updateExtraTemplateHTML($htmlBlocks) {
$viewer = new SSViewer(__CLASS__);
$html = $viewer->process($this->owner);
$htmlBlocks['bottom'][] = $html;
$topHtml = HTMLText::create();
$topHtml->setValue(123);
$htmlBlocks['top'][] = $topHtml;
return $htmlBlocks;
}
オリジナルテンプレートの内部データオブジェクトまたはグローバルデータオブジェクトの拡張
public function ExtraTemplateHTML($position) {
$html = null;
foreach($this->owner->extend('updateExtraTemplateHTML') as $positionBlocks) {
if(isset($positionBlocks[$position])) {
foreach($positionBlocks[$position] as $htmlBlock) {
$html .= $htmlBlock->getValue();
}
}
}
return $html;
}
インサイド
$ExtraTemplateHTML(top)
...
...
$ExtraTemplateHTML(bottom)
拡張テンプレート
追加するコンテンツを含む拡張機能用の新しいテンプレートを作成するだけです。
私はそれがデフォルトでは可能ではないと思っていました。ドットは単純な例に過ぎませんでした。もちろん、さらに複雑なデータを追加することもあります。 JSは良い選択ではありません。おそらく私はこれを達成するためのカスタム関数について考える必要があります。 –