Hallo Hoch-3 & Mechanix,
mir ist keine Möglichkeit bekannt, das Feld Author so umzukonfigurieren, dass man auch Freitext eingeben kann. Mit JavaScript könnte das gehen, aber das fände ich doch eher unschön. Probiert doch mal folgendes:
Legt einen neuen Ordner in TL_ROOT/system/modules an, z.B. x_custom_author. Darin platziert ihr zwei Unterordner mit den Namen config und dca.
Inhalt Ordner config:
Datei database.sql
PHP-Code:
CREATE TABLE `tl_news` (
`c_author_check` char(1) NOT NULL default '',
`c_author` varchar(255) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `tl_article` (
`c_author_check` char(1) NOT NULL default '',
`c_author` varchar(255) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Inhalte Ordner dca:
Datei tl_news.php
PHP-Code:
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
// neuen Eintrag für die subpalettes
$GLOBALS['TL_DCA']['tl_news']['subpalettes']['c_author_check'] = 'c_author';
// neue Felder
$GLOBALS['TL_DCA']['tl_news']['fields']['c_author_check'] = array(
'label' => array('Individuellen Autor angeben','Tragen Sie einen Autor ein, der nicht als Backend-Benutzer registriert ist.'), // oder einen Verweis auf eine Sprachdatei, das habe ich mir gespart
'inputType' => 'checkbox',
'eval' => array('submitOnChange'=>true,'tl_class'=>'w50')
);
$GLOBALS['TL_DCA']['tl_news']['fields']['c_author'] = array(
'label' => array('Individueller Autor','Tragen Sie einen Autor ein, der nicht als Backend-Benutzer registriert ist.'), // oder einen Verweis auf eine Sprachdatei, das habe ich mir gespart
'inputType' => 'text',
'eval' => array('tl_class'=>'w50')
);
// palette erweitern
$GLOBALS['TL_DCA']['tl_news']['palettes']['default'] = str_replace('author','author,c_author_check',$GLOBALS['TL_DCA']['tl_news']['palettes']['default']);
$GLOBALS['TL_DCA']['tl_news']['palettes']['__selector__'][] = 'c_author_check';
Datei tl_article.php
PHP-Code:
<?php if (!defined('TL_ROOT')) die('You can not access this file directly!');
$GLOBALS['TL_DCA']['tl_article']['subpalettes']['c_author_check'] = 'c_author';
$GLOBALS['TL_DCA']['tl_article']['fields']['c_author_check'] = array(
'label' => array('Individuellen Autor angeben','Tragen Sie einen Autor ein, der nicht als Backend-Benutzer registriert ist.'), // oder einen Verweis auf eine Sprachdatei, das habe ich mir gespart
'inputType' => 'checkbox',
'eval' => array('submitOnChange'=>true,'tl_class'=>'w50')
);
$GLOBALS['TL_DCA']['tl_article']['fields']['c_author'] = array(
'label' => array('Individuellen Autor angeben','Tragen Sie einen Autor ein, der nicht als Backend-Benutzer registriert ist.'), // oder einen Verweis auf eine Sprachdatei, das habe ich mir gespart
'inputType' => 'text',
'eval' => array('tl_class'=>'w50')
);
$GLOBALS['TL_DCA']['tl_article']['palettes']['default'] = str_replace('author','author,c_author_check',$GLOBALS['TL_DCA']['tl_article']['palettes']['default']);
$GLOBALS['TL_DCA']['tl_article']['palettes']['__selector__'][] = 'c_author_check';
Nun natürlich noch das entsprechende Template anpassen. Zum Beispiel news_latest:
vorher (Auszug):
PHP-Code:
<p class="info"><?php echo $this->date; ?> <?php echo $this->author; ?> <?php echo $this->commentCount; ?></p>
nachher (Auszug):
PHP-Code:
<?php $author = $this->c_author_check && strlen($this->c_author) ? $this->c_author : $this->author; ?>
<p class="info"><?php echo $this->date; ?> <?php echo $author; ?> <?php echo $this->commentCount; ?></p>
Lesezeichen