21
Le voci di Joomla.it (solo per versione Joomla 1.0.x) / Re: Limitare il numero di registrazioni
« il: 14 Feb 2007, 18:40:39 »
Ci sono riuscito!! Sbagliavo la funzione che recuperava il valore del numero di utenti dal database... Ecco il codice funzionante, se vi può interessare... 
File mosreglimit.xml
File MosRegLimit.php:

File mosreglimit.xml
Codice: [Seleziona]
<description>
<![CDATA[
<b>RegistrationLimit</b> vi permette di definire il numero massimo di utenti che possono registrarsi.
]]>
</description>
<files>
<filename mambot="mosreglimit">mosreglimit.php</filename>
</files>
<params>
<param name="maxreguser" type="text" label="Numero massimo di utenti che possono registrarsi al sito" description="Inserite il numero massimo di utenti che possono registrarsi al sito."/>
<param name="maxregusermsg" type="text" default="Spiacente, è stato raggiunto il numero massimo di utenti che possono registrarsi" label="Messaggio di errore quando si raggiunge il numero massimo di utenti registrati al sito" description="Testo da mostrare quando è stato raggiunto il numero massimo di registrazioni consentite."/>
</params>
</mosinstall>
File MosRegLimit.php:
Codice: [Seleziona]
<?php
/*
RegistrationLimit 1.0 vi permette di definire il numero massimo di
utenti che si possono registrare.
*/
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
$_MAMBOTS->registerFunction( 'onStart', 'botRegLimit' );
function botRegLimit() {
// Prima controllo se c'è qualcosa da fare
$option = strtolower (strval( mosGetParam( $_REQUEST, 'option' ) ) );
$task = strtolower (strval( mosGetParam( $_REQUEST, 'task' ) ) );
if(!in_array($option, array('com_registration', 'com_comprofiler')) || $task!='saveregistration') return true;
global $database;
// carica i parametri dal mambot mosreglimit, definiti nel file xml
$query = "SELECT params FROM #__mambots WHERE element = 'mosreglimit' AND folder = 'system'";
// assegna alla variabile database il valore di $query
$database->setQuery( $query );
// carica il mambot
$database->loadObject($mambot);
$botParams = new mosParameters( $mambot->params );
// la query che ritorna il numero di utenti attualmente registrati, chiamiamo la variabile $numuser
$sql = "SELECT COUNT('id') FROM `#__users`";
$database->setQuery( $sql );
$numuser = $database->loadResult($sql);
$botParams = new mosParameters( $mambot->params );
// definisce il messaggio di errore
$msg = $botParams->def('maxregusermsg');
// assegna a $maxreguser il valore impostato nel file xml
$maxreguser = $botParams->get('maxreguser');
if ($numuser >= $maxreguser) {
mosErrorAlert($msg);
}
}
?>