So di fare questa richiesta molto in ritardo, ma ho avuto TROPPO da fare.
Sapete tutti che ho una serie di blog basati su drupal.
- Quello che voglio chiedervi è come fare a creare una pagina speciale (un nodo) che sia legato al tema ma che non presenti le sidebar. La mia intenzione era una Pagina Speciale per il Live Streaming delle Olimpiadi di Vancouver.
- Come fare una pagina speciale come quella indicata al punto 1 che però abbia in aggiunta una funzionalità tale che possa renderla adatta al Live Blogging, quindi che si aggiorni da sola o che consenta una sorta di sistema per il blogging "inline" tipo Facebook.
- Come faccio a fare una pagina che sia l'insieme delle caratteristiche espresse nei due punti precedenti. Sarebbe un'idea perfetta per trasmettere il livestreaming delle olimpiadi di Vancouver dando la possibilità agli utenti di "commentare" senza che la pagina richieda un refresh.
Queste richiesta caratterizzano un lato di drupal che non conosco ancora.
Sapete aiutarmi?
per la telecronaca o live streaming prova a vedere se uno di questi può esserti utile:
http://drupal.org/project/livecoverage
http://drupal.org/project/tribune
http://drupal.org/project/live_update (howto qui)
per una pagina senza sidebars...non è sufficiente non mettere nulla nelle regioni laterali?
Certified to Rock
Ok ma come faccio?... è cmq una pagina di un blog che ha le sidebar... dovrei semmai creare un nodo specifico ed impostare su tutti i blocchi delle sidebar di non essere visualizzati per quella categoria di nodi.
Questa è una soluzione ma è Laboriosa..xkè i blocchi sono e possono essere tanti e variegati.
http://www.sanisapori.eu
non capisco se scherzi o meno.
questo e un sistema.che significa che i blocchi sono tanti e variegati? i blocchi o ci sono o non ci sono.
oppure puoi avere page.tpl e/o node.tpl speciali (senza sidebars). in fondo si tratta di rimuovere due righe di codice
oppure potresti alternativamente wrappare le regioni in un if statement (meglio in template.php) che le disattiva per un solo content type
Certified to Rock
Significa che se oggi imposto certi blocchi, in futuro questi stessi blocchi possono non esserci o più probabilmente aumentare di numero.
di solito creo file node-[----].tpl specifici... ma visto che si tratta di nodi usati raramente, sarei più felice se non fosse necessaria creare nuovi file per i nodi.
Una cosa buona può essere quella di fare wrap delle regioni. Mi pare che una cosa del genere già la faccio per le regioni della in cui mostro pubblicità.
cmq.. interessante il modulo Live Update. devo vedere il modulo livecoverage.
http://www.sanisapori.eu
Mi serve però un "dato" per non far vedere determinati blocchi a tipi di nodo.
In alcuni blocchi io ho inserito una funzione in php. di conseguenza non posso tornare ad impostare la visibilità su alcuni tipi di nodo ed altri no, ma devo continuare con una funzione php.
Quindi in php come faccio a dire al blocco di non mostrarsi per un dato tipo di nodo o per un dato alias? non conosco le variabili di sistema che mi danno tali informazioni.
fatemi sapere
http://www.sanisapori.eu
Non ho capito come si usa il modulo Live_update http://drupal.org/project/live_update
eppure l'howto sembra chiaro e semplice... :|
Qualcuno ha capito come usare questo modulo almeno a livello base?
http://www.sanisapori.eu
ho l'impressione, dopo alcuni tentativi di test, dei quali ho non ho capito granchè sul funzionamento, che il modulo Live update non funzioni proprio bene... ho beccato diversi errori.
per quanto riguarda il modulo Livecoverage, questo non è proprio il massimo, nel senso che nei vari browser mi ritrovo una finestrella che si apre con su indicato "An HTTP error occured" ogni volta che in automatico fa refresh!
Non mi resta che provare l'altro modulo: tribune.
http://www.sanisapori.eu
sto testando livecoverage su ie8, chrome e FF3.6
funziona benissimo, nessun errore
sono su server remoto ed accedo da anonimo e loggato.
lascetei perdere tribune, che, credo, sia più simile ad una chat...
Certified to Rock
io uso ubuntu... ed ho testato su chrome ed epiphany come utente anonimo e mi apriva una finestrella con l'errore.
mentre su fierefox avevo aperta la pagina come amministratore ...ma questa non fa testo.
http://www.sanisapori.eu
ho tenuto la pagina del live blogging aperta, da firefox e da autente anonimo, ottendo lo stesso errore ogni volta che fa il refresh!! :-|
http://www.sanisapori.eu
non so che dirti: secondo me c'è un conflitto tra file javascript.
potresti provare senza altri moduli che usano JS
oppure cambiando il tema con garland.
Certified to Rock
ehhh!... si può fare in preproduzione... ma in produzione... non posso cambiare il tema o smontare i moduli.
In questa preproduzione però ho quasi nessun modulo e il tema garland!!.. quindi BOH!
Devo inventarmi una soluzione... facciamo un passo per volta, lasciamo stare il modulo livecoverage.
Pensiamo a come far sparire tutto il blocco sidebar.
Ti dico, mi servirebbe sapere qual è la variabile da usare in php all'interno di un blocco per identificare il tipo di nodo e dire che per quel tipo di nodo quel blocco non deve apparire.
Si può?
Se risolvo questa, posso posticipare il live blogghing ed il resto... e dedicarmi alla customizzazione della pagina su Facebook per Vancouver.
http://www.sanisapori.eu
questo esempio è su garland.
in
page.tpl.php
ho aggiunto solo la prima e ultima riga:(...)
<?php if ($node->type != 'feed_item' && $page == 0): ?>
<?php if ($left): ?>
<div id="sidebar-left" class="sidebar">
<?php if ($search_box): ?><div class="block block-theme"><?php print $search_box ?></div><?php endif; ?>
<?php print $left ?>
</div>
<?php endif; ?>
<?php endif; ?>
(...)
risultato: solo in fullnode view dei nodi feed_item mi sparisce la colonna sinistra ($left)
Certified to Rock
ma veramente così semplice?!...
... cavolo credevo che ci fossero più cose prorie di drupal su cui fare attenzione :-|
http://www.sanisapori.eu
ho iniziato a scoprire qualcosa in merito al modulo Live Update.
Ho provato con i commenti, poi con la front page.
Quello che succede è che se un utente scrive qualcosa, immancabilmente la sua pagina, quando salva, subirà un refresh.
Invece chi sta leggendo il post o al front page, sui cui viene scritto il commento/post... si trova apparire il commento senza refresh, in un attimo... e questo è fighissimo ed avviene con una fluidità che non dispiace affatto :-D.
Però sarebbe stato veramente BELLO e COMODO se: io scrivo e il commento viene inserito senza che la mia pagina subisca il refresh.
E' un bel modulo.. forse necessità di miglioramenti ma non è affatto male.
Quello che non sono ancora riuscito a scoprire è dove ha effetto... il modulo di Live Update riferito al blog.
http://www.sanisapori.eu
NOTA!...
... ho appena scoperto che il Modulo Live Update che utilizza le JSON (pare), interferisce in maniera GRAVE con le chiamate JSON di CiviCRM!...
http://www.sanisapori.eu
Si in effetti funziona!... però, le mie preoccupazioni iniziali, quelle xcui ti ho risposto che cui ero perplesso in merito a tale soluzioni si sono verificate.
Cioè... io posso anche wrappare il tema e far sparire qualche blocco DIV... però è pur vero che in ogni caso il sistema vede le sidebars "popolate" e non riadatta le dimensioni della colonna visibile in modo che copra anche le aree in cui erano presenti le sidebars.
Questa parte, rientra in quelle funzioni del tema che in genere non tocco mai. In particolare questa e sicuramente altre proprie di drupal.
/**
* Sets the body-tag class attribute.
*
* Adds 'sidebar-left', 'sidebar-right' or 'sidebars' classes as needed.
*/
function phptemplate_body_class($left, $right) {
if ($left != '' && $right != '') {
$class = 'sidebars';
}
else {
if ($left != '') {
$class = 'sidebar-left';
}
if ($right != '') {
$class = 'sidebar-right';
}
}
if (isset($class)) {
print ' class="'. $class .'"';
}
}
Ora, secondo me il modo giusto di agire è quello far sembrare a drupal che le sidebars non siano "popolate" da blocchi. In questo modo drupal ci pensa da solo a far sparire le sidebars e le impostazioni del tema permetteranno di avere una sola colonna.
in effetti, la funziona phptemplate_body_class io potrei customizzarla modificando le istruzioni if.
http://www.sanisapori.eu
il mio tema presenta in page.tpl.php la seguente caratteristica:
<body id="page-background" <?php print phptemplate_body_class($left, $right); ?> >
Dopo avere analizzato al funzione phptemplate_body_class($left, $right) presente in template.php, ho modificato page.tpl.php, inquesto modo:
<?php
if (($node->type == 'feed_item' || $node->type == 'blog') && $page == 0) {
$left = '';
$right= '';
}
?>
<body id="page-background" <?php print phptemplate_body_class($left, $right); ?> >
Non è una soluzione che mi piace :S ... praticamente è come aver messo un "bypass". Secondo me la modifica va fatta all'interno della funzione phptemplate_body_class($left, $right) presente in template.php
bohz... secondo te?
http://www.sanisapori.eu
Questa è la soluzione (semplicistica) che segue la via più corretta, cioè quella di agire direttamente nella funzione phptemplate_body_class($left, $right) del file template.php che viene poi richiamata all'interno della riga del body in page.tpl.php
Considerando l'esiste di più tipi di nodo chiamati "fullpage1" e "fullpage2" abbiamo:
<?php
/**
* Sets the body-tag class attribute.
*
* Adds 'sidebar-left', 'sidebar-right' or 'sidebars' classes as needed.
*/
function phptemplate_body_class($left, $right) {
if ( ($left != '' && $right != '') || (($node->type == 'fullpage1' || $node->type == 'fullpage2') && $page == 0) ) {
$class = 'sidebars';
} else {
if ($left != '') {
$class = 'sidebar-left';
}
if ($right != '') {
$class = 'sidebar-right';
}
}
if (isset($class)) {
print ' class="'. $class .'"';
}
}
?>
avete soluzioni migliori e più flessibili?
http://www.sanisapori.eu
Risolto il problema della pagina a colonna unica solo per determinati tipi di nodo e avendo capito che i moduli Live_Update e Livecoverage consentono di mostare i commenti e gli aggiornamenti senza bisogno che si faccia refresh.
Cosa manca?
Manca la questione che chi scrive un commento o un aggiornamente è soggetto necessariamente al refresh della pagina, cosa che invece non capita a chi sta seguendo la pagina e si trova apparire il commento o l'aggiornamento.
Come si può risolvere questa cosa?
Di base, non dovrebbe importarmene molto... maaaa nel caso specifico in cui la pagina presenta uno streaming video, chi scrive un commento non dovrebbe essere soggetto a refresh.
Idee?
http://www.sanisapori.eu
Qualcuno mi aiuta a far funzionare meglio questo codice, mi sono accorto che funziona benissimo per i Content Type che sono propri di Drupal (tipo blog), ma non funziona affatto con quelli creati da me o provenienti dal modulo livecoverage.
<?php
/**
* Sets the body-tag class attribute.
*
* Adds 'sidebar-left', 'sidebar-right' or 'sidebars' classes as needed.
*/
function phptemplate_body_class($left, $right) {
if ( ($left != '' && $right != '') || (($node->type == 'fullpage1' || $node->type == 'fullpage2') && $page == 0) ) {
$class = 'sidebars';
} else {
if ($left != '') {
$class = 'sidebar-left';
}
if ($right != '') {
$class = 'sidebar-right';
}
}
if (isset($class)) {
print ' class="'. $class .'"';
}
}
?>
Nelfrattempo sto adottando la soluzione indicata prima di questa, cioè quella che prevedere di agire SOLO sul file page.tpl.php che funziona BENISSIMO:
<?php
if (($node->type == 'feed_item' || $node->type == 'blog') && $page == 0) {
$left = '';
$right= '';
}
?>
<body id="page-background" <?php print phptemplate_body_class($left, $right); ?> >
http://www.sanisapori.eu
Ragazzi... ecco il risultato di questo lavoro, ovviamente accettandone tutti gli inevitabili compromessi (purtroppo)
http://snowblade.ejarvis.eu/content/vivi-lemozione-di-vancouver-2010-oly...
che verrà linkato qui
http://snowblade.ejarvis.eu/blog/2010/02/i-video-di-vancouver-2010-gare-...
Avrei voluto creare un live blogging che funzionasse, ma non è stato possibile xkè il modulo livecoverage ha qualcosa di strano, allora ho optato molto graditamente verso i servizi del modulo Live Update.
Avrei voluto inserire anche il Live streaming ma sto ancora combattendo con Silverlight o Moonlight... quindi BOH!
http://www.sanisapori.eu
E anche con PHP. Scusa ma sia in page.tpl.php sia nella tua funzione phptemplate_body_class($left, $right) dove salta fuori $node? Magia?
Nel caso della funzione dovresti passarla come parametro:
function phptemplate_body_class($left, $right, $node) {
Nel caso page.tpl.php lo devi creare, perchè non c'è qui: http://api.drupal.org/api/drupal/modules--system--page.tpl.php/6 o la documentazione è sbagliato?
Più imparo, più dubito.
mah!.. in effetti non lo so.
Ho visto che funzionava... e l'ho lasciato. In futuro cercherò di migliorare questa cosa.
eehh... io non faccio lo sviluppartore, io mi arrangio come meglio posso, anche se ho consapevoleza di quando una cosa va fatta in un modo e non in un'altro.
http://www.sanisapori.eu
IN effetti qualcosa che non funziona c'è... anche se passa totalmente in secondo piano e di fatto nemmeno si vede.
Si incarta la parte di modifiche presenti sul nodo per visualizzare la pubblicità, studiato in questa discussione:
http://www.drupalitalia.org/node/7225
In particolare la parte che si incasina è questa:
<?php if ($page != 0):
if ( $block_pos4 != NULL && $node->type != 'large_page') {
print $AdString . $block_pos4 . $AdString;
}
if ( $block_post2 != NULL ) {
print $block_post2;
}
endif; ?>
la regione $block_post2 non viene visualizzata... NON so come mai visto che altrove funziona tutto.
la regione $block_pos4 viene visualizzata ma non sotto la content del nodo e prima dei commenti... ma in fondo ai commenti... il che è strano.
ho dovuto aggiungere && $node->type != 'large_page' x evitare che lo mostrasse visto che già viene mostrato in quella posizione la pubblicità che di solito sta in alto destra. Questa viene visualizzata perchè non è soggetta a controlli e quindi se la pagina in orizzontale e piena quel blocco div viene mostrato infondo.
Sarei curioso di capire xkè nel nodo non funziona bene il codice li indicato..
http://www.sanisapori.eu
Figo ragazzi... la paginettta fatta sta avendo un suo successo!.. PARE
http://www.sanisapori.eu
Il modulo Live Update non ama le Viste!!!.
nel senso che Live Update per la front page funziona benissimo per /node ma non funziona affatto per /frontpage (la vista).
http://www.sanisapori.eu
Sto utilizzando il modulo LiveCoverage versione 2.0 beta1, in effetti funziona benissimo.
La versione 2 (questa beta1) non mostra + l'ora dell'aggiornamento, ma si può risolvere il problema facilmente.
La cosa che non va proprio tanto bene ai fini delle indicizzazioni è la pagina Live Event, per creare gli aggiornamenti, crea ulteriori nodi (un nodo per ogni aggiornamento del tipo che si decide di impostare).
Quindi la pagina del Live Event è caratterizzata dall'essere un nodo che inserisce all'interno titolo, teaser e link ad un nuovo nodo, uno per ogni aggiornamento.
E' nostro interesse che questi nodi di aggiornamenti non appaiano nella nostra frontpage, quindi è necessario assicurarli che il tipo di nodo scelto per inserire gli upgrade non vadano in front page.
Ma in una situazione di questo tipo come si comporterà google quando dovrà indicizzare la nodo di tipo live event creato?
Secondo me, la via giusta non è tanto quella di creare tanti nodi, uno per ogni aggiornamento, popolando il DB forse inutilmente. Sarebbe invece corretto, aggiornare il SOLO nodo Live Event.
http://www.sanisapori.eu
Magari è meglio un live blogging di questo tipo, in un solo nodo?
http://www.cineblog.it/post/21406/and-the-oscar-goes-arriva-lora-di-avatar
Secondo voi?
http://www.sanisapori.eu
Ho provato il servizio di LIVE BLOGGING utilizzando il modulo Live Coverage.
Questo è stato il risultato
http://snowblade.ejarvis.eu/liveblog/2010/03/live-blogging-delle-qualifi...
Non è stato affatto male, certo è che il modulo deve ancora migliorare.
Per evitare che all'interno del live blogging venisse introdotta la pubblicità dopo un tot di nodi ho dovuto inserire un check su node.tpl.php usando il parametro $node->livecoverage == TRUE ...così come spiegato nel README.txt del modulo.
http://www.sanisapori.eu