Checkbox in Kommentarfunktion einbauen
Checkbox in Kommentarfunktion einbauen
Hallo Forengemeinde,
ich möchte in die Kommentarfunktion eine Checkbox einbauen, welche aktiviert sein muss, damit das Posting überhaupt gesendet werden kann. Wie kann ich sowas realisieren? Ich habe mich etwas umgesehen, finde aber keinen richtigen Ansatz. Ich nutze S9Y 1.3.
Vielen Dank.
cya
bla!zilla
ich möchte in die Kommentarfunktion eine Checkbox einbauen, welche aktiviert sein muss, damit das Posting überhaupt gesendet werden kann. Wie kann ich sowas realisieren? Ich habe mich etwas umgesehen, finde aber keinen richtigen Ansatz. Ich nutze S9Y 1.3.
Vielen Dank.
cya
bla!zilla
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Re: Checkbox in Kommentarfunktion einbauen
Hi!
Das kannst Du alles über ein Plugin lösen, was grob so aussehen könnte:
Die DAtei unter plugins/serendipity_event_spamcheckbox/serendipity_event_spamcheckbox.php speichern und das Plugin aktivieren. Dann wird die Checbkxo ausgegeben und das Kommentar verworfen wenn sie nicht gesetzt ist.
Wenn Du die Checkbox nicht dort haben willst wo sie üblicherweise erscheint (unter dem Eingabeformular) kannst du auch die commentform.tpl templatedatei anpassen und deine checkbox irgendwo anders hinpacken.
Viele Grüße,
Garvin
Das kannst Du alles über ein Plugin lösen, was grob so aussehen könnte:
Code: Select all
<?php # $Id: serendipity_event_spamblock.php 1852 2007-08-14 18:43:00Z brockhaus $
if (IN_serendipity !== true) {
die ("Don't hack!");
}
class serendipity_event_spamcheckbox extends serendipity_event {
var $title = 'Anti-Spam Checkbox';
var $checkboxname = 'mycheckbox';
function introspect(&$propbag) {
global $serendipity;
$propbag->add('name', $this->title);
$propbag->add('description', '');
$propbag->add('stackable', false);
$propbag->add('author', 'Garvin Hicking');
$propbag->add('requirements', array(
'serendipity' => '1.0',
'smarty' => '2.6.7',
'php' => '4.1.0'
));
$propbag->add('version', '1.0');
$propbag->add('event_hooks', array(
'frontend_saveComment' => true,
'frontend_comment' => true,
));
}
function event_hook($event, &$bag, &$eventData, $addData = null) {
global $serendipity;
if (!isset($hooks[$event])) {
return false;
}
switch($event) {
case 'frontend_saveComment':
if ($addData['type'] != 'NORMAL') {
// Do not apply to Trackbacks.
return true;
}
if (!isset($_REQUEST[$this->checkboxname])) {
$eventData = array('allow_comments' => false);
$serendipity['messagestack']['comments'][] = 'Sie müssen die Checkbox aktivieren';
return false;
}
return true;
break;
case 'frontend_comment':
echo '<input type="checkbox" name="' . $this->checkboxname . '" value="true" /> Checkbox!<br />';
return true;
break;
}
}
}
Wenn Du die Checkbox nicht dort haben willst wo sie üblicherweise erscheint (unter dem Eingabeformular) kannst du auch die commentform.tpl templatedatei anpassen und deine checkbox irgendwo anders hinpacken.
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Hallo,
der Hinweis ist klasse. Danke dafür. Nur mit dem Einbinden hapert es. Die Checkbox soll schon unterhalb des Kommentarfeldes erscheinen, da wo auch die anderen beiden Buttons für die Benachrichtigung und das speichern der Eingaben ist. Nur da erscheint es nicht. Ein Hinweis??
Um das Rätsel aufzulösen: Der Button soll auf jeden Fall angehakt werden, da mit einer Aktivierung der Kommentator der Speicherung seiner IP-Adresse explizit zustimmt. Schönes, neues Datenschutzgesetz in Deutschland.
Danke und Gruß
bla!zilla
der Hinweis ist klasse. Danke dafür. Nur mit dem Einbinden hapert es. Die Checkbox soll schon unterhalb des Kommentarfeldes erscheinen, da wo auch die anderen beiden Buttons für die Benachrichtigung und das speichern der Eingaben ist. Nur da erscheint es nicht. Ein Hinweis??
Um das Rätsel aufzulösen: Der Button soll auf jeden Fall angehakt werden, da mit einer Aktivierung der Kommentator der Speicherung seiner IP-Adresse explizit zustimmt. Schönes, neues Datenschutzgesetz in Deutschland.
Danke und Gruß
bla!zilla
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Wie erwähnt, dann musst Du's in die commentform.tpl schreiben.
Viele Grüße,
Garvin
Wie erwähnt, dann musst Du's in die commentform.tpl schreiben.
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Ich habe mich vielleicht unklar ausgedrückt: Die Box erscheint gar nicht. Plugin ist eingebunden. Normalerweise müsste ich doch nichts in die commentform.tpl eintragen, oder? Das die Checkbox da erscheint sollte doch das Plugin schon übernehnen, oder habe ich das falsch verstanden?
Danke und Gruß
bla!zilla
Danke und Gruß
bla!zilla
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Das Plugin taucht also in der liste deiner installierten ereignisplugins auf, ja?
Genau, das plugin gibt die checkbox aus, unterhalb der eingabebox, sollte es zumindest.
Grüße,
Garvin
Das Plugin taucht also in der liste deiner installierten ereignisplugins auf, ja?
Genau, das plugin gibt die checkbox aus, unterhalb der eingabebox, sollte es zumindest.
Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Welches template benutzt du? Wie ist deine URL?
Möglicherweise hast Du ja in deiner commentform.tpl den hook deaktiviret den das plugin benötigt ("frontend_comment").
Grüße,
Garvin
Welches template benutzt du? Wie ist deine URL?
Möglicherweise hast Du ja in deiner commentform.tpl den hook deaktiviret den das plugin benötigt ("frontend_comment").
Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Ich benutze mein eigenes Template, ist eine Kopie vom Template "competition". URL ist www.blazilla.de.
Danke.
bla!zilla
Danke.
bla!zilla
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Argl. War ein Bug in dem Plugin-Code. Vor der Abfrage "if $hooks[$event]" fehlt folgende Zeile:
sonst gibts $hooks nämlich nich.
Grüße,
Garvin
Argl. War ein Bug in dem Plugin-Code. Vor der Abfrage "if $hooks[$event]" fehlt folgende Zeile:
Code: Select all
$hooks = &$bag->get('event_hooks');
Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
-
- Core Developer
- Posts: 30022
- Joined: Tue Sep 16, 2003 9:45 pm
- Location: Cologne, Germany
- Contact:
Hi!
Einfach den folgenden Absatz ergänzen:
Grüße,
Garvin
Einfach den folgenden Absatz ergänzen:
Code: Select all
<tr>
<td> </td>
<td class="serendipity_commentsLabel">
<input id="checkbox_remember" type="checkbox" name="serendipity[remember]" {$commentform_remember} /><label for="checkbox_remember">{$CONST.REMEMBER_INFO}</label>
{if $is_allowSubscriptions}
<br />
<input id="checkbox_subscribe" type="checkbox" name="serendipity[subscribe]" {$commentform_subscribe} /><label for="checkbox_subscribe">{$CONST.SUBSCRIBE_TO_THIS_ENTRY}</label>
{/if}
<br />
<input id="checkbox_mycheckbox" name="mycheckbox" type="checkbox" /><label for="checkbox_mycheckbox">Ja, ich will.</label>
</td>
</tr>
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/