Joomla.it Forum
Componenti per Joomla! => Gestione utenti e community => : Mansell 04 Apr 2007, 23:11:40
-
ciao a tutti, ho installato community builder, ma non voglio che gli utenti si scambino e-mail tra di loro, ho già guardato tutti i settaggi sia generali di joomla che di community builder, ma non ho capito come inibire questa opzione, qualcuno sa se devo disattivare qualche plug in o modificare qualche settaggio?
Grazie
-
Intendi e-mail vere e proprie, o intendi i messaggi privati?
Troppo vaga la tua richiesta..
ciao
-
in pratica se entro nella pagina del profilo utente di qualche socio loggato al sito, tra i menù che mi propone c'è anche quello per inviargli una mail. in pratica compilo la textarea presente sul sito, poi in basso c'è il pulsante invia ed il sito provvede a spedirla all'iscritto.
come disattivare questa opzione?
Grazie
-
guarda qui
vorrei che sparisse questo pulsante
http://img169.imageshack.us/img169/2397/inviamailer3.jpg
magari è una opzione che ho a disposizione solo io in qualità di admin? o possono contattrsi anche gli iscritti tra di loro?
-
Ciao,
scusami ma ho letto solo adesso il tuo messaggio..
Allora, ;D se vuoi togliere proprio la possibilità di utilizzare questa funzione prima di tutto fai un backup dei file che ti indico da modificare qui di seguito..
e quindi iniziamo, vai su:
ROOT DEL TUO SITO/COMPONENTS/COM_COMPROFILER
Apri il file comprofiler.html.php
e circa alla riga 79 trovi questo codice che devi cancellare fino alla riga 136:
function emailUser($option,$rowFrom,$rowTo) {
global $ueConfig,$_REQUEST,$mosConfig_live_site, $_PLUGINS;
if($rowFrom->id == $rowTo->id) {
echo "<div class=\"contentheading\" >"._UE_NOSELFEMAIL."</div>";
return;
}
HTML_comprofiler::outputMosFormVal();
$_PLUGINS->loadPluginGroup('user');
$results = $_PLUGINS->trigger( 'onBeforeEmailUserForm', array( &$rowFrom, &$rowTo, 1 )); //$ui=1
if ($_PLUGINS->is_errors()) {
echo "<script type=\"text/javascript\">alert(\"".$_PLUGINS->getErrorMSG()."\"); window.history.go(-1); </script>\n";
exit();
}
?>
<div style="text-align:left;">
<div class="contentheading" ><?php echo sprintf(_UE_EMAILFORMTITLE,"<a href=\"".sefRelToAbs( "index.php?option=com_comprofiler&task=UserDetails&user=".$rowTo->id )."\">".getNameFormat($rowTo->name,$rowTo->username,$ueConfig['name_format'])."[/url]"); ?></div>
<form action="<?php echo sefRelToAbs("index.php?option=$option".getCBprofileItemid(true)); ?>" method="post" id="adminForm" name="adminForm" onsubmit="return submitbutton(this)">
<?php echo _UE_EMAILFORMSUBJECT; ?>
<?php
if (is_array($results)) {
echo implode( "
", $results );
}
?>
<input mosReq="1" mosLabel='<?php echo _UE_EMAILFORMSUBJECT; ?>' type="text" class="inputbox" name="emailSubject" size="50" /><?php echo "<img src='".$mosConfig_live_site."/components/com_comprofiler/images/required.gif' width='16' height='16' alt='*' title='"._UE_FIELDREQUIRED."' /> "; ?>
<?php echo _UE_EMAILFORMMESSAGE; ?>
<textarea mosReq="1" mosLabel='<?php echo _UE_EMAILFORMMESSAGE; ?>' class="inputbox" name="emailBody" cols="50" rows="15" ></textarea><?php echo "<img src='".$mosConfig_live_site."/components/com_comprofiler/images/required.gif' width='16' height='16' alt='*' title='"._UE_FIELDREQUIRED."' /> "; ?>
<?php
$warning = _UE_EMAILFORMWARNING;
$results = $_PLUGINS->trigger( 'onAfterEmailUserForm', array( &$rowFrom, &$rowTo, &$warning, 1 )); //$ui=1
if (is_array($results)) {
echo implode( "
", $results );
}
?>
<div><?php echo sprintf( $warning, $rowFrom->email ); ?></div>
<input type="hidden" name="fromID" value="<?php echo $rowFrom->id; ?>" />
<input type="hidden" name="toID" value="<?php echo $rowTo->id; ?>" />
<input type="hidden" name="protect" value="<?php
echo md5("hash".$rowTo->id.$rowTo->password.$rowTo->lastvisitDate.$rowFrom->password.$rowFrom->lastvisitDate); ?>" />
<?php
echo cbGetSpoofInputTag();
echo cbGetAntiSpamInputTag();
?>
<input type="hidden" name="option" value="<?php echo $option; ?>" />
<input type="hidden" name="task" value="sendUserEmail" />
<input type="submit" class="button" value="<?php echo _UE_SENDEMAIL; ?>" />
</form>
</div>
<div style="align:center;">
<?php
echo "<img src='".$mosConfig_live_site."/components/com_comprofiler/images/required.gif' width='16' height='16' alt='*' title='"._UE_FIELDREQUIRED."' /> "._UE_FIELDREQUIRED;
?>
</div>
<?php
}
Dovresti trovare questo codice, nel qual caso le righe del tuo file siano differenti + o - dopo queste righe:
<?php
} // end of php method HTML_comprofiler::outputMosFormVal()
e questo codice:
/******************************
Profile Functions
******************************/
dopo fai una ricerca sempre nello stesso file e rimuovi tutti questi richiami:
".$emailIMG."
Poi apri il file comprofile.php
ed elimina tutte queste porzioni di codici:
Riga 171 circa:
case "emailUser":
case "emailuser":
emailUser($option,$uid);
break;
case "sendUserEmail":
case "senduseremail":
$oldignoreuserabort = ignore_user_abort(true);
sendUserEmail(mosGetParam($_POST,'toID'),mosGetParam($_POST,'fromID'),mosGetParam($_POST,'emailSubject'),mosGetParam($_POST,'emailBody'));
break;
function sendUserEmail($toid,$fromid,$subject,$message) {
global $ueConfig,$my, $database, $_POST, $_PLUGINS;;
// simple spoof check security
cbSpoofCheck();
cbAntiSpamCheck();
if (($my->id == 0) || ($my->id != $fromid) || ($ueConfig['allow_email_display']!=1 && $ueConfig['allow_email_display']!=3)) {
mosNotAuth();
return;
}
$spamCheck = cbSpamProtect( $my->id, true );
if ( $spamCheck ) {
echo $spamCheck;
return;
}
$rowFrom = new mosUser( $database );
$rowFrom->load( (int) $fromid );
$rowTo = new mosUser( $database );
$rowTo->load( (int) $toid );
if (isset($_POST["protect"])
&& $_POST["protect"] == md5("hash".$rowTo->id.$rowTo->password.$rowTo->lastvisitDate.$rowFrom->password.$rowFrom->lastvisitDate) ) {
$_PLUGINS->loadPluginGroup('user');
$results = $_PLUGINS->trigger( 'onBeforeEmailUser', array( &$rowFrom, &$rowTo, 1 )); //$ui=1
if ($_PLUGINS->is_errors()) {
echo "<script type=\"text/javascript\">alert(\"".$_PLUGINS->getErrorMSG()."\"); window.history.go(-1); </script>\n";
exit();
}
if (is_array($results)) {
echo implode( "
", $results );
}
$cbNotification = new cbNotification();
$res=$cbNotification->sendUserEmail($toid,$fromid,$subject,$message, true);
if ($res) echo _UE_SENTEMAILSUCCESS;
else echo _UE_SENTEMAILFAILED;
} else {
echo _UE_SESSIONTIMEOUT." "._UE_SENTEMAILFAILED;
}
}
function emailUser($option,$uid) {
global $database,$ueConfig,$my;
if (($my->id == 0) || ($ueConfig['allow_email_display']!=1 && $ueConfig['allow_email_display']!=3)) {
mosNotAuth();
return;
}
$spamCheck = cbSpamProtect( $my->id, false );
if ( $spamCheck ) {
echo $spamCheck;
return;
}
$rowFrom = new mosUser( $database );
$rowFrom->load( $my->id );
$rowTo = new mosUser( $database );
$rowTo->load( (int) $uid );
HTML_comprofiler::emailUser($option,$rowFrom,$rowTo);
}
Fin qui inibisci completamente l'utilizzo di tale menu, resta da cancellare la voce però dal menu:
adesso apri il file cb.menu.php, seguendo il seguente percorso:
ROOT DEL TUO SITO/COMPONENTS/COM_COMPROFILER/PLUGINS/USER/PLUG_CBMENU/CB.MENU.PHP
intorno alla riga 858 cancella questa porzione di codice
// Send Email
$emailHtml=getFieldValue('primaryemailaddress',$user->email,$user);
if ($ueConfig['allow_email_display']!=4 && $my->id != $user->id && $my->id > 0) {
switch ($ueConfig['allow_email_display']) {
case 1: // Display Email only
$caption = $emailHtml;
$url = "javascript:void(0);";
$desc = _UE_MENU_USEREMAIL_DESC;
break;
case 2: // Display Email with link:
$caption = null;
$url = $emailHtml;
$desc = _UE_MENU_SENDUSEREMAIL_DESC;
break;
case 3: // Display Email-to text with link to web-form:
$caption = _UE_MENU_SENDUSEREMAIL;
$url = $emailHtml;
$desc = _UE_MENU_SENDUSEREMAIL_DESC;
break;
}
$mi = array(); $mi["_UE_MENU_MESSAGES"]["_UE_MENU_SENDUSEREMAIL"]=null;
$this->menuBar->addObjectItem($mi, $caption, $url, "", "", "", $desc, "");
}
così fancendo hai anche tolto la voce dal menu.
Spero ti sia stato d'aiuto.
ciao
-
Domenticavo di dirti, se riscontri malfunzionamenti (che non credo dovresti riscontrarli perchè l' ho provato io poco fa), per cancellare SOLO la voce dal menu:
apri il file cb.menu.php, seguendo il seguente percorso:
ROOT DEL TUO SITO/COMPONENTS/COM_COMPROFILER/PLUGINS/USER/PLUG_CBMENU/CB.MENU.PHP
intorno alla riga 858 cancella questa porzione di codice
// Send Email
$emailHtml=getFieldValue('primaryemailaddress',$user->email,$user);
if ($ueConfig['allow_email_display']!=4 && $my->id != $user->id && $my->id > 0) {
switch ($ueConfig['allow_email_display']) {
case 1: // Display Email only
$caption = $emailHtml;
$url = "javascript:void(0);";
$desc = _UE_MENU_USEREMAIL_DESC;
break;
case 2: // Display Email with link:
$caption = null;
$url = $emailHtml;
$desc = _UE_MENU_SENDUSEREMAIL_DESC;
break;
case 3: // Display Email-to text with link to web-form:
$caption = _UE_MENU_SENDUSEREMAIL;
$url = $emailHtml;
$desc = _UE_MENU_SENDUSEREMAIL_DESC;
break;
}
$mi = array(); $mi["_UE_MENU_MESSAGES"]["_UE_MENU_SENDUSEREMAIL"]=null;
$this->menuBar->addObjectItem($mi, $caption, $url, "", "", "", $desc, "");
}
ciao ;D
-
grazie molte, sei stato veramente esauriente.
strano che i programmatori non abbiano messo una opzione nel menù generale.
-
sapessi quante funzioni mancano e su quante porzioni di codice so dovuto intervenire manco hai idea...
ciao ;D