ご存知かもしれませんが、Joomla コンポーネントを使用すると、テンプレート ファイルをサイト テンプレートにコピーすることで出力をオーバーライドできます。Joomla コンポーネントは通常、オーバーライドできないヘルパー ファイルを使用します。
次の文字列を含む helper.php ファイルがあります。
$specific_fields_text = '<tr><td class="key">'.$specific_field_title.': </td><td class="kr_sidecol_subaddress">'.$specific_fields[$i]->text.' '.$specific_fields[$i]->description.'</td></tr>';
私のテンプレートオーバーライドにはコードがあります:
<table border="0" cellpadding="2" cellspacing="0">
<?php echo koparentHTML::getHTMLSpecificFields($this->specific_fields); ?>
</table>
出力は次のとおりです。
<table border="0" cellpadding="2" cellspacing="0">
<tr>
<td class="key">title</td>
<td class="kr_sidecol_subaddress">value</td>
</tr>
<tr>
<td class="key">title</td>
<td class="kr_sidecol_subaddress">value</td>
</tr>
//.....etc......//
</table>
基本的にはテーブルを削除して定義リストにしたいのですが、helper.phpファイルを変更できません。答えは str_replace に関係していると考えています
私は使用してみました:
<dl>
<?php
$spec_fields = koparentHTML::getHTMLSpecificFields($this->specific_fields);
$spec_fields_dl = str_replace("<tr><td class='key'>'.$specific_field_title.': </td><td class='kr_sidecol_subaddress'>'.$specific_fields[$i]->text.' '.$specific_fields[$i]->description.'</td></tr>'", "<dt class='key'>'.$specific_field_title.': </dt><dd class='kr_sidecol_subaddress'>'.$specific_fields[$i]->text.' '.$specific_fields[$i]->description.'</dd>'", $spec_fields);
echo $spec_fields_dl;
?>
</dl>
これはすべてのテキストを返しますが、html タグはありません (tr、td、dt などはありません)。