Backend > Zugriff auf Session-Daten - ['CURRENT']['IDS']
Hallo zusammen,
im Rahmen eines Updates von einer 3.5 auf die 4.7 stehe ich vor dem Problem, dass ich an Daten nicht mehr dran komme. Kurz zur Erklärung:
Unter 3.5. sah mein Aufruf so aus:
PHP-Code:
if ($this->Input->get('key') == 'export')
{
$session = Session::getInstance()->getData();
$arrCurrentIds = $session['CURRENT']['IDS'];
$arrSqlResult = array();
foreach ($arrCurrentIds as $value)
{
$tmpArr = $this->getSqlFromCurrentId($value);
$arrSqlResult[] = $tmpArr[0];
// Mach Irgendwas....
}
}
Wenn ich Session::getInstance unetr 4.7 genau so aufrufe erhalte ich aber leider keinen Key mehr mir CURRENT. Hat mir jemand einen Tip, wie ich an die ID's herankomme? Das sind quasi die ID's der Einträge im Backend die z.B durch einen Filter oder eine Suche eingegrenzt dargestellt werden.
1000 Dank schon mal für eure Hilfe :)
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
Spooky
Soweit ich weiß stehen in CURRENT IDS nur die IDs wenn man "Mehrere bearbeiten" macht.
Ja scheint wohl so:
Anhang 22484
Mist... dann ist das wohl eine Veränderung zu 3.5. Naja wird seine Gründe haben :)
Hast du ne Idee wie ich dann die ID's herankommen, welche aktuell durch Suche, Filter oder Sortierung angezeigt werden?
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat von
Spooky
Hm, ich glaube nicht, dass das in 3.5 anders war? Zumindest finde ich im Code keinen Hinweis darauf.
Puh... da bin ich ehrlich gesagt ratlos. Mir würde zumindest kein vernünftiger Grund dafür einfallen warum das geändert werden sollte :)
Ich kann nur soviel sagen, dass ich mir 1000% sicher bin, dass die Funktion so war:
- Redakteur klickt im BE auf die Anwendung und sieht eine Liste von Einträgen.
- Er kann, wenn er mag filtern und somit die Ergebnismenge eingrenzen
- Danach kann er aus der angezeigten Ergebnismenge über ein eigens dafür erstelltes BE Modul einen Excel-Export starten
PHP-Code:
/**
*
* @param object
* @return string
*/
public function exportDefault(DataContainer $dc)
{
// Wenn der Exportparameter nicht gesetzt ist
if ($this->Input->get('key') != 'export')
{
return '';
}
// Wenn der Exportparameter gesetzt ist
if ($this->Input->get('key') == 'export')
{
// Hole die Session und extrahiere daraus die ID's der gefilterten Datenmeng
$session = Session::getInstance()->getData();
$arrCurrentIds = $session['CURRENT']['IDS'];
// Durchlaufe die selektieren Id's
$arrSqlResult = array();
foreach ($arrCurrentIds as $value)
{
$tmpArr = $this->getSqlFromCurrentId($value);
$arrSqlResult[] = $tmpArr[0];
}
// Instanziere die neue ExcelKlasse
$objPHPExcel = new PHPExcel();
// Baue das Excelsheet zusammen
$objPHPExcel = $this->getExcelObjektValues($objPHPExcel);
$objPHPExcel = $this->getExcelObjektValuesArray($objPHPExcel, $arrSqlResult);
$objPHPExcel = $this->getExcelObjektProperties($objPHPExcel);
// Generiere das Excelsheet
$this->generateExcelSheet($objPHPExcel);
}
}
Das ganze hat garantiert ohne das Verwendung von "mehrere Bearbeiten" funktioniert:
Anhang 22485