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>';

}

?>

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.
Topic revision: r4 - 01 Aug 2007, CaSe
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback