Migliorare Ignore User

6 contenuti / 0 new
Ultimo contenuto
Migliorare Ignore User

Avevo bisogno di nascondere contenuti e commenti di utenti selezionati in una "lista nera", ho trovato Ignore User che fa al caso mio, consente di creare una lista di utenti da ignorare, così non verrà visualizzato il contenuto dei loro articoli, però al posto di quello scrive una frase:

Quote:
Nome_utente is on your ignore list. Click here to view this post.
Inoltre rimane il titolo, la data, l'autore, e le parole chiave a fianco...

Io avrei voluto che sparisse tutto, come se contenuti e commenti di quell'autore non esistessero. Non credo sia difficile fare una modifica del genere, è vero che non me ne intendo e potrei sottovalutare qualche problematica, qualcuno sa indicarmi qualche soluzione?

NOn conosco il modulo specifico, ma presumo che la modifica che tu chiesdi si possa fare facendo l'override della funzione di theming del contenuto dell'utente ignorato, considerà però che questo può essere "disorientante", perchè il nodo viene comunque caricato e se ti trovi in una pagina con 10 nodi, di cui 5 di utentuii ignorati, tu ne vedrai solo 5 (tanto per fare un esempio) con tutti i problemi che ne conseguono.

Ciao
Marco
--
My blog
Working at @agavee

Già hai ragione. Inoltre un altro problema è che se un commento è ignorato e ci sono delle risposte a quel commento, o spariscono tutte le relative risposte, oppure che viene fuori? Riguardo il problema che hai evidenziato effettivamente bisognerebbe mantenere corretto il numero dei nodi, quindi saltare sì quelli ignorati ma andare avanti fino ad arrivare al numero giusto, solo che questo non è più una semplice modifica, ma ci vuole un modulo apposto.

Mi sa che mi devo imparare PHP, MySQL e approfondire Drupal... ma non so quando. Oppure vedere per qualche soluzione che consente di creare applicazioni Web 2 basandosi su PHP e MySQL.

Quote:
Oppure vedere per qualche soluzione che consente di creare applicazioni Web 2 basandosi su PHP e MySQL.

e drupal cosa è? :D

Ciao
Marco
--
My blog
Working at @agavee

Giusto! Pensavo a Ruby On Rails, Zope, Django, poi però c'è di mezzo Ruby e Python che oltre a non conoscere (come non conosco il PHP) non si trovano server gratuiti, per esempio netsons. Poi con Drupal che è un CMS mi si semplifica la vita e molti moduli ci sono già. Sto un po' provando tante cose... di recente avevo fatto due siti in Joomla, uno più banale e uno più sofisticato, ma era limitante e con vari difetti, Drupal è mille volte meglio non capisco perché Joomla ha più successo ed è più diffuso...

Ho letto tutte le centinaia di moduli su drupal.org e ne ho installati decine e decine per provarli, così mi sono fatto un'idea del materiale a disposizione, intanto. Credo proprio che approfondirò Drupal, PHP e MySQL, non so quando però...

Ho trovato un modulo (e son riuscito a capire come usarlo...) per non essere vincolato alla visualizzazione tramite pagine, per esempio 10 contenuti per volta in ogni pagina con in fondo l'elenco delle pagine. Ma una visualizzazione tipo Google Reader, cioè "senza fine" mano a mano che uno scorre vengono caricati nuovi contenuti.

Usando questa visualizzazione desidero nuovamente far sparire completamente i contenuti degli utenti messi in lista ignorati. Ho provato a far qualcosa, c'è questo codice:

/**
* Implementation of hook_nodeapi().
*/
function ignore_user_nodeapi(&$node, $op, $teaser = NULL, $page = FALSE) {
  global $user;
  static $authors;
  if (!$user || !$user->uid || !$node->uid) {
    return;
  }
  switch ($op) {
    case 'alter':
      if (_ignore_user_ignored_user($node->uid)) {
        if (!$authors[$node->uid]) {
          $authors[$node->uid] = user_load(array('uid' => $node->uid));
        }
        $output = t('<div class="ignore-user-container">!username &egrave; nella tua <a href="!ignore_list">lista ignorati</a>. Clicca <a href="!node" class="ignore-user-content-link">qui</a> per vedere il contenuto.', array('!username' => theme('username', $authors[$node->uid]), '!ignore_list' => url('ignore_user/list'), '!node' => url('node/'. $node->nid)));
        $output .= '<div class="ignore-user-content">'. ($teaser ? $node->teaser : $node->body) .'</div></div>';
        $teaser ? $node->teaser = $output : $node->body = $output;
        @@@@@$node = NULL;@@@@@
      }
      break;
  }
}

La riga poco sopra, tra le chiocciole, l'ho aggiunta io (senza chiocciole nell'originale :) ), con l'effetto che è sparito quasi tutto! Non c'è il messaggio di avviso "L'utente è nella lista ignorati ecc.", né il titolo, né l'autore, né le parole chiave, né aggiungi commento e leggi tutto. Però... è rimasto lo sfondo del titolo che è un rettangolo verde lungo tutta la pagina e alto circa un centimento, quello non riesco a farlo sparire, qualcuno sa dirmi come devo fare? Grazie.