Oscailt: post nascosti
Oscailt non prevede nessuna maniera per visualizzare i post nascosti. Solo chi \xE8
editor li pu\xF2 vedere.
Come trucco \xE8 stata seguita questa strada:
- modificato il file
objects/indyruntime/articledisplay.inc
- creato un documento statico contenente codice php (Static Document 2195)
- creato un URL amichevole
- creato un link a tale documento, e messo nella colonna destra in fondo
- creato un nuovo oggetto per visualizzare l'articolo (Article View Module 2200)
objects/indyruntime/articledisplay.inc
Alla
linea 344 (forse un'altra linea nel vostro caso, quindi cercate l'_originale_ di questo
if
) la condizione aggiuntiva
$_REQUEST[a]==1
, permette di visualizzare il post nascosto anche se non si \xE8
editor.
if($_REQUEST[a]==1 || $story->hidden==false || ($editor_session->isSessionOpen() && $editor_session->editor->allowedReadAccessTo("viewhiddencontent")))
In alternativa (stato attuale del sito toscano), al posto di if
$_REQUEST[a]==1
ci si pu\xF2 mettere a esempio
preg_match("/toscana\.indymedia\.org\/nascosti$/", $_SERVER['HTTP_REFERER'])
. Questo per
limitare la possibilit\xE0 di
accedere agli articoli nascosti se e solo se si "proviene" dalla pagina che corrisponde (a una espressione regolare) a ci\xF2 che sta nella variabile
HTTP_REFERER
, ovvero dalla pagina (lo Static Document qui sotto) che contiene la lista degli articoli nascosti.
Static Document
Il campo
File Contents di questo nuovo Documento contiene essenzialmente una query al database che succhia i post nascosti (
select * from imc_toscana_stories where hidden = 1 ORDER BY story_id DESC
) e ne fa una tabella HTML. Per ogni post crea un link con parametro
?a=1
(es. <a href="articolohiddato/185?a=1">Titolo</a>
notare ?a=1).
TODO: qualcosa che tronchi la lista quando diventa troppo lunga, mettendo un link a "prossima pagina" o roba del genere.
Esempio di codice da sbattere nel campo apposito
<?php
include('config/dbconfig.php');
$dbi=@mysql_connect($dbhost, $dbuname, $dbpass);
mysql_select_db($dbname, $dbi) or print ("Errore nella selezione del database. Verificare i parametri");
$sql = "select * from imc_toscana_stories where hidden = 1 and type_id !=1 ORDER BY story_id DESC";
$result = mysql_query($sql, $dbi);
echo '<table class="object-views">';
echo '<tr><td>ID</td><td>TITOLO</td><td>AUTORE</td><td>DATA</td><tr>';
while ($row = mysql_fetch_array($result)) {
echo '<tr>';
printa($row);
echo '</tr>';
}
echo '<tr><td colspan=4></td></tr>';
echo '</table>';
mysql_close($dbi);
function printa($oggetto) {
echo '<td>'.$oggetto[story_id].'</td>';
echo '<td><a href="articolohiddato/'.$oggetto[story_id].'?a=1">'.$oggetto[story_title].'</a></td>';
echo '<td>'.$oggetto[author_name].'</td>';
echo '<td>'.$oggetto[time_posted].'</td>';
}
?>
URL amichevole & link
L'URL si crea agilmente dalla Pagina iniziale per l'amministrazione di Oscailt -> Modifica gli URL amichevoli. In fondo vveniva proposto di generarlo automaticamente.
Il link al documento si posiziona nella colonna di destra modificando il
Vertical Menu 1982 e
Add New Objects to this Vertical Menu dalla sezione
Static Document e usando
Long Title nella colonna
Display.
Oggetto per visualizzare l'articolo
Creato un nuovo modulo (oggetto?)
Article View Module 2200 per differenziare la visualizzazione del post nascosto da quello normale.
Tale differenziazione comprende: la possibilit\xE0 di specificare un
Header per specificare che il post \xE8 nascosto e
perch\xE8, la disabilitazione della possibilit\xE0 ad aggiungere commenti, ed eventualmente altro.