tag cloud - mod includieren

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
_sarah
Mitglied
Beiträge: 8
Registriert: 08.06.2006 15:36

tag cloud - mod includieren

Beitrag von _sarah »

hallo ihr

ich hab mir jetzt ein tag cloud modul installiert, und zwar dieses hier :
http://www.pentapenguin.com/forum/viewtopic.php?t=1854

es funktioniert auch alles super nach dem ich daf�r noch dieses modul installiert habe :
http://www.phpbb.com/phpBB/viewtopic.php?t=154273

nur leider brauch ich die tag cloud auf allen meinen seiten, und so habe ich probiert diese �ber include hinein zu bekommen. das funktioniert aber leider nicht. f�r den wordgraphh gibt es eine extra php datei + eine tpl datei. ich habe in der php datei den includierten header und footer entfernt und gehofft so mein ziel �ber wordgraph.php includieren zu erreichen.

wie gesagt, funzt net. ich bekomm fehler meldungen. die wordgraph.php funktioniert aber allein noch einwandfrei.

vllt kann mir wer von euch helfen. vllt ist es ja nur ein denkfehler.

fehlermeldung :
Warning: main(wordgraph.): failed to open stream: No such file or directory in /homepages/7/d22498531/htdocs/sites/notforum/cache/tpl_phpBBlite.index_body.php on line 77

Warning: main(): Failed opening 'wordgraph.' for inclusion (include_path='.:/usr/local/lib/php') in /homepages/7/d22498531/htdocs/sites/notforum/cache/tpl_phpBBlite.index_body.php on line 77
und der code der wordgraph.php mit includiertem header und footer :

Code: Alles auswählen

-Edit cYbercOsmOnauT: Unnötiges, riesiges Codeposting gelöscht-
und dazu noch die stelle in meinem template :

Code: Alles auswählen

<div class="tags">
		  <?php include ($phpbb_root_path . 'wordgraph.'.$phpEx); ?>
          </div>

ich hoffe das reicht vllt f�r eine diagnose. ich denke ich euch schon mal f�r eure m�hen.

alles gute
sarah
Zuletzt geändert von _sarah am 14.06.2006 14:43, insgesamt 1-mal geändert.
Benutzeravatar
punkface
Mitglied
Beiträge: 3579
Registriert: 12.08.2004 23:37

Beitrag von punkface »

Hallo

Ist ungetestet, sollte aber denk ich funktionieren:
functions.php
suchen davor einfügen

Code: Alles auswählen

function wordgraph()
{
	global $board_config, $db, $template, $lang;  
	
	$words_array = array();
	
	$sql = 'SELECT w.word_text, COUNT(*) AS word_count  
		FROM ' . SEARCH_WORD_TABLE . ' AS w, ' . SEARCH_MATCH_TABLE . ' AS m 
		WHERE m.word_id = w.word_id 
		GROUP BY m.word_id 
		ORDER BY word_count DESC LIMIT ' . intval($board_config['word_graph_max_words']);
	
	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(GENERAL_ERROR, 'Could not obtain word list', '', __LINE__, __FILE__, $sql);
	}
	
	while ( $row = $db->sql_fetchrow($result) )
	{
		$word = strtolower($row['word_text']);
		$word_count = $row['word_count'];
	
		$words_array[$word] = $word_count;
	
	}
	
	$minimum = 1000000;
	$maximum = -1000000;
	
	foreach ( array_keys($words_array) as $word )
	{
		if ( $words_array[$word] > $maximum )
		{
			$maximum = $words_array[$word];
		}
		
		if ( $words_array[$word] < $minimum )
		{
			$minimum = $words_array[$word];
		}
	}
	
	$ratio = 18.0 / ( $maximum - $minimum);
	
	$words = array_keys($words_array);
	sort($words);
	
	$template->set_filenames(array(
		'wordgraph' => 'wordgraph_body.tpl',
	));
	
	foreach ( $words as $word )
	{
		$template->assign_block_vars('wordgraph_loop', array(
			'WORD' => ( $board_config['word_graph_word_counts'] ) ? $word . ' (' . $words_array[$word] . ')' : $word,
			'WORD_FONT_SIZE' => (int) ( 9 + ( $words_array[$word] * $ratio ) ),
			'WORD_SEARCH_URL' => append_sid("search.$phpEx?search_keywords=" . urlencode($word)),
		));
	}
	
	$template->assign_vars(array(
		'L_WORDGRAPH' => $lang['Wordgraph'],
	));
	
	$template->assign_var_from_handle('WORDGRAPH', 'wordgraph');
}
Dann z.B. in der page_header.php:
suchen

Code: Alles auswählen

$template->set_filenames(array(
	'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl')
);
danach einfügen

Code: Alles auswählen

wordgraph();
Und jetzt kannst du in einer beliebigen Template-Datei (außer in die für den Adminbereich) an der Stelle wo die "tag cloud" angezeigt werden soll, {WORDGRAPH} einfügen. Musst nur darauf achten, dass du den Platzhaler nicht innerhalb von Schleifen einfügst.

Ach ja: Das erzeugt natürlich bei jedem Seitenaufruf eine extra Datenbankabfrage. Wenn sich das irgendwie bemerkbar machen sollte (z.B. wenn der Server mal grad ordentlich ausgelastet ist, oder so) kann man da sicherlich noch eine Cache-Funktion einbauen. Also wenn du interesse hast, kann ich mich mal dran versuchen.. aber teste erstmal ob der Code hier funktioniert :)


/edit:
Und Fragen zu MODs in Zukunft bitte im richtigen Forum stellen ;)
_sarah
Mitglied
Beiträge: 8
Registriert: 08.06.2006 15:36

Beitrag von _sarah »

wow

wie super. und oh ich hab das mit den unterschiedlichen foren nicht so überblicken können, schließlich ist ein mod anpassen auch administration und benutzung ; ))) vllt kanns ja wer verschieben (?)

danke dir.
_sarah
Mitglied
Beiträge: 8
Registriert: 08.06.2006 15:36

Beitrag von _sarah »

hallo ihr

ich bins nochmal. vllt könnt ihr mir nochmal helfen.

es wäre schön, wenn ich dem wordgraph sagen könnte, welche wörter er aus der SEARCH_WORD_TABLE nicht auslesen soll, wie z.b. ich, du, bin, er, ist und so. das geht doch sicher in der functions.php an der wordgraph stelle mit einem if ( ) oder? nach dem motto if (word=ich, er, sie, du) {stop} ) ?

danke für eure hilfe
Daniela22
Mitglied
Beiträge: 1
Registriert: 01.07.2006 16:37

Beitrag von Daniela22 »

_sarah hat geschrieben:hallo ihr

ich bins nochmal. vllt könnt ihr mir nochmal helfen.

es wäre schön, wenn ich dem wordgraph sagen könnte, welche wörter er aus der SEARCH_WORD_TABLE nicht auslesen soll, wie z.b. ich, du, bin, er, ist und so. das geht doch sicher in der functions.php an der wordgraph stelle mit einem if ( ) oder? nach dem motto if (word=ich, er, sie, du) {stop} ) ?

danke für eure hilfe
Hallo, genau danach suche ich auch. Einfacher ist es sicherlich alle Wörter der "search_stopwords.txt" zu ignorieren, dürfte auch nicht allzu schwer sein. :oops: Wäre echt spitze wenn irgendwer das hinbekommen würde. Liebe Grüße die Dani :)
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“