Vai al contenuto
  • 0

Impostare notifiche MP per tutti gli utenti


Massy

Domanda

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.

Link al commento
Condividi su altri siti

16 risposte a questa domanda

Messaggi raccomandati

  • 0

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...
Link al commento
Condividi su altri siti

  • 0

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
Link al commento
Condividi su altri siti

  • 0
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

Link al commento
Condividi su altri siti

  • 0

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.

Link al commento
Condividi su altri siti

  • 0

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!!

  • Like 1
Link al commento
Condividi su altri siti

  • 0

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.

Link al commento
Condividi su altri siti

  • 0

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

Link al commento
Condividi su altri siti

  • 0

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

Link al commento
Condividi su altri siti

  • 0

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

  • Like 1
Link al commento
Condividi su altri siti

  • 0

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

Link al commento
Condividi su altri siti

  • 0

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
Link al commento
Condividi su altri siti

  • 0

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 :)

Link al commento
Condividi su altri siti

  • 0

<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>
Link al commento
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora
  • Chi sta navigando   0 utenti

    • Nessun utente registrato visualizza questa pagina.
×
×
  • Crea Nuovo...

Informazioni importanti

Abbiamo inserito dei cookies nel tuo dispositivo per aiutarti a migliorare la tua esperienza su questo sito. Puoi modificare le impostazioni dei cookie, altrimenti puoi accettarli cliccando su continua. to insert a cookie message.