Ciao,
sto realizzando un nuovo articolo che permetta agli utenti di aggiungere gli articoli ai propri preferiti e ricevere la notifica via mail qualora un loro articolo preferito venga modificato.
Sono partito utilizzando 1 plugin esistente (New Article Notification) per la notifica e l'ho modificato collegandolo al modulo (Core Design My Favorite Pages module).
In pratica il modulo permette agli utenti di aggiungere al DB i loro preferiti. Una volta che viene modificato un articolo il plugin si occupa di inviare le mail agli utente che nella tabella del modulo hanno quell'articolo.
TUTTO funziona bene, ma non su 2 versioni diverse di Joomla.
Il problema è sicuramente nel onAfterContentSave della seconda versione di Joomla che per qualche motivo non viene richiamato.
Questo è il plugin:
<?php
// New Article Notification - Free
// Plugin for Joomla 1.5
// Version 2.0.0
// Copyright (c) 2009 JoomlaExtensions.biz - http://www.joomlaextensions.biz
// Last update: November 29, 2009
// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );
// import library dependencies
jimport('joomla.event.plugin');
// language defines for English
// <--------------- English language Defines ------------------------------------->
define('_JSC_JVERSION','<b>Error</b>: JoomlaExtensions.biz "New Article Notification (j!1.5)" Plugin functions only under Joomla! 1.5');
// <--------------- END --------------------------------------------------------->
class plgContentJEBNAN extends JPlugin
{
// constructor
function plgContentJEBNAN( &$subject )
{
parent::__construct( $subject );
// load plugin parameters
$this->_plugin = JPluginHelper::getPlugin( 'content', 'jebnan' );
$this->_params = new JParameter( $this->_plugin->params );
}
function onAfterContentSave(&$newArticle, &$isNew) {
// just startup
global $mainframe;
$user =& JFactory::getUser();
$db =& JFactory::getDBO();
// get parameters
$plugin =& JPluginHelper::getPlugin('content', 'jebnan');
//send email
$new_url = JURI::root() . "index.php?option=com_content&view=article&id=" . $newArticle->id;
$email_body = "E' stato modificato l'articolo ".$newArticle->title." dei tuoi prefertiti sul sito ".$mainframe->getCfg('sitename').": " . $new_url;
// query the user table for e-mail addresses and email preferences
$query = "SELECT email"
." FROM #__users,#__cd_fapa"
." WHERE #__users.id = #__cd_fapa.uid AND #__cd_fapa.idarticle = " .$newArticle->id." ";
$db->setQuery( $query );
$user_info = $db->loadResultArray();
foreach ($user_info as $send) {
//$mailSender ->addRecipient( $send );
//$mailSender ->Send();
JUtility::sendMail($user->email, $user->name, $send, "Aggiornato uno dei tuoi articoli preferiti su ". $mainframe->getCfg('sitename')."", $email_body);
}
// end of class
}
}
?>
Questo è il server dove funziona tutto benissimo:
PHP creato il: Linux clin15.cassiopea.it 2.6.18-164.el5 #1 SMP Thu Sep 3 03:33:56 EDT 2009 i686
Versione database: 5.0.58
Collation Database: utf8_general_ci
Versione PHP: 5.2.11
Server Web: Apache/2.2.3 (CentOS)
Server web per interfaccia PHP: apache2handler
Versione di Joomla!: Joomla! 1.5.6 Production/Stable [ Vusani ] 12-August-2008 22:00 GMT
User Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1045 Safari/532.5
Questo il server dove NON viene richiamato l'evento:
PHP creato il: Windows NT GIOTTO 5.2 build 3790 (Windows Server 2003 R2 Standard Edition Service Pack 2) i586
Versione database: 5.1.36-community-log
Collation Database: utf8_general_ci
Versione PHP: 5.3.0
Server Web: Apache/2.2.11 (Win32) PHP/5.3.0
Server web per interfaccia PHP: apache2handler
Versione di Joomla!: Joomla! 1.5.15 Stable [ Wojmamni Ama Mamni ] 05-November-2009 04:00 GMT
User Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1045 Safari/532.5
Per assurdo con il Joomla più recente non funziona.
Vi confermo che non è un problema di SMTP o altro perchè nel plugin ho provato a inserire l'invio della mail nel costruttore e la inoltra.
Credo sia quindi o un problema di versione di Joomla o qualche componente.
Help...sto diventando pazzo!!
Appena lo sistemo poi lo pubblico