Visualizzazione risultati 1 fino 9 di 9

Discussione: [php]Pannello di Amministrazione Forum

  1. #1
    Guest

    Predefinito [php]Pannello di Amministrazione Forum

    Io sto cercando di creare un semplicissimo forum, la parte di visualizzazione dei post, dei profili, dei thread e dei forum mi é venuto abbastanza bene come anche gli script per rispondere a topic e crearne altri o modificarli, il problema mi arriva ora che devo creare il Panello di Amministrazione.
    Non ho molte idee di come fare, quindi chiedo a voi:
    Le tabelle che ho sono 4 (anche sse devo ancora fare quella per i Messaggi Privati) e sono:
    forums
    threads
    posts
    users
    (nei link sono contenute le immagini in cui ci sono tutte le colonne delle tabelle)

    Come dovrei fare a livello teorico (perché io non voglio script già pronti!) a creare un pannello di amministrazione? o anche uno per gestire la grafica del forum.

    L'ultima cosa che vorrei sapere (anche se non é indispensabile) é sapere come si fa a far visualizzare i compleanni del giorno

    Grazie a chi mi aiuterà

  2. #2
    Guest

    Predefinito

    1- Per il pannello di amministrazione non ho capito la domanda... a livello teorico crei degli script in grado di cambiare/eliminare post/threads/users
    2- Per i template ti conviene utilizzare un template engine: da PHPTal a Smarty ce ne sono diversi :)
    3- Query in SQL con un LIKE per trovare compleanno = giorno di oggi :)

    Se hai già creato la struttura del forum con tutte quelle tabelle dovresti già saperti muovere abbastanza bene in Php & MySQL ;)

  3. #3
    Guest

    Predefinito

    1. per il pannello di controllo intendevo "Quali sono le funzioni di un pannello di Amministrazione"
    2.per i temi non intendevo come crearli, intendevo come fare in modo che l'amministratore (cioé io per adesso) possa modificarli senza accedere alla gestione file di altervista

  4. #4
    Guest

    Predefinito

    Ti do un consiglio hai mai usato forumcommunity dacci un occhiata cosi vedi come funziona più o meno un forum.....

  5. #5
    Guest

    Predefinito

    1- prova qualche demo di forum online, così ti fai un'idea ;)
    in generale:
    Sezione Utenti (cancella, modifica, aggiungi utenti)
    Sezione Forum/Categorie (cancella e modifica forum/categorie)
    Sezione Stile (modifica/cambia stile)
    Sezione Impostazioni (modifica/cambia impostazioni)

    2- Modificate temi precostruiti o il codice css?

  6. #6
    Guest

    Predefinito

    intendo la sezione modifica stile del pannello di amministrazione
    come dovrei realizzarla, non ne ho idea

  7. #7
    Guest

    Predefinito

    Se vuoi permettere di modificare direttamente in CSS metti la possibilità di modificarli
    Se vuoi gestire tramite un template engine basta eseguire l'upload del template e cambiare le impostazioni generali

    Una cosa così?

  8. #8
    Guest

    Predefinito

    visto che ho già creato qui una discussione mi sembra inutile crearne un'altra, allora un altro problema é questo:
    ho fatto in modo che nella visualizzazione dei post se l'autore é uguale all'username registrato nella sessione o se la classe dell'utente (5 = utente, 4 = webmaster, 3 = moderatore, 2 = Super moderatore, 1 = moderatore globale, 0 = amministratore) é minore di 4 compaiono per ogni post i link Modifica e Cancella, vorrei però fare in modo che nel primo post non sia possibile il tasto cancella, coem devo fare?
    le tabelle le avete sopra, qui posto il codice della pagina per la visualizzazione:
    Codice PHP:
    <?php
    include("parts/header.php");

    include(
    "db/connection.php");
    $thread = $_GET['t'];
    $sqr = "SELECT * FROM `threads` WHERE `id`='$thread'";
    $risultato = mysql_query($sqr);
    $raw = mysql_fetch_array($risultato);
    $f_id = $raw['forum_id'];
    $fname = $raw['forum'];
    $ttitle = $raw['titolo'];
    ?>
    <table cellpadding="2">
    <?php
    if(isset($thread)){
    $count = mysql_query("SELECT COUNT(id) FROM `posts` WHERE `thread_id`='$thread'");
    $res_count = mysql_fetch_row($count);

    // numero totale di records
    $tot_records = $res_count[0];

    // risultati per pagina(secondo parametro di LIMIT)
    $per_page = 10;

    // numero totale di pagine
    $tot_pages = ceil($tot_records / $per_page);

    // pagina corrente
    $current_page = (!$_GET['pag']) ? 1 : (int)$_GET['pag'];

    // primo parametro di LIMIT
    $primo = ($current_page - 1) * $per_page;

    include(
    "various/pagination.php");

    echo
    "<tr><td id=\"forum\" colspan=\"2\"><a href=\"index.php\">Forum di Mauro</a> &gt; <a href=\"topics.php?f=$f_id\">$fname</a> &gt; <b>$ttitle</b><div style=\"text-align: right;\">$paginazione</div></td></tr>";

    // esecuzione seconda query con LIMIT


    $query = "SELECT * FROM `posts` WHERE `thread_id`='$thread' ORDER BY `data` LIMIT $primo, $per_page";
    $result = mysql_query($query);
    if(
    mysql_num_rows($result) == 0){
    echo
    "<tr id=\"forum\"><td>Questa discussione non esiste</td></tr>";
    } else {
    while(
    $row = mysql_fetch_array($result)){
    $id = $row['id'];
    $post = $row['testo'];
    $author = $row['autore'];
    $edited = $row['edit'];
    $date = date("j/m/Y H:i", $row['data']);
    $sql = "SELECT * FROM `users` WHERE `username`='$author'";
    $ris = mysql_query($sql);
    while(
    $riga = mysql_fetch_array($ris)){
    $avatar = $riga['avatar'];
    $firma = $riga['signature'];
    $class = $riga['user_class'];
    $regdate = date("j/m/Y", $riga['regdate']);
    $posta_num = $riga['posts_num'];
    }
    if(
    $log){
    $query2 = "SELECT * FROM users WHERE username = '$log'";
    $sqry = mysql_query($query2);
    $rsw = mysql_fetch_array($sqry);
    $class_num = $rsw['usr_class_num'];
    } else {
    $class_num = 5;
    }
    if (
    $class_num < 4 || $author == $log){
    $edit = "<a href=\"edit.php?t=$thread&p=$id\">Modifica</a>";
    $delete = "<a href=\"delete.php?t=$thread&p=$id\">Cancella</a>";
    } else {
    $edit = "";
    $delete = "";
    }
    echo
    "<tr id=\"forum\">\n
    <td width=\"155\">\n
    <a href=\"profile.php?user=
    $author\"><b>$author</b></a><br/>\n
    <img src=\"
    $avatar\"/><br/>\n
    <div style=\"font-size: small;\">
    $class</div>
    <div style=\"font-size: small;\">Registrato il:
    $regdate</div>
    <br/>
    <div style=\"font-size: small;\">Numero di post:
    $posta_num</div>
    </td>\n
    <td width=\"500\">\n
    <div id=\"post\"><div id=\"data\">Scritto il:
    $date</div> <br/><div id=\"$id\">$post<br /><br /><br />$edited</div><br/><br/>------------<br/> $firma<br/><br/></div><div style=\"text-align: right;\">$edit || $delete</div>\n
    </td>\n"
    ;
    }
    mysql_close();
    }
    } else {
    header("location:index.php");
    }
    ?>
    <?php
    if (isset($log)){
    echo
    "<tr><td colspan=\"2\" id=\"forum\"><a href=\"reply.php?t=$thread\">Rispondi</a></td></tr>";
    } else {
    echo
    " ";
    }
    ?>
    </table>

    <?php
    include("parts/footer.php");
    ?>

    P.S.:grazie a comunitavirtuali, mi é stato utile


    P.P.S: mi é venuto in mente un metodo supplementare a quello detto sopra, almeno per gestire le immagini, cioé creo una pagina php con delle variabili, ad esmpio:
    Codice PHP:
    $admin_banner = "http://inidrizzo.org/immagine.png"
    //e così via
    poi questo file viene incluso in ogni file, e al posto delle immagini viene messa la variabile, così mi basterà modificare il file delle variabili per modificare tutte le immagini, no? vi sembra una buona idea?
    Ultima modifica di worldpixel : 24-06-2010 alle ore 21.41.04

  9. #9
    Guest

    Predefinito

    non mi torna una cosa
    ho messo una parte di codice per fare in modo che visualizzo i link "Modifica" e "Elimina" solo se l'utente é connesso, il suo username é uguale a quello contenuto nella sessione o la sua classe é minore di 4, il codice è questo:
    Codice PHP:
    if(!$log){
    $class = 5; // se l'utente non é connesso imposta il valore della classe a 5 (utente)
    }
    if (
    $class < 3 || $authore == $log){
    $edit = "<a href=\"edit.php?t=$thread&p=$id\">Modifica</a> || ";
    $delete = "<a href=\"delete.php?t=$thread&p=$id\">Cancella</a>";
    } elseif(
    $class >= 3 || $authore != $log) {
    $edit = "";
    $delete = "";
    }

    solo che non va, ho creato un utente di prova che ha come classe 4 (webmaster) che quindi non dovrebbe poter modificare o cancellare i post se non i suoi, solo che invece i link me li visualizza lo stesso, come posso correggere l'errore?
    grazie

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •