• User

    Configurazione Pannello di GESTIONE NEWS

    Ciao ragazzi!
    Avrei un estremo bisogno di utilizzare un Pannello php di gestione news e articoli per il mio sito..Siccome ho poca dimestichezza nel settore :bho: ,
    chiedo il vostro aiuto per la configurazione di tale script.
    Riporto dalle istruzioni dello script tale citazione:

    :: CONFIGURAZIONE
    Il file di configurazione è config.php ed è situato nella cartella /inc.
    Le cose da modificare sono più d'una...
    Le prime due variabili non sono da modificare, dalla quarta alla settima riga (compresa) c'è la variabile $mysql, questa è la prima da modificare, **inseriteci i dati del vostro database MySQL**.
    

    Il problema è che non conosco i dati del mio database..(occorre scaricare mysql?)..Insomma vorrei qualche dettaglio in più su questo passo..Premetto che il mio sito ,è residente su una piattaforma Aruba.it,ma non so se questo abbia importanza..

    Help-me,please:(


  • Super User

    Devi attivare (se non lo hai già fatto) il servizio mysql che su aruba è opzionale. Appena attivato riceverai tutti i parametri di accesso necessari.


  • User

    @Gorka said:

    Devi attivare (se non lo hai già fatto) il servizio mysql che su aruba è opzionale. Appena attivato riceverai tutti i parametri di accesso necessari.

    Su Aruba,ho già in attivo nel database 'MDB Access' ,puo essermi utile,in sostituzione al mysql?

    ..

    In alternativa ad Aruba come creo il mio MySql (possibilmente gratuitamente)?


  • User

    Ho appena installato sul mio pc 'MySQL Server 6.0' ..Non so dove trovare i dati del database da inserire nello script..


  • User

    Ho optato per Article Manager ,per il mio pannello di gestione News,dato che non utilizza un server Mysql e ciò potrebbe semplificarmi di molto la vita..

    Le istruzioni le cito qui in basso:

    1. Modify config.php, t_summary.html and t_article.html files if necessary
    2. Create a folder for articles and php files and make it writable (chmod a+rw).
    3. Ready to run

    Mi trovo un tantino in difficoltà col file template.inc (che riporto sempre in basso),in più non ho capito molto del secondo passaggio.

    
    <?php
    /*
    * Session Management for PHP3
    *
    * (C) Copyright 1999-2000 NetUSE GmbH
    * Kristian Koehntopp
    *
    * $Id: template.inc,v 1.5 2000/07/12 18:22:35 kk Exp $
    *
    */ 
    class Template {
    var $classname = "Template";
    /* if set, echo assignments */
    var $debug = false;
    /* $file[handle] = "filename"; */
    var $file = array();
    /* relative filenames are relative to this pathname */
    var $root = "";
    /* $varkeys[key] = "key"; $varvals[key] = "value"; */
    var $varkeys = array();
    var $varvals = array();
    /* "remove" => remove undefined variables
    * "comment" => replace undefined variables with comments
    * "keep" => keep undefined variables
    */
    var $unknowns = "remove";
    
    /* "yes" => halt, "report" => report error, continue, "no" => ignore error quietly */
    var $halt_on_error = "yes";
    
    /* last error message is retained here */
    var $last_error = "";
     
    /***************************************************************************/
    /* public: Constructor.
    * root: template directory.
    * unknowns: how to handle unknown variables.
    */
    function Template($root = ".", $unknowns = "remove") {
    $this->set_root($root);
    $this->set_unknowns($unknowns);
    }
    /* public: setroot(pathname $root)
    * root: new template directory.
    */ 
    function set_root($root) {
    if (!is_dir($root)) {
    $this->halt("set_root: $root is not a directory.");
    return false;
    }
    
    $this->root = $root;
    return true;
    }
    /* public: set_unknowns(enum $unknowns)
    * unknowns: "remove", "comment", "keep"
    *
    */
    function set_unknowns($unknowns = "keep") {
    $this->unknowns = $unknowns;
    }
    /* public: set_file(array $filelist)
    * filelist: array of handle, filename pairs.
    *
    * public: set_file(string $handle, string $filename)
    * handle: handle for a filename,
    * filename: name of template file
    */
    function set_file($handle, $filename = "") {
    if (!is_array($handle)) {
    if ($filename == "") {
    $this->halt("set_file: For handle $handle filename is empty.");
    return false;
    }
    $this->file[$handle] = $this->filename($filename);
    } else {
    reset($handle);
    while(list($h, $f) = each($handle)) {
    $this->file = $this->filename($f);
    }
    }
    }
    /* public: set_block(string $parent, string $handle, string $name = "")
    * extract the template $handle from $parent, 
    * place variable {$name} instead.
    */
    function set_block($parent, $handle, $name = "") {
    if (!$this->loadfile($parent)) {
    $this->halt("subst: unable to load $parent.");
    return false;
    }
    if ($name == "")
    $name = $handle;
    $str = $this->get_var($parent);
    $reg = "/<!--\s+BEGIN $handle\s+-->(.*)\n\s*<!--\s+END $handle\s+-->/sm";
    preg_match_all($reg, $str, $m);
    $str = preg_replace($reg, "{" . "$name}", $str);
    $this->set_var($handle, $m[1][0]);
    $this->set_var($parent, $str);
    }
    
    /* public: set_var(array $values)
    * values: array of variable name, value pairs.
    *
    * public: set_var(string $varname, string $value)
    * varname: name of a variable that is to be defined
    * value: value of that variable
    */
    function set_var($varname, $value = "") {
    if (!is_array($varname)) {
    if (!empty($varname))
    if ($this->debug) print "scalar: set *$varname* to *$value*<br>\n";
    $this->varkeys[$varname] = "/".$this->varname($varname)."/";
    $this->varvals[$varname] = $value;
    } else {
    reset($varname);
    while(list($k, $v) = each($varname)) {
    if (!empty($k))
    if ($this->debug) print "array: set *$k* to *$v*<br>\n";
    $this->varkeys[$k] = "/".$this->varname($k)."/";
    $this->varvals[$k] = $v;
    }
    }
    }
    /* public: subst(string $handle)
    * handle: handle of template where variables are to be substituted.
    */
    function subst($handle) {
    if (!$this->loadfile($handle)) {
    $this->halt("subst: unable to load $handle.");
    return false;
    }
    $str = $this->get_var($handle);
    $str = @preg_replace($this->varkeys, $this->varvals, $str);
    return $str;
    }
    
    /* public: psubst(string $handle)
    * handle: handle of template where variables are to be substituted.
    */
    function psubst($handle) {
    print $this->subst($handle);
    
    return false;
    }
    /* public: parse(string $target, string $handle, boolean append)
    * public: parse(string $target, array $handle, boolean append)
    * target: handle of variable to generate
    * handle: handle of template to substitute
    * append: append to target handle
    */
    function parse($target, $handle, $append = false) {
    if (!is_array($handle)) {
    $str = $this->subst($handle);
    if ($append) {
    $this->set_var($target, $this->get_var($target) . $str);
    } else {
    $this->set_var($target, $str);
    }
    } else {
    reset($handle);
    while(list($i, $h) = each($handle)) {
    $str = $this->subst($h);
    $this->set_var($target, $str);
    }
    }
    
    return $str;
    }
    
    function pparse($target, $handle, $append = false) {
    print $this->parse($target, $handle, $append);
    return false;
    }
    
    /* public: get_vars()
    */
    function get_vars() {
    reset($this->varkeys);
    while(list($k, $v) = each($this->varkeys)) {
    $result[$k] = $this->varvals[$k];
    }
    
    return $result;
    }
    
    /* public: get_var(string varname)
    * varname: name of variable.
    *
    * public: get_var(array varname)
    * varname: array of variable names
    */
    function get_var($varname) {
    if (!is_array($varname)) {
    return $this->varvals[$varname];
    } else {
    reset($varname);
    while(list($k, $v) = each($varname)) {
    $result[$k] = $this->varvals[$k];
    }
    
    return $result;
    }
    }
    
    /* public: get_undefined($handle)
    * handle: handle of a template.
    */
    function get_undefined($handle) {
    if (!$this->loadfile($handle)) {
    $this->halt("get_undefined: unable to load $handle.");
    return false;
    }
    
    preg_match_all("/\{([^}]+)\}/", $this->get_var($handle), $m);
    $m = $m[1];
    if (!is_array($m))
    return false;
    reset($m);
    while(list($k, $v) = each($m)) {
    if (!isset($this->varkeys[$v]))
    $result[$v] = $v;
    }
    
    if (count($result))
    return $result;
    else
    return false;
    }
    /* public: finish(string $str)
    * str: string to finish.
    */
    function finish($str) {
    switch ($this->unknowns) {
    case "keep":
    break;
    
    case "remove":
    $str = preg_replace('/{[^ \t\r\n}]+}/', "", $str);
    break;
    case "comment":
    $str = preg_replace('/{([^ \t\r\n}]+)}/', "<!-- Template $handle: Variable \\1 undefined -->", $str);
    break;
    }
    
    return $str;
    }
    /* public: p(string $varname)
    * varname: name of variable to print.
    */
    function p($varname) {
    print $this->finish($this->get_var($varname));
    }
    /* Added by Aytekin
    function pvalue($varname) {
    return $this->finish($this->get_var($varname));
    }
     
    function get($varname) {
    return $this->finish($this->get_var($varname));
    }
    
    /***************************************************************************/
    /* private: filename($filename)
    * filename: name to be completed.
    */
    function filename($filename) {
    if (substr($filename, 0, 1) != "/") {
    $filename = $this->root."/".$filename;
    }
    
    if (!file_exists($filename))
    $this->halt("filename: file $filename does not exist.");
    return $filename;
    }
    
    /* private: varname($varname)
    * varname: name of a replacement variable to be protected.
    */
    function varname($varname) {
    return preg_quote("{".$varname."}");
    }
    /* private: loadfile(string $handle)
    * handle: load file defined by handle, if it is not loaded yet.
    */
    function loadfile($handle) {
    if (isset($this->varkeys[$handle]) and !empty($this->varvals[$handle]))
    return true;
    if (!isset($this->file[$handle])) {
    $this->halt("loadfile: $handle is not a valid handle.");
    return false;
    }
    $filename = $this->file[$handle];
    $str = implode("", @file($filename));
    if (empty($str)) {
    $this->halt("loadfile: While loading $handle, $filename does not exist or is empty.");
    return false;
    }
    $this->set_var($handle, $str);
    
    return true;
    }
    /***************************************************************************/
    /* public: halt(string $msg)
    * msg: error message to show.
    */
    function halt($msg) {
    $this->last_error = $msg;
    
    if ($this->halt_on_error != "no")
    $this->haltmsg($msg);
    
    if ($this->halt_on_error == "yes")
    die("<b>Halted.</b>");
    
    return false;
    }
    
    /* public, override: haltmsg($msg)
    * msg: error message to show.
    */
    function haltmsg($msg) {
    printf("<b>Template Error:</b> %s<br>\n", $msg);
    }
    }
    ?>
    
    

    Come posso agire su questo codice?
    Vi prego ,datemi una mano..


  • User Attivo

    template.inc non devi modificarlo.

    il punto 2 c'è scritto che devi dargli i permessi 777 al file, ma su windows non hai questa possibilità tranne che metterla nella cartella public. se sei su linux fai tasto destro=>proprietà=>e metti 777


  • User

    Intendi rinominare in "public" la cartella in cui sono contenuti i componenti del programma (script, pagine php e htm)? Altrimenti, perdona la mia ignoranza. Cmq, si, ho Windows.


  • User Attivo

    su aruba c'è una cartella chiamata Public devi metterli li i files per forza


  • User

    Ti ringrazio! Provo subito...


  • User

    Funziona alla perfezione, grazie


  • User Attivo

    prego 🙂


  • User

    Vorrei sapere come faccio ad aggiungere manualmente dal php (oltre al titolo il corpo e la data) 2 nuove righe all'articolo..
    Ci ho provato,ma con qualche intoppo..
    Pannello Originale , Pannello Modificato

    Qui riporto i codici del file news.php (originale)

    
    <html>
    <body bgcolor=yellow>
    <basefont size=2 face=arial>
    <b>Add Article</b>
    <?
            include ("template.inc");
            include ("config.php");
     $summary_template = "t_summary.html";
     $article_template = "t_article.html";
     $max_summary = 5;
     function summary_page ($subject, $date, $summary, $article_id)
     {
      global $summary_template;
             $t = new Template();
             $t->set_file("SummaryPage", $summary_template);
      $article_url = "article_".$article_id.".html";
      $date = nl2br($date);
      $summary =  nl2br($summary);  
      $t->set_var( array(
        "subject" => $subject,
        "date"    => $date,
        "summary" => $summary,
        "article_url" => $article_url
        ));
      $t->parse("Summary", "SummaryPage");
      return $t->get_var("Summary");
     }
     function main_page ($subject, $date, $summary, $article_id, $body)
     {
      global $article_template;
                    $t = new Template();
                    $t->set_file("ArticlePage", $article_template);
                    $article_url = "article_".$article_id.".html";
                    $date = nl2br($date);
                    $summary =  nl2br($summary);
                    $body =  nl2br($body);
                    $t->set_var( array(
                                    "subject" => $subject,
                                    "date"    => $date,
                                    "summary" => $summary,
                                    "body" => $body,
                                    "article_url" => $article_url
                                    ));
                    $t->parse("Article", "ArticlePage");
                    return $t->get_var("Article"); 
     }
     function add_article($filename, $news)
     {
      if(file_exists($filename)){
       $fh = fopen($filename, "r");
       $old_news = fread($fh, filesize($filename));
       fclose($fh); 
      }
      /* TODO: Multipage articles
       preg_match_all("<!--ARTICLE PAGE=(\d*)-->", $old_news, $matches;
     
       if( count($matches[0]) >= $max_summary){
        $oldfilename = $filename.($matches[0][0]+1);
       } 
      */
      $fh = fopen($filename, "w");
      $news = stripslashes($news);
      fwrite($fh, "\n<!--ARTICLE-->\n$news $old_news");
      fclose($fh);
     }
    ?>
    <?
     if(strcmp($subject, "")){ 
      if(!(strcmp($passwd, $password))){ 
       add_article("article_summary.html", summary_page($subject, $date, $summary, $article_id));
       add_article("article_$article_id.html", main_page($subject, $date, $summary, $article_id, $body));
       echo "<p> Article has been added! <p>";
      }else{
       echo "<p><b> Password is wrong! </b>";
      }
     }
    ?>
     
    <form action=news.php method=post>
    <table border=0>
    <tr> <td> (Password): </td><td> <input type=text name=passwd size=30> </td></tr>
    <tr> <td> Subject: </td><td> <input type=text name=subject size=30> </td></tr>
    <tr> <td> Article ID: </td><td> <input type=text name=article_id value=<? echo date("Y_m_j_is"); ?> size=30> </td></tr>
    <tr> <td> Date/Author/etc: </td><td> <textarea name=date rows=2 cols=30 wrap=soft><? echo date("M j, Y\n"); ?>Author: </textarea> </td></tr>
    <tr> <td> Summary: </td><td> <textarea name=summary rows=5 cols=30 wrap=soft></textarea> </td></tr>
    <tr> <td> Body: </td><td> <textarea name=body rows=15 cols=30></textarea> </td></tr>
    </table>
    <input type=submit name=submit value=Add>
    </form>
     
    <p>
    <a href=source.php?f=news.php>Source</a>
     
    
    

    Qui riporto i codici del file news.php (modificato)

    
    <html>
    <body bgcolor=yellow>
    <basefont size=2 face=arial>
    <b>Add Article</b>
    <?
            include ("template.inc");
            include ("config.php");
     $summary_template = "t_summary.html";
     $article_template = "t_article.html";
     $max_summary = 5;
     function summary_page ($article_id, $subject, $summary, $preview)
     {
      global $summary_template;
             $t = new Template();
             $t->set_file("SummaryPage", $summary_template);
      $article_url = "article_".$article_id.".html";
      $summary =  nl2br($summary);
                $preview =  nl2br($preview);
      $t->set_var( array(
        "subject" => $subject,
        "summary" => $summary,
                            "preview" => $preview,
        "article_url" => $article_url
        ));
      $t->parse("Summary", "SummaryPage");
      return $t->get_var("Summary");
     }
     function main_page ($subject, $date, $preview, $banner, $summary, $article_id, $body)
     {
      global $article_template;
                    $t = new Template();
                    $t->set_file("ArticlePage", $article_template);
                    $article_url = "article_".$article_id.".html";
                    $date = nl2br($date);
                    $preview =  nl2br($preview);
                    $banner =  nl2br($banner);
                    $summary =  nl2br($summary);
                    $body =  nl2br($body);
                    $t->set_var( array(
                                    "subject" => $subject,
                                    "date"    => $date,
                                    "preview" => $preview,
                                    "banner" => $banner,
                                    "summary" => $summary,
                                    "body" => $body,
                                    "article_url" => $article_url
                                    ));
                    $t->parse("Article", "ArticlePage");
                    return $t->get_var("Article"); 
     }
     function add_article($filename, $news)
     {
      if(file_exists($filename)){
       $fh = fopen($filename, "r");
       $old_news = fread($fh, filesize($filename));
       fclose($fh); 
      }
      /* TODO: Multipage articles
       preg_match_all("<!--ARTICLE PAGE=(\d*)-->", $old_news, $matches;
     
       if( count($matches[0]) >= $max_summary){
        $oldfilename = $filename.($matches[0][0]+1);
       } 
      */
      $fh = fopen($filename, "w");
      $news = stripslashes($news);
      fwrite($fh, "\n<!--ARTICLE-->\n$news $old_news");
      fclose($fh);
     }
    ?>
    <?
     if(strcmp($subject, "")){ 
      if(!(strcmp($passwd, $password))){ 
       add_article("article_summary.html", summary_page($subject, $date, $preview, $banner, $summary, $article_id, $body));
       add_article("article_$article_id.html", main_page($subject, $date, $preview, $banner, $summary, $article_id, $body));
       echo "<p> Il tuo articolo è stato aggiunto con successo! <p>";
      }else{
       echo "<p><b> I dati inseriti non sono corretti. Perfavore inserisci nuovamente la password. </b>";
      }
     }
    ?>
     
    <form action=news.php method=post>
    <table border=0>
    <tr> <td> Password: </td><td> <input type=password name=passwd size=30> </td></tr>
    <tr> <td> Titolo: </td><td> <input type=text name=subject size=30> </td></tr>
    <tr> <td> Article ID: </td><td> <input type=text name=article_id value=<? echo date("Y_m_j_is"); ?> size=30> </td></tr>
    <tr> <td> Data/Autore: </td><td> <textarea name=date rows=2 cols=30 wrap=soft>di <b>SCRIVI IL TUO NOME</b>, <? echo date("M j, Y\n"); ?> </textarea> </td></tr>
    <tr> <td> Immagine anteprima (42x42): </td><td> <input type=text name=preview size=30></td></tr>
    <tr> <td> Immagine articolo (498x80): </td><td> <input type=text name=banner size=30></td></tr>
    <tr> <td> Sintesi: </td><td> <textarea name=summary rows=5 cols=30 wrap=soft></textarea> </td></tr>
    <tr> <td> Corpo: </td><td> <textarea name=body rows=15 cols=30></textarea> </td></tr>
    </table>
    <input type=submit name=submit value=Add>
    </form>
     
    <p>
    <a href=source.php?f=news.php>Source</a>
     
    
    

    Le nuove aggiunte che vorrei fare sono $preview, $banner

    Un Grazie anticipato..!


  • User Attivo

    ma banner e preview devono essere aggiunte da parte dell'utente? cioè da parte di chi le inserisce le carica dal suo computer?


  • User

    Possibilmente si..Ma per il momento potrei accontentarmi di far inserire un URL dell'immagine


  • User

    Up!


  • User Attivo

    dopo 5 ore già un up? per il tuo script bisogna guardarci dietro e ora io non ho tempo...


  • User

    Il fatto è che ne avevo bisogno per la fine della settimana per questo ho "Uppato"..Ciò non vuole essere sintomo di impazienza,temevo solo che il topic venisse sepolto..
    Se tu non puoi intervenire subito è ovvio che non fa niente..
    (ad ogni modo,sorry)


  • User

    Alla fine ho risolto tutto ^.^

    Mi servirebbe solo un piccolo accorgimento per il limite di news da impostare nella HomePage:
    http://www.giorgiotave.it/forum/php-mysql/50558-vorrei-un-limite-di-news-home.html

    Grazie cmq per l'attenzione dedicata a questo topic