IntelliTXT ToolTip im Eigenbau

Lass doch einfach die Zeile mal weg:

CODE document.onmousemove = moveTip;
 
Habs hingekriegt!

Bin nun am Überlegen wie ich das ganze einbinde... Also bestimmte Reizwörter und dafür z.B. den Code includen.

Und da gibs das nächste Problem:

CODE $zeigetext = str_replace("Berlin", "<?php include('berlin.php'); ?>", $zeigetext);


PHP führt den include-Code nicht aus. Berlin wird zwar ersetzt aber mehr nicht.

Habt ihr ne andere Idee zum Ersetzen? Grundidee ist
CODE Berlin
ersetzen durch:

CODE <span style="border-bottom:dashed 1px black; text-decoration:none;" onmouseover="return escape('Links für <b>Berlin</b>:<BR><a href=\'http://www.octopustravel.com/Enter.jsp?siteid=student&start=SearchHotels.jsp&dest=CBER&Country=D&Currency=EUR&Language=g\' target=\'_blank\'>Hotels in Berlin</a><br><a href=\'http://ad.zanox.com/ppc/?3259208C1788190910T&ULP=[[BER]]\' target=\'_blank\'>Flüge nach Berlin mit Air Berlin</a><br><a href=\'http://www.zanox-affiliate.de/ppc/?3287219C1133892840T&ULP=[[Berlin]]\' target=\'_blank\'>Flüge nach Berlin Preisvergleich</a>')"> Berlin</span>
 
Aktuell sieht es so aus: http://www.flug7.de/test/test.php

Der Code:

CODE <?php
$str = "Hallo hier in Rom! <P>Rom ist immer eine Reise wert!<BR>Berlin aber auch!";

$rom = preg_split('/Rom/', $str);

for ($i = 0; $i < sizeof($rom); ++$i) {
print $rom[$i];
if ($i < (sizeof($rom) - 1)) {
include('rom.php');
}

}

?>



Hab ich jetzt drin. Nun will ich jedoch auch für "Berlin" berlin.php includen.
Das Problem ist also man müsste für preg_split ein 2tes Wort als Muster nutzen. Dann aber auch in der Schleife, die das Array ausgibt berlin.php includen.

Die Schleife einfach 2 mal aufrufen zeigt ja den gesamten text doppelt an.

Habt ihr Ideen? Nen Ansatz reicht mir...hoffe ich

Wenns fertig ist, stell ich es euch allen zur Verfügung
Grüße
 
Wenn du das ganze in php machen willst, ist das recht einfach. Ich habe mich mal kurz damit beschäftig, da ich deinen Ansatz völlig umstänflich empfunden habe. So schaut's aus:
CODE <?

$suchwoerter = array(
'Rom' => 'rom.php',
'Berlin' => 'berlin.php');


$text = 'text text text text text text text text text text text text text text text text Rom text text text text ';
$text .= 'text text text text text text Rom text text text text text text text Romania text text text text text text ';
$text .= 'text text text text text text text text text text text text Berlin text text text text text text text text ';
$text .= 'text text text Berlin text text text text text text text text text text text text Moskow text text text text ';

function intellitxt($treffer) {
global $suchwoerter;
include_once($suchwoerter[$treffer[0]]);
return '<a href="#">' . $treffer[0] . '</a>';
}

$pattern = array();

foreach($suchwoerter as $key => $dummy) {
$pattern[] = '/\b' . $key . '\b/is';
}

echo preg_replace_callback(
$pattern,
'intellitxt',
$text);

?>


du musst nur noch oben bei $suchwoerter als Key je ein Suchwort und als Wert die Include-Datei reinschreiben, und fertig. Ich bin davon ausgangen, dass in deinen Includes nur der Text-Popup drin steht, deswegen habe ich include_once genommen, so wird jede Include nur einmal aufgerufen, auch wenn es mehrere Treffer mit dem selben Wort gibt.

Viel Spaß noch dabei :)
 
Apropos. Habe vor einigen Tagen die Leute von IntelliTXT mal angemailt und nach Konditionen gefragt und die haben einfach mal gar nicht reagiert. Haben die so viel Nachfrage, daß sie darunter geradezu untergehen oder beantoworten die nur die Anfragen von Privilegierten... ?
 
Habe von IntelliTXT auch keine Antworten erhalten. Daher überlege ich ja für mich so etwas selbst zu bauen. Als Alternative gibts ja noch http://www.txtsense.de/. Einbindung innerhalb weniger Sekunden, bringt wohl 8ct pro Click. Mal sehen...

Zurück zu meinem Projekt. Hab es eingebunden auf http://www.flug7.de/test/test.php Alles unter halb der Trennlinie ist exakt der Code von Maik. Er includet also einmal Berlin am Anfang des Textes. Obwohl es dort gar nicht steht. Sonst macht er Links draus. Sollen ja aber keine Links werden sondern per include http://www.flug7.de/test/berlin.php (Javascript Tooltip inkl. Inhalt).

Wenn wir das System fertig haben, könnten wir ne Art eigenes ayomTXT machen.

Grüße
 
Hallo, in deiner berlin.php ist der Fehler, dass du den Inhalt ausgibst. Du musst ihn aber an in einen String schreiben, den du dann in der Funktion "intellitxt" zurückgibst. Ansonsten schaut es ganz gut aus. Musst halt nur noch <a href="#"> und </a> aus der "intellitxt" entfernen. Also so:
CODE <?

$suchwoerter = array(
'Rom' => 'rom.php',
'Berlin' => 'berlin.php');


$text = 'text text text text text text text text text text text text text text text text Rom text text text text ';
$text .= 'text text text text text text Rom text text text text text text text Romania text text text text text text ';
$text .= 'text text text text text text text text text text text text Berlin text text text text text text text text ';
$text .= 'text text text Berlin text text text text text text text text text text text text Moskow text text text text ';

function intellitxt($treffer) {
global $suchwoerter;
include($suchwoerter[$treffer[0]]);
return $inc_text;
}

$pattern = array();

foreach($suchwoerter as $key => $dummy) {
$pattern[] = '/\b' . $key . '\b/is';
}

echo preg_replace_callback(
$pattern,
'intellitxt',
$text);

?>


Auch funktioniert bei deiner Anwendung include_once nicht, das habe ich auch mit korrigiert. Du musst in deinen Include-Dateien nun nur noch alle Inhalte der Variable $inc_text zuweissen, bei Berlin zB:


CODE
<?
$inc_text = echo '<span style="border-bottom:dashed 1px black; text-decoration:none;" onmouseover="return escape(\'Links für <b>Berlin</b>:<BR><a href=\\\'http://www.octopustravel.com/Enter.jsp?siteid=student&start=SearchHotels.jsp&dest=CBER&Country=D&Currency=EUR&Language=g\\\' target=\\\'_blank\\\'>Hotels in Berlin</a><br><a href=\\\'http://ad.zanox.com/ppc/?3259208C1788190910T&ULP=[[BER]]\\\' target=\\\'_blank\\\'>Flüge nach Berlin mit Air Berlin</a><br><a href=\\\'http://www.zanox-affiliate.de/ppc/?3287219C1133892840T&ULP=[[Berlin]]\\\' target=\\\'_blank\\\'>Flüge nach Berlin Preisvergleich</a>\')"> Berlin</span>';
?>



Es wäre natürlich einfacher diese berlin.php generieren zu lassen, dann hat man weniger Probleme mit den ganzen Appostrophen.
 
Danke Dir Maik.... habe jetzt erstma nen Schritt zurück gerudert und die berlin.php und rom.php vereinfacht:

<?php
$inc_text = "<B>Berlin</B>";
?>

mehr steht da erstmal nicht drin.

Im Test sieht man schonmal, dass es klappt: http://www.flug7.de/test/test.php

Das Problem sind wie Du sagst die Abostrophe.... weil diese zum Starten des Javascript benötigt werden....
 
die neueste version der berlin.php:

<?
$inc_text = '<span style="border-bottom:dashed 1px black; text-decoration:none;" onmouseover="return escape(\'Links für <B>Berlin</B><br>Hotels in Berlin\')"> Berlin</span>';
?>

geht soweit auch zu sehen und o.g. URL. sobald ich jedoch nen verweis reinbaue spinnt er...
 
Du musst die Apostrophe der Javascripts doppel "escapen", also wird aus \' einfach \\\'

Genauer gesagt: Du "escapest" quasi einmal den Backslash und zudem noch einmal das Apostroph
 
hehehehe... wie vergesslich ich doch bin. Ich habe doch tatsächlich vor ca. einem halben Jahr bereits soetwas für oxodo gebaut. Allerdings habe ich da eine andere Variante benutzt (preg_replace statt preg_replace_callback)
 
CODE <?
$inc_text = '<span style="border-bottom:dashed 1px black; text-decoration:none;" onmouseover="return escape(\\\'Links für <B>Berlin</B><br>Hotels in Berlin\\\')"> Berlin</span>';
?>


oder:


CODE <?
$inc_text = "<span style=\"border-bottom:dashed 1px black; text-decoration:none;\" onmouseover=\"return escape(\'Links für <B>Berlin</B><br>Hotels in Berlin\')\"> Berlin</span>";
?>



oder:


CODE <?
$urlmouse_over = "return escape('Links für <B>Berlin</B><br>Hotels in Berlin')";
$inc_text = '<span style="border-bottom:dashed 1px black; text-decoration:none;" onmouseover="' . $urlmouse_over . '"> Berlin</span>';
?>


Das letzte ist, wie du siehst ohne Escapes
smile.gif
 
es geht! juuuhuuuu Die Lösung:

test.php:
CODE
<?

$suchwoerter = array(
'Rom' => 'rom.php',
'Berlin' => 'berlin.php');


$text = 'text text text text text text text text text text text text text text text text Rom text text text text ';
$text .= 'text text text text text text Rom text text text text text text text Romania text text text text text text ';
$text .= 'text text text text text text text text text text text text Berlin text text text text text text text text ';
$text .= 'text text text Berlin text text text text text text text text text text text text Moskow text text text text ';

function intellitxt($treffer) {
global $suchwoerter;
include($suchwoerter[$treffer[0]]);
return $inc_text;
}

$pattern = array();

foreach($suchwoerter as $key => $dummy) {
$pattern[] = '/\b' . $key . '\b/is';
}

echo preg_replace_callback(
$pattern,
'intellitxt',
$text);

?>

<script language="JavaScript" type="text/javascript" src="js/wz_tooltip.js"></script>



berlin.php:

CODE <?
$inc_text = '<span style="border-bottom:dashed 1px black; text-decoration:none;" onmouseover="return escape(\'Links für <B>Berlin</B><br><a href=\\\'http://www.octopustravel.com/Enter.jsp?siteid=student&start=SearchHotels.jsp&dest=CBER&Country=D&Currency=EUR&Language=g\\\' target=\\\'_blank\\\'>Hotels</A> in Berlin<br><a href=\\\'http://ad.zanox.com/ppc/?3295894C1652147876T\\\' target=\\\'_blank\\\'>Low-Cost-Reisen</A> nach Berlin\')"> Berlin</span>';
?>




rom.php:

CODE <?
$inc_text = '<span style="border-bottom:dashed 1px black; text-decoration:none;" onmouseover="return escape(\'Links für <B>Rom</B><br><a href=\\\'http://www.octopustravel.com/Enter.jsp?siteid=student&start=SearchHotels.jsp&dest=CROM&Country=D&Currency=EUR&Language=g\\\' target=\\\'_blank\\\'>Hotels</A> in Rom<br><a href=\\\'http://ad.zanox.com/ppc/?3295899C130145849T\\\' target=\\\'_blank\\\'>Low-Cost-Reisen</A> nach Rom\')"> Rom</span>';
?>


Ich danke Euch allen für Eure Mühen!
 
Zurück
Oben