[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REXPoll für Redaxo 4.3.1 - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Rumi
Beiträge: 73
Registriert: 20. Aug 2010, 01:35

REXPoll für Redaxo 4.3.1

10. Jan 2012, 19:07

Hallo

ich versuche REXPoll für 4.3.1 anzupassen. Leider weiss ich kaum was über die internen Befehle von Redaxo, und auch nicht viel über objektorientiertes Programmieren. PHP kann ich aber einigermassen.

Ich bin recht weit gekommen, aber nun kommt ständig die Fehlermeldung "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LIMIT 2' at line 1" wenn ich was speichern oder übernehmen will. Auch sind die Buttons "Speichern" etc. dann nicht mehr sichtbar. Die URL wechselt zu index.php, statt die GET-Variablen anzuzeigen, und es wird nichts in die DB geschrieben. Offenbar wird beim versuchten Speichern die Variable $fID nicht übergeben, und ich verstehe nicht warum. Unten der (gekürzte) Code, meine Änderungen sind gekennzeichnet.

Seltsam ist dass alles funktioniert wenn ich $fID beispielsweise gleich 9 setze, UND $fID ist immer korrekt im Programm (ich kann $fID per echo aufrufen, und die Variable wird korrekt angezeigt - siehe Code). Aber irgendwie funktionierts doch nicht richtig.

Um Hilfe wäre ich sehr dankbar.

Hier ein Ausschnitt des Codes:

Code: Alles auswählen

<?php

//------------------------------> Parameter

$Basedir = dirname(__FILE__);
$field_id = rex_request('field_id', 'int');

//------------------------------> Eintragsliste
if ($func == '')
{
	$list = new rex_list('SELECT * FROM '.$REX['ADDON']['dbpref']['rexpoll'].'rexpoll');
	
	$imgHeader = '<a href="'. $list->getUrl(array('func' => 'add')) .'"><img src="media/metainfo_plus.gif" alt="add" title="add" /></a>';
	$list->addColumn(	$imgHeader, 
						'<img src="media/metainfo.gif" alt="field" title="field" />', 
						0, 
						array('<th class="rex-icon">###VALUE###</th>',
								'<td class="rex-icon">###VALUE###</td>')
					);					
	$list->setColumnParams	(	$imgHeader, 
								array('func' => 'edit', 'fID' => '###fID###')
							);
	$list->setColumnLabel('fID', "ID");
	$list->setColumnLayout	(	'fID',
								array('<th class="rex-icon">###VALUE###</th>','<td class="rex-icon">###VALUE###</td>')
							);
	$list->setColumnLabel('fNAME', "Fragen");
	$list->setColumnParams('fNAME', array('func' => 'edit', 'fID' => '###fID###'));
	$list->setColumnLabel('fFIELDS', "Antworten");
	$list->show();
}
//------------------------------> Formular
elseif ($func == 'edit' || $func == 'add')
{	


// ******* NEU BEGINN ********

	if ($func == 'edit') $fID = $_GET['fID'];
	if ($func == 'add') $fID = intVal($fID);
//	echo (int)$fID; // GIBT $fID IMMER KORREKT AUS
//	$fID = 9; // DAMIT FUNKTIONIERT ALLES BESTENS - ES WERDEN ABER NATÜRLICH IMMER NUR DIE DATEN VON ID 9 ANGEZEIGT

// ******* NEU ENDE ********


$form = new rex_form($REX['ADDON']['dbpref']['rexpoll']."rexpoll","REXpoll","fID=".$fID,"post",false);

	$field = &$form->addTextField('fNAME');
    $field->setLabel("Frage");
    
	$field = &$form->addTextAreaField('fFIELDS');
	$field->setLabel("Antworten");
	
	if($func == 'edit')
    {	$form->addParam('fID', $fID);
    }
	$form->show();	
}
?>

Hirbod
Beiträge: 435
Registriert: 15. Jan 2008, 14:46

Re: REXPoll für Redaxo 4.3.1

11. Jan 2012, 04:51

Hi Rumi,

das Script verwendet eine veraltete rex_list / rex_form Funktion. Diese ist mittlerweile anders gelöst. Da musst du schon etwas mehr anpassen. Sieht aus als würde das alte AddOn noch auf dem addon_framework basieren, dies ist mit neueren Redaxoversionen jedoch nicht kompatibel.

http://www.redaxo.org/de/doku/tutorials ... -rex_form/

Da findest du alles was notwendig ist.

LG
Hirbod

Rumi
Beiträge: 73
Registriert: 20. Aug 2010, 01:35

Re: REXPoll für Redaxo 4.3.1

11. Jan 2012, 11:27

Hirbod hat geschrieben:Hi Rumi,

das Script verwendet eine veraltete rex_list / rex_form Funktion. Diese ist mittlerweile anders gelöst. Da musst du schon etwas mehr anpassen. Sieht aus als würde das alte AddOn noch auf dem addon_framework basieren, dies ist mit neueren Redaxoversionen jedoch nicht kompatibel.

http://www.redaxo.org/de/doku/tutorials ... -rex_form/

Da findest du alles was notwendig ist.

LG
Hirbod
Danke, ich mach mich dran!

Rumi
Beiträge: 73
Registriert: 20. Aug 2010, 01:35

Re: REXPoll für Redaxo 4.3.1

15. Jan 2012, 13:49

Also, ich bin schon etwas weiter - es kommt nun keine mySQL Fehlermeldung mehr. Neuer Eintrag funktioniert inzwischen einwandfrei.

Was aber nun seltsam ist: Wenn ich im Edit-Modus was ändere wird nicht der bestehende Eintrag geändert, sondern der ganze Eintrag als neuer Eintrag in die DB geschrieben, so als wäre ich im Add-Modus gewesen.

Der Code sieht inzwischen so aus (den Code für die Resultat-Anzeige habe ich weggelassen):

Code: Alles auswählen

<?php

//------------------------------> Parameter
if(!isset($prefix))
{
  //trigger_error('Fehler: Prefix nicht definiert!', E_USER_ERROR);
  //exit();
}


$Basedir = dirname(__FILE__);
$field_id = rex_request('field_id', 'int');

//------------------------------> Eintragsliste
if ($func == '')
{
$list = rex_list::factory('SELECT * FROM '.$REX['ADDON']['dbpref']['rexpoll'].'rexpoll');
	
	$imgHeader = '<a href="'. $list->getUrl(array('func' => 'add')) .'"><img src="media/metainfo_plus.gif" alt="add" title="add" /></a>';
	$list->addColumn(	$imgHeader, 
						'<img src="media/metainfo.gif" alt="field" title="field" />', 
						0, 
						array('<th class="rex-icon">###VALUE###</th>',
								'<td class="rex-icon">###VALUE###</td>')
					);					
	$list->setColumnParams	(	$imgHeader, 
								array('func' => 'edit', 'fID' => '###fID###')
							);
	$list->setColumnLabel('fID', "ID");
	$list->setColumnLayout	(	'fID',
								array('<th class="rex-icon">###VALUE###</th>','<td class="rex-icon">###VALUE###</td>')
							);
	$list->setColumnLabel('fNAME', "Fragen");
	$list->setColumnParams('fNAME', array('func' => 'edit', 'fID' => '###fID###'));
	$list->setColumnLabel('fFIELDS', "Antworten");
	$list->show();
}


elseif ($func == 'edit' || $func == 'add')
{	
	if ($func == 'edit') $fID = $_GET['fID'];
	$fID = intVal($fID);
//	echo (int)$fID; // GIBT $fID KORREKT AUS
//	$fID = 9; // DAMIT FUNKTIONIERT ALLES - ES WERDEN ABER NATUERLICH IMMER NUR DIE DATEN VON ID 9 ANGEZEIGT

$form = rex_form::factory($REX['ADDON']['dbpref']['rexpoll']."rexpoll","REXpoll","fID=".$fID,"post",false);

	$field = &$form->addTextField('fNAME');
    $field->setLabel("Frage");
    
	$field = &$form->addTextAreaField('fFIELDS');
	$field->setLabel("Antworten");
	
	if($func == 'edit')
    {	$form->addParam('fID', $fID);
    }
	$form->show();	
}

?>
In der URL erscheint nach dem ungewollten Neueintrag fID=0, warum auch immer.

Wiederum funktioniert alles einwandfrei wenn ich $fID eigens definiere ($fID = 9;). Diese fID erscheint dann auch korrekt in der URL.

Ich hab den Eindruck das Problem liegt bei

if($func == 'edit')
{ $form->addParam('fID', $fID);
}

aber ich kriegs nicht besser hin.

Ich bin sehr dankbar um jede Hilfe!

Liebe Grüsse
Rumi

Rumi
Beiträge: 73
Registriert: 20. Aug 2010, 01:35

Re: REXPoll für Redaxo 4.3.1

20. Jan 2012, 15:04

Bin leider noch immer nicht weiter gekommen und daher nach wie vor froh um jede Hilfe!

Benutzeravatar
Cheffchen
Beiträge: 1809
Registriert: 3. Mär 2009, 13:51
Wohnort: Berlin
Kontaktdaten: Website

Re: REXPoll für Redaxo 4.3.1

20. Jan 2012, 17:26

Hallo,

ich hatte zwar gerade ein eigen Umfrage gebaut aber REXPoll hatt ich auch mal vor jahren im einsatzt,
Ich würde es mir ja mal mit meinen bescheidenen wissen anschauen aber leider finde ich das ADDON nirgens mehr :O)

Cheffchen

Rumi
Beiträge: 73
Registriert: 20. Aug 2010, 01:35

Re: REXPoll für Redaxo 4.3.1

21. Jan 2012, 12:34

Cheffchen hat geschrieben:Hallo,

ich hatte zwar gerade ein eigen Umfrage gebaut aber REXPoll hatt ich auch mal vor jahren im einsatzt,
Ich würde es mir ja mal mit meinen bescheidenen wissen anschauen aber leider finde ich das ADDON nirgens mehr :O)

Cheffchen
Danke für Deine Bereitschaft, und vor allem Danke für die Mitteilung dass Du das AddOn nirgends finden konntest! Auf der Suche nach ihm hat mich Google nämlich zu diesem Thread geführt:

http://www.redaxo.org/de/forum/addons-f ... 12641.html

Und die darin aufgeführte Zeile

$fID = rex_request('fID', 'int');

anstelle meines $_GET-Eintrags scheint die Sache erledigt zu haben.

Ich werde das für 4.3.1 umgebaute RexPoll AddOn hier hochladen sobald ich sicher bin dass es richtig funktioniert.

Danke Euch allen für die Hilfe (auch und gerade in der Form "würde ja gerne" :-))!
Rumi

Zurück zu „Allgemeines [R4]“