Home
Homepage
Downloads
Downloads
Forums
Forums
Your Account
Il Tuo Account
IngegneriConLePalle.com - Il sito degli Studenti della Facoltà di Ingegneria di Forlì
Promotions


Online Chat
Vuoi cambiar Nome?!
/n tuonome cambia nick
Scegli la Tua Chat 
MobileFissa
PopupOff

Menu
 Homepage
 Utenti
 Il tuo profilo
 Lista Membri
 Blog Utenti
 Firma il Guestbook!
 Contatta Web Master
 Passaparola!!!!
 Community
 Galleria Foto
 Salagiochi
 Forums
 Messaggi Privati
 Cruciverba
 Sudoku
 WebChat
 Calendario Eventi
 Torneo Fantacalcio
 Documenti
 Risorse
 Downloads
 Loghi x Cellulari
 Web Links
 Barzellette
 Cerca nel Sito
 Documenti
 Argomenti
 News
 Aggiungi News
 Digital-Sat News
 AvantGo
 Servizi
 Previsioni Meteo
 Elenco Telefonico
 Video Musicali
 Radio Streaming
 Serata in TV
 Stradario d'Italia
 GoogleMaps
 Utilitą
 Php-Nuke Tools
 GUIstuff+
 Multi Search Engine
 Codice Fiscale
 Underground Search
 Submit Engines
 Open Directory
 PHP-Nuke HOWTO
 Statistiche
 Statistiche del Sito
 Analysis
 Top 10
 Inverno 2005
 Bollettino Neve
 WebCam Neve
 Site Map
 RSS Articoli 0.91
 RSS Articoli 2.0
 RSS Downloads 0.91
 RSS Downloads 2.0
 RSS Links 0.91
 RSS Links 2.0
 RSS Forums 0.91
 RSS Forums 2.0
 RSS Calendario 0.91
 RSS Calendario 2.0
 ATOM Articoli 0.3
 Spambot Killer

Promotions

Security
_AB_WARNED
We have caught 1369 shameful hackers.

NukeSentinel™ 2.5.17




Petizione pro aeroporto ridolfi: teniamo il low cost a forlì!
Duplicating the PHP-Nuke FAQ module

22.1. Duplicating the PHP-Nuke FAQ module

Suppose you would like to have two FAQ modules. You might of course ask why on earth you would want such a complication in your PHP-Nuke site, but if you recall that PHP-Nuke lets you decide for each module individually whether to all visitors, only registered ones, or only administrators to view it, you will find out that two identical FAQ modules would be a simple way to have two FAQs, one only for administrators and one for all users.

We will now follow the steps outlined above for the purpose of duplicating the FAQ module:

  • We copy the whole directory modules/FAQ to modules/Admin_FAQ

  • We also copy:

    • admin/modules/adminfaq.php to admin/modules/adminfaq2.php,

    • admin/links/links.faq.php to admin/links/links.faq2.php and

    • admin/case/case.adminfaq.php to admin/case/case.adminfaq2.php.

  • Code inspection reveals that the only tables used by the FAQ module are faqAnswer and faqCategories.

  • The relevant part of nuke.sql that creates and populates faqAnswer and faqCategories is easily located. After we append a "2" at the table names and copy it to nuke2.sql, the latter will have the following content:

    # 
    # Table structure for table `nuke_faqAnswer2`
    # 
      
    CREATE TABLE nuke_faqAnswer2 (
      id tinyint(4) NOT NULL auto_increment,
      id_cat tinyint(4) NOT NULL default '0',
      question varchar(255) default ",
      answer text,
      PRIMARY KEY  (id),
      KEY id (id), 
      KEY id_cat (id_cat)
    ) TYPE=MyISAM;
    #
    # Dumping data for table `nuke_faqAnswer2`
    #
    # --------------------------------------------------------
    #
    # Table structure for table `nuke_faqCategories2`
    #
    CREATE TABLE nuke_faqCategories2 (
      id_cat tinyint(3) NOT NULL auto_increment,
      categories varchar(255) default NULL,
      flanguage varchar(30) NOT NULL default ",
      PRIMARY KEY  (id_cat),
      KEY id_cat (id_cat)
    ) TYPE=MyISAM;
    #
    # Dumping data for table `nuke_faqCategories2`
    #
    # --------------------------------------------------------
    
  • We run the nuke2.sql file from the MySQL prompt::

    mysql -u dbuname -p dbname < nuke2.sql
    
  • This will create the nuke_faqAnswer2 and nuke_faqCategories2 tables in the database dbname (remember to replace dbuname and dbname with their real values from your config.php!). Since the FAQ module does not come with preset categories and answers, the tables are not populated with data.

  • We edit all files under modules/Admin-FAQ and also the administrative files admin/modules/adminfaq2.php, admin/links/links.faq2.php and admin/case/case.adminfaq2.php: we change all references to faqAnswer or faqCategories to faqAnswer2 and faqCategories2 respectively.

  • In admin/case/case.adminfaq.php we change

    include ("admin/modules/adminfaq.php");
    

    to

    include ("admin/modules/adminfaq2.php");
    

Finally, we activate the Admin-FAQ module and specify that it can be viewed only by administrators.

Caution Don't forget the "op"s!
 

If you want your duplicate module to perform slightly different functions than the original one, there is no way around to creating duplicate "op" functions to be called from the "switch($op)" part of the admin file. In our example, this would mean that we would change

switch($op) {
 case "FaqCatSave":
   FaqCatSave($id_cat, $categories, $flanguage); /* Multilingual Code : added variable */
   break;
 case "FaqCatGoSave":
   FaqCatGoSave($id, $question, $answer);
   break;
 case "FaqCatAdd":
   FaqCatAdd($categories, $flanguage); /* Multilingual Code : added variable */
   break;
 case "FaqCatGoAdd":
   FaqCatGoAdd($id_cat, $question, $answer);
   break;
 case "FaqCatEdit":
   FaqCatEdit($id_cat);
   break;
 case "FaqCatGoEdit":
   FaqCatGoEdit($id);
   break;
 case "FaqCatDel":
   FaqCatDel($id_cat, $ok);
   break;
 case "FaqCatGoDel":
   FaqCatGoDel($id, $ok);
   break;
 case "FaqAdmin":
   FaqAdmin();
   break;
 case "FaqCatGo":
   FaqCatGo($id_cat);
   break;
}
} else {
 echo "Access Denied";
}

in the admin/modules/adminfaq.php file, to:

switch($op) {
 case "FaqCatSave2":
   FaqCatSave2($id_cat, $categories, $flanguage); /* Multilingual Code : added variable */
   break;
 case "FaqCatGoSave2":
   FaqCatGoSave2($id, $question, $answer);
   break;
 case "FaqCatAdd2":
   FaqCatAdd2($categories, $flanguage); /* Multilingual Code : added variable */
   break;
 case "FaqCatGoAdd2":
   FaqCatGoAdd2($id_cat, $question, $answer);
   break;
 case "FaqCatEdit2":
   FaqCatEdit2($id_cat);
   break;
 case "FaqCatGoEdit2":
   FaqCatGoEdit2($id);
   break;
 case "FaqCatDel2":
   FaqCatDel2($id_cat, $ok);
   break;
 case "FaqCatGoDel2":
   FaqCatGoDel2($id, $ok);
   break;
 case "FaqAdmin2":
   FaqAdmin2();
   break;
 case "FaqCatGo2":
   FaqCatGo2($id_cat);
   break;
}
} else {
 echo "Access Denied";
}

and then program the new functionality into the new functions (the ones with the 2 suffix in their name).


Help us make a better PHP-Nuke HOWTO!

Want to contribute to this HOWTO? Have a suggestion or a solution to a problem that was not treated here? Post your comments on my PHP-Nuke Forum!

Chris Karakas, Maintainer PHP-Nuke HOWTO

.:: WebMaster Ing. Francesco Feruzzi :: ©2005 IngegneriConLePalle.com :: Regolamento ::.
Generazione pagina: 0.36 Secondi
Creative Commons License
Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati sotto Licenza Creative Commons Attribuzione 2.5.

Add to Google
SEO Stats powered by MyPagerank.Net