Advertisement
CptChaos

Spotweb's ownsettings.php generator

Mar 16th, 2011
302
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 15.06 KB | None | 0 0
  1. <?php
  2. $version = '0.0.6'; // De versie dus! :)
  3.  
  4. function versionCheck($version)
  5. {
  6.     $versionLatest = file_get_contents("http://cptchaos.nl/ownsettings-generator/version.txt");
  7.    
  8.     if($version != $versionLatest)
  9.     {
  10.         return true;
  11.     }
  12. }
  13.  
  14. if($_POST)
  15. {
  16.     header("Content-type: application/x-httpd-php");
  17.     header("Content-Disposition:attachment;filename=ownsettings.php");
  18.     echo '<?php'. PHP_EOL;
  19.     if(!empty($_POST['settings']))
  20.     {
  21.         echo '# Instellingen voor NZB-, update knop en templates'. PHP_EOL;
  22.         foreach($_POST['settings'] as $key => $val)
  23.         {
  24.             if($key == 'templates')
  25.             {
  26.                 foreach($_POST['settings'][$key] as $key2 => $val2)
  27.                 {
  28.                     echo '$settings[\''. $key .'\'][\''. $key2 .'\'] = \''. $val2 .'\';'. PHP_EOL;
  29.                 }
  30.             }
  31.             elseif($key == 'retrieve_comments')
  32.             {
  33.                 echo '$settings[\''. $key .'\'] = '. $val .';'. PHP_EOL;
  34.             }
  35.             else
  36.             {
  37.                 if($val != 'true' && !is_array($val))
  38.                 {
  39.                     echo '$settings[\''. $key .'\'] = \''. $val .'\';'. PHP_EOL;
  40.                 }
  41.                 else
  42.                 {
  43.                     echo '$settings[\''. $key .'\'] = '. $val .';'. PHP_EOL;
  44.                 }          
  45.             }
  46.            
  47.  
  48.         }
  49.         echo PHP_EOL;
  50.     }
  51.    
  52.     if(!empty($_POST['prefs']))
  53.     {
  54.         echo '# Algemene instellen, zoals spots per pagina en type datum notatie'. PHP_EOL;
  55.         foreach($_POST['prefs'] as $key => $val)
  56.         {
  57.             echo '$settings[\'prefs\'][\''. $key .'\'] = \''. $val .'\';'. PHP_EOL;
  58.         }
  59.         echo PHP_EOL;
  60.     }
  61.    
  62.     if(!empty($_POST['nntp_nzb']))
  63.     {
  64.         echo '# Standaard NNTP (news) server'. PHP_EOL;
  65.         echo '$settings[\'nntp_nzb\'][\'host\'] = \''. $_POST['nntp_nzb']['host'] .'\';'. PHP_EOL;
  66.         echo '$settings[\'nntp_nzb\'][\'user\'] = \''. $_POST['nntp_nzb']['user'] .'\';'. PHP_EOL;
  67.         echo '$settings[\'nntp_nzb\'][\'pass\'] = \''. $_POST['nntp_nzb']['pass'] .'\';'. PHP_EOL;
  68.         echo '$settings[\'nntp_nzb\'][\'port\'] = '. $_POST['nntp_nzb']['port'] .';'. PHP_EOL;
  69.  
  70.         if($_POST['nntp_nzb']['enc'] != 'false')
  71.         {
  72.             echo '$settings[\'nntp_nzb\'][\'enc\'] = \''. $_POST['nntp_nzb']['enc'] .'\';'. PHP_EOL;
  73.         }
  74.         else
  75.         {
  76.             echo '$settings[\'nntp_nzb\'][\'enc\'] = '. $_POST['nntp_nzb']['enc'] .';'. PHP_EOL;
  77.         }
  78.  
  79.         echo PHP_EOL;
  80.     }
  81.    
  82.     if(!empty($_POST['db']))
  83.     {
  84.         echo '# De database instellingen'. PHP_EOL;
  85.         if($_POST['db']['engine'] == 'mysql')
  86.         {
  87.             foreach($_POST['db'] as $key => $val)
  88.             {
  89.                 if($key != 'path')
  90.                 {
  91.                     echo '$settings[\'db\'][\''. $key .'\'] = \''. $val .'\';'. PHP_EOL;
  92.                 }
  93.             }
  94.         }
  95.         else
  96.         {
  97.             echo '$settings[\'db\'][\'engine\'] = \''. $_POST['db']['engine'] .'\';'. PHP_EOL;
  98.             echo '$settings[\'db\'][\'path\'] = \''. $_POST['db']['path'] .'\';'. PHP_EOL;
  99.         }
  100.         echo PHP_EOL;
  101.     }
  102.    
  103.     if(!empty($_POST['nntp_hdr']))
  104.     {
  105.         echo '# Headers NNTP (news) server'. PHP_EOL;
  106.         echo '$settings[\'nntp_hdr\'][\'host\'] = \''. $_POST['nntp_hdr']['host'] .'\';'. PHP_EOL;
  107.         echo '$settings[\'nntp_hdr\'][\'user\'] = \''. $_POST['nntp_hdr']['user'] .'\';'. PHP_EOL;
  108.         echo '$settings[\'nntp_hdr\'][\'pass\'] = \''. $_POST['nntp_hdr']['pass'] .'\';'. PHP_EOL;
  109.         echo '$settings[\'nntp_hdr\'][\'port\'] = '. $_POST['nntp_hdr']['port'] .';'. PHP_EOL;
  110.  
  111.         if($_POST['nntp_hdr']['enc'] != 'false')
  112.         {
  113.             echo '$settings[\'nntp_hdr\'][\'enc\'] = \''. $_POST['nntp_hdr']['enc'] .'\';'. PHP_EOL;
  114.         }
  115.         else
  116.         {
  117.             echo '$settings[\'nntp_hdr\'][\'enc\'] = '. $_POST['nntp_hdr']['enc'] .';'. PHP_EOL;
  118.         }
  119.  
  120.         echo PHP_EOL;
  121.     }
  122.    
  123.     if(!empty($_POST['sabnzbd']))
  124.     {
  125.         echo '# Instellingen voor directe koppeling met SABnzbd\'s API.'. PHP_EOL;
  126.        
  127.         if($_POST['sabnzbd']['https'] == 'true')
  128.         {
  129.             $host = 'https';
  130.         }
  131.         else
  132.         {
  133.             $host = 'http';
  134.         }
  135.        
  136.         echo '$settings[\'nzbhandling\'][\'action\'] = \'client-sabnzbd\';'. PHP_EOL;
  137.         echo '$settings[\'nzbhandling\'][\'local_dir\'] = \'\';'. PHP_EOL;
  138.         echo '$settings[\'nzbhandling\'][\'command\'] = \'\';'. PHP_EOL;
  139.         echo '$settings[\'nzbhandling\'][\'sabnzbd\'] = array();'. PHP_EOL;
  140.         echo '$settings[\'nzbhandling\'][\'sabnzbd\'][\'host\'] = \''. $_POST['sabnzbd']['host'].':'. $_POST['sabnzbd']['poort'] .'\';'. PHP_EOL;
  141.         echo '$settings[\'nzbhandling\'][\'sabnzbd\'][\'apikey\'] = \''. $_POST['sabnzbd']['apikey'] .'\';'. PHP_EOL;
  142.         echo '$settings[\'nzbhandling\'][\'sabnzbd\'][\'spotweburl\'] = \'http://server/spotweb/\';'. PHP_EOL;
  143.         echo '$settings[\'nzbhandling\'][\'sabnzbd\'][\'url\'] = \''. $host .'://$SABNZBDHOST/sabnzbd/api?mode=$SABNZBDMODE&name=$NZBURL&nzbname=$SPOTTITLE&cat=$SANZBDCAT&apikey=$APIKEY&output=text\';';
  144.  
  145.         echo PHP_EOL;
  146.     }
  147.     echo '?>';
  148. }
  149. else
  150. {
  151. ?>
  152. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  153. <html xmlns="http://www.w3.org/1999/xhtml">
  154.     <head>
  155.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  156.         <title>Spotweb ownsettings.php generator (versie <?php echo $version; ?>)</title>
  157.         <script type="text/javascript">
  158.             function dbCheck(val)
  159.             {
  160.                 if(val == 0)
  161.                 {
  162.                     document.getElementById('mysql').style.display = 'none';
  163.                     document.getElementById('sqlite').style.display = 'none';  
  164.                    
  165.                     document.generator.db[host].value = '';
  166.                     document.generator.db[dbname].value = '';
  167.                     document.generator.db[user].value = '';
  168.                     document.generator.db[pass].value = ''                                 
  169.                     document.generator.db[path].value = '';                
  170.                 }
  171.                
  172.                 if(val == 1)
  173.                 {
  174.                     document.getElementById('mysql').style.display = 'block';
  175.                     document.getElementById('sqlite').style.display = 'none';
  176.                    
  177.                     document.generator.db[path].value = '';
  178.                 }
  179.                
  180.                 if(val == 2)
  181.                 {
  182.                     document.getElementById('mysql').style.display = 'none';
  183.                     document.getElementById('sqlite').style.display = 'block';     
  184.                    
  185.                     document.generator.db[host].value   = '';
  186.                     document.generator.db[dbname].value = '';
  187.                     document.generator.db[user].value   = '';
  188.                     document.generator.db[pass].value   = '';
  189.                 }
  190.             }
  191.         </script>
  192.         <style type="text/css">
  193.             body, html, form, dl, dt, legend, label, input, select, option
  194.             {
  195.                 font-family: Verdana, Tahoma, Geneva, sans-serif;
  196.                 font-size: 10pt;
  197.             }
  198.         </style>
  199.     </head>
  200.     <body>
  201.         <h1>Spotweb ownsettings.php generator versie <?php echo $version; ?></h1>
  202.         <?php
  203.             if(versionCheck($version) === true)
  204.             {
  205.                 echo '<p><strong>De door jou gebruikte versie kรกn verouderd zijn, hierdoor werken bepaalde instellingen wellicht niet (goed).<br />'. PHP_EOL;
  206.                 echo 'Het versienummer van de nieuwste versie is '. file_get_contents("http://cptchaos.nl/ownsettings-generator/version.txt") .'.'. PHP_EOL;
  207.                 echo 'De nieuwste versie is op te halen via <a href="http://pastebin.com/u/CptChaos" title="CptChaos\' Pastebin account">CptChaos\' pastebin account</a>.</strong></p>'. PHP_EOL;
  208.             }
  209.         ?>
  210.         <strong>De gegevens die je hieronder invult, zullen niet worden opgeslagen of worden doorgegeven aan derden, ze zullen uitsluitend gebruikt worden om een ownsettings.php te genereren voor spotWEB.</strong>
  211.         <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" name="generator">
  212.             <fieldset>
  213.                 <legend>Algemene SpotWeb instellingen</legend>
  214.                 <dl>
  215.                     <dt>
  216.                         <label for="Update-knop">Update-knop</label>
  217.                         Aan: <input name="settings[show_updatebutton]" value="true" type="radio" />
  218.                         Uit: <input name="settings[show_updatebutton]" value="false" type="radio" />
  219.                     </dt>                
  220.                     <dt>
  221.                         <label for="NZB-knop">NZB-knop</label>
  222.                         Aan: <input name="settings[show_nzbbutton]" value="true" type="radio" />
  223.                         Uit: <input name="settings[show_nzbbutton]" value="false" type="radio" />
  224.                     </dt>
  225.                     <dt>
  226.                         <label for="Reacties ophalen van spots?">Reacties ophalen van spots?</label>
  227.                         Ja: <input type="radio" name="settings[retrieve_comments]" value="true" />
  228.                         Nee: <input type="radio" name="settings[retrieve_comments]" value="false" />
  229.                     </dt>
  230.                     <dt>
  231.                         <label for="Gedownload NZB's bijhouden?">Gedownload NZB's bijhouden?</label>
  232.                         Ja: <input type="radio" name="settings[keep_downloadlist]" value="true" />
  233.                         Nee: <input type="radio" name="settings[keep_downloadlist]" value="false" />
  234.                     </dt>                    
  235.                     <dt><label for="Aantal spots per pagina">Aantal spots per pagina</label> <input type="text" name="prefs[perpage]" value="1000" /></dt>
  236.                     <dt>
  237.                         <label for="Template">Template</label>
  238.                         We1rdo: <input name="settings[templates][default]" value="./templates_we1rdo/" type="radio" />
  239.                         Splendid: <input name="settings[templates][default]" value="./templates_splendid/" type="radio" />
  240.                         Mobile: <input name="settings[templates][default]" value="./templates_mobile/" type="radio" />
  241.                     </dt>
  242.                     <dt>
  243.                         <label for="Datum notaties">Datum notaties</label>
  244.                         Human readable: <input type="radio" name="prefs[date_formatting]" value="human" />
  245.                         Exacte datum (DD-MM-JJ): <input type="radio" name="prefs[date_formatting]" value="%a, %d-%b-%Y (%H:%M)" />
  246.                     </dt>
  247.                     <dt>
  248.                         Human readable: vandaag, gisteren, eergisteren, 3 dagen geleden enz.<br />
  249.                         Exacte datum: Dag, datum (tijd)
  250.                     </dt>
  251.                     <dt>
  252.                         <label for="Moderatie van spots">Moderatie van spots</label>
  253.                         Niets doen: <input type="radio" value="disable" name="settings[spot_moderation]" />
  254.                         Markeren: <input type="radio" value="markspot" name="settings[spot_moderation]" />
  255.                         Verwijderen: <input type="radio" value="act" name="settings[spot_moderation]" />
  256.                     </dt>
  257.                     <dt>
  258.                         <label for="Leeftijd van spots">Leeftijd van spots</label> <input type="text" name="settings[retention]" /><br />
  259.                         Hier een getal in vullen, 0 zorgt ervoor dat spots altijd bewaard blijven!
  260.                     </dt>                                              
  261.                 </dl>
  262.             </fieldset>                
  263.             <fieldset>
  264.                 <legend>Server instellingen</legend>
  265.                 <dl>
  266.                     <dt><label for="Server">Server</label> <input type="text" name="['nntp_nzb'][host]" /></dt>
  267.                     <dt><label for="Genbruikersnaam">Gebruikersnaam</label> <input type="text" name="['nntp_nzb'][user]" /></dt>
  268.                     <dt><label for="Wachtwoord">Wachtwoord</label> <input type="text" name="['nntp_nzb'][pass]" /></dt>
  269.                     <dt><label for="Poort">Poort</label> <input type="text" name="['nntp_nzb'][port]" /></dt>
  270.                     <dt>
  271.                         <label for="Beveiligingsniveau">Beveiligingsniveau</label>
  272.                         <select name="['nntp_nzb'][enc]">
  273.                             <option value="false">Geen beveiliging</option>
  274.                             <option value="tls">TLS</option>
  275.                             <option value="SSL">SSL</option>                            
  276.                         </select>                            
  277.                     </dt>                                  
  278.                 </dl>              
  279.             </fieldset>
  280.             <fieldset>
  281.                 <legend>Database instellingen</legend>
  282.                 <dl>
  283.                     <dt>
  284.                         <label for="Type database">Type database</label>
  285.                         <select name="db[engine]" onchange="dbCheck(this.selectedIndex);">
  286.                             <option value="">Kies een optie</option>
  287.                             <option value="mysql">MySQL</option>
  288.                             <option value="sqlite3">SQLite 3</option>
  289.                         </select>                            
  290.                     </dt>
  291.                 </dl>
  292.                 <dl id="mysql" style="display: none;">
  293.                     <dt><label for="MySQL host">MySQL host</label> <input type="text" name="db[host]" /></dt>
  294.                     <dt><label for="MySQL database">MySQL database</label> <input type="text" name="db[dbname]" /></dt>
  295.                     <dt><label for="MySQL gebruiker">MySQL gebruiker</label> <input type="text" name="db[user]" /></dt>
  296.                     <dt><label for="MySQL wachtwoord">MySQL wachtwoord</label> <input type="text" name="db[pass]" /></dt>
  297.                 </dl>
  298.                 <dl id="sqlite" style="display: none;">
  299.                     <dt><label for="Pad naar SQLite 3 database">Pad naar SQLite 3 database</label> <input type="text" name="db[path]" /></dt>
  300.                 </dl>
  301.             </fieldset>
  302.             <fieldset>
  303.                 <legend>Headers server (optioneel)</legend>
  304.                 <dl>
  305.                     <dt><label for="Server">Server</label> <input type="text" name="nntp_hdr[host]" /></dt>
  306.                     <dt><label for="Genbruikersnaam">Gebruikersnaam</label> <input type="text" name="nntp_hdr[user]" /></dt>
  307.                     <dt><label for="Wachtwoord">Wachtwoord</label> <input type="text" name="nntp_hdr[pass]" /></dt>
  308.                     <dt><label for="Poort">Poort</label> <input type="text" name="nntp_hdr[port]" /></dt>
  309.                     <dt>
  310.                         <label for="Beveiligingsniveau">Beveiligingsniveau</label>
  311.                         <select name="nntp_hdr[enc]">
  312.                             <option value="">Kies eventueel iets</option>
  313.                             <option value="false">Geen beveiliging</option>
  314.                             <option value="tls">TLS</option>
  315.                             <option value="SSL">SSL</option>                            
  316.                         </select>                            
  317.                     </dt>                
  318.                 </dl>              
  319.             </fieldset>        
  320.             <fieldset>
  321.                 <legend>SABnzbd koppeling (optioneel)</legend>
  322.                 <dl>
  323.                     <dl><label for="SABnzbd hostname">SABnzbd hostname</label> <input type="text" name="sabnzbd[host]" /></dl>
  324.                     <dl><label for="SABnzbd poort">SABnzbd poort</label> <input type="text" name="sabnzbd[poort]" /></dl>
  325.                     <dl><label for="SABnzbd API-key">SABnzbd API-key</label> <input type="text" name="sabnzbd[apikey]" /></dl>
  326.                     <dl><label for="Link naar Spotweb">Link naar Spotweb</label> <input type="text" name="sabnzbd[spotweburl]" /></dl>                    
  327.                     <dl><label for="Beveiligde verbinding">Beveiligde (HTTPS) verbinding?</label><input type="checkbox" value="true" name="sabnzbd[https]" /></dl>
  328.                 </dl>
  329.             </fieldset>
  330.             <fieldset>
  331.                 <legend>Resetten of aanmaken?</legend>
  332.                 <input type="reset" value="Reset" onclick="dbCheck(0);" />
  333.                 <input type="submit" value="Aanmaken" />
  334.             </fieldset>            
  335.         </form>      
  336.     </body>
  337. </html>
  338. <?php
  339. }
  340. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement