Joomla.it Forum
Non solo Joomla... => Sviluppo => : .Andrea S. 06 Apr 2007, 12:43:28
-
Ciao,
Se mi loggo come admin e visualizzo i miei contenuti (tramite cb) nell'elenco sono visibili anche i contenti scaduti (quelli con termini pubblicazione ormai passato).
Se invece mi loggo come utente normale questi ultimi non sono visibili.
Vorrei fare in modo che l'autore di un contenuto fosse in grado di visualizzare i suoi contenuti anche se "scaduti".
Suggerimenti su dove agire?
Grazie
n.b. Non dipende da CB, dovrebbe essere una funzione del core di joomla.
Infatti in CB sono riuscito a visualizzare il link ma quando ci clicco sopra mi dice che non sono autorizzato. ;)
-
Immagino sia una qualche funzione di com_content.
Però non ho mai usato CB e non ho ben capito quali contenuti vedi da CB.
-
Come dicevo ;) non dipende da CB. Ad ogni modo vedo i contenuti, qualsiasi contenuto.
Il problema è che Joomla non consente agli autori (non amministratori) di vedere dal front-end i contentui "scaduti".
Dici com_content? .... quale sarà la parte del front-end?
Grazie
-
Ho trovato questo (in com-content ;)):
if ( $access->canEdit ) {
$xwhere = '';
if ( $params->get( 'unpublished' ) ) {
// shows unpublished items for publishers and above
$xwhere2 = "\n AND (b.state >= 0 or b.state is null)";
} else {
// unpublished items NOT shown for publishers and above
$xwhere2 = "\n AND (b.state = 1 or b.state is null)";
}
} else {
$xwhere = "\n AND a.published = 1";
$xwhere2 = "\n AND b.state = 1"
. "\n AND ( b.publish_up = " . $database->Quote( $nullDate ) . " OR b.publish_up <= " . $database->Quote( $now ) . " )"
. "\n AND ( b.publish_down = " . $database->Quote( $nullDate ) . " OR b.publish_down >= " . $database->Quote( $now ) . " )"
;
}
Quindi dovrebbe essere questo.... che cambio? :D
-
Tanto per cominciare dovresti testare in quale ramo dell'IF ti infili.
Nel ramo else c'è un riferimento esplicito alla scadenza delle notizie:
<?php
else {
$xwhere = "\n AND a.published = 1";
$xwhere2 = "\n AND b.state = 1" .
"\n AND ( b.publish_up = " . $database->Quote( $nullDate ) .
" OR b.publish_up <= " . $database->Quote( $now ) . " )" .
"\n AND ( b.publish_down = " . $database->Quote( $nullDate ) .
" OR b.publish_down >= " . $database->Quote( $now ) . " )";
}
?>
Puoi iniziare a lavorare su quelle:
- publish_up è la data di inizio della pubblicazione
- publish_down è la data di fine della pubblicazione
Come vedi vengono selezionate solo le notizie che hanno inizio prima di oggi e finiscono dopo oggi.
-
Ho trovato di meglio. :D
Dovrebbe dipendere da questo pezzo di codice:
// normal
if ( $type > 0) {
if ( isset($params) && $unpublished ) {
// shows unpublished items for publishers and above
if ( $access->canEdit ) {
$where[] = "a.state >= 0";
} else {
$where[] = "a.state = 1";
$where[] = "( a.publish_up = " . $database->Quote( $nullDate ) . " OR a.publish_up <= " . $database->Quote( $now ) . " )";
$where[] = "( a.publish_down = " . $database->Quote( $nullDate ) . " OR a.publish_down >= " . $database->Quote( $now ) . " )";
}
} else {
// unpublished items NOT shown for publishers and above
$where[] = "a.state = 1";
//if ( !$access->canEdit ) {
$where[] = "( a.publish_up = " . $database->Quote( $nullDate ) . " OR a.publish_up <= " . $database->Quote( $now ) . " )";
$where[] = "( a.publish_down = " . $database->Quote( $nullDate ) . " OR a.publish_down >= " . $database->Quote( $now ) . " )";
//}
}
E se elimino il secondo if ??? :-\
-
Però mi sorge un altro dubbio, se quello è un if da dove si setta il parametro?
-
Boh. :D
Prova.