Pozdrav!
Moram da prepravim jedan modul u kojem je:
function ipVoted($poll_id) {
$db =& JFactory::getDBO();
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$query = "SELECT ip FROM ".$db->nameQuote('#__acepolls_votes')
."WHERE poll_id=".(int) $poll_id."
************ovdje ide i kontrola datuma *************
AND ip = '".$ip."'"
;
$db->setQuery($query);
return $ipVoted=($db->loadResult()) ? 1 : 0;
}
U ovoj tablici ima date, koji je formata datetime. Sad mi treba nekako ovako:
AND date < now()-24 sati
Kako bi ovo uradio da bi radilo?
Bez strukture tablice je ovo ko traženje igle u sijenu.... u mraku....
Napravi screenshot ace_polls tablice pa da vidimo dal će to opće ići....
Evo, ovako
Eto dakle imaš klasiku za date format u bazi pa bi ti bilo koje od ovih riješenja (http://stackoverflow.com/questions/8079671/find-records-with-a-date-field-in-the-last-24-hours/) trebalo poslužit... Da nejdem sad isprobavat po bazi, većina ovih odgovora mi izgleda u redu samo uvijek ima i različitih načina za napisat.
EDIT:
Dakle ovo bi trebalo radit, ali ovak na brzaka tipkam jer gibam dalje, ali mislim da nisam nigdje profulal :)
function ipVoted($poll_id) {
$db =& JFactory::getDBO();
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$query = "SELECT ip FROM ".$db->nameQuote('#__acepolls_votes')
."WHERE poll_id=".(int) $poll_id."
AND date >= SYSDATE() - INTERVAL 1 DAY
AND ip = '".$ip."'"
;
$db->setQuery($query);
return $ipVoted=($db->loadResult()) ? 1 : 0;
}
Pozdrav Dario!
Hvala za rješenje. Radi, al ima jedna frka. Server radi na UTC, joomla ima u konfiguraciji +2 sata i sad pazi:
Svi moduli prorade po ovom lokalnom vrijemenu, isto se u vjest upiše lokalno vrijeme. ACePoll modul ne radi ovako. On stavlja u tablice UTC, tako da bi kod ovog zadnjeg rješenja bilo glasanje onemogučeno 26 sati. Ja sam sad uradio ovako:
."WHERE poll_id=".(int) $poll_id."
AND timediff(now(), date) < '22:00:00'
AND ip = '".$ip."'"
Nažalost ne možeš utjecat kako modul radi.... to se događa kad ekstenzije ne koriste Joomline funkcije (za datum ovom slučaju) pa onda moraš i zaobilazit to :(
Uglavnom, bitno da si postigao kaj je trebalo :)