Einen Delicious Tagcloud einbinden

Logo DrupalDrupal 5.x, 4.7.x

Wie binde ich einen Delicious Tagcloud als Blockmenü und Seite ein? Und zwar ohne ein zusätzliches Modul für den Tagcloud zu verwenden. Das möchte ich in diesem Beitrag erklären.

Kategorie oder Inhaltstyp erstellen

Um den Tagcloud als Inhalt zu erstellen wird eine einzelne Seite benötigt. Diese Seite enthält den erforderlichen Code. Damit man diese Seite später, wenn es viel Inhalt gibt, auch wieder findet ist es angebracht für diese Seite eine extra Kategorie zu erstellen.

Will man es ohne extra Kategorie machen sollte man einen separaten Inhaltstyp verwenden.

Extra Kategorie oder separater Inhaltstyp sind erforderlich, um im weiteren Verlauf der Einbindung des Tagcloud die einzelne Seite gezielt ansprechen zu können.

Inhaltsseite mit dem Code des Tagcloud erstellen

Vorraussetzung für die Kombination von Block und Seite ist die Verwendung eines Modules für einen separaten Teaser.

Denn der Code für den Tagcloud muss in verschiedener Form in die Inhaltsseite eingetragen werden. Zum Einen in verkürzter Form für die Anzeige im Block und zum Anderen in vollständiger Form für die Anzeige der Seite.

Die Seite enthält den vollständigen Tagcloud und wird durch den Link "mehr" im Block erreicht. Der Block enthält nur eine eingeschränkte Anzahl an Tags.

Die Inhaltsseite selbst

Hierbei wird die API von Delicious verwendet.

Der separate Teaser enthält als Beispiel folgenden Code:

<script type="text/javascript" src="http://del.icio.us/feeds/js/tags/quiptime?count=10;size=12-20;color=777777-666666"></script>

Der Body (Haupttext) enth'lt als Beispiel folgenden Code:

<script type="text/javascript" src="http://del.icio.us/feeds/js/tags/quiptime?totals;size=12-24;color=666666-ff6600;title=Meine%20del.icio.us%20Tags"></script>

Wie die beiden Codebeispiele zeigen wird hier jeweils die Anzahl wie auch das Erscheinungsbild der Tags definiert.

Den Tagcloud als Block und Seite einbinden

Hierbei wird das Modul Views verwendet. Es wird ein kombinierter Block/Page View erstellt.

Die View Page-Konfiguration

"View Type:" ist "Full Nodes"

Die View Block-Konfiguration

"View Type:" ist "Teaser List", denn hiermit wird der separate Teaser angezeigt.
"Nodes per Block:" auf 1 setzen.
Den "[More] Link" aktivieren.

Als Filter wählt man entweder

  • "Taxonomy: Vocabulary Name" und die entsprechende Kategorie, wenn man eine extra Kategorie erstellt hat
  • "Node: Type" und den entsprechenden Inhaltstyp, wenn man einen separaten Inhaltstyp erstellt hat

Nun in der Block-Administration den Block freischalten und ihm eventuell noch einen passenden Namen geben.

Vermutlich muss der Link "weiter" am Block noch eine geeignetere Übersetzung wie z. Bsp. "mehr" erhalten

View zum Importieren

Als Beispiel für den beschriebenen View hier der Code zum Importieren:

$view = new stdClass();
$view->name = 'Delicious';
$view->description = '';
$view->access = array ();
$view->view_args_php = '';
$view->page = TRUE;
$view->page_title = '';
$view->page_header = '';
$view->page_header_format = '1';
$view->page_footer = '';
$view->page_footer_format = '1';
$view->page_empty = '';
$view->page_empty_format = '1';
$view->page_type = 'node';
$view->url = 'delicious';
$view->use_pager = FALSE;
$view->nodes_per_page = '1';
$view->block = TRUE;
$view->block_title = 'Delicious Tags';
$view->block_header = '';
$view->block_header_format = '1';
$view->block_footer = '';
$view->block_footer_format = '1';
$view->block_empty = '';
$view->block_empty_format = '1';
$view->block_type = 'teaser';
$view->nodes_per_block = '1';
$view->block_more = TRUE;
$view->block_use_page_header = FALSE;
$view->block_use_page_footer = FALSE;
$view->block_use_page_empty = FALSE;
$view->sort = array ();
$view->argument = array ();
$view->field = array ();
$view->filter = array (
array (
'tablename' => 'node',
'field' => 'status',
'operator' => '=',
'options' => '',
'value' => '1',
),
array (
'tablename' => 'term_data',
'field' => 'vid',
'operator' => 'OR',
'options' => '',
'value' => array (
0 => '2',
),
),
);
$view->exposed_filter = array ();
$view->requires = array(node, term_data);
$views[$view->name] = $view;

Diesen Code in der View-Verwaltung mit der Importfunktion übernehmen und auf die eigenen Gegebenheiten anpassen.

Links

Delicious Tag Cloud

Delicious Tagrolls

Powered by Drupal. Created with ZenWalk.