Page 1 of 1

benutzerdefinierte Felder formatieren

Posted: 13 Sep 2011, 15:50
by jsm
Hallo,

ich verwende ein benutzerdefiniertes Feld um eine Liste existierender Installationen vorzuhalten. Hier soll markiert werden wo überall das im Ticket beschriebene Problem aufgetreten ist. Mehrfachauswahl muß möglich sein, daher ist der Typ Kontrollkästchen eingestellt. Leider ist die entstehende Liste ziemlich unübersichtlich.

Existiert eine Möglichkeit die Ausgabe geeignet zu formatieren, z.B. als 3-4spaltige Tabelle?

Für Hinweise dankbar
jsm

Re: benutzerdefinierte Felder formatieren

Posted: 26 Sep 2011, 15:06
by jsm
ok, nach einigem Suchen hab' ich die passende Stelle gefunden:
Funktion

Code: Select all

cfdef_input_checkbox($p_field_def, $t_custom_field_value)
in ~core\cdefs\cfdef_standard.php.
Ein schneller hack

Code: Select all

function cfdef_input_checkbox($p_field_def, $t_custom_field_value) {
	$t_values = explode( '|', custom_field_prepare_possible_values( $p_field_def['possible_values'] ) );
	$t_checked_values = explode( '|', $t_custom_field_value );
	$i=0; $j=5;		# Anz. Spalten festlegen
	echo '<table><tr>';
	foreach( $t_values as $t_option ) {
		echo '<td><input ', helper_get_tab_index(), ' type="checkbox" name="custom_field_' . $p_field_def['id'] . '[]"';
		if( in_array( $t_option, $t_checked_values, true ) ) {
			echo ' value="' . string_attribute( $t_option ) . '" checked="checked">&#160;' . string_display_line( $t_option ) . '&#160;&#160;';
		} else {
			echo ' value="' . string_attribute( $t_option ) . '">&#160;' . string_display_line( $t_option ) . '&#160;&#160;';
		}
		echo '</td>';
		$i++;
		if (!($i % $j)){
			echo '</tr><tr>';
		}
	}
	if ($i % $j){
		echo '</tr>';
	}
	echo '</table>';
}
tut was ich brauche. Schöner wäre Spaltenzahl einstellbar, evtl. sogar getrennt für mehrere vorhandene custom fields - vielleicht später.