Tags aus einer Kategorie generieren - für News genial

Gesperrt
ravi
Beiträge: 54
Registriert: So 6. Aug 2006, 14:39
Kontaktdaten:

Tags aus einer Kategorie generieren - für News genial

Beitrag von ravi »

Hi!

Es wäre toll wenn man ein Tagsystem hat, wo man die Tags aus einer Kategorie rausgenerieren kann.
Am besten aus einem Metatag in den Artikeleigenschaften. Oder gar direkt aus dem Inhalt oder aus den Keywords.(mit Filter für 'und, der, die, das')

Dann bräuchte man keinen Blog mehr und es würde die News viel übersichtlicher machen.

Cheers
ravi
Beiträge: 54
Registriert: So 6. Aug 2006, 14:39
Kontaktdaten:

Re: Tags aus einer Kategorie generieren - für News genial

Beitrag von ravi »

Ok, ich habe schon herausgefunden wie ich es machen kann:

Also so kann ich suchen (habe AMR):

<a href="http://www.domain.com/suchergebnisse/su ... begriff</a>

Jetzt muss ich einfach in einem Modul auf das Zusammenfassungs Feld von den Artikel Eigenschaften zurückgreifen und dann damit solche Suchdinger machen.

--

Klar: Idealerweise würde es dann bei allen anderen Artikeln in dieser Kategorie noch schauen, wer noch solche Tags hat und dann der Reihe nach diese anzeigen, welche am häufigsten vorkommen. Ich bin mal mit dem Verlinken zufrieden.
Zuletzt geändert von ravi am Mi 3. Jun 2009, 19:24, insgesamt 1-mal geändert.
ravi
Beiträge: 54
Registriert: So 6. Aug 2006, 14:39
Kontaktdaten:

Re: Tags aus einer Kategorie generieren - für News genial

Beitrag von ravi »

ok, so kriegt man es raus:

Code: Alles auswählen

$art = new Article($idart, $client, $lang);
echo "Titel: " . $art->getField("title");
echo "Summary: " . $art->getField("summary");
ravi
Beiträge: 54
Registriert: So 6. Aug 2006, 14:39
Kontaktdaten:

Re: Tags aus einer Kategorie generieren - für News genial

Beitrag von ravi »

Gut das ist das fertige Modul:
TAGs:

<?php
/*
Funktion: getField(name)

* name: Name der gewünschten Eigenschaft
* Rückgabewert: mixed (gewünschte Artikeleigenschaft)

Mögliche Artikeleigenschaften für die Abfrage sind (vgl. auch Aufbau der Datenbank-Tabelle con_art_lang):

* idartlang: Artikel ID in Abhängigkeit der Sprache
* idart: sprachunabhängige Artikel ID
* idclient: ID des Mandanten
* idtplcfg: ID der Templatekonfiguration
* title: interner Titel
* pagetitle: HTML-Titel
* summary: Zusammenfassung
* created: Erstellungsdatum
* lastmodified: Datum der letzten Änderung
* author: Name des Autors
* online: On-/Offline Status
* redirect: Weiterleitung (0 = Nein, 1 = Ja)
* redirect_url: URL der Weiterleitung
* artsort: Sortierschlüssel des Artikels
* timemgmt: Zeitsteuerung (0 = Nein, 1 = Ja)
* datestart: Startzeitpunkt der Zeitsteuerung
* dateend: Endzeitpunkt der Zeitsteuerung
* status: Status des Artikels
* free_use_01: Feld, das in der Datenbank zur freien Verfügung steht
* free_use_02: Feld, das in der Datenbank zur freien Verfügung steht
* free_use_03: Feld, das in der Datenbank zur freien Verfügung steht
* time_move_cat: Soll Artikel nach der Zeitsteuerung verschoben werden? (0 = Nein, 1 = Ja)
* time_target_cat: Zielkategorie nach der Zeitsteuerung
* time_online_move: Soll Artikel nach dem Verschieben online gestellt werden? (0 = Nein, 1 = Ja)
* external_redirect: Soll Artikel in einem neuen Fenster geöffnet werden= (0 = Nein, 1 = Ja)
* locked: Artikel ist für die Berabeitung gesperrt (0 = Nein, 1 = Ja)


*/
//print htmlentities(getField("Summary"));

$art = new Article($idart, $client, $lang);
$teile = explode(" ", $art->getField("summary"));

for($i=0; $i < count($teile); $i++)
{
echo '<a href="http://www.ernaehrungsberatung-wien.com ... m='.$teile[$i].'">'.$teile[$i].'</a> ';
}


?>
ravi
Beiträge: 54
Registriert: So 6. Aug 2006, 14:39
Kontaktdaten:

Re: Tags aus einer Kategorie generieren - für News genial

Beitrag von ravi »

Mittels folgender Query, könnte man sich eine globale Tagwolke machen:

Code: Alles auswählen


$abfrage = "SELECT title, summary FROM `con_art_lang`";

$result = mysql_query($abfrage);
while ($row = mysql_fetch_array ($result))
{
$data[] = $row['title']."n".$row['summary '];
}

$data = implode('',$data);

// Woerter splitten
$words = preg_split("/n/", $data);
$acv = array_count_values( $words );

// Nicht erwuenschte Woerter loeschen
$bannedwords = array('');
$i = 0;
foreach($acv as $k=>$v) {
if (!array_search(strtolower($k),$bannedwords) and eregi("[a-zA-Z]",$k) and $i<=40 and strlen($k)>2) {
if (isset($new_acv[strtolower($k)] ))
$new_acv[strtolower($k)] += $v;
else
$new_acv[strtolower($k)] = $v;
$i++;
}
}

// Alphabetisch sortieren
ksort( $new_acv );

// Clouds erstellen
foreach( $new_acv as $k=>$v) {
$size = $v*1;
$weight = $v*4;

if ($size > 4) $size = 4;
if ($weight > 50) $weight = 50;

$kurl = urlencode("$k");
//echo "<a href=\"suche.php?q=$kurl\" style=\"font-size: {$size}em; font-weight: {$weight}\">$k</a> ";
echo '<a href="http://www.ernaehrungsberatung-wien.com/suchergebnisse/suchergebnisse.html?searchterm='.$k.'"  style="font-size: {$size}em; font-weight: {$weight}" >'.$k.'</a> ';
}
Mir fehlt hier nur die Info wie ich MySql Queries aus Contenido im Modul am besten mache..
ravi
Beiträge: 54
Registriert: So 6. Aug 2006, 14:39
Kontaktdaten:

Re: Tags aus einer Kategorie generieren - für News genial

Beitrag von ravi »

Ich bin jetzt für meine Seite mal fertig und klinke mich aus.

Falls hier jemand die Tag Wolke noch mit diesem oder einem ähnlichen Generatorskript fertigbaut, bitte posten. :)
ravi
Beiträge: 54
Registriert: So 6. Aug 2006, 14:39
Kontaktdaten:

Re: Tags aus einer Kategorie generieren - für News genial

Beitrag von ravi »

Hier der Code für das Modul wie man sich die Meta-Keywords verlinkt.

Code: Alles auswählen

<?php

$art = new Article($idart, $client, $lang);

$dbConnect = new DB_Contenido;
$query = "SELECT metavalue FROM ".$cfg['sql']['sqlprefix']."_meta_tag WHERE idmetatype='5' AND idartlang='".$art->getField("idartlang")."' order by metavalue";
$dbConnect->query($query);
while ($dbConnect->next_record()) {
   //$data[] = $dbConnect->f("metavalue")."\n";
   $datameta .= " ".$dbConnect->f("metavalue");
}

$teile = explode(" ", str_replace(',',' ', $datameta));
//oder aus der Zusammenfassung
//$teile = explode(" ", str_replace(',',' ',$art->getField("summary")));




if (1<=count($teile))
print "TAGs: &nbsp;";

for($i=0; $i < count($teile); $i++)
   {
   if (strlen($teile[$i])>=3)
   echo '<a href="http://www.domain.com/suchergebnisse/suchergebnisse.html?searchterm='.$teile[$i].'">'.$teile[$i].'</a>&nbsp; ';
   }


?>

Gesperrt