Ich bastle zur Zeit an einem CMS, daß sich aus verschiedenen Programmen aus der Bibliothek zusammensetzt.
1. CMS - Links zu Subpages generieren sich selbst.
2. Newssystem - Neueste Einträge werden in verlinkter Kurzform in Seite gebaut
3. Suche2 - Volltextsuche -- mein Problem
http://de2.arteurope.de/cgi-bin/baseportal.pl?htx=/arteurope.de/cms/CMS zur Ansicht.
Ich habe versucht die Scripte der Suche2 aus der Bibliothek von Fehde unter Spezial in das CMS-script zu integrieren. Gesuchte Begriffe werden gefunden sind aber immer mit der Id 1 aus der Datenbank verbunden, mit anderen Worten, der gefundene Begriff ist nicht mit seinem Textfeld aus der Datenbank verlinkt.
(Der SuchfunktionsCode aus der Doku hat zwar funktioniert, aber da funktionierte das Newssystem nicht und ich hatte auch kein Hauptmenue mehr.Also die Doku und Einträge im Forum kenne ich)
Vielleicht ist es ja auch gar nicht möglich die beiden Scripte aus Suche2 in ein script zu integrieren.
Hier der Code etwas verkürzt:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>Exposee Lightpainting</title>
</head>
<body>
<perl>
#----------------------------------------- Anpassung an bp-Umgebung
$db="CMS"; # die verwendete Datenbank
#-------------------------------- anzuzeigende Hauptverzeichnisse
my @WEB=("Aktuell","Technik","Installation","Story","Bild","Tanz","Draussen","Referenz","Vita") ;
# Page-Felder mit obigem Inhalt sind Hauptverzeichnisse
# Subpage-Felder sind die jeweiligen Unterverzeichnisse
#------------------------------------------------------------------------
$Inhalt=&makedir("$db",@WEB);# stellt Inhaltsverzeichnis dar.
@ar_show=(split ",",$show); # per URL übergebenene Id-Reihung speichern
$show=pop(@ar_show); # $show übergibt die Id
# des jeweiligen Datensatzes
#------------------------------------------------------------------------
$Verlauf=&fromdir(@ar_show); # Links zu übergeordneten Verzeichnissen
$Weitere=&subdir(@ar_show); # Links zu untergeordneten Verzeichnissen
$Auswahl=&maindir(@WEB); # Hauptverzeichnisse
$Gleiche=&samedir(@ar_show); # Verzeichnisse der gleichen Ebene
############################################################## DEMO
out "<table bgcolor='#333333' border='0' cellpadding='0' cellspacing='0' height='50%' width='100%'>";
out "<tbody>";
out "<tr>";
out " <td valign='bottom'>";
out "<center>";
out "<table border='0' cellpadding='5' cellspacing='5' width='710'>
<tbody>
<tr>
<td rowspan='1' align='right'>
<form action='baseportal.pl?htx=$htx' method='post' enctype='multipart/form-data'>
<table style='width: 100%; text-align: left;' border='0' cellpadding='2' cellspacing='2'>
<tbody>
<tr>
<td style='vertical-align: top;'><br>
<input name='Such=' size='7' value='' type='text'>
</td>
<td style='vertical-align: top;'><br>
</td>
</tr>
<tr>
<td style='vertical-align: top;'>
<input value='Suchen' type='submit'>
</td>
<td style='vertical-align: top;'><br>
</td>
</tr>
</tbody>
</table>
</form>
<table style='width: 100%; text-align: left;' border='0' cellpadding='2' cellspacing='2'>
<tbody>";
out" </tbody>
</table>
<table style='width: 100%; text-align: left;' border='0' cellpadding='2' cellspacing='2'>
<tbody>
<tr>
<td style='vertical-align: top; font-family: sans-serif;'><a href='http://arteurope.de/index.html'>Startseite</a><br>
</td><td style='vertical-align: top;'><br>
</td>
</tr><tr>
<td style='vertical-align: top; font-family: sans-serif;'><a href='http://www.arteurope.de/HilfeD.html'>Hilfe</a></td>
<td style='vertical-align: top;'><br>
</td>
</tr><tr>
<td style='vertical-align: top; font-family: sans-serif;'><a href='http://www.arteurope.de/DownloadD.html'>Downloads</a><br>
</td><tr><td>-----</td></tr>
<tr><td>";
out $Verlauf;
out if($Verlauf);
out $Gleiche;
out if($Gleiche ne "");
out $Weitere;
out if($Weitere);
out"</td></tr>";
out"<td style='vertical-align: top;'><br>
</td>
</tr>
</tbody>
</table>
</td><td valign='bottom'>";
##############BOARD#######################
out "<div style='border: 1px solid rgb(136, 68, 0); margin: 1em; width: 600px; height: 300px; overflow: hidden;'><p class='board' style='text-align:left; margin-left:5px;'><a name='Board'>";
################Suche############################
if ($Such ne "") #---------------------falls eine Suchanfrage gestartet wurde
#---------------- und das Eingabefeld [Such] nicht leer ist
{
out "Suchbegriff =<b>[$Such]</b><br>";
my $i=0;
#--------------- Eingabe von ae, ue oder oe abfangen, z.B. "Moeglich" -----
$mSuch = $Such;
$mSuch =~ s/ä/Ä/g;
$mSuch =~ s/ö/Ö/g;
$mSuch =~ s/ü/Ü/g;
$mSuch=lc($mSuch);
$mSuch =~ s/ae/ä/g;
$mSuch =~ s/oe/ö/g;
$mSuch =~ s/ue/ü/g;
get "Id==*";
while(get_next)
#----------- gesucht wird in dem Feld [Text] ----------------------------------
{if ((index($Text,$Such)>= 0 or ($Text =~ /$mSuch/gim) ))
{$i++;
$Daten[$i]="$i.<a href'http://www.arteurope.de/cgi-bin/baseportal.pl?htx=/arteurope.de/cms/CMS'>$Page</a><br>";
#----------- als Link wird das Feld [Titel] ausgegeben ----------------------
}
}
out "Treffer: $i - ";
$treffer = $i > 0 ? "Wählen Sie nachfolgend aus:" : "Leider KEIN Treffer";
out "<b>$treffer</b><br>";
out "@Daten";
}
"";
out "<loop sort^=- code=perl range^=0,5>";
#-------------------- Anzeige des Links der gesuchten News --------------------
if ($Such ne "" and $view eq "on")
{
$Text =~ s/$Such|$mSuch/<font color=red><u>$&<\/u><\/font>/gim;
}
if ($Such eq "" or $view eq "on")
{
#--------- anzeigen, wenn KEINE Suche oder Einzelansicht----------------------
out <<Ausgabe;
<b>$Page</b><br>
Ausgabe
;}
out "</loop>";
if ($Such eq ""){
my $newrange=$_range+$_range_length;
my $oldrange=$_range-$_range_length;
$oldrange=0 if $oldrange<0 && $oldrange>-$_range_length;
out "CMS [ <a href=\"$_link&range=$oldrange,$_range_length\" >vorher</a> ] " if $oldrange>=0 && $view eq "" ;
out "CMS [ <a href=\"$_link&range=$newrange,$_range_length\" >weiter</a> ]" if ($newrange<$_amount_all && $view eq "") ;
out "CMS [ <a href='http://baseportal.de/cgi-bin/baseportal.pl?htx=$htx'>Alle</a> ] " if $view eq "on";
}
############################################################################################################
out "<b>${$d_b{Page}}[${$d_b{_idfnr}}{$show}]</b>"; # Feld [Page] ausgeben
out "<br>";
out ${$d_b{Text}}[${$d_b{_idfnr}}{$show}]; # Feld [Text] ausgeben
if( ${$d_b{do_all}}[${$d_b{_idfnr}}{$show}] ne "") # Feld [do_all] ausgeben
{
$todo=${$d_b{do_all}}[${$d_b{_idfnr}}{$show}];
do_all "$todo","show=$show"; #------------ Datenbanken einbinden
}
#----------------------------------------------------------------
#---------------------------------------------------------------
out "</font>";
out $Inhalt if($show==18); # SiteMap aufrufen, im Beispiel Id=18
out "</p></div>";
out "Lightpainting</td>";
#############BOARD ENDE###################
#---------- die Subroutinen fangen hier an---------------------------
danach das News-System....