Hi Christoph
hast du die aktuellste drwiki Version ?
in der Funktion getUid wird zumindest die hoechste id genommen (order by .. desc limit 1)
ebenso die Funktion showlist
da koenntest dir per $showAllVersions=2 immer die aelteste Version hohlen ..
komisch
ich verwend Typo3 4.0.2 und dr_wiki 1.2.0
Gruessle TOm
Hallo TOm,
ich will ja immer die neuste/jüngste Version mit der höchsten ID. Das wäre ja o.k., leider passiert das Gegenteil es wird immer die älteste angezeigt. Ich arbeite auch mit TYPO3 4.0.2 und dr_wiki 1.2.0.
Zwischenzeitlich habe ich auf einem anderen Rechner noch einmal einen frischen XAMPP (in der neusten Version 1.5.4a - der Installer) aufgesetzt und Typo3 mit YAML sowie dr_wiki installiert. Das Ergebnis bzw. das Problem bleibt das gleiche.
Was nun?
Hi Christoph
was passiert wenn du einen Query an deine DB ohne dem order by Statement schickst ? sortiert er da auf oder absteigend ?
Gruessle Tom
Hi Tom,
habe im phpMyAdmin eine Abfrage auf die Tabelle tx_drwiki_pages gemacht. Der Text der Wiki steht ja da im Feld "body". Eine Abfrage darauf (SELECT * FROM tx_drwiki_pages` WHERE `body` LIKE '%ein Begriff%' LIMIT 0 , 30) führt zu einer Ausgabe die aufsteigend nach dem Feld UID sortiert ist (1,2,4,5,6,8,usw.)
Ist es das was du dazu wissen wolltest?
Gruß
Christoph
Hi Christoph
aehm ja .. ich glaub ich hab da grad an was andres gedacht .. sorry des fuehrt bei deinem Problem glaubich nicht weiter 🙁
hmm allerdings faellt mir auhc grad nix andres schlaues mehr ein was du mit deinem Problem machen kannst
vielleicht weiss ja jemand anders noch was .. gibt ja doch n paar die dr_wiki einsetzen
wenn mir doch noch was einfaellt meld ich mich, wenn du ne Loesung bekommst post sie einfach hier rein 🙂
Gruessle TOm
Hi Tom,
ja schade, ich hatte schon Hoffnung gehegt, das ich das heute noch in den Griff krieg. Aber egal, vielen Dank erst mal, ich hoffe jemand anderes hat vielleicht noch eine Idee.
tschö
Christoph
Hallo TOm und alle die das noch interessiert,
habe scheinbar die Lösung für mein Problem gefunden. Wenn ich in der class.tx_drwiki_pi1.php bei der Abfrage:
// The newest version has the highest uid
$query = "select MAX(uid) as uid from tx_drwiki_pages";
$query .= " WHERE tx_drwiki_pages.pid IN (".$pidList.")".chr(10). $this->cObj->enableFields("tx_drwiki_pages").chr(10);
$query .= " AND keyword = '" . trim($keyword) . "' order by uid DESC LIMIT 1";
am Ende das "DESC LIMIT 1" raushaue, funktioniert die Wiki wie gewünscht. Es liegt also an dieser Einschränkung. Leider weiß ich gar nicht so genau was das "DESC LIMIT 1" bewirkt.
Vielleicht kann mir da jemand weiterhelfen.
Schöne Grüsse
Chris
Hallo Chris
DESC ist die Abkuerzung fuer Descending und legt die Sortierreihenfolge fest, sollte eigentlich schon desc sein damit die hoechste ID als erstes kommt
LIMIT 1 beschraenkt die Rueckgabe auf einen Datensatz
aber schoen dass es bei dir geklappt hat
Gruessle TOm
Hallo zusammen
Mitlerweile wird das dr_wiki in der Version 1.4.5 angeboten... Habe aber den gleichen Effect wie oben beschrieben. Leider hilft der CodeHack auch nicht... da der Aufruf nicht mehr der selbe ist...
Und erlich gesagt kann ich mir nicht vorstellen, dass ein solcher "Fehler" solche Versionssprünge überlebt hätte.
Also gehe ich davon aus, das ich was falsch konfiguriert habe. Rsp. eigentlich habe ich nichts configuriert, lediglich die Extension installiert, und ausprobiert.
Weiss jemand wie man es richtig machen sollte?
In Version 1.4.5 sieht der Code etwas anders aus... hier die lösung:
function getUid($keyword)
{
$pidList = $this->pi_getPidList($this->conf["pidList"], $this->conf["recursive"]);
$keyword = $GLOBALS['TYPO3_DB']->fullQuoteStr($keyword,'tx_drwiki_pages');
// The newest version has the highest uid
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('MAX(uid) AS uid','tx_drwiki_pages',
'tx_drwiki_pages.pid IN ( '.$pidList.')'.$this->cObj->enableFields("tx_drwiki_pages").' AND keyword='.$keyword,
'','uid DESC','1');
$row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
return $row["uid"];
}
'','uid DESC','1'); muss in '','uid',''); geändert werden!
PS: Habs doch noch geschafft ;-)