Ich hab es ! War gar nicht so einfach weil alle SQL Querys des Edit Controllers neu gebaut werden mußten.
Die Funktion hänge ich unten an, ersetze damit die gleiche in der Datei
/PFAD_ZU_JOOMLA/administrator/components/com_clm/controllers/turnier_teilnehmer.php
Ein kurzes Feedback wäre auch ganz nett !
function edit()
{
global $mainframe, $option;
$section = JRequest::getVar('section');
$db =& JFactory::getDBO();
$filter_gid = $mainframe->getUserStateFromRequest( "$option.filter_gid",'filter_gid',0,'int' );
$filter_order = $mainframe->getUserStateFromRequest( "$option.filter_order",'filter_order','a.id', 'cmd' );
$filter_order_Dir = $mainframe->getUserStateFromRequest( "$option.filter_order_Dir",'filter_order_Dir','','word' );
$filter_verband = $mainframe->getUserStateFromRequest( "$option.filter_verband",'filter_verband',0,'int' );
$filter_turnier = $mainframe->getUserStateFromRequest( "$option.filter_turnier",'filter_turnier',0,'int' );
$filter_vid = $mainframe->getUserStateFromRequest( "$option.filter_vid",'filter_vid',0,'int' );
$search = $mainframe->getUserStateFromRequest( "$option.search",'search','','string' );
$search = JString::strtolower( $search );
$limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' );
$limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' );
$where = array();
$orderby = "";
// Wenn Ergebnisse gemeldet kein nachträgliches Melden erlauben
$sql =" SELECT COUNT(id) as id FROM `#__clm_turniere_rnd_spl` "
." WHERE turnier =".$filter_turnier
." AND ergebnis IS NOT NULL"
;
$db->setQuery( $sql);
$counter_erg = $db->loadObjectList();
$count = $counter_erg[0]->id;
if ($count > 0 ) {
JError::raiseWarning( 500, JText::_( 'Es wurden Ergebnisse gemeldet : Kein hinzufügen von Spielern mehr möglich !' ) );
$link = 'index.php?option='.$option.'§ion='.$section;
$mainframe->redirect( $link);
}
if ( $filter_verband ) {
if ( (int)$filter_verband ==700 ) {
$og = '79999';
$ug = (int) $filter_verband.'00';
}
else {
$og = (int) $filter_verband.'99';
$ug = (int) $filter_verband.'00';
}
$where[] = " a.ZPS BETWEEN '$ug' AND '$og'";
}
if ( $filter_vid ) { $where[] = "a.zps = '$filter_vid'"; }
if ($search) { $where[] = 'LOWER(a.Spielername) LIKE '.$db->Quote( '%'.$db->getEscaped( $search, true ).'%', false ); }
$where = ( count( $where ) ? ' ' . implode( ' AND ', $where ) : '' );
$where_sel = 'WHERE '.$where;
$where_union = ' AND '.$where;
if ($filter_order =='a.Spielername' OR $filter_order == 'a.DWZ' OR $filter_order == 'a.Mgl_nr' OR $filter_order == 'a.FIDE_Elo' OR $filter_order == 'v.Vereinname' OR $filter_order == 't.snr' OR $filter_order == 'a.FIDE_Titel') {
$orderby = ' ORDER BY '. $filter_order .' '. $filter_order_Dir ;
}
else { $filter_order = 'a.DWZ'; }
// get the total number of records
$query = '( SELECT COUNT(ZPS) '
. ' FROM dwz_spieler AS a '
. " $where_sel ) "
. ' UNION '
. '( SELECT COUNT(ZPS) '
. ' FROM #__clm_dwz_spieler AS a '
. " WHERE STATUS ='N' $where_union ) "
;
$db->setQuery( $query );
$total = $db->loadResult();
jimport('joomla.html.pagination');
$pageNav = new JPagination( $total, $limitstart, $limit );
// get the subset (based on limits) of required records
$query = '( SELECT v.Vereinname,t.turnier,t.snr,n.name as tname,a.Mgl_Nr, a.Status,a.Spielername,a.DWZ'
. ' FROM dwz_spieler AS a'
. ' LEFT JOIN #__clm_turniere_tlnr AS t ON t.zps = a.ZPS AND t.mgl_nr = a.Mgl_Nr AND t.turnier ='.(int)$filter_turnier
. ' LEFT JOIN #__clm_turniere AS n ON n.id = t.turnier AND n.sid = t.sid '
. ' LEFT JOIN dwz_vereine AS v ON v.ZPS = a.ZPS '
. " $where_sel $orderby) "
. ' UNION '
. '( SELECT v.Vereinname,t.turnier,t.snr,n.name as tname,a.Mgl_Nr, a.Status,a.Spielername,a.DWZ'
. ' FROM #__clm_dwz_spieler AS a'
. ' LEFT JOIN #__clm_turniere_tlnr AS t ON t.zps = a.ZPS AND t.mgl_nr = a.Mgl_Nr AND t.turnier ='.(int)$filter_turnier
. ' LEFT JOIN #__clm_turniere AS n ON n.id = t.turnier AND n.sid = t.sid '
. ' LEFT JOIN dwz_vereine AS v ON v.ZPS = a.ZPS '
. " WHERE a.STATUS ='N' $where_union $orderby) "
;
$db->setQuery( $query, $pageNav->limitstart, $pageNav->limit );
$rows = $db->loadObjectList();
if ($db->getErrorNum()) {
echo $db->stderr();
return false;
}
// Verbandfilter
$sql = 'SELECT Verband, Verbandname FROM dwz_verbaende';
$db->setQuery($sql);
$verbandlist[] = JHTML::_('select.option', '0', JText::_( '- Verband wählen -' ), 'Verband', 'Verbandname' );
$verbandlist = array_merge( $verbandlist, $db->loadObjectList() );
$lists = JHTML::_('select.genericlist', $verbandlist, 'filter_verband', 'class="inputbox" size="1" onchange="document.adminForm.submit();"','Verband', 'Verbandname', intval( $filter_verband ) );
// Vereinefilter
$sql = 'SELECT ZPS as zps, Vereinname as name FROM dwz_vereine ';
if ( $filter_verband ) { $sql = $sql." WHERE ZPS BETWEEN '$ug' AND '$og'"; }
$db->setQuery($sql);
$vlist[] = JHTML::_('select.option', '0', JText::_( '- Verein wählen -' ), 'zps', 'name' );
$vlist = array_merge( $vlist, $db->loadObjectList() );
$lists = JHTML::_('select.genericlist', $vlist, 'filter_vid', 'class="inputbox" size="1" onchange="document.adminForm.submit();"','zps', 'name', $filter_vid );
// Suchefilter
$lists= $search;
// Ordering
$lists = $filter_order_Dir;
$lists = $filter_order;
require_once(JPATH_COMPONENT.DS.'views'.DS.'turnier_teilnehmer.php');
CLMViewTurnierteilnehmer::Teilnehmer_add( $rows, $lists, $pageNav, $option, $filter_turnier );
}