CMSms Tagwolke (Black Rock)

Hilfe zur Installation
Post Reply
User avatar
sommersprosse
Forum Members
Forum Members
Posts: 70
Joined: Tue Sep 23, 2008 9:33 am

CMSms Tagwolke (Black Rock)

Post by sommersprosse »

Hallo Forum,

ich habe noch eine etwas ältere Installation von CMSms 1.2.3 "Black Rock" am laufen und habe mir die Tagwolken Funktionen angeschaut. Das Modul Simpletag läuft leider mit dieser Version nicht, daher habe ich mir aus den TAG "tagcloud" installiert.

Der läuft auch ganz gut, nur habe ich Probleme mit den Stopwörtern - irgendwie will er die nicht so wirklich beachten.

Der Tag selber bietet eine Blacklist an, die nur teilweise funktioniert & das Suchmodul vom CMSms verfügt ja über die Stopwortliste. Ich habe die Liste der Stopwörter entsprechend erweitert und den Index erneuert, aber bringen tut das leider nichts, die Worte kommen noch immer vor.

Speziell gibt es Probleme mit Sonderzeichen, kurzen Worten und einzelnen Buchstaben.

Ich habe auf einer anderen Webseite auch die neuste Version vom CMS am laufen, das Suchmodul scheint aber von der Oberfläche gleich zu sein.

Meine Frage, ist es nicht möglich das man eine Option einfügt mit der man festlegen kann welche Worte indiziert werden sollen, also mindestlänge z.B. 3 Zeichen oder so etwas?

Da würden schon einige Worte verschwinden die nicht gewolllt sind.
nhaack

Re: CMSms Tagwolke (Black Rock)

Post by nhaack »

Hallo Sarah,

ich habe mir die besagten Module noch nicht angeguckt, aber wenn du lediglich die häufigsten Suchwörter in einer Cloud abbilden willst, könnte dieser kleine User-Tag vielleicht weiterhelfen, den ich mir geschrieben habe.

Er gibt die jeweils 30 meist-gesuchten Wörter alphabetisch sortiert (a<z) aus und liefert dazu das Wort und einen String (100, 80, 60, 40 oder 20) den man für CSS Classen verwenden kann.

Hier ist der Tag:

Code: Select all


		global $gCms;
		$db = &$gCms->db;
		$count = 0;

		$q = "

				SELECT 
					word,
					count

				FROM 
					".cms_db_prefix()."module_search_words

				ORDER BY 
					count

				Limit 0,30


		";

		$dbresult = $db->Execute( $q );

		if( !$dbresult )
		{
		    echo 'DB error: '. $db->ErrorMsg()."<br/>";
		}

		
		$search_cloud = array();
		$peak = 0;
		$low = 0;
		
		while ($dbresult && $dbqueryresultrow = $dbresult->FetchRow())
		{
		$cloud_item = new StdClass;
			$cloud_item->word = $dbqueryresultrow[word];

			if ($dbqueryresultrow[count] >= $peak) {$peak = $dbqueryresultrow[count];}
			if ($dbqueryresultrow[count] <= $low) {$low = $dbqueryresultrow[count];}
			
			$cloud_item->count = $dbqueryresultrow[count];
			$cloud_item->class= ' ';
		
			$count = $count+1;
			$search_cloud[] = $cloud_item;
		}
		

	foreach ($search_cloud as $item) {
$thisitem = $item->count;

$hitrate = $thisitem / $peak;		
	if ($hitrate >= 0.8)
			{

			$item->class= '100';

			}

	if (($hitrate >= 0.6) AND ($hitrate < 0.8))
			{

			$item->class= '80';

			}

	if (($hitrate >= 0.4) AND ($hitrate < 0.6))
			{

			$item->class= '60';

			}

	if (($hitrate >= 0.2) AND ($hitrate < 0.4))
			{

			$item->class= '40';

			}

	if ($hitrate < 0.2)
			{

			$item->class= '20';

			}

 }
// Wörter alphabetisch sortieren
sort($search_cloud);

//Ergebnisse über Smarty ausgeben
	$smarty = &$gCms->GetSmarty();
	$smarty->assign(search_cloud, $search_cloud);

Ich habe das Plugin bis jetzt nur auf einer Testseite mit aktueller CMSMS Installation laufen. Zum Anzeigen verwende ich einen Globalen Content-Block (geht natürlich auch direkt ins Template):

Code: Select all

<!-- START of Search Cloud -->
 <div id="cloud">
   {search_cloud}
   
   {foreach from=$search_cloud item=cloud_item} 
   
     <span class="c{$cloud_item->class}">
	    <a href="http://mydomain.com/index.php?mact=Search%2Ccntnt01%2Cdosearch%2C0&cntnt01returnid=33&cntnt01searchinput={$cloud_item->word}&cntnt01origreturnid=15" title="Click here to start a search for {$cloud_item->word}" rel="nofollow">
		   {$cloud_item->word}
		</a>
	</span>
  
  {/foreach}
   
 </div>
<!-- END of Search Cloud -->
Die einzelnen Begriffe sind nun jeweils von einem Span umgeben, der z.B. c80 heißt. Damit kann ich die Größe des Wortes bequem mit CSS stylen. Z.B.:

Code: Select all

#cloud span.c100 {font-size: 30px;}
#cloud span.c80 {font-size: 27px;}
#cloud span.c60 {font-size: 21px;}
#cloud span.c40 {font-size: 18px;}
#cloud span.c20 {font-size: 15px;}
Zudem kann ich auf das Wort klicken, und eine Suche wird mit dem entsprechenden Wort durchgeführt (auf Seiten-Id 33 umgeleitet). Das ganze mit nofollow versehen, damit die Suchmaschinen nicht die search result page indizieren.

Ob dies die optimale Lösung ist (gerade wie ich die Suche aufrufe) weiß ich nicht genau, da müssten noch mal andere was zu sagen. Aber ich glaube, dies könnte vielleicht 'ne Lösung für dich sein.

Dieser Tag basiert auf der Suche und dem Counter für Suchwörter dieses Moduls. Du bekommst also lediglich die am häufigsten gesuchten Wörter zurück, nichts anderes.

Es läuft zwar ganz gut, aber wie gesagt, das Ding ist bisher mehr eine Testversion die sicherlich optimiert werden kann. Zudem bin ich mir nicht sicher ob die Sucher die bei Black-Rock dabei war, die Suchbegriffe schon mitzählt.

Schonmal über ein Update nachgedacht? Black-Rock ist doch irgendwie Version 1.2.5 oder so...

Lass mich wissen, ob dies etwas für dich ist. :)

Beste Grüße
Nils
Last edited by nhaack on Fri Oct 17, 2008 8:01 pm, edited 1 time in total.
User avatar
sommersprosse
Forum Members
Forum Members
Posts: 70
Joined: Tue Sep 23, 2008 9:33 am

Re: CMSms Tagwolke (Black Rock)

Post by sommersprosse »

Hi,

danke für deine Hilfe.

Ich habe eben den Tag eingefügt. Mir ist aufgefallen das du die Daten aus einer Tabelle "module_search_words" holst, die habe ich bei nicht :)

Weist du woher die Tabelle kommt? Du schreibst unten etwas vom Counter für die Suche, ist das ein extra Modul oder gehört es in der neuen Version dazu?

Updaten müsste ich in der Tat mal langsam, leider habe ich damals an dem CMS sehr viel manuell rumgestrickt und eigene Änderungen vorgenommen, so da ein Update leider nur theoretisch möglich ist :) Ich werds aber bald in Angriff nehmen.

Wie man die URLs in eigenen Modulen/Plugins richtig setzt würde ich auch gern mal erfahren, da gibt es bestimmt eine Methode die jeweils die richtige Seiten ID zurückgibt.
nhaack

Re: CMSms Tagwolke (Black Rock)

Post by nhaack »

In meiner ersten CMSMS installation habe ich auch ziemlich viel rumgebastelt und auch an Core Files rumgehackt... updaten war echt grausam.

Ich bin mir nicht sicher ob du nicht nicht einfach nur die neueste Version der Suche installieren könntest (wenn du an der nichts geändert hast). Der Counter der Such-Wörter gehört zur Suche dazu und wurde in version 1.5 der Suche hinzugefügt. Black-Rock nutzt dann warscheinlich ne ältere Version.

Falls du sie updaten willst, mach' vorsichtshalber ein Backup deiner DB... für den Fall das etwas schieflaufen sollte, kannst du dann schnell wieder "zurückrollen". Wobei ich nciht davon ausgehe, dass ein Modulupdate dir die DB kaputt machen würde (aber Vorsicht ja ist die Mutter der Porzellankiste).

Beste Grüße
Nils
User avatar
sommersprosse
Forum Members
Forum Members
Posts: 70
Joined: Tue Sep 23, 2008 9:33 am

Re: CMSms Tagwolke (Black Rock)

Post by sommersprosse »

Hi Nils,

meine Suche läuf im Moment auf 1.4.1, ein Update bietet mir der Manager nicht an.
Ich gehe mal davon das es doch im Core steckt.

Ich werde dann wohl ein Update machen, ist ja ohnehin überfällig :)
SimonSchaufi

Re: CMSms Tagwolke (Black Rock)

Post by SimonSchaufi »

ich hab den Code mal in die Wiki gestellt:

http://wiki.cmsmadesimple.org/index.php ... arch_Cloud
Post Reply

Return to “Installation und Einstellungen”