Hallo liebe Mitglieder,
Für ein Projekt im Rahmen einer Online-Community möchte ich die auf die „cwt_community“ aufbauende Extension „cwt_amihot“ nutzen.
Die Installation hat soweit funktioniert.
Nachdem folgende Seiten angelegt und die „PID’s“ zugewiesen wurden, treten diese sichtbar in Erscheinung:
AMIHOTT
MYAMIHOT
AMIHOT_LISTVIEW
AMIHOT_TOP10VIEW
AMIHOT_VOTINGVIEW
Möchte ich nun aber innerhalb der Seite „MYAMIHOT“ im Frontend einen neuen Record anlegen, spuckt mein Webbrowser nach der Anfrage folgende Meldung aus:
Fatal error: Call to undefined method tx_cwtfeedit_pi1::createblankrecord() in C:\xampp\htdocs\soccer\typo3conf\ext\cwt_amihot\pi1\class.tx_cwtamihot_pi1.php on line 1111
Den PHP-Code in der vom Browser genannten Datei habe ich mir auch schon angeschaut, jedoch reichen meine PHP-Kentnisse nicht, um das Problem zu beheben.
Zeile 1111 in class.tx_cwtamihot_pi1.php beschreibt folgendes:
$uid = tx_cwtfeedit_pi1::createBlankRecord($cruser_id, $table);
Vielleicht hat ja jemand von Euch eine Idee?
Für ein wenig Hilfe wäre ich Euch sehr dankbar! 🙂
Hallo schokobubba,
es liegt daran das die Methode "createBlankRecord" entfernt wurde. In früheren Versionen von "cwt_feedit" war diese noch vorhanden. Dieses sah in einer früheren Version etwa so aus:
/* createBlankRecord($cruser_id, $table)
*
* This function creates a blank record in the target table. This function
can be called
* without instatiating this class.
*
* @param $cruser_id The fe user uid, of the user, that wants to create
the record
* @param $table The table, where the record will be created.
* @return $uid The uid of the record we have just created.
*/
function createBlankRecord($cruser_id, $table) {
//Get globals
//$cruser_id = $this->cruser_id;
//$table = $this->table;
//Get the timestamp
$time = time();
//Do the query
$res = $this->doDatabaseUpdateQuery("INSERT INTO ".$table." (crdate,
cruser_id, tstamp) VALUES (".$time.", ".$cruser_id.", ".$time.")");
//Get the uid of the record, that we have just created
$uid = $this->doDatabaseQuery("SELECT uid FROM ".$table." WHERE crdate =
".$time." AND cruser_id = ".$cruser_id);
return $uid[0]["uid"];
}
Diese habe ich manuell wieder eingebunden. Anschließend kommt aber folgender Fehler:
Fatal error: Call to a member function pi_getPageLink() on a non-object in D:\apachefriends\xampp\htdocs\scc\typo3conf\ext\cwt_feedit\pi1\class.tx_cwtfeedit_pi1.php on line 484
In dieser Zeile steht folgendes:
$code .= '<input name="cancel" type="BUTTON" value="'.$this-" />pi_getLL("back_value").'" onClick="location.replace(\''.$this->parent_class->pi_getPageLink($this->back_pid,"", $this->back_values).'\')">';
Hast du eventuell schon etwas herausgefunden bzw. kennt jemand anderes die Lösung? 😢
Ich bin auch grad auf dieses Problem gestoßen.
das fehlende createBlankRecord einfach an der Stelle, an der es aufgerufen wird, auszuimplementieren hilft nichts, denn dann werden beim Anlegen eines neuen Eintrags zwei (und im Falle von Eingabefehlern noch weitere) Leereinträge angelegt (da dieser Code jedes Mal durchlaufen wird).
Ich konnte es mit folgenden Änderungen zum Laufen bringen (cwt_amihot 0.2.2 und cwt_feedit 1.1.0):
in class.tx_cwtamihot_pi1,Zeile 1111ff den gesamten Block
if (!$uid) {
[...]
}
löschen/auskommentieren, und direkt darunter die Zeile
$form = new tx_cwtfeedit_pi1($table,$items,$uid,$cruser_id,$backID,array(),$this,array());
ersetzen durch
$form = t3lib_div::makeInstance('tx_cwtfeedit_pi1');
$form->init($table,$items,$uid,$cruser_id,$backID,array(),$this,array(), !$uid, false, $pid);
Damit scheint es zu funktionieren...