Forum : eXV2 ModuleTitel : Einbau von formdhtmltextarea in andere Module© 2004-2012 www.exv2.de http://www.exv2.de
URL dieser Diskussion
http://www.exv2.de/modules/newbb_plus/viewtopic.php?topic_id=355&forum=7
|
FrankP :
| 10.05.2003 17:44 |
Hay,
wir würden gerne die o. g. Klasse u. a. in die Erfassungsmaske von MyAnnonces integrieren.
Über den Einbau von Code:include_once(XOOPS_ROOT_PATH.'/class/xoopsform/formdhtmltextarea.php'); $desc = new XoopsFormDhtmlTextArea('', 'description', $description, 20, 100); echo $desc->render();
werden auch alle Elemente angezeigt. Sobald ich aber versuche, eine Text zu formatieren und dann in die Textarea einzufügen passiert in der Textarea gar nix, in der Statuszeile kommt ein JavaScript Fehler "Can't move Focus to the Control because it is invisible, not enabled or of a type that not accept the focus."
Der Debugger springt dann auf den Code "textareaDom.focus();" aus der formdhtmltextarea.js.php, bzw. auf eine andere focus() Stelle, z.B. nach anclicken eines Smilies oder so.
Ich bin mir sicher, dass es nur eine Kleinigkeit ist. Ich habe es genau so eingesetzt, wie z.B. in der forumform.inc.php aus dem Forum, aber ich bin anscheinden zu blöd das rauszufinden.
Vielen lieben Dank im voraus für eure Hilfe im voraus, und noch einen schönen Samstag....
bye Frank |
|
|
Nobse :
| 10.05.2003 20:47 |
Der Aufruf sollte richtig sein. Lade dir mal das Modul und schau dir die admin/index,php an dort wird nur formdhtmltextarea behandelt ist sehr übersichtlich. |
|
|
FrankP :
| 11.05.2003 12:12 |
Hallo Nobse,
das ist wirklich übersichtlich, hilft aber nix weil es genau so integriert ist wie ich es versucht habe. Ich komme aber absolut nicht voran mit dem Problem.
Die JS-Funktion xoopsCodeText(id) wird sauber aufgerufen, d.h. die id (description) steht im HTML-Text der Seite drin. Bis zum Aufruf von textareaDom.focus(); scheint auch alles zu laufen. Ich habe irgendwie die Zeile
var textareaDom = xoopsGetElementById(id);
im Verdacht, bzw. dass die Funktion xoopsGetElementById nicht das zurückwirft, was sie eigentlich tun sollte. Wenn ich mir im VS.NET Debugger den Inhalt der Variablen ansehe, ist id=description. Aber Innerhalb des Objekts textareaDom steht in ClassName="" und in id="". Ich befürchte genau da hapert es.
Nach deinem Hinweis auf das Info-Modul und einem weiteren Blick in das Tutorials dachte ich erst, es würde nur im Admin-Bereich laufen. Dass kann aber nicht sein, da jau auch im newBB diese Art der Textarea verwendet wird.....
So siehst mich hier absolut ratlos
Hat denn noch niemand versucht, diese tolle Klasse in eigene bzw. andere Module einzubauen ????
Wenn jemandem was einfällt wär das genial. Ich werde gleich mal einen Thread im .com Forum aufmachen, um dort nachzufragen.....
Schönen Sonntag noch,
Frank |
|
|
Nobse :
| 11.05.2003 20:40 |
Kopier mal folgendes in eine Datei und spiele sie ins Rootverzeichnis und teste mal.
<?php
include_once('mainfile.php'); include(XOOPS_ROOT_PATH."/header.php"); include_once(XOOPS_ROOT_PATH.'/class/xoopsform/formdhtmltextarea.php');
OpenTable();
$desc = new XoopsFormDhtmlTextArea('', 'texte', $texte, 25, 60); echo $desc->render();
CloseTable(); include(XOOPS_ROOT_PATH."/footer.php");
?> |
|
|
FrankP :
| 12.05.2003 08:37 |
Hay,
so losgelöst von allem anderen funktioniert es einwandfrei. Das Problem muss damit zusammenhängen, dass diese Textarea in ein anderes Fomular eingebettet werden soll. Ich habe keine wirkliche Ahnung, warum z.B. in MyAnnonces die Klasse zum erstellen der Baumstruktur verändert worden ist:
$mytree = new XoopsArbre($db->prefix("ann_categories"),"cid","pid");
$mytree->makeMySelBox("title", "title", $cide);
Mich da heineinzudiggen übersteigt doch meine schmalen Kenntnisse.
Ansonsten kommen über der Textarea nur normale Input-Felder (1)
Irgendwo kommt JavaScript da wohl mit der Benamung der Objekte durcheinanden, aber das geht mit nun wirklich zu weit.....
Den gesamten Inhalt der addononces.php hier zu posten führt wohl zu weit, vielleicht per Mail?
bye Frank |
|
|
Nobse :
| 12.05.2003 19:31 |
Kannst mir es schicken aber erwarte nicht von heute auf morgen eine Lösung. Besser ist natürlich du wendest dich mal an Pascal der wird das bestimmt im handumdrehen hinbekommen. Kannst english posten. |
|
|
FrankP :
| 09.04.2004 22:33 |
*push*
Stehe wieder (immer noch ) vor dem gleichen Problem.
Wenn ich mir den Source der Seiten ansehe, fällt mir auf, das die ganzen JavaScript Funktionen (xoopsCodeSmilie(id, smilieCode) usw.) nich innerhalb des HEAD-Bereiches, sondern innerhalb des BODY-Bereiches definiert werden.
Im Gegensatz zu damals erhalte ich heute keinen JavaScript Fehler, sondern in der Browser-Statuszeile kommt beim Click auf einen Smilie der JustReturn() Aufruf, also kein JS-Fehler mehr.
Wie kann ich sicherstellen, dass die JS-Funktionen im HEAD Bereich definert werden, und nicht im BODY
Das Problem besteht überall wo ich eine Textarea durch eine dhtml-textarea ersetzen möchte, also auch in anderen Modulen.
Das treibt mich zur Weissglut
Dankbar für jeden Tip
ciao Frank |
|
|
alphalogic :
| 10.04.2004 11:12 |
Zitat: Wie kann ich sicherstellen, dass die JS-Funktionen im HEAD Bereich definert werden, und nicht im BODY steht
das spielt für den browser doch gar keine rolle, man kann ja zb schließlich auch seiten entwerfen wo der head normaler html ist und der body durch document.write ausgegeben wird |
|
|
FrankP :
| 10.04.2004 12:12 |
Hay alpha 
du wirst Recht haben, war nur so eine Laienhafte Idee.
Nachdem ich auch auf e-xoops.com gefragt habe, parallel aber weitergesucht, bin ich auf einen Workaround gekommen:
Farsus's Forum
Verstehen tue ich es zwar immer noch nicht, aber wenn es denn läuft....
Danke für's Feedback. Frank |
|
|
|