Würde mich jetzt doch interessieren, wie die Vorgehensweise ungefähr wäre Sliding Tabs + Validierung der einzelnen Tabs nur mit J!-Bordmitteln zu erreichen. Man könnte hier etwas fachsimpeln und dann ins Wiki damit.
Edit: was sind die Stichpunkte zum JHtml-Override?
Edit2: gibt es Ansätze um so wie in dem FormCheck-Script bei fehlerhaften Feldern ToolTips neben dem Feld anzuzeigen?
Edit3:
PHP-Code:
protected static function _loadBehavior($group, $params = array())
{
static $loaded = array();
if (!array_key_exists($group, $loaded))
{
// Include MooTools framework
JHtml::_('behavior.framework', true);
$options = '{';
$opt['onActive'] = (isset($params['onActive'])) ? $params['onActive'] : null ;
$opt['onBackground'] = (isset($params['onBackground'])) ? $params['onBackground'] : null ;
$opt['display'] = (isset($params['startOffset'])) ? (int)$params['startOffset'] : null ;
$opt['useStorage'] = (isset($params['useCookie']) && $params['useCookie']) ? 'true' : null ;
$opt['titleSelector'] = "'dt.tabs'";
$opt['descriptionSelector'] = "'dd.tabs'";
foreach ($opt as $k => $v)
{
if ($v) {
$options .= $k.': '.$v.',';
}
}
if (substr($options, -1) == ',') {
$options = substr($options, 0, -1);
}
$options .= '}';
$js = ' window.addEvent(\'domready\', function(){
$$(\'dl#'.$group.'.tabs\').each(function(tabs){
new JTabs(tabs, '.$options.');
});
});';
$document = JFactory::getDocument();
$document->addScriptDeclaration($js);
JHtml::_('script', 'system/tabs.js', false, true);
$loaded[$group] = true;
}
}
In tabs.php wird beim instanziieren der (mootools)JTabs-Klasse kein Variablenname vergeben, somit kann ich einzelne Tabs nicht direkt ansprechen, um z.B. mit einem Button gezielt zu einem Tab zu springen, oder?
Wenn ich beim starten des Panel das config-array mitgebe um z.B. ein console.log() beim Event "onActive" auszuführen funktioniert zwar der output, aber die Tabs funktionieren nicht mehr, auch kein Fehler in der Console.
PHP-Code:
echo JHtml::_('tabs.start', 'tabs', array(
'useCookie'=>1,
'onActive' => "console.log(this.JTabs)"
)
);
Ne Idee? Dachte ich könnte vielleicht über dieses Event (oder onBackground()) das mit der Validierung angehen.
Lesezeichen