- Postagens: 10
- Obrigados Recebidos: 0
mod_eventlist retornando os eventos mais antigos
- david_joomla
-
Autor do Tópico
- Offline
- JCB! Estagiário
-
Menos
Mais
13 anos 10 meses atrás #60159
por david_joomla
david_joomla created the topic: mod_eventlist retornando os eventos mais antigos
Galera, algum vocês pode me ajudar a inverter a lista de eventos que o mod_eventlist mostra. Tentei alterar o código abaixo, mas num tive êxito. Não conheço muito de php, então venho pedir a ajuda de vcs.
Código:
Código:
function getList(&$params)
{
global $mainframe;
$db =& JFactory::getDBO();
$user =& JFactory::getUser();
$user_gid = (int) $user->get('aid');
if ($params->get( 'type', '0' ) == 0) {
$where = ' WHERE a.published = 1';
if ($params->get( 'event_after', '0' )) {
$limit_date = strftime('%Y-%m-%d', time() + $params->get( 'event_after', '0' ) * 86400);
$where .= ' AND a.dates >= ' . $db->Quote($limit_date);
}
$order = ' ORDER BY a.dates, a.times'; //tentei trocar aki para ORDER BY a.dates ASC, a.times ASC
} else {
$where = ' WHERE a.published = -1';
$order = ' ORDER BY a.dates DESC, a.times DESC';//tentei trocar aki para ORDER BY a.dates ASC, a.times ASC
}
$catid = trim( $params->get('catid') );
$venid = trim( $params->get('venid') );
if ($catid)
{
$ids = explode( ',', $catid );
JArrayHelper::toInteger( $ids );
$categories = ' AND (c.id=' . implode( ' OR c.id=', $ids ) . ')';
}
if ($venid)
{
$ids = explode( ',', $venid );
JArrayHelper::toInteger( $ids );
$venues = ' AND (l.id=' . implode( ' OR l.id=', $ids ) . ')';
}
//get $params->get( 'count', '2' ) nr of datasets
$query = 'SELECT DISTINCT a.*, l.venue, l.city, l.url,'
.' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug,'
.' CASE WHEN CHAR_LENGTH(l.alias) THEN CONCAT_WS(\':\', l.id, l.alias) ELSE l.id END as venueslug'
.' FROM #__eventlist_events AS a'
.' INNER JOIN #__eventlist_cats_event_relations AS rel ON rel.itemid = a.id'
.' INNER JOIN #__eventlist_categories AS c ON c.id = rel.catid'
.' LEFT JOIN #__eventlist_venues AS l ON l.id = a.locid'
. $where
.' AND c.access <= '.$user_gid
.($catid ? $categories : '')
.($venid ? $venues : '')
. $order
.' LIMIT '.(int)$params->get( 'count', '2' )
;
$db->setQuery($query);
$rows = $db->loadObjectList();
$i = 0;
$lists = array();
foreach ( $rows as $row )
{
//cut titel
$length = strlen(htmlspecialchars( $row->title ));
if ($length > $params->get('cuttitle', '18')) {
$row->title = substr($row->title, 0, $params->get('cuttitle', '18'));
$row->title = htmlspecialchars( $row->title.'...', ENT_COMPAT, 'UTF-8');
}
Please Entrar ou Registrar to join the conversation.
- luizwbr
-
- Offline
- JCB! Professional
-
13 anos 9 meses atrás #60747
por luizwbr
[b:3ah8ktjp]Luiz F. Weber[/b:3ah8ktjp]
[url:3ah8ktjp]http://weber.eti.br[/url:3ah8ktjp] - blog Virtuemart
[url:3ah8ktjp]http://loja.weber.eti.br[/url:3ah8ktjp] - plugins VM
[url:3ah8ktjp]http://webgenium.com.br[/url:3ah8ktjp] - trabalho
luizwbr replied the topic: Re: mod_eventlist retornando os eventos mais antigos
Olá David, tudo certinho?
Fiz uma alteração no teu código, testa aí:
Fiz uma alteração no teu código, testa aí:
function getList(&$params)
{
global $mainframe;
$db =& JFactory::getDBO();
$user =& JFactory::getUser();
$user_gid = (int) $user->get('aid');
if ($params->get( 'type', '0' ) == 0) {
$where = ' WHERE a.published = 1';
// removi esta parte para testar, pelo que parece estava listando somente os eventos mais novos de acordo com a data
/*if ($params->get( 'event_after', '0' )) {
$limit_date = strftime('%Y-%m-%d', time() + $params->get( 'event_after', '0' ) * 86400);
$where .= ' AND a.dates >= ' . $db->Quote($limit_date);
}*/
$order = ' ORDER BY a.dates ASC, a.times ASC'; //tentei trocar aki para ORDER BY a.dates ASC, a.times ASC
} else {
$where = ' WHERE a.published = -1';
$order = ' ORDER BY a.dates ASC, a.times ASC';//tentei trocar aki para ORDER BY a.dates ASC, a.times ASC
}
$catid = trim( $params->get('catid') );
$venid = trim( $params->get('venid') );
if ($catid)
{
$ids = explode( ',', $catid );
JArrayHelper::toInteger( $ids );
$categories = ' AND (c.id=' . implode( ' OR c.id=', $ids ) . ')';
}
if ($venid)
{
$ids = explode( ',', $venid );
JArrayHelper::toInteger( $ids );
$venues = ' AND (l.id=' . implode( ' OR l.id=', $ids ) . ')';
}
//get $params->get( 'count', '2' ) nr of datasets
$query = 'SELECT DISTINCT a.*, l.venue, l.city, l.url,'
.' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(\':\', a.id, a.alias) ELSE a.id END as slug,'
.' CASE WHEN CHAR_LENGTH(l.alias) THEN CONCAT_WS(\':\', l.id, l.alias) ELSE l.id END as venueslug'
.' FROM #__eventlist_events AS a'
.' INNER JOIN #__eventlist_cats_event_relations AS rel ON rel.itemid = a.id'
.' INNER JOIN #__eventlist_categories AS c ON c.id = rel.catid'
.' LEFT JOIN #__eventlist_venues AS l ON l.id = a.locid'
. $where
.' AND c.access <= '.$user_gid
.($catid ? $categories : '')
.($venid ? $venues : '')
. $order
.' LIMIT '.(int)$params->get( 'count', '2' )
;
$db->setQuery($query);
$rows = $db->loadObjectList();
$i = 0;
$lists = array();
foreach ( $rows as $row )
{
//cut titel
$length = strlen(htmlspecialchars( $row->title ));
if ($length > $params->get('cuttitle', '18')) {
$row->title = substr($row->title, 0, $params->get('cuttitle', '18'));
$row->title = htmlspecialchars( $row->title.'...', ENT_COMPAT, 'UTF-8');
}
//[...]
[b:3ah8ktjp]Luiz F. Weber[/b:3ah8ktjp]
[url:3ah8ktjp]http://weber.eti.br[/url:3ah8ktjp] - blog Virtuemart
[url:3ah8ktjp]http://loja.weber.eti.br[/url:3ah8ktjp] - plugins VM
[url:3ah8ktjp]http://webgenium.com.br[/url:3ah8ktjp] - trabalho
Please Entrar ou Registrar to join the conversation.