######################################
#Web3News Vers: 0.95
# Codice di Angelo Gelmi
# http://www.web3king.com/web3news/desc.php
# iwm@web3king.com
# Data 27 febbraio 2003
######################################
# Se stai aggiornando una vecchia versione di web3news, salta alla sezione INSTALLAZIONE
# Se hai altre problemi guarda nel file FAQ presente nel pacchetto. Oppure qui: http://www.web3king.com/web3news/faq.php
# Se vuoi farti installare e/o personalizzare  Web3news direttamente sui tuoi server, contattaci: iwm@web3king.com


##########################
1)####### SCOPO ##########
Lo scopo di questo script e' quello di consentire di gestire l'invio automatico di messaggi di posta 
elettronica ad utenti inseriti nel database con la possibilita' di gestire piu' gruppi (Newsletter) e piu' identita'
lasciando la possibilita' di allegare file. 


##########################
2)####### INVIO ########## 
L'invio dell'email viene effettuato utilizzando il pannello di controllo, scegliendo: 
-L'identita con cui spedire (lo script ne gestisce una di default per ogni newsletter creata)
-Se allegare qualche file 
-L'oggetto e il testo del messaggio 


###################################################
3)####### GESTIONE IDENTITA E NEWSLETTER ########## 
Durante la fase di creazione di una nuova newsletter e' necessario inserire un identita' che verra' 
proposta di default in fase di spedizione di un messaggio alla newsletter. Pertanto prima e' 
convienente creare un identita' tramite la voce corrispondente del menu. 
Ogni identita' e newsletter puo' essere facilmente modificata ed eliminata tramite le semplici schermate del menu. 


######################################
4)####### GESTIONE DATABASE ########## 
E' possibile inserire un utente in una newsletter fondamentalmente in due modi: 
1-tramite il pannello di controllo dello script. 
2-tramite il sistema di gestione inserimento pubblico per mezzo del quale un navigatore di un sito puo' iscriversi autonomamente. 

4.1- Tramite il pannello di controllo c'e' anche la possibilita' di modificare i dati inseriti in precedenza (nome, email, privato/azienda...) 

4.2- Per permettere questa operazione bisogna predisporre le pagine del sito in modo opportuno 
Vedi paragrafo 8) #INSERIMENTO PANNELLO DI ISCRIZIONE NELLE PAGINE DEL SITO # 


#############################################
5)####### CARATTERISTICHE GENERALI ########## 
*Gestione di piu' newsletter 
*Gestione di piu' identita 
*Invio rapido del messaggio in un comodo pannello 
*Invio di allegati nella mail
*Invio posta in formato HTML
*Invio frammentato a piacere (oppure tutto in una volta)
*Interfaccia web anche per l'inserimento dei nominativi nella Newsletter 
*Controllo doppie iscrizioni
*Nota di rimozione automatica in fondo ad ogni messaggio 
*Facile installazione 
*Protezione con username e password
*In italiano
*Un unico file di configurazione
*Gestione Modelli (Template) per l'invio ripetuto di newsletter


##############################
6)####### REQUISITI ########## 
Per il corretto funzionamento dello script e' necessario: 
*Avere accesso FTP ad un server web con supporto PHP4 
*Poter usufruire di un DB mysql


##########################################################################
7)###### NEW INSTALLAZIONE (nuova procedura) per la versione 0.95 ########
##########################################################################
7.1) Modificare il file connect.inc.php con i dati di accesso al vostro Database 
7.2) Assicurarsi che il database impostato alla variabile $dbname in connect.inc.php sia gia' esistente; nel caso in cui non lo fosse, crearne uno o fatevelo creare dal vostro ISP.
7.3) Uploadare tutti i file in una nuova cartella del vostro sito
7.4) Utilizzare il Vs. Brower Web preferito e andate all'URL,  http://www.vostrodominio.com/web3news/security
 Es. http://www.web3king.com/web3news/security
 La prima volta verra' mostrato il pannello di login con il link per la creazione delle tabelle necessarie allo script; Lo  script si accorgera' se sul database e' gia' presente un'installazione web3news e installera' solo le tabelle necessarie.   Quindi cliccate sul link in alto (installazione o update) e verificate la corretta creazione delle  tabelle. 
 Il link di installazione non si ripresentera' piu' durante il normale utilizzo di Web3news 
 Di default vengono installate una Newsletter ed una identita' di prova oltre che all'utente admin
7.5)Tornare all'url:  
  http://www.vostrodominio.com/vostradirectory/security 
  e loggarsi utilizzando i seguenti dati:
  login: admin		pwd: secure
7.6) Modificare la password per l'utente admin oppure creare un nuovo utente dando i privilegi per tutte le pagine oppure assegnare all'utente il profilo default.

#############################################################################
8)############## AGGIORNAMENTO DALLA VERSIONE 0.89 alla 0.95 ################

Per aggiornamento si intende la procedura per non dover perdere i dati gia'
inseriti nel database. Prima cosa da fare: sostituire tutti i file del 
programma con quelli della ultima versione 0.95.
Poi per aggiornare il DB dalla versione 0.89 alla versione 0.95 lanciare il 
nuovo script chiamato update089x-095.php previsto proprio per lo scopo e 
presente nella root del programma.
In particolare lo script va ad inserire la nuova tabella w3ktmpl nel DB e va 
a modificare la tabella profili e struttura dei privilegi per poter utilizzare
il file per la gestione dei template.
Per poter far utilizzare la pagina dei template bisogna pero' andare ad aggiungerla
nelle propriet delle connessioni (sotto security) di tutti gli utenti che devono
essere abilitati alla creazione e modifica dei template.

Maggiori informazioni (in lingua inglese) sono presenti nel file /security/README direttamente da:
Justin Koivisto [Koivi Media] <justin@koivi.com> creatore di phpSecurityAdmin 1.5 il sistema su cui
si basa la protezione di Web3news.


#############################################################################
9)####### INSERIMENTO PANNELLO DI ISCRIZIONE NELLE PAGINE DEL SITO ########## 
La procedura  leggermente cambiata rispetto a quella della versione 0.81
ma e' rimasta invariata rispetto alla 0.81 . 


Metodo a) Utilizzate una vostra pagine standard e inserite il codice riportato qui sotto: 

<!-- potete tagliare da qui -->
<?
include ("/directory/del/vostro/script/connect.inc.php");
include ("$path/libmail.php");
// Aggiungi nuovo nominativo al database
if ($aggiungi){
//prima di aggiungere conrtolla che non ci sia gia' quella email nel database.
$sql="select * from $utenti where emailut like '$email1' and ml=$ml";
$res = mysql_query($sql);
$num_totale = @mysql_numrows ($res);
//Codifica il tipo di utenza
if ($select=="azienda") {$sel="A";}else {$sel="P";}

//Verifica l'esatta corrispondenza tra le 2 email
if ($email1==$email2) {
  $vabene="1";
  
  }else{
  print"<h2>Email inserite non corrette, per favore controlla che siano 
  uguali</h2> 
  <p><a href=javascript:history.back();>Reinserisci dati</a>";
  exit;
  
  }
  
  if ($num_totale == '0' && $vabene=='1') {
  
  //Aggiungi a DB
  
  $sql="insert into $utenti values ('','$nomeut','$email1','$sel','N','$ml')";
  $res = mysql_query($sql,$conn);
  $nm=convertinomeml($nomeml,1);
  $testo="Utente $nomeut - $email1 - $sel - iscritto alla MailingList $nm";
  $m=new Mail; // create the mail
  $m->From( "$mitt" );
  $m->Subject( "$subjsegn" );
  $m->Body( "$testo" ); // set the body
  $m->Priority(1) ; // set the priority to Low
  $m->To("$segnala");
  $m->Send("Plain");
  
  }
  //si puo' personalizzare per fargli trovare lo script in questione
  include "sent.php";
  exit;
  
  }else{
  ?>
  <link rel="stylesheet" href="<?echo $path."/stili.css";?>" type="text/css">
  <form method=post action=<? echo "$PHP_SELF";?> >
  <input type="hidden" name="ml" value=<? 
  if(!$ml){
  $ml='1';
  echo "$ml";
  }else{
  echo "$ml";
  }
  ?>>
  <table border="0" cellspacing="1" cellpadding="3" 
  class="testo">
  <tr> 
  <td height="25"><font class=testo10> Nome e Cognome</font></td>
  <td colspan="2"> 
  <input class=testo10 type="text" maxlength=50 size=27 name="nomeut">
  </td>
  </tr>
  <tr> 
  <td height="25"><font class=testo10>Email</font></td>
  <td colspan="2"> 
  <input class=testo10 type="text" maxlength=50 size=27 name="email1">
  </td>
  </tr>
  <tr> 
  <td><font class=testo10>ripeti email</font></td>
  <td colspan="2"> 
  <input class=testo10 type="text" maxlength=50 size=27 name="email2">
  </td>
  <tr> 
  <td><font class=testo10>Azienda/Privato</font></td>
  <td> 
  <select name="select" class=testo10 >
  <option value="azienda">Azienda</option>
  <option value="privato">Privato</option>
  </select>
  </td>
  <td valign="top" align="right"> 
  <input type="submit" class=testo10 name="aggiungi" value="Aggiungi">
  </td>
  </tr>
  </table>
  </form>
  <?
  }
  ?>
  <!-- fino a qui -->

Dovere passare il la variabile ml tramite URL 
(Es. http://www.vostrosito.com/paginaiscrizione.php?ml=2 ) oppure andate a modificare il 
valore ml=1 con il numero della newsletter nella quale volete iscrivere l'utente:

<input type="hidden" name="ml" value=<? if(!$ml){
$ml='1';
echo "$ml";}else{echo "$ml";}?>> 


Dovete inserire il file sent.php nella stessa cartella della vostra pagina di iscrizione.
Altrimenti dovrete dire allo script sopra dove trovare il file sent.php 
Quest'ultimo e' per la gestione del messaggio di conferma e puo' essere modificato anche 
tramite un programma WYSIWYG tipo Dreamweaver o Frontpage.

Metodo b) Utilizzate il file subscribe.php che deve trovarsi nella stessa cartella di 
sent.php .Quest'ultimo e' per la gestione del messaggio di conferma e puo' essere modificato 
anche tramite un programma WYSIWYG tipo Dreamweaver o Frontpage.

################################################################################
10) ####### INSERIMENTO SISTEMA DI DE-ISCRIZIONE NELLE PAGINE DEL SITO ########## 
Utilizzanto una pagina standard del vostro sito, includere un richiamo agli script connect.inc.php e rimuovi.php della cartella degli script. E' tutto quello che serve.

<?php 
include ("/directory/script/connect.inc.php");
include ("$path/rimuovi.php");
?>

######################
11) ###CONCLUSIONI#### 
Questo e' tutto per il momento. 
Capisco che la documentazione possa non essere chiara e completa. Per problemi di installazione, 
sentiatevi liberi di contattarmi per ulteriori informazioni. 
Il codice per l'invio della mail si appoggia sulla libreria libmail creata da: 
Leo West - lwest@free.fr (modificata per gestire l'invio in html da Marco Montagnani) che rinrazio per il suo lavoro. 

Angelo Gelmi 
iwm@web3king.com 
