Zum Inhalt springen

fertige files in neue extension einbetten?

Erstellt am 11. Dezember 2005 · 19 Antworten · letzte Antwort am 12. Dezember 2005

Tags: Frage

xtensionar ·

Hi,

angenommen ich hab eine paar fertige php, html, js files mit links und forms und db anbindung. ist es moeglich das ganze in eine extension einzubetten? wenn ja, wie gehe ich da am besten vor? mit kickstarter? wenn nein, warum nicht, und wie mache ich es dann? bin komplett typo3 anfaenger und wuerde mich ueber seeehhhr schnelle hilfe freuen! vielen dank!

woida ·

Am besten du ließt dir mal folgendes Beispiel durch:
http://typo3.org/documentation/document-library/player_profile_basic/

Dann findest du noch auf
http://typo3.org/documentation/videos/wmv-format/ Videos zum Thema Kickstarter.

Wenn du deine Skripte nahtlos in Typo3 integrieren willst, dann bietet es sich an, eine Extension zu schreiben. Der Kickstart hilft dir dabei, die Struktur und die nötigen Datein, sowie das Datenbankschma einfach zusammen zu klicken.

Wenn das ganze seeehhhr schnell gehen soll, vergisst du es aber am besten gleich wieder: Zu aller erst solltest du dich mit Typo einarbeiten und dann erst beginnen, die erste Extension zu schreiben. Dabei wirst du auch auf Hürden stoßen. Also: schnell geht da gar nix.

xtensionar ·

danke, hab ich schon angeschaut. Mir waere es lieber ich haette die Zeit um mich in Typo einarbeiten zu koennen, hab sie aber nicht.. :-(

den kickstarter hab ich mir angeschaut, allerdings hab ich keine ahnung, wie ich "was fertiges" einfach einbetten kann. Konkret sind es formulare ueber 5 Seiten , natuerlich mit db anbindung...das beispiel zeigt sowas leider nicht..

hat vielleicht noch jemand paar tipps? danke!

woida ·

allerdings hab ich keine ahnung, wie ich "was fertiges" einfach einbetten kann

Gar nicht.

Für deine Anwendung wird es als erstes mal reichen, wenn du mit dem Kickstarter deine Datenbank erstellst.
Im deinem Ext-Verzeichniss gibts den Ordner pi1/ und da liegt eine PHP-Datei drin. Da muß nun dein Skript rein.
Folgendes sollte (unter anderem) angepaßt werden
*) die Verbindug zur Datenbank http://typo3.org/documentation/document-library/doc_core_cgl/Introduction-74bbc0ebf2/
*) sowas wie $PHP_SELF gibts nicht. Da ist aber in der vom Kickstarter erstellten PHP-Datei ein Beispiel
*) Links zu anderen Seiten http://typo3.org/development/articles/using-links-in-frontend-plugins/page/1/

xtensionar ·

oki, danke. dann fang ich mal so an und melde mich dann sehr wahrscheinlich wieder ;-)

nochmals vielen dank fuer deine hilfe!

xtensionar ·

mm..das pi1 verzeichnis wurde nicht angelegt. kann ich das auch selbst anlegen und ne file aus nem anderen plugin "klauen" und modifizieren? oder muss ich etwas im kickstarter wizard machen? die db ist bereits angelegt...

danke ;-)

steffenk ·

dann hast Du die Extension nicht komplett erstellt. Du musst Dich schon für ein Frontend Plugin entscheiden und die entsprechende Sektion erstellen.

Ander Ext umzumodeln dürfte für Dich zu aufwendig sein, weil das ein verständnis von TCA etc. vorraussetzt.

xtensionar ·

das ging aber schnell,

frontend plugin ist eingestellt, was meinst du mit sektionen erstellen?

general info und db-tabellen sind angelegt...

xtensionar ·

ah, ich muss ein frontend plugin im wizard hinzufuegen, nicht nur in general info einstellen, richtig?

edit: richtig, keine antwort noetig ;-)

xtensionar ·

ok, kommt schon was raus, wo was rauskommen soll, aber..

die $content variable ist ja mit html code gefuellt, da ich das aber nicht alles in einer file haben will, lese ich alles aus einer andern file und zwar so:

// get contents of a file into a string
$filename = "typo3conf/ext/xxxxx/pi1/test.php";
$handle = fopen($filename, "rb");
$content = fread($handle, filesize($filename));
fclose($handle);

der code, der produziert wird, ist EXAKT gleich, aber das outcome ist anders.

<form action="'.$this->pi_getPageLink($GLOBALS['TSFE']->id).'" method="POST">

schreibt in das naechste feld '.htmlspecialchars($this-, wo kommt das her? muss ich die file anders auslessen?

waere dankbar fuer hilfe ;-)

xtensionar ·

hallo nochmal ;-)

It should (probably) be installed on development installations only since it is a development tool

...sagt mir, dass es nicht wirklich ist, was ich suche? was ich will, ist eine fertige html, php, js file von <body> bis </body> ausschneiden muessen und diese dann inkludieren koennen. Ist das moeglich? Kann mir da jemand auf die spruenge helfen?

xtensionar ·

mmm..das macht mich auch ganz konfus. war auch ein beschreibungsfehler drin.

was ich habe: fuenf seiten mit forms und (spaeterer) db-anbidung.

was ich will: eine typo3 extension bauen. das ganze modular aufbauen.

was ich jetzt mache: in class.tx_xxx_pi1.php ein require('typo3conf/ext/xxx/pi1/test.php'); einbauen, da die file doch schon laenger ist.

in der test.php sind dann html und js code drin...und zwar so:
<?php
$content = 'viel html und js code';
?>

die dazugehoerige frage: macht das sinn? oder wie kann man sich den ueberblick erhalten?

die restlichen posts einfach ignorieren.. ;-) ich muss mich selbst erst mal sammeln...

woida ·

Im Prinzip kannst du es schon so machen.
Kommt halt drauf an, auf wieviele Variablen deiner Klasse du in deinem Include zugreifen willst. Je mehr das sind, desto unübersichtlicher wirds halt.

xtensionar ·

jo, sind ja aber nur

	var $prefixId = 'tx_xxx_pi1';		// Same as class name
	var $scriptRelPath = 'pi1/class.tx_xxx_pi1.php';	// Path to this script relative to the extension dir.
	var $extKey = 'xxx';	// The extension key.
	var $pi_checkCHash = TRUE;

was ich mit denen anfangen soll, weiss ich noch nicht, ansonsten hab ich (noch) nicht mehr...

danke fuer die antwort.

xtensionar ·

dazu nochmal ne frage:

wie gesagt habe ich ca. 5 seiten. wenn ich "normales" php progammierte, wuerde ich es nicht so machen, aber macht es in diesem fall sinn, dass:

ich mit $this->pi_linkToPage('get to this page again',$GLOBALS['TSFE']->id) immer wieder auf die selbe seite verweise, schaue, ob daten fuer die db mituebergeben wurden (falls ja pruefen und schreiben) und dann mit if() einen parameter (nextSite) checke und jenachdem wieder eine entsprechende file inkludiere?

oder was macht da am meisten sinn, um dieses uebersichtlich zu halten?