Welcome, Guest. Please login or register.
Did you miss your activation email?
May 26, 2012, 01:19:35 AM

Login with username, password and session length
Search:     Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter hier und auf unserer neuen Webseite.
155533 Posts in 21713 Topics by 7738 Members
Latest Member: Pattieardathfe
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: Weiteren Platzhalter erstellen  (Read 442 times)
pagestyles

Offline Offline

Posts: 14


« on: October 22, 2009, 09:05:59 AM »

Hi Leute,

ich möchte mittels des Moduls Formulare ein Formular mit Tooltips erstellen.
Dazu soll hinter jedes Formularelement (je nach Notwendigkeit) ein Fragezeichen stehen,
was bei Mouse-Over ein Div mit einem Helptext öffnet. Das nur zur Erklärung.

Jetzt ist das Problem, dass das Formular-Modul die FIELDS ja in einer Schleife ausliest, und
als Variablen eine Art Platzhalter, also {TITLE} und {REQUIRED} benutzt.

Das sieht so aus:

Code:
<tr><td class="field_title">{TITLE}{REQUIRED}:</td><td>{FIELD}</td></tr>

Jetzt möchte ich einen dritten Platzhalter erstellen, der {ID} heißt und den Code entsprechend verändern, dass sowas in der Art rauskommt:

Code:
<tr><td class="field_title">{TITLE}{REQUIRED}:</td><td>{FIELD}</td><a href="{ID}"><img src="fragezeichen" /></a></tr>

Aber ich habe keine Ahnug, wie ich den {ID}-Platzhalter definieren kann.

In der Datei /modules/form/view.php steht folgendes:

Code:
// Get list of fields
$query_fields = $database->query("SELECT * FROM ".TABLE_PREFIX."mod_form_fields WHERE section_id = '$section_id' ORDER BY position ASC");

if($query_fields->numRows() > 0) {
        while($field = $query_fields->fetchRow()) {
                // Set field values
                $field_id = $field['field_id'];
                $value = $field['value'];
                // Print field_loop after replacing vars with values
                $vars = array('{TITLE}', '{REQUIRED}');
                if (($field['type'] == "radio") || ($field['type'] == "checkbox")) {
                        $field_title = $field['title'];
                } else {
                        $field_title = '<label for="field'.$field_id.'">'.$field['title'].'</label>';
                }
                $values = array($field_title);
                if ($field['required'] == 1) {
                        $values[] = '<span class="required">*</span>';
                } else {
                        $values[] = '';
                }

Ok, also da wird {TITLE} und {REQUIRED} in ein Array gesetzt, und z.b. {TITLE} hat dann den Inhalt
Code:
$field_title = '<label for="field'.$field_id.'">'.$field['title'].'</label>';

Jetzt möchte ich da sowas wie
Code:
$field_id = $id;
schreiben, aber das funktioniert natürlich nicht. Ich muss jetzt noch bewerkstelligen, dass
der Platzhalter  {ID} den inhalt "$id" bekommt.

Wie geht das? Ich kann hier einfach nicht erkennen, wie {TITLE} zu seinem Inhalt kommt  huh

Vielen Dank für eure Hilfe  cheesy
Logged
pagestyles

Offline Offline

Posts: 14


« Reply #1 on: October 22, 2009, 09:26:20 AM »

Also eigentlich ganz einfach gesagt, ich will wissen, wie dort dem {TITLE} der Inhalt von $field_title zugewiesen wird, also pseudocode-mäßig müsste da sowas stehen wie:

{TITLE} = $field_title;

Tut's aber nicht  grin

Und jetzt will ich:

{ID} = $field['field_id'];

und aus

Code:
$vars = array('{TITLE}', '{REQUIRED}');

machen:

Code:
$vars = array('{TITLE}', '{REQUIRED}', '{ID}');
« Last Edit: October 22, 2009, 09:29:38 AM by pagestyles » Logged
AR1306

Offline Offline

Posts: 536



« Reply #2 on: October 22, 2009, 09:27:44 AM »

Hi pagestyles,

warum schaust Du Dir nicht einfach mal das Modul mpform an - erfüllt, denke ich, alles was Du Dir vorstellst.  wink

Link zu einem Beispiel: http://www.websitebaker2.org/forum/index.php/topic,15626.msg101138.html#msg101138

Andreas
« Last Edit: October 22, 2009, 09:29:37 AM by AR1306 » Logged
pagestyles

Offline Offline

Posts: 14


« Reply #3 on: October 22, 2009, 09:31:22 AM »

Hey danke für deine Antwort, also eigentlich ist das was ich will so mikrig dass es sich wohl nicht lohnt sich jetz noch mit nem andren Modul auseinanderzusetzen .
Mich interessiert nur, wie die Platzhalter {} zu ihrem Inhalt kommen smiley
Logged
WebBird
Guest
« Reply #4 on: October 22, 2009, 10:24:36 AM »

Vermutlich per str_replace()

Edit: Ich denke mal den hier:

Code:
       if($field['type'] != '') {
            echo str_replace($vars, $values, $field_loop);
        }

Zeile 225 in der view.php.
« Last Edit: October 22, 2009, 10:26:32 AM by WebBird » Logged
WebBird
Guest
« Reply #5 on: October 22, 2009, 10:27:36 AM »

Also eigentlich mußt Du nur Deinen Platzhalter in das vars-Array und den Wert in das values-Array packen und fertig ist die Laube. grin
Logged
mr-fan

Offline Offline

Posts: 1556


WWW
« Reply #6 on: October 22, 2009, 10:29:49 AM »

Hey danke für deine Antwort, also eigentlich ist das was ich will so mikrig dass es sich wohl nicht lohnt sich jetz noch mit nem andren Modul auseinanderzusetzen .

falsch - das was du vorhast ist mit diesem modul schon umgesetzt!

es basiert auf dem urmodul form und einer nicht mehr weiterentwickelten version davon "formX" und ist eine wirkliche alternative für das "standart-form" modul für _alle_ die mehr wenn auch nur mikrig mehr wollen.... wink

z.b. deine hilfstexte kannst du dort exakt und einfach festlegen ohne im modul rumzutüfteln und einen zusätzlichen platzhalter zu "programmieren"....

mfg martin
Logged

 
pagestyles

Offline Offline

Posts: 14


« Reply #7 on: October 22, 2009, 10:55:23 AM »

Also eigentlich mußt Du nur Deinen Platzhalter in das vars-Array und den Wert in das values-Array packen und fertig ist die Laube. grin

Das hab ich mir auch gedacht.

Also mache ich:

Code:
$vars = array('{TITLE}', '{REQUIRED}', '{ID}');

und nun?
Das values-Array ist das hier:
Code:
$values = array($field_title);

Wie weiße ich dem jetzt deine weitere "Zeile" zu und vor allem, was meine Anfangsfrage ist, wie kommt der Wert dann in den Platzhalter?
Code:
echo str_replace($vars, $values, $field_loop);
das hier raff ich nicht ganz.

Aber ich hab mir jetzt MPForm angeguckt und wühl mich da mal rein.
Schade trotzdem hätte gern gewusst wie dasmacht, rein interessehalber.

Danke an alle!
Logged
mr-fan

Offline Offline

Posts: 1556


WWW
« Reply #8 on: October 22, 2009, 11:05:51 AM »

Also eigentlich mußt Du nur Deinen Platzhalter in das vars-Array und den Wert in das values-Array packen und fertig ist die Laube. grin
Aber ich hab mir jetzt MPForm angeguckt und wühl mich da mal rein.
Schade trotzdem hätte gern gewusst wie dasmacht, rein interessehalber.

Danke an alle!

hey ich hab nicht gesagt das geht niemand was an wie die platzhalter entstehen.... grin

das kannst du gern nachforschen - nur deine funktionen gibts halt schon in diesem modul fix und fertig...udn fieldsets...und forms über mehrere seiten....usw.

aber die grund technik ist dem formmodul ähnlich - dort gibts auch diese platzhalter und loops...hab mich dort aber noch nicht drin verloren, da ich noch nie über ein "standartformular" hinausgekommen bin...

vielleicht liest das Frank (der entwickler des mpform) mit und hat für ne kurze antwort zeit!

grüße aus dem süden
martin
Logged

 
WebBird
Guest
« Reply #9 on: October 22, 2009, 11:36:48 AM »

Nee. Mach einfach vor dem str_replace():

Code:
$vars[] = '{ID}';
$values[] = $whatever;

Edit: Achso, wegen dem str_replace() und dem raffen... grin

http://php.net/manual/de/function.str-replace.php
Logged
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!