[RISOLTO - GDRCD 5.6.0.5] Messaggi anonimi in bacheca postato il 16/02/2023 00:04:23 nel forum programmazione, gdrcd e open source e modificato da emendil il 03/03/2023 11:42:22
Buonasera!
Qualche anima pia ha già pensato alla funzione nel titolo? Vorrei mettere la possibilità di lasciare messaggi anonimi (senza avatar e a nome "Anonimo") nelle bachece ON, naturalmente l'utente "reale" deve restare visibile in log e agli admin!
Grazie a tutti fin da subito <3
Pagine → 1 2
16/02/2023 09:47:06
Ciao!
Questa funzionalità l'hai pensata per tutte le bacheche ON game? o solo per qualcuna specifica?
Perché le strade potrebbero essere diverse in base a come hai pensato la cosa.
Claudio
16/02/2023 12:52:45 e modificato da haruka il 16/02/2023 14:00:17
Questa cosa da noi c'è, ma non riesco a condividerti il codice perché non è l'unica modifica fatta al forum.
Ti do qualche spunto ammettendo tu stia usando gdrcd.
1) Intanto, in messaggioaraldo, ho aggiunto un nuovo campo che ho chiamato "autoreoscurato" con valori possibili 0 e 1.
2) Poi, in tutti i form per l'inserimento o di un nuovo argomento o di una risposta, ho inserito un menù a tendina sì/no che va a scrivere nel database se 1/0 nella tabella messaggioaraldo, nella voce in questione.
3) In modifica devi fare lo stesso, oppure devi fare in modo che il valore originario sia preservato.
4) Nella pagina di lettura del thread - che dipende dalla versione che hai, nelle ultime dovrebbe essere read.inc.php - devi mettere una condizione. Del tipo "se autoreouscurato = 1 e chi legge ha i permessi inferiori a moderator" stampa "Autore Anonimo". Se "se autoreouscurato = 0" stampa nome di chi posta. Se "se autoreouscurato = 1 e chi legge ha i permessi pari o superiori a moderator" stampa il nome di chi posta. Occhio che ci sono i link attivi ai nomi, quindi devi anche aggirare quel problema oppure l'oscuramento è inefficace.
5) Lo stesso devi fare nella pagina dell'index del forum, quella che stampa l'elenco dei thread in una bacheca.
Leggendra.eu - Fantasy steampunk itinerante
https://www.leggendra.eu
17/02/2023 09:02:36
Ciao! Per tutte le bacheche! Dovrei aver risolto comunque ^^
cbr89 ha scritto: Ciao!
Questa funzionalità l'hai pensata per tutte le bacheche ON game? o solo per qualcuna specifica?
Perché le strade potrebbero essere diverse in base a come hai pensato la cosa.
17/02/2023 09:04:59 e modificato da gdr-online.com il 17/02/2023 12:42:13
Ciao!
Ho risolto in una maniera (probabilmente arrangiata, ma funziona!):
Ho inserito una checkbox nel form di inserimento/risposta (rapida e non) a valore "anonimo"
In caso sia flaggato, invece che il nome in login viene settato il nome "Anonimo" con un avatar indefinito!
In composer ho aggiunto questo subito dopo il bbcode help:
<div class="form_info"><label><input type="checkbox" name = "anonimo" value="anonimo">Anonimo?</label></div>
In insert.inc.php invece questo:
if (isset($_POST['anonimo']))
{
gdrcd_query("INSERT INTO messaggioaraldo (id_messaggio_padre, id_araldo, titolo, messaggio, autore, data_messaggio, data_ultimo_messaggio ) VALUES (".gdrcd_filter('num', $_POST['padre']).", ".gdrcd_filter('num', $araldoData['id_araldo']).", '".gdrcd_filter('in', $_POST['titolo'])."', '".gdrcd_filter('in', $_POST['messaggio'])."', 'ANONIMO', NOW(), NOW())");
}
else{
gdrcd_query("INSERT INTO messaggioaraldo (id_messaggio_padre, id_araldo, titolo, messaggio, autore, data_messaggio, data_ultimo_messaggio ) VALUES (".gdrcd_filter('num', $_POST['padre']).", ".gdrcd_filter('num', $araldoData['id_araldo']).", '".gdrcd_filter('in', $_POST['titolo'])."', '".gdrcd_filter('in', $_POST['messaggio'])."', '".gdrcd_filter('in', $_SESSION['login'])."', NOW(), NOW())");
}
haruka ha scritto: Questa cosa da noi c'è, ma non riesco a condividerti il codice perché non è l'unica modifica fatta al forum.
Ti do qualche spunto ammettendo tu stia usando gdrcd.
1) Intanto, in messaggioaraldo, ho aggiunto un nuovo campo che ho chiamato "autoreoscurato" con valori possibili 0 e 1.
2) Poi, in tutti i form per l'inserimento o di un nuovo argomento o di una risposta, ho inserito un menù a tendina sì/no che va a scrivere nel database se 1/0 nella tabella messaggioaraldo, nella voce in questione.
3) In modifica devi fare lo stesso, oppure devi fare in modo che il valore originario sia preservato.
4) Nella pagina di lettura del thread - che dipende dalla versione che hai, nelle ultime dovrebbe essere read.inc.php - devi mettere una condizione. Del tipo "se autoreouscurato = 1 e chi legge ha i permessi inferiori a moderator" stampa "Autore Anonimo". Se "se autoreouscurato = 0" stampa nome di chi posta. Se "se autoreouscurato = 1 e chi legge ha i permessi pari o superiori a moderator" stampa il nome di chi posta. Occhio che ci sono i link attivi ai nomi, quindi devi anche aggirare quel problema oppure l'oscuramento è inefficace.
5) Lo stesso devi fare nella pagina dell'index del forum, quella che stampa l'elenco dei thread in una bacheca.
17/02/2023 12:19:35
Ciao anche a me interessa molto questo argomento, ma non ho ben capito i passaggi che hai inserito! 😥
Per caso ci sono delle modifiche da apporre anche a livello del database?
Domando venia ma sono ancora un pochino alle prime armi con questo gdrcd!
17/02/2023 12:41:19 e modificato da anneth il 17/02/2023 12:49:31
Allur.. ho provato a mettere in piedi questa richiesta in un pacchetto gdrcd che ho già inviato a portale. Ma vorrei anticiparvela, se vi serve, condividendovi il README con la spiegazione delle modifiche.Introduco anche una modifica sull'avviso di come viene indicato che un post è stato modificato. Nella versione vanilla del gdrcd, viene aggiunta una stringa in fase di modifica con il nome di chi modifica e la data.
Ho eliminato questa parte per inserire due nuovi campi sul DB dove vengono salvati data-ora e autore della modifica. Questi verranno mostrati al di sotto della sezione data creazione (poco sotto l'avatar per intenderci). Anche in questo caso, l'autore della modifica è visualizzato solo da chi ha almeno i permessi di moderatore.
1) Aggiungere su DB 3 nuovi campi:
ALTER TABLE 'messaggioaraldo' ADD 'modificato_da' VARCHAR(20) NULL;
ALTER TABLE 'messaggioaraldo' ADD 'data_modifica' VARCHAR(50) NULL;
ALTER TABLE 'messaggioaraldo' ADD 'anonimo' INT NOT NULL DEFAULT '0';
//Attiva o disattiva pacchetto anonimo
CONST ANONIMO = true;
<?php
if(ANONIMO){
?>
<div class="form_label">
Messaggio anonimo:
</div>
<div class="form_field">
<select name="anonimo">
<option selected value="0">No</option>
<option value="1">Si</option>
</select>
</div>
<?php
}
gdrcd_query("INSERT INTO messaggioaraldo (id_messaggio_padre, id_araldo, titolo, messaggio, autore, data_messaggio, data_ultimo_messaggio, anonimo ) VALUES (".gdrcd_filter('num', $_POST['padre']).", ".gdrcd_filter('num', $araldoData['id_araldo']).", '".gdrcd_filter('in', $_POST['titolo'])."', '".gdrcd_filter('in', $_POST['messaggio'])."', '".gdrcd_filter('in', $_SESSION['login'])."', NOW(), NOW(), '".gdrcd_filter('int', $_POST['anonimo'])."')");
<?php
if(ANONIMO){
?>
<div class="form_label">
Messaggio anonimo:
</div>
<div class="form_field">
<select name="anonimo">
<option selected value="0" <?php echo ($row['anonimo']==0)? "selected" : ""; ?>>No</option>
<option value="1" <?php echo ($row['anonimo']==1)? "selected" : ""; ?>>Si</option>
</select>
</div>
<?php
}
gdrcd_query("UPDATE messaggioaraldo SET data_modifica='".$time."', modificato_da='".$_SESSION['login']."', messaggio = '".gdrcd_filter('in', $_POST['messaggio'])."', titolo = '".gdrcd_filter('in', $_POST['titolo'])."', anonimo = '".gdrcd_filter('in', $_POST['anonimo'])."' WHERE id_messaggio = ".gdrcd_filter('num', $_POST['id_messaggio'])." LIMIT 1");
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('out', $row['autore']); ?>">
<?php echo gdrcd_filter('out', $row['autore']); ?>
</a>
<?php
if(ANONIMO){
echo "Anonimo";
}else{
?>
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('out', $row['autore']); ?>">
<?php echo gdrcd_filter('out', $row['autore']); ?>
</a>
<?php
}
?>
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('out', $row['autore']); ?>">
<?php echo gdrcd_filter('out', $row['autore']); ?>
</a>
<div class="forum_avatar">
<img src="<?php echo gdrcd_filter('out', $row['url_img']); ?>" class="img_forum_avatar">
</div>
<?php
if(ANONIMO){
if(gdrcd_filter('int', $row['anonimo'])){
echo "Anonimo";
if($_SESSION['permessi'] >= MODERATOR){?>
<br><a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('out', $row['autore']); ?>">
<?php echo "(".gdrcd_filter('out', $row['autore']).")"; ?>
</a>
<? }
?>
<div class="forum_avatar">
<img src="themes/advanced/imgs/items/standard_oggetto.png" class="img_forum_avatar">
</div>
<?php
}else{
?>
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('out', $row['autore']); ?>">
<?php echo gdrcd_filter('out', $row['autore']); ?>
</a>
<div class="forum_avatar">
<img src="<?php echo gdrcd_filter('out', $row['url_img']); ?>" class="img_forum_avatar">
</div>
<?php
}
}else{
?>
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('out', $row['autore']); ?>">
<?php echo gdrcd_filter('out', $row['autore']); ?>
</a>
<div class="forum_avatar">
<img src="<?php echo gdrcd_filter('out', $row['url_img']); ?>" class="img_forum_avatar">
</div>
<?php
}
?>
<?php echo gdrcd_format_date($row['data_messaggio']).' '.gdrcd_format_time($row['data_messaggio']);
if($row['data_modifica']) {
echo "<br>Modificato il: " . gdrcd_filter('out', $row['data_modifica']);
if($_SESSION['permessi'] >= MODERATOR){
echo "<br>Da: ".gdrcd_filter('out', $row['modificato_da']);
}
}
?>
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('out', $row['autore']); ?>">
<?php echo gdrcd_filter('out', $row['autore']); ?>
</a>
<div class="forum_avatar">
<img src="<?php echo gdrcd_filter('out', $row['url_img']); ?>" class="img_forum_avatar">
</div>
<?php
if(ANONIMO){
if(gdrcd_filter('int', $row['anonimo'])){
echo "Anonimo";
if($_SESSION['permessi'] >= MODERATOR){?>
<br><a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('out', $row['autore']); ?>">
<?php echo "(".gdrcd_filter('out', $row['autore']).")"; ?>
</a>
<? }?>
<div class="forum_avatar">
<img src="themes/advanced/imgs/items/standard_oggetto.png" class="img_forum_avatar">
</div>
<?php
}else{
?>
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('out', $row['autore']); ?>">
<?php echo gdrcd_filter('out', $row['autore']); ?>
</a>
<div class="forum_avatar">
<img src="<?php echo gdrcd_filter('out', $row['url_img']); ?>" class="img_forum_avatar">
</div>
<?
}
?>
E subito dopo sostituire <?php echo gdrcd_format_date($row['data_messaggio']).' '.gdrcd_format_time($row['data_messaggio']);?> con
<?php echo gdrcd_format_date($row['data_messaggio']).' '.gdrcd_format_time($row['data_messaggio']);
if($row['data_modifica']) {
echo "<br>Modificato il: " . gdrcd_filter('out', $row['data_modifica']);
if($_SESSION['permessi'] >= MODERATOR){
echo "<br>Da: ".gdrcd_filter('out', $row['modificato_da']);
}
}
?>
<div class="form_label">
Risposta rapida
</div>
<?php
if(ANONIMO){
?>
<div class="form_label">
Messaggio anonimo:
</div>
<div class="form_field">
<select name="anonimo">
<option selected value="0">No</option>
<option value="1">Si</option>
</select>
</div>
<?php
} ?>
17/02/2023 12:54:22
emendil ha scritto: Ciao!
Ho risolto in una maniera (probabilmente arrangiata, ma funziona!):
Leggendra.eu - Fantasy steampunk itinerante
https://www.leggendra.eu
17/02/2023 13:54:21
@haruka sempre un piacere :)
Aggiungo che con la modifica sopra, chi è Moderatore ha la visibilità di chi è il proprietario del post e di chi effettua una modifica.
21/02/2023 16:38:46
Grazie! <3 Aspetto la pubblicazione del pacchetto allora :3
anneth ha scritto: @haruka sempre un piacere :)
Aggiungo che con la modifica sopra, chi è Moderatore ha la visibilità di chi è il proprietario del post e di chi effettua una modifica.
21/02/2023 16:39:52
Si, come detto è stata una soluzione tampone XD Appena il lavoro mi concede un po' di respiro ci rimetto mano (se santa @Anneth non risolve prima :3)
haruka ha scritto:
emendil ha scritto: Ciao!
Ho risolto in una maniera (probabilmente arrangiata, ma funziona!):
Discussione seguita da
Pagine → 1 2
Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
haruka ha aperto un annuncio di ricerca: Above Leggendra ricerca Giocatore
✋😟
Abbiamo rilevato che stai usando un software per bloccare la pubblicità!
L'utilizzo di GDR-online.com è gratuito da oltre 18 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