Page 1 of 1

[Gelöst] UDT in einem statischen Textfeld im Formbuilder

Posted: Wed Jul 22, 2009 6:22 pm
by jeff1980
Hallo zusammen,

ich hätte da mal wieder eine Frage (die sich hoffentlich genauso schnell in Luft auflöst, wie die letzten Male...).
Und zwar geht es darum, dass ich ein UDT gebaut habe, der in einem statischen Textfeld im FormBuilder aufgerufen werden soll.
Das funktioniert aber leider nicht. Im Formular erscheint dann der Aufruf selbst. In diesem Fall:

Code: Select all

{song song_no="001"}
Wenn ich den UDT in einer normalen Inhaltsseite aufrufe, klappt aber alles und der Tag wird ausgeführt bzw. sein Ergebnis angezeigt. Es kann dann ja eigentlich kaum noch am UDT selbst liegen. Hier aber trotzdem mal der Code:

Code: Select all

echo '<object width="17" height="17" type="application/x-shockwave-flash" data="http://www.festtagslieder.de/musicplayer.swf?song_url=http://wp1064689.vwp0476.webpack.hosteurope.de/festtagslieder_v3/uploads/media/' . $params['song_no'] . '.mp3"><param name="movie" value="http://www.festtagslieder.de/musicplayer.swf?song_url=http://wp1064689.vwp0476.webpack.hosteurope.de/festtagslieder_v3/uploads/media/' . $params['song_no'] . '.mp3" /> <img src="noflash.gif" alt="" width="17" height="17" />
</object>';
Sehen könnt Ihr das Ganze hier:
http://wp1064689.vwp0476.webpack.hosteu ... schied.htm
Der Playbutton wird im UDT generiert - hier klappt es.

Hier klappt es aber nicht:
http://wp1064689.vwp0476.webpack.hosteu ... rtstag.htm

Gibts in der Verbindung FormBuilder/UDT was zu beachten? Habe schon das Forum durchsucht, aber in diese Richtung nichts gefunden...

Bin wie immer für Tipp dankbar.

Viele Grüße
Jan

Re: UDT in einem statischen Textfeld im Formbuilder

Posted: Fri Jul 24, 2009 11:15 am
by LeisureLarry
Die Inhalte eines Textbereiches werden von den meisten Modulen nicht durch Smarty gejagt und somit werden dort auch keine UDTs oder sonstige Smarty-Tags berücksichtigt. Hab mir jetzt nicht extra das Modul angesehen, aber vermute das Modul müsste extra angepasst werden, damit Tags in diesem Textbereich funktionieren.

LeisureLarry (interiete.net)

Re: UDT in einem statischen Textfeld im Formbuilder

Posted: Fri Jul 24, 2009 1:04 pm
by jeff1980
Hi,

ich habs mir schon fast gedacht, dass es an so etwas liegt.
Soooo wichtig ist es auch nicht. Wäre halt eine extreme Erleichterung für die Userin. Aber mal sehen, wie weit ich mit dem Tiny-eigenen Media-Einfüge-Button komme. Evtl. wirds damit ja auch schon leichter, als mit Quelltext zu arbeiten.

Viele Grüße
Jan

Re: UDT in einem statischen Textfeld im Formbuilder

Posted: Fri Jul 24, 2009 6:35 pm
by NaN
LeisureLarry wrote: aber vermute das Modul müsste extra angepasst werden
Jain.
versuchs doch mal mit der Smarty Funktion {eval}.
Da wird der Inhalt einer Variablen nochmal mit Smarty verarbeitet.

Bsp:
Du hast im Inhalt eines Feldes stehen {song song_no="001"}.

Im Formbuildertemplate müsstest Du das Feld dann nicht einfach mit ... verdammt.
Weiß noch immer nicht wie der Formbuilder funktioniert.
Also irgendwo im Forumulartemplate wird ja das Feld ausgegeben.
Ich nenne es jetzt mal {$field}.

Wenn man den Inhalt dieser Variable nochmal mit Smarty verarbeiten will, dann schreibt man das ganze so:

Code: Select all

{eval var=$field}

Re: UDT in einem statischen Textfeld im Formbuilder

Posted: Sat Jul 25, 2009 9:00 am
by jeff1980
Hi NaN,

das wäre natürlich toll, wenn es damit klappen würde. Leider kenne ich mich mit smarty quasi gar nicht aus. Ich habe mal ins Template geschaut (welches ich auch schon ordentlich angepasst habe) und mir ist aufgefallen, dass dort sogar schon etwas zum Thema "eval" auftaucht. Allerdings kann ich damit nicht so viel anfangen. Ich habe auch versucht, "eval" an verschiedenen Stellen, wo meiner Meinung nach die Felder generiert werden, einzufügen - leider immer ohne Erfolg. Ich kopier das Template einfach mal hier rein. Wenn Du Lust und Zeit hast, vielleicht siehst Du ja, wo es hinpassen könnte?

Code: Select all

{* DEFAULT FORM LAYOUT / pure CSS *}
{$fb_form_header}
{if $fb_form_done == 1}
	{* This first section is for displaying submission errors *}
	{if isset($fb_submission_error) && $fb_submission_error}
		<div class="error_message">{$fb_submission_error}</div>
		{if isset($fb_show_submission_errors) && $fb_show_submission_errors}
			<div class="error">
			<ul>
			{foreach from=$fb_submission_error_list item=thisErr}
				<li>{$thisErr}</li>
			{/foreach}
			</ul>
		</div>
		{/if}
	{/if}
{else}
	{* this section is for displaying the form *}
	{* we start with validation errors *}

	{if isset($captcha_error) && $captcha_error}
		<div class="error_message">{$captcha_error}</div>
	{/if}

	{* and now the form itself *}
	{$fb_form_start}
	<div>{$fb_hidden}</div>
	<div{if $css_class != ''} class="{$css_class}"{/if}>
<div class="process_bar">
{if $this_page == 1}
<div class="active odd">Song auswählen</div>
<div class="even undone">Label auswählen</div>
<div class="odd undone">Text eingeben</div>
<div class="even undone">Adresse eingeben</div>
<div class="odd undone">Kommentar eingeben</div>
<div class="even undone">Bestellung absenden</div>
{elseif $this_page == 2}
<div class="odd done">Song auswählen</div>
<div class="active even">Label auswählen</div>
<div class="odd undone">Text eingeben</div>
<div class="even undone">Adresse eingeben</div>
<div class="odd undone">Kommentar eingeben</div>
<div class="even undone">Bestellung absenden</div>
{elseif $this_page == 3}
<div class="odd done">Song auswählen</div>
<div class="even done">Label auswählen</div>
<div class="active odd">Text eingeben</div>
<div class="even undone">Adresse eingeben</div>
<div class="odd undone">Kommentar eingeben</div>
<div class="even undone">Bestellung absenden</div>
{elseif $this_page == 4}
<div class="odd done">Song auswählen</div>
<div class="even done">Label auswählen</div>
<div class="odd done">Text eingeben</div>
<div class="active even">Adresse eingeben</div>
<div class="odd undone">Kommentar eingeben</div>
<div class="even undone">Bestellung absenden</div>
{elseif $this_page == 5}
<div class="odd done">Song auswählen</div>
<div class="even done">Label auswählen</div>
<div class="odd done">Text eingeben</div>
<div class="even done">Adresse eingeben</div>
<div class="active odd">Kommentar eingeben</div>
<div class="even undone">Bestellung absenden</div>
{elseif $this_page == 6}
<div class="odd done">Song auswählen</div>
<div class="even done">Label auswählen</div>
<div class="odd done">Text eingeben</div>
<div class="even done">Adresse eingeben</div>
<div class="odd done">Kommentar eingeben</div>
<div class="active even">Bestellung absenden</div>
{/if}
</div>
<br class="clearfix" />

	{if isset($fb_form_has_validation_errors) && $fb_form_has_validation_errors}
		<div class="error_message">
		<ul>
		{foreach from=$fb_form_validation_errors item=thisErr}
			<li>{$thisErr}</li>
		{/foreach}
		</ul>
		</div>
	{/if}

	{foreach from=$fields item=entry}
		{if $entry->display == 1}
        	{strip}
         	{if $entry->needs_div == 1}
            	<div
            	{if $entry->required == 1 || $entry->css_class != '' || $entry->valid == 0} class="
              		{if $entry->required == 1}required{/if}
              		{if $entry->css_class != ''} {$entry->css_class}{/if}
                    {if $entry->valid == 0} fb_invalid{/if}
              		"
            	{/if}
            	>
         	{/if}
         	{if $entry->hide_name == 0}
            	<label{if $entry->multiple_parts != 1} for="{$entry->input_id}"{/if}>{$entry->name}
            	{if $entry->required_symbol != ''}
               		{$entry->required_symbol}
            	{/if}
            	</label><br />
         	{/if}
         	{if $entry->multiple_parts == 1}
            	{section name=numloop loop=$entry->input}
               		{if $entry->label_parts == 1}
               			<div>{$entry->input[numloop]->input} {$entry->input[numloop]->name}</div>
               		{else}
               			{$entry->input[numloop]->input}
               		{/if}
               		{if isset($entry->input[numloop]->op) && $entry->input[numloop]->op}{$entry->input[numloop]->op}{/if}
            	{/section}
         	{else}
            	{if $entry->smarty_eval == '1'}{eval var=$entry->input}{else}{$entry->input}{/if}
         	{/if}
         	{* {if $entry->valid == 0} <--- {$entry->error}{/if} *}
         	{if $entry->needs_div == 1}
            	</div>
         	{/if}
         	{/strip}
     	{/if}
	{/foreach}
	{if $has_captcha == 1}
		<div class="captcha">{$graphic_captcha}{$title_captcha}<br />{$input_captcha}</div>
	{/if}
	<div class="submit">{$prev}{$submit}</div>
	</div>
	{$fb_form_end}
{/if}
{$fb_form_footer}
Ist wie gesagt nicht überlebenswichtig, aber vielleicht hilft es ja auch anderen, die gerne Smarty in Textfeldern im Formbuilder verwenden möchten.

Viele Grüße
Jan

Re: UDT in einem statischen Textfeld im Formbuilder

Posted: Sat Jul 25, 2009 5:53 pm
by NaN
Diese Zeile:

Code: Select all


{if $entry->smarty_eval == '1'}{eval var=$entry->input}{else}{$entry->input}{/if}

sagt mir, dass man im Formbuilder irgendwo einstellen kann, dass der Inhalt des Feldes mit smarty verarbeitet werden soll.
Kann mich auch irren.
Wenn Du daraus nur

Code: Select all


{eval var=$entry->input}

machst, dann dürfte es funktionieren.

Re: UDT in einem statischen Textfeld im Formbuilder

Posted: Tue Aug 11, 2009 11:03 am
by cyberman
Kann ich bestätigen - in der Übersetzung heisst das Feld "In diesem Feld sind auch Smarty-Variablen gültige Werte." :).

Re: UDT in einem statischen Textfeld im Formbuilder

Posted: Wed Aug 19, 2009 1:43 pm
by jeff1980
Hi,

jap, habs gefunden und nun läuft es auch  :).
Der Formbuilder ist schon cool - aber eben doch soooo umfangreich aber eben auch flexibel und teilweise hilft echt nur ausprobieren, wie was am Besten funktioniert...
Die Seite befindet sich nun auch im Endspurt und wird hoffentlich bald online gehen können.
Danke noch mal!

Viele Grüße
Jan