Page 1 of 2

Kontaktformular anzeigen

Posted: Wed Mar 11, 2009 8:24 am
by reinhardl
Hallo,
gibt es eine Möglichkeit das Kontaktformular im Template aufzurufen?

{serendipity_showPlugin class="serendipity_event_contactform"} funktioniert da ja nicht.

Grüße

Re: Kontaktformular anzeigen

Posted: Wed Mar 11, 2009 8:55 am
by MagicV
Bei der Plugin-Konfiguration gibst Du doch einen Link zu dem Kontaktform an. Über diesesn wird das Formular, ähnlich wie statische Seiten geladen.

Re: Kontaktformular anzeigen

Posted: Wed Mar 11, 2009 4:10 pm
by reinhardl
MagicV wrote:Bei der Plugin-Konfiguration gibst Du doch einen Link zu dem Kontaktform an. Über diesesn wird das Formular, ähnlich wie statische Seiten geladen.
ne, ich möchte das Kontaktformular als Teil der entry-page in ein Tab laden.
Deshalb soll es in der index.tpl "geholt" werden und in einem div ausgegeben werden.

Re: Kontaktformular anzeigen

Posted: Wed Mar 11, 2009 11:41 pm
by garvinhicking
Hi!

Leider nein, so einfach funktioniert es nicht.

Man müsste in der config.inc.php die Darstellungsfunktionen des Eventplugins aufrufen und kapseln; das ist alles andere als trivial.

Wenn du mich aber nächste Woche nochmal dran erinnerst könnte ich versuchen den groben Code dafür zusammenzubacken.

Grüe,
Garvin

Re: Kontaktformular anzeigen

Posted: Wed Apr 20, 2011 11:14 am
by reinhardl
garvinhicking wrote:Hi!

Leider nein, so einfach funktioniert es nicht.

Man müsste in der config.inc.php die Darstellungsfunktionen des Eventplugins aufrufen und kapseln; das ist alles andere als trivial.

Wenn du mich aber nächste Woche nochmal dran erinnerst könnte ich versuchen den groben Code dafür zusammenzubacken.

Grüe,
Garvin
Hallo ,
hat sich da noch etwas ergeben?
Grüße

Re: Kontaktformular anzeigen

Posted: Wed Apr 20, 2011 6:07 pm
by garvinhicking
Hi!

Da die Erinnerung leider 2 Jahre ausblieb noch nicht ;)

Im Grunde genommen müsstest Du in der config.inc.php sowas platzieren:

Code: Select all

<?php
function show_contactform($params, &$smarty) {
  global $serendipity;
  $plugins = serendipity_plugin_api::get_event_plugins();
  
  $cf = $plugins[$params['contactform']];

  if (!is_array($cf)) {
    return 'ERROR: No valid plugin ID';
  }

  $serendipity['GET']['subpage'] = $cf['p']->get_config('pagetitle');
  $cf['p']->show();
}

$serendipity['smarty']->register_function('show_contactform', 'show_contactform');
Then in your .tpl file you should be able to use {show_contactform contactform="serendipity_event_contactform:b1f687e274dce537ab7b45c2a9305fa0"}, where the parameter corresponsds to the plugin ID of the contactform you want to display.

Does this help?

Regards,
Garvin

Re: Kontaktformular anzeigen

Posted: Wed Apr 20, 2011 7:44 pm
by reinhardl
habe das mal probiert aber es kommt eine Meldung
ERROR: No valid plugin ID
die URL serendipity_admin.php?serendipity[adminModule]=plugins&serendipity[plugin_to_conf]=serendipity_event_contactform%3A48a1e3d4e5dd051156efa63dc56a9e4c

demensprechend meine .tpl -Datei:
<div class="col_3">
<h2>Kontaktformular</h2>
{show_contactform contactform="serendipity_event_contactform:3A48a1e3d4e5dd051156efa63dc56a9e4c"}

</div>

habe ich vielleicht die falsche ID?

Grüße

Re: Kontaktformular anzeigen

Posted: Wed Apr 20, 2011 8:18 pm
by garvinhicking
Hi!

Du musst die ID wie sie exakt in der DB steht übernehmen. Wenn Du copy&paste der URL machst ist %3A ein sonderzeichen (":"). Deine ID korrekt wäre also:

Code: Select all

                {show_contactform contactform="serendipity_event_contactform:48a1e3d4e5dd051156efa63dc56a9e4c"}
                
:)

grüße,
Garvin

Re: Kontaktformular anzeigen

Posted: Wed Apr 20, 2011 10:32 pm
by reinhardl
Asche über mein Haupt ....


jetzt funktioniert es unter Kontakt


jetzt noch formatieren...

Danke

Re: Kontaktformular anzeigen

Posted: Thu Apr 21, 2011 10:57 am
by Timbalu
Ich finde das eine Klasse Idee. Sieht gut aus und ist irgendwie neu!

Villeicht könntest du daraus mal ein template für die Allgemeinheit machen, Reinhardl?!

Dann allerdings sollte man das Kontaktform Plugin so umstricken, dass es zusätzlich seine PluginID an Smarty ausgibt. Oder wäre das ein Sicherheitsproblem, Garvin?

Re: Kontaktformular anzeigen

Posted: Thu Apr 21, 2011 1:05 pm
by garvinhicking
Hi!
Dann allerdings sollte man das Kontaktform Plugin so umstricken, dass es zusätzlich seine PluginID an Smarty ausgibt. Oder wäre das ein Sicherheitsproblem, Garvin?
Wie meinst Du genau?

Grüße,
Garvin

Re: Kontaktformular anzeigen

Posted: Thu Apr 21, 2011 1:10 pm
by reinhardl
Zu früh gefreut...

Ich musste es erst einmal deaktivieren, denn wenn ich

Code: Select all

  {show_contactform contactform="serendipity_event_contactform:48a1e3d4e5dd051156efa63dc56a9e4c"} 
in die Template Datei einfüge, haben sämtliche Seiten den Inhalt des Kontaktformulars. Das war mir erst garnicht aufgefallen.

Re: Kontaktformular anzeigen

Posted: Thu Apr 21, 2011 1:15 pm
by garvinhicking
Hi!

Meine Schluld. Bitte die PHP-Funktion wie dfolgt anpassen:

Code: Select all

<?php
function show_contactform($params, &$smarty) {
  global $serendipity;
  $plugins = serendipity_plugin_api::get_event_plugins();
  
  $cf = $plugins[$params['contactform']];

  if (!is_array($cf)) {
    return 'ERROR: No valid plugin ID';
  }

  if (isset($serendipity['GET']['subpage'])) {
    $oldpage = $serendipity['GET']['subpage']
  } else { 
    $oldpage = false;
  }
  $serendipity['GET']['subpage'] = $cf['p']->get_config('pagetitle');
  $cf['p']->show();

  if ($oldpage) {
    $serendipity['GET']['subpage'] = $oldpage;
  } else {
    unset($serendipity['GET']['subpage']);
  }
}

$serendipity['smarty']->register_function('show_contactform', 'show_contactform');

Damit sollte das Plugin die "subpage" Aktion dann wieder nach Ausgabe rückgängig machen.

Grüße,
Garvin

Re: Kontaktformular anzeigen

Posted: Thu Apr 21, 2011 1:20 pm
by Timbalu
garvinhicking wrote:Wie meinst Du genau?
Na diese einmalige Plugin ID zB. 48a1e3d4e5dd051156efa63dc56a9e4c, damit man sie als smarty variable in {show_contactform contactform="serendipity_event_contactform:`$plugID`"} vorliegen hat. Könnte man mit dieser ID eventuell Unfug treiben?

Re: Kontaktformular anzeigen

Posted: Thu Apr 21, 2011 2:19 pm
by reinhardl
garvinhicking wrote:Hi!

Meine Schluld. Bitte die PHP-Funktion wie dfolgt anpassen:

Code: Select all

<?php
function show_contactform($params, &$smarty) {
  global $serendipity;
  $plugins = serendipity_plugin_api::get_event_plugins();
  
  $cf = $plugins[$params['contactform']];

  if (!is_array($cf)) {
    return 'ERROR: No valid plugin ID';
  }

  if (isset($serendipity['GET']['subpage'])) {
    $oldpage = $serendipity['GET']['subpage']
  } else { 
    $oldpage = false;
  }
  $serendipity['GET']['subpage'] = $cf['p']->get_config('pagetitle');
  $cf['p']->show();

  if ($oldpage) {
    $serendipity['GET']['subpage'] = $oldpage;
  } else {
    unset($serendipity['GET']['subpage']);
  }
}

$serendipity['smarty']->register_function('show_contactform', 'show_contactform');

Damit sollte das Plugin die "subpage" Aktion dann wieder nach Ausgabe rückgängig machen.

Grüße,
Garvin


Mit dieser Funktion kommt überhaupt keine Ausgabe mehr - auch keine Fehlermeldung.

Grüße
Reinhard