GDRCD (5.1 modificato) - Diario Pg postato il nel forum programmazione, gdrcd, grafica e open source
Salve a tutti!
A tempo perso, poiché non la reputo una modifica da effettuare a breve termine, mi ha sfiorata l'idea di creare un diario del Pg che sia più funzionale rispetto all'avere una pagina unica che raccoglie tutta la parte txt.
Mi spiego meglio:
Se la sezione "Diario" seguisse grossomodo l'impostazione dei Topic delle bacheche, con relativa Creazione nuovo argomento/modifica/eliminazione con annessa data, di certo renderebbe più semplice la consultazione di ogni voce creata. Inoltre, se fosse possibile introdurre anche la possibilità di rendere certe voci visibili/invisibili che possano essere consultabili dal solo utente o meno, sarebbe davvero la ciliegina sulla torta.
Il punto è...qualcuno può indirizzarmi sull'ordine degli step da seguire per creare una cosa simile o da che modulo di GDRCD dovrei prendere esempio/spunto? Perchè la sezione del Forum è un po' ingarbugliata da replicare e magari tra un passaggio e l'altro potrei incappare in diversi errori (e non è nemmeno detto che sia la via giusta da seguire)
Premetto che non sono una programmatrice ma se riuscissi a creare qualcosa del genere, sarei ben felice di metterla a disposizione della community :)
Grazie per la cortese attenzione ^^
👻Discord: https://discord.gg/8KjbuS3 🧛 Home: https://shadowland.altervista.org/index.php💀
27/09/2021 11:55:18 e modificato il 27/09/2021 12:00:58 da haruka
Potresti ragionare su qualcosa di simile al pacchetto news che mi pare fosse tra gli open source.
Una nuova tabella in forum che puoi chiamare diari
campi:
id_diario
data
titolo
proprietario
testo
Ogni singolo personaggio dovrebbe poter fare un inserimento in questa nuova tabella. Nel suo avatar dovrebbero essere visualizzati solo gli inserimenti che riportano il suo nome come propritario, e lui dovrebbe poterli modificare e/o cancellare.
Così su due piedi, eh?
Leggendra.eu - Fantasy steampunk itinerante
https://www.leggendra.eu
27/09/2021 12:17:47 e modificato il 27/09/2021 12:21:02 da staff shadowland
In effetti potrebbe essere una idea! Però è un modulo che andrebbe inserito nella scheda del singolo Pg, il Forum era inteso solo come possibile elemento da cui trarre spunto per il possibile sviluppo della faccenda :)
Farò qualche tentativo, Grazie *-*
P.s. Mi sono ricordata però che così facendo, il titolo non diventa cliccabile per ogni singola sezione così da rimandare l'utente soltanto a quella data pagina :/ sviluppando una cosa simile, andrei praticamente ad avere il medesimo risultato di una pagina unica in txt soltanto con capitoli separati (un po' come avviene per le varie sezioni base di GDRCD)
👻Discord: https://discord.gg/8KjbuS3 🧛 Home: https://shadowland.altervista.org/index.php💀
27/09/2021 12:33:50
Alla tabella dovresti aggiungere "titolo".
Dovresti avere una pagina nell'avatar che elenca solo i titoli. E cliccando sul singolo titolo, la visualizzazione dell'inserimento.
Così ha senso?
Leggendra.eu - Fantasy steampunk itinerante
https://www.leggendra.eu
27/09/2021 12:37:31
Esatto. Nella versione che consultai tempo fa per le news, il titolo non mi pare fosse cliccabile e che dunque non rimandasse all'argomento ma che fosse fissato lì come semplice "titolo" per l'appunto. Mi sono persa qualche nuova versione? °^°
👻Discord: https://discord.gg/8KjbuS3 🧛 Home: https://shadowland.altervista.org/index.php💀
27/09/2021 13:10:15
Appunto, andrebbe modificato :)
Vediamo se più tardi riesco a fare qualcosa e a postare qualche codice per fare dei test ;)
Leggendra.eu - Fantasy steampunk itinerante
https://www.leggendra.eu
27/09/2021 13:35:46 e modificato il 28/09/2021 19:13:07 da haruka
Intanto, creiamo la tabella in database tramite phpmyadmin
--
-- Struttura della tabella diari
--
CREATE TABLE IF NOT EXISTS diari (
id_diario int(11) NOT NULL AUTO_INCREMENT,
data date NOT NULL,
titolo varchar(30) CHARACTER SET utf8 NOT NULL,
testo text CHARACTER SET utf8 NOT NULL,
proprietario varchar(30) CHARACTER SET utf8 NOT NULL,
del INT(2) NOT NULL DEFAULT '0',
PRIMARY KEY (id_diario)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Dump dei dati per la tabella diari
Leggendra.eu - Fantasy steampunk itinerante
https://www.leggendra.eu
27/09/2021 13:58:26
Step 2 (per gdrcd 5.5 - questa cosa va adattata, su gdrcd 5.1 non so come vengono richiamati i menu della scheda).
In ogni singola scheda di gdrcd 5.5 esiste il menu gestito dal file pages/scheda/menu.inc.php
Qui andrebbe inserito
<a href="main.php?page=scheda_listadiari&pg=<?php echo gdrcd_filter('url', $_REQUEST['pg']); ?>">
Diario
</a>
Leggendra.eu - Fantasy steampunk itinerante
https://www.leggendra.eu
28/09/2021 11:19:47 e modificato il 01/10/2021 13:19:58 da haruka
Il contenuto del file scheda_listadiari.inc.php - che mostra un elenco cliccabile delle voci. Manca un ultimo file per completare il "pacchetto".
<div class="menu_scheda"><!-- Menu scheda -->
<div class="menu_scheda_bottom">
<?php include ('scheda/menu.inc.php'); ?>
</div></div>
<div class="pagina_scheda">
<!--- Eriannen Copyright (c) 2013 L'uso di questo script è libero senza alcuna restrizione paolo53b@gmail.com --->
<?php /*HELP: E' possibile modificare la scheda agendo su scheda.css nel tema scelto, oppure sostituendo il codice che segue la voce "Scheda del personaggio"*/ ?>
<?php
/********* CARICAMENTO PERSONAGGIO E DIARI ***********/
//Se non e' stato specificato il nome del pg
if (isset($_REQUEST['pg'])===FALSE){
echo '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
} else {
$query = "SELECT * FROM diari WHERE proprietario = '".gdrcd_filter('in',$_REQUEST['pg'])."' AND del = '0' ORDER BY id_diario DESC";
$personaggio = "SELECT * FROM personaggio WHERE nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
//Se non esiste il pg
if ((($_SESSION['login'] == gdrcd_filter('out', $_REQUEST['pg'])) || ($_SESSION['permessi'] >= MODERATOR)) && (gdrcd_filter('get',
$_POST['op']) == 'insert_diario'))
{
gdrcd_query("INSERT diari (titolo, testo, proprietario, data) VALUES ('".gdrcd_filter('in', $_POST['titolo'])."','".gdrcd_filter('in', $_POST['testo'])."','".$_SESSION['login']."', NOW())");
echo '<div class="warning">' . gdrcd_filter('out', $MESSAGE['warning']['modified']) . '</div>';
}
if (isset($_REQUEST['op'])===FALSE){
?>
<!--- SCHEDA DEL PERSONAGGIO --->
<div class="ritratto_nome_scheda">
<span class="titolo">
Diari Privati di <?php echo gdrcd_filter('in',$_REQUEST['pg']) ?>
</span>
</div>
<div class="page_body">
<div class="background"><!-- Background, affetti, robe varie -->
<div class="titolo_box">
Titolo
</div>
<div class="body_box_scheda">
<?php while($row=gdrcd_query($result, 'fetch')){ ?>
<ul>
<li>
<a href="main.php?page=scheda_diario&pg=<?php echo gdrcd_filter('get',$_REQUEST['pg']); ?>&id=<?php echo gdrcd_bbcoder(gdrcd_filter('out',$row['id_diario'])); ?> "> <?php echo gdrcd_bbcoder(gdrcd_filter('out',$row['titolo'])); ?></a> <span style="color: rgba(0,0,0,0.4);"><i>( <?php echo gdrcd_format_date($row['data']); ?> )</i></span>
</li>
</ul>
<?php } ?>
</div>
</div><!-- diario -->
<div>
<!--- AREA ADMIN --->
<?php if (($_SESSION['login'] == gdrcd_filter('out', $_REQUEST['pg'])) || ($_SESSION['permessi'] >= MODERATOR)){ ?>
<div>
Inserisci una nuova pagina del tuo diario
</div>
<div class="form_gioco">
<form action="main.php?page=scheda_listadiari&pg=<?php echo gdrcd_filter('get',$_REQUEST['pg']); ?>" method="post">
<input type="hidden" name="op" value="insert_diario"/>
<div class='form_field'>
<input type="text" name="titolo"
placeholder="Titolo"
class="form_input"/>
</div>
<div class='form_field'>
<textarea type="textbox" name="testo"
class="form_textarea"></textarea>
</div>
<div class='form_submit'>
<input type="submit" value="<?php echo $MESSAGE['interface']['forms']['submit']; ?>"/>
</div>
</form>
</div>
<?php } ?>
</div>
<?php
} ?>
<!-- Link a piè di pagina -->
<div class="link_back">
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('get',$_REQUEST['pg']); ?>"><?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['link']['back']); ?></a>
</div>
<?php }//else
/********* CHIUSURA SCHEDA **********/
?>
</div><!-- Pagina -->
Leggendra.eu - Fantasy steampunk itinerante
https://www.leggendra.eu
29/09/2021 11:58:55 e modificato il 30/09/2021 14:32:07 da haruka
Ultimi tre file. Il primo: scheda_diario.inc.php
<div class="menu_scheda"><!-- Menu scheda -->
<div class="menu_scheda_bottom">
<?php include ('scheda/menu.inc.php'); ?>
</div></div>
<div class="pagina_scheda">
<!--- Eriannen Copyright (c) 2013 L'uso di questo script è libero senza alcuna restrizione paolo53b@gmail.com --->
<?php /*HELP: E' possibile modificare la scheda agendo su scheda.css nel tema scelto, oppure sostituendo il codice che segue la voce "Scheda del personaggio"*/ ?>
<?php
/********* CARICAMENTO PERSONAGGIO E DIARI ***********/
//Se non e' stato specificato il nome del pg
if (isset($_REQUEST['pg'])===FALSE){
echo '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';
} else {
$query = "SELECT * FROM diari WHERE id_diario = '".gdrcd_filter('in',$_REQUEST['id'])."' ORDER BY id_diario DESC";
$personaggio = "SELECT * FROM personaggio WHERE nome = '".gdrcd_filter('in',$_REQUEST['pg'])."'";
$result = gdrcd_query($query, 'result');
//Se non esiste il pg
if (gdrcd_query($result, 'num_rows')==0){echo '<div class="error">'.gdrcd_filter('out',$MESSAGE['error']['unknown_character_sheet']).'</div>';}
else {
$query = "SELECT * FROM diari WHERE id_diario = '".gdrcd_filter('in',$_REQUEST['id'])."' ORDER BY id_diario DESC";
$result=gdrcd_query($query, 'result');
if ((($_SESSION['login'] == gdrcd_filter('out', $_REQUEST['pg'])) || ($_SESSION['permessi'] >= MODERATOR)) && (gdrcd_filter('get',
$_POST['op']) == 'insert_diario'))
{
gdrcd_query("INSERT diari (titolo, testo, proprietario, data) VALUES ('".gdrcd_filter('in', $_POST['titolo'])."','".gdrcd_filter('in', $_POST['testo'])."','".$_SESSION['login']."', NOW())");
echo '<div class="warning">' . gdrcd_filter('out', $MESSAGE['warning']['modified']) . '</div>';
}
if (isset($_REQUEST['op'])===FALSE){
?>
<!--- SCHEDA DEL PERSONAGGIO --->
<div class="ritratto_nome_scheda">
<span class="titolo">
<?php while($row=gdrcd_query($result, 'fetch')) { echo gdrcd_bbcoder(gdrcd_filter('out',$row['titolo']));?>
</span>
</div>
<div class="page_body">
<div class="background"><!-- Background, affetti, robe varie -->
<div class="titolo_box">
Titolo
</div>
<div class="body_box_scheda">
<div class="testodiario">
<?php echo gdrcd_bbcoder(gdrcd_filter('out',$row['testo'])); ?>
</div>
<div class="datadiario">
<?php echo gdrcd_format_date($row['data']); ?>
</div>
</div>
</div><!-- diario -->
<div class="forum_post_modify">
<?php
if (($_SESSION['login'] == gdrcd_filter('out', $_REQUEST['pg'])) || ($_SESSION['permessi'] >= MODERATOR)){
?>
<a href="main.php?page=modifica_diario&what=<?php echo $row['id_diario']; ?>">[<?php echo $MESSAGE['interface']['forums']['link']['edit']; ?>]</a>
<a href="main.php?page=delete_diario&what=<?php echo $row['id_diario']; ?>">[<?php echo gdrcd_filter('out', $MESSAGE['interface']['forums']['link']['delete']); ?>]</a>
<?php
}
?>
<?php } ?>
</div>
<div>
<!--- AREA ADMIN --->
</div>
<?php
} ?>
<!-- Link a piè di pagina -->
<div class="link_back">
<a href="main.php?page=scheda_listadiari&pg=<?php echo gdrcd_filter('get',$_REQUEST['pg']); ?>"><?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['link']['back']); ?></a>
</div>
<?php }//else
}//else
/********* CHIUSURA SCHEDA **********/
?>
</div><!-- Pagina -->
Leggendra.eu - Fantasy steampunk itinerante
https://www.leggendra.eu
29/09/2021 11:59:46 e modificato il 11/10/2021 15:26:31 da haruka
Il secondo: modifica_diario.inc.php
<div class="menu_scheda"><!-- Menu scheda -->
<div class="menu_scheda_bottom">
<?php include ('scheda/menu.inc.php'); ?>
</div></div>
<?php if (($_SESSION['login'] == gdrcd_filter('out', $_REQUEST['pg'])) || ($_SESSION['permessi'] >= MODERATOR)) {
$row = gdrcd_query("SELECT * FROM diari WHERE id_diario=".gdrcd_filter('num', $_REQUEST['what'])."");
if ((gdrcd_filter('get', $_POST['op']) == 'modifica_diario')) {
gdrcd_query("UPDATE diari SET testo = '".gdrcd_filter('in', $_POST['testo'])."', titolo = '".gdrcd_filter('in', $_POST['titolo'])."' WHERE id_diario = ".gdrcd_filter('num', $_POST['id_diario'])." LIMIT 1");
echo '<div class="warning">' . gdrcd_filter('out', $MESSAGE['warning']['modified']) . '</div>';
?>
<div class="link_back">
<a href="main.php?page=scheda_listadiari&pg=<?php echo gdrcd_filter('out', $_REQUEST['pg']) ?>"><?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['link']['back']); ?></a>
</div>
<?php
echo '<style> .panels_box {display:none;} </style>';
}
?>
<div class="panels_box">
<div class="form_gioco">
<form action="main.php?page=modifica_diario&pg=<?php echo $row['proprietario']; ?>" method="post">
<div class="form_label">
Titolo
</div>
<div class='form_field'>
<input type="text" name="titolo"
value="<?php echo $row['titolo']; ?>"
class="form_input"/>
</div>
<div class="form_label">
Testo
</div>
<div class="form_field" id="ckeditor">
<textarea name="testo" /><?php echo $row['testo']; ?></textarea>
<script type="text/javascript">
CKEDITOR.replace( 'testo' );
</script>
</div>
<div class="form_submit">
<input type="hidden" name="op" value="modifica_diario"/>
<input type="hidden" name="id_diario" value="<?php echo gdrcd_filter('num', $_REQUEST['what']); ?>" />
<input type="submit" name="dummy" value="<?php echo gdrcd_filter('out', $MESSAGE['interface']['forms']['submit']); ?>" />
</div>
</form>
</div>
</div>
<div class="link_back">
<a href="main.php?page=scheda_listadiari&pg=<?php echo $row['proprietario']; ?>"><?php echo gdrcd_filter('out',$MESSAGE['interface']['sheet']['link']['back']); ?></a>
</div>
</div>
<?php }//else
else echo '<div class="error">Non sei autorizzato a modificare un diario altrui</div>';
?>
Leggendra.eu - Fantasy steampunk itinerante
https://www.leggendra.eu
Discussione seguita da:
Non puoi scrivere in questo Forum
Aggiungi Discussione ai Preferiti
Inoltra Discussione
Forum Programmazione, GDRCD, Grafica e Open Source
Torna alla lista Forum
✋😟
Abbiamo rilevato che stai usando un software per bloccare la pubblicità!
L'utilizzo di GDR-online.com è gratuito da oltre 17 anni ma è necessario coprire i costi per mantenerlo online... ti chiediamo di aiutarci disabilitando il blocco dei banner pubblicitari.
Togliere il blocco significa fare in modo che GDR-online.com possa continuare a far conoscere piccoli giochi amatoriali gratuitamente e offrire un servizio sempre migliore e adatto alle esigenze dei suoi giocatori!
Se questo avviso continua ad apparire nonostante tu abbia autorizzato il portale:
- Verifica nelle opzioni che venga disattivato AdBlock in tutto il dominio gdr-online.com e non solo in una pagina
- Controlla di non avere fra le estensioni installate altre analoghe ad AdBlock, come AdBlock Plusbr, ublock origin, ecc.
- Probabilmente sul tuo PC è installato un Antivirus che ha anche funzioni di blocco pubblicità
- Se usi Firefox impostare il "Blocco Contenuti" su "Normale" e non su "Restrittivo". Per farlo clicca sull'icona dello scudo vicino all'URL e clicca su "Disattiva Blocco per questo sito"
- Prova a premere CTRL + F5, riloggarti e vedi se il problema persiste