bug NMS (forse) risolto

La discussione sul CMS Made Simple in italiano.

Moderator: magallo

Post Reply
andrea

bug NMS (forse) risolto

Post by andrea »

ciao a tutti,
credo di aver trovato (e risolto) il bug di NMS che inviava link errati per la modifica dei dati utente:
in realtà si tratta di 2 bug:

il primo è nella costruzione dei link (non ho ancora capito se dipende dal modulo o dal core o solo dal mio client di posta)
gli '&' non venivano sostituiti con '&'  e l'errore era
One or more required parameters are missing from the request. This action cannot proceed

modicando il file action.usersettings_email da così

Code: Select all

$this->smarty->assign( 'usersettings_url',
		       $this->CreateFrontendLink( $id, $returnid, 'usersettings',
						  '', array('uniqueid' => $userinfo['uniqueid']), 
						  '', true, '', true));
  $this->smarty->assign( 'unsubscribe_url',
		       $this->CreateFrontendLink( $id, $returnid, 'unsubscribe',
						  '', array('uniqueid' => $userinfo['uniqueid']), 
						  '', true, '', true));
a così:

Code: Select all

$usersettings_url = $this->CreateFrontendLink( $id, $returnid, 'usersettings',
                                               '', array('uniqueid' => $userinfo['uniqueid']),
                                                  '', true, '', true);
$unsubscribe_url = $this->CreateFrontendLink( $id, $returnid, 'unsubscribe',
                                               '', array('uniqueid' => $userinfo['uniqueid']),
                                                  '', true, '', true);

$usersettings_url = str_replace("&","&",$usersettings_url);
$unsubscribe_url = str_replace("&","&",$unsubscribe_url);

$this->smarty->assign( 'usersettings_url',$usersettings_url);
$this->smarty->assign( 'unsubscribe_url',$unsubscribe_url);
si risolve tutto.

una  volta corretti link l'unsubscribe funzionava alla perfesione ma lo usersettings mi dava un Database error

il problema è in una query nel file action.usersettings.php che viene costruita male (non viene inserito il table prefix)
basta modificare la query da

Code: Select all

$q = "SELECT A.listid, A.name, A.description, B.userid, B.active 
        FROM cms_module_NMS_list AS A LEFT OUTER JOIN cms_module_NMS_listuser AS B 
          ON A.listid = B.listid AND B.userid = ?
       WHERE A.public = ?";
a

Code: Select all

$q = "SELECT A.listid, A.name, A.description, B.userid, B.active
        FROM ".cms_db_prefix().$this->table_prefix."list AS A LEFT OUTER JOIN ".cms_db_prefix().$this->table_prefix."listuser AS B
          ON A.listid = B.listid AND B.userid = ?
       WHERE A.public = ?";
e il gioco è fatto.
Post Reply

Return to “Italian - Italiano”