Vai al contenuto
Massy

3.4 Impostare notifiche MP per tutti gli utenti

Recommended Posts

Massy

Buonasera a tutti,

 

Mi sono accorto solo oggi (grazie alla segnalazione di alcuni utenti) che tra le notifiche di default è impostato che gli MP vengono notificati soltanto tramite e-mail e non tramite notifica online.

 

Mi chiedevo se fosse possibile modificare questa opzione non solo di default che agisce sui nuovi iscritti, ma anche su chi è già registrato.

 

Grazie.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
trattore

dai un okkiata su   Utenti  > Notifiche di Default e setta tutti i parametri come vuoi, compresi i mp alla voce:

Avvisami quando ricevo un nuovo messaggio privato attiva in linae ed email oppure le notifiche mobile

Modificato da trattore

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Massy
dai un okkiata su   Utenti  > Notifiche di Default e setta tutti i parametri come vuoi, compresi i mp alla voce:

Avvisami quando ricevo un nuovo messaggio privato attiva in linae ed email oppure le notifiche mobile

Grazie della risposta,

Però quello sarà valido per tutti gli utenti che si registreranno in seguito, non per quelli che sono già registrati o sbaglio?

Io vorrei reimpostare le notifiche anche per quelli che si sono registrati in questi mesi. Facendolo singolarmente ad ogni utente ci metterei giorni :(

Inviato da mio iPhone utilizzando Tapatalk

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

c'è un opzione ulteriore con Si/No che dovrebbe probabilmente forzare l'opzione che scegli nelle notifiche di default... ma non saprei, provo quando posso la cosa e ti faccio sapere.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
piripicchio

e invece come si potrebbe fare per notificare a tutti i PM con la finestra pop-up ?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

e invece come si potrebbe fare per notificare a tutti i PM con la finestra pop-up ?

bisogna lavorare con php perchè il varole da modificare è serializzato... quindi crei una build che integri ogni utente e gli aggiorni il campo, la build deve includere la "members_cache" corrispettiva.

$members = $this->DB->buildAndFetchAll(array(    'select'    => 'm.member_id',    'from'      => array('members' => 'm'),    //'limit'     => array( 0, 1000 )));foreach($members as $member){	IPSMember::packMemberCache( $member['member_id'], array( 'show_notification_popup' => 1 ) );}

se hai ip.content crea una pagina php e aggiungici lo script qui sopra... aprilo una sola volta, e dovrebbe impiegarci 30 secondi per 10000 utenti credo... quindi fai attenzione.

altrimenti decommenta il limit e cambialo man mano da 0 a 1000 e poi a 2000 e cosi via!!

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
piripicchio

grazie per la risposta :)

 

purtroppo nn ho ip.content

 

come si potrebbe fare altrimenti?

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

mettilo nel global template racchiuso tra i tag php...

 <php>CODICE PRECEDENTE</php>

poi salva apri il sito, e poi una volta caricato rimuovilo :) per testare se tutto funziona prova a loggarti con un utente che prima aveva disattivato il popup. attento che se decommenti il "limit" devi sapere quante righe ci sono da scansionare..

non sono sicuro che funzioni il codice cosi come l'ho scritto... fammi sapere.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
piripicchio

no, nn funziona...

 

forse ho sbagliato qualcosa... l'ho messo cosi' come da immmagine... ho salvato... ho aperto il sito (che nn ha dato segni di vita, pagina bianca), ho tolto la modifica... ho salvato... ed ho testato con un account che nn aveva abilitato il pop-up...

 

post-1823-0-86139800-1406217790_thumb.jp

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

no, nn funziona...

 

forse ho sbagliato qualcosa... l'ho messo cosi' come da immmagine... ho salvato... ho aperto il sito (che nn ha dato segni di vita, pagina bianca), ho tolto la modifica... ho salvato... ed ho testato con un account che nn aveva abilitato il pop-up...

 

attachicon.giftestpopup.jpg

riprova con:

<php>if($this->memberData['g_access_cp']){$members = $this->DB->buildAndFetchAll(array(    'select'    => 'm.member_id',    'from'      => array('members' => 'm'),    'limit'     => array( 0, 1000 )));$test = array();foreach($members as $member){	IPSMember::packMemberCache( $member['member_id'], array( 'show_notification_popup' => 1 ) );	$test[] = $member['member_id'];}echo'<textarea>';print_r($test);echo'</textarea>';}</php>

ti mostra gli id degli utenti che vengono modificati... ho testato con 4 utenti e funziona, quindi ho decommentato il 'limit' nel codice cosi dovrebbe sicuramente mostrarti gli id a partire da 1 fino a 1000 o poco più.

post-29-0-39265300-1406236481_thumb.png

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
piripicchio

no, niente... nn va...

 

ma a te il forum si apre dopo la modifica del global template? A me no ! Devo togliere quel codice per rivedere il forum...

 

dipendera' dal tipo di php del server o dalla versione ipb? Io ho il 3.3

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

no, niente... nn va...

 

ma a te il forum si apre dopo la modifica del global template? A me no ! Devo togliere quel codice per rivedere il forum...

 

dipendera' dal tipo di php del server o dalla versione ipb? Io ho il 3.3

si sicuramente perchè hai la 3.3... il buildandfetchall non c'era ancora.

domani torno e te la riscrivo che sarà compatibile con la 3.3 al 100% :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
piripicchio

si sicuramente perchè hai la 3.3... il buildandfetchall non c'era ancora.

domani torno e te la riscrivo che sarà compatibile con la 3.3 al 100% :P

 

ah ok... ecco perche'...

 

attendo e grazie mille x la disponibilita' :)

 

approposito... gia' che ci sono... avete un'immagine che n si vede:

 

post-1823-0-65609800-1406309023_thumb.jp

Modificato da piripicchio

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

RISULTATO FINALE CON $debug = TRUE SARANNO CON L'1 (DOPO CHE HAI AZIONATO LO SCRIPT CON $debug = false):

Array(    [2] => 1    [3] => 1    [4] => 1    [5] => 1    [6] => 1)

<php>$debug = FALSE; // se messo su TRUE ti permette di vedere la cache attuale degli utenti richiesti... senza che questa venga nuovamente aggiornata!if($this->memberData['g_access_cp']){	$this->DB->build(array(	    'select'    => 'm.member_id,m.members_cache',	    'from'      => array('members' => 'm'),	    'order'     => 'm.member_id',	    'limit'     => array( 0, 1000 )	));	$this->DB->execute();	while ($bho = $this->DB->fetch())	{		$members[] = $bho;	}$test = array();foreach($members as $member){	if(!$debug){		IPSMember::setToMemberCache( $member, array( 'show_notification_popup' => 1 ) );	}else{		$test[$member['member_id']] = IPSMember::getFromMemberCache( $member, 'show_notification_popup' );	}}	if($debug){echo'<textarea'.'>';print_r($test);echo'</'.'textarea>';}}</php>
PS: CAMBIA 0, CON 1000... E POI 2000 fino ad arrivare al numero massimo di utenti...

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
piripicchio

ma sei un mostro :)

 

funziona... ho controllato a campione gli utenti e dai primi all'ultimo iscritto  hanno attivato il popup !!!

 

Pero' ovviamente nn varra' per i nuovi iscritti... quindi ogni tanto dovro' farlo partire da tot a tot num di iscritti...

 

grazie mille :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
BomAle

<php>if($this->memberData['g_access_cp']){$_GET['start'] = isset($_GET['start']) ? $_GET['start'] : 0; $_GET['process'] = isset($_GET['process']) ? $_GET['process'] : 500;if(isset($_GET['notifica'])){	$users = array(); 	$users = $this->DB->buildAndFetchAll(array(	    'select'    => 'm.member_id,m.members_cache',	    'from'      => array('members' => 'm'),	    'order'     => 'm.member_id',	    'limit'     => array( $_GET['start'], $_GET['process'] )	));	foreach($users as $key => $user){		$notifica = IPSMember::getFromMemberCache( $user, 'notifications');		$notifica['booty_call'] = array('selected' => array('inline'));		IPSMember::setToMemberCache( $user, array( 'notifications' => $notifica ) );	}	if(count($users) == $_GET['process'])	{		$_GET['start'] += count($users); $_GET['stepnext'] = $_GET['start'] + count($users); $_GET['process'] = count($users);		print <<<HTML<a href="?notifica=1&start={$_GET['start']}&process={$_GET['process']}">PROCESSA DA {$_GET['start']} A {$_GET['stepnext']}</a>HTML;	}else{		print <<<HTML<a href="?completo">HAI COMPLETATO IL PROCESSO</a>HTML;	}		echo"<textarea style='width: 610px; height: 430px;'>";print_r($users);echo"</textarea>"; }else{	print <<<HTML<a href="?notifica=1&start={$_GET['start']}&process={$_GET['process']}">PROCESSA DA {$_GET['start']} A {$_GET['process']}</a>HTML;}}</php>

con questo script potete anche modificare una specifica notifica, in questo esempio si forza la notifica "inline" per quando si viene menzionati (vecchia mod mentions)

 

personalizzato, scegliete gli id gruppi e configurate $notifica per variare eventuali chiavi...

<php>if($this->memberData['g_access_cp']){	$_GET['start'] = isset($_GET['start']) ? $_GET['start'] : 0; 	$_GET['process'] = isset($_GET['process']) ? $_GET['process'] : 500;	if(isset($_GET['notifica']))	{		/* INIZIO CONFIGURAZIONE */		$gruppo = '7|8|3|18|17|12|6|12'; //gruppi da selezionare separa con | ogni gruppo senza spazi (es. gruppi dei soci)		$update_mem_cache = array( //DEVE RIMANERE array()			'show_notification_popup' => 1		);		$update_user_table = array( //DEVE RIMANERE array()			'auto_track'			=> 'weekly', //'none', 'immediate', 'offline', 'daily', 'weekly'			'allow_admin_mails'		=> 1, //1 yes, 0 no		);		/* FINE CONFIGURAZIONE */		$users = array(); 		$users = $this->DB->buildAndFetchAll(array(			'select'	=> 'm.member_id,m.members_cache',			'from'	=> array('members' => 'm'),			'where'	=> "m.member_group_id REGEXP '(^|,)(".$gruppo.")(,|$)' OR m.mgroup_others REGEXP '(^|,)(".$gruppo.")(,|$)'",			'order'	=> 'm.member_id',			'limit'	=> array( $_GET['start'], $_GET['process'] )		));		foreach($users as $key => $user){			$notifica = IPSMember::getFromMemberCache( $user, 'notifications');			//le chiavi si recuperano dalla pagina ACP app=members&module=members&section=notifications			$notifica['booty_call'] = array('selected' => array('inline'), 'disable_override' => 1);			$update_mem_cache['notifications'] =  $notifica;			IPSMember::setToMemberCache( $user, $update_mem_cache );			IPSMember::save( $user['member_id'], array( 'core' => $update_user_table ) );		}		if(count($users) == $_GET['process'])		{			$_GET['start'] += count($users); $_GET['stepnext'] = $_GET['start'] + count($users); $_GET['process'] = count($users);			print <<<HTML<a href="?notifica=1&start={$_GET['start']}&process={$_GET['process']}">PROCESSA DA {$_GET['start']} A {$_GET['stepnext']}</a>HTML;		}else{			print <<<HTML<a href="?completo">HAI COMPLETATO IL PROCESSO</a>HTML;		}		//echo"<textarea style='width: 610px; height: 430px;'>";print_r($users);echo"</textarea>"; 	}	else	{		print <<<HTML<a href="?notifica=1&start={$_GET['start']}&process={$_GET['process']}">PROCESSA DA {$_GET['start']} A {$_GET['process']}</a>HTML;	}}</php>

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

You need to be a member in order to leave a comment

Crea un account

Iscriviti per un nuovo account nella nostra comunità. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

×