Manchmal möchte man Quellcode-Ausschnitte (PHP, JavaScript, HTML, XML und andere) seiner Frage oder Antwort in diesem Forum hinzufügen.
Dafür verwendet man den Code-Button des Editors, damit andere den Code-Block leichter lesen können.
Ein solcher Block erhält dadurch automatisch Zeilennummern und eine gut lesbare Monospace-Schriftart, Einrückungen bleiben erhalten, im normalen Text u.U. "verbotener" Code wird nicht rausgefiltert oder verändert und, wenn es mal sehr viele Zeilen sind, zeigt die Forums-Software automatisch eine "Alles Anzeigen"-Schaltfläche an, mit der man diese aus- und einblenden kann.
Andere können den Code-Block viel besser lesen und bei Bedarf mit einem einzelnen Klick kopieren.
Wie? Ganz einfach:
- Den Cursor im Editor an die Stelle setzen, wo man einen Code-Block einfügen möchte.
- Den Code-Button klicken.
- Es erscheint ein vorbereitetes Feld mit Überschrift "Quellcode".
- Code reinkopieren und fertig.
Richtig gemacht:
<?php
defined('_JEXEC') or die;
$form = $displayData->getForm();
$fields = $displayData->get('fields') ?: array(
'publish_up',
'publish_down',
'featured_up',
'featured_down',
array('created', 'created_time'),
array('created_by', 'created_user_id'),
'created_by_alias',
array('modified', 'modified_time'),
array('modified_by', 'modified_user_id'),
'version',
'hits',
'id'
);
$hiddenFields = $displayData->get('hidden_fields') ?: array();
?>
<div class="row">
<?php
foreach ($fields as $field) {
foreach ((array) $field as $f) {
if ($form->getField($f)) {
if (in_array($f, $hiddenFields)) {
$form->setFieldAttribute($f, 'type', 'hidden');
} ?>
<div class="col">
<?php
echo $form->renderField($f, $group = null, $default = null,
$options = ['class' => 'wurst']);
?>
</div>
<?php
break;
}
}
} ?>
</div>
Alles anzeigen
Falsch gemacht:
<?php
defined('_JEXEC') or die;
$form = $displayData->getForm();
$fields = $displayData->get('fields') ?: array(
'publish_up',
'publish_down',
'featured_up',
'featured_down',
array('created', 'created_time'),
array('created_by', 'created_user_id'),
'created_by_alias',
array('modified', 'modified_time'),
array('modified_by', 'modified_user_id'),
'version',
'hits',
'id'
);
$hiddenFields = $displayData->get('hidden_fields') ?: array();
?>
<div class="row">
<?php
foreach ($fields as $field) {
foreach ((array) $field as $f) {
if ($form->getField($f)) {
if (in_array($f, $hiddenFields)) {
$form->setFieldAttribute($f, 'type', 'hidden');
} ?>
<div class="col">
<?php
echo $form->renderField($f, $group = null, $default = null,
$options = ['class' => 'wurst']);
?>
</div>
<?php
break;
}
}
} ?>
</div>