Wenn beim Versuch Shopware zu updaten, der Prozess-Dialog ewig läuft und dann irgendwann das Backenend einfach neu lädt, kann es am media/ Verzeichnis liegen. Ich hab, als das Problem bei meinem lokalen Entwickler-Shop auftrat erst einmal alle leeren Verzeichnisse entfernt mit
sudo find media/ -type d -empty -delete
Dann noch mal die Rechte für die Dateien neu gesetzt (wegen über SCP hochgeladene Plugins oder so) und nachdem das Backend zwei mal neugeladen wurde, lief das Update sofort und ohne Probleme an. Hat mich zwar einige Stunden gekostet, bis alles soweit war, aber endlich wieder Updaten zu können ist es auch wert.
Funktioniert bei mir mit Backend und API Aktionen
/**
* @return string
*/
public function getCurrentBackendUserName(){
$name = 'unkown user';
try{
/** @var \Shopware_Components_Auth $auth */
$auth = Shopware()->Container()->get('Auth');
if($auth->getIdentity() && isset($auth->getIdentity()->username)){
$name = $auth->getIdentity()->username;
}
}
catch(\Exception $e){
$this->logError($e);
}
return $name;
}
Das ist an sich sehr einfach, da man diese Funktion nicht erst in ExtJS einbinden muss, sondern direkt eine globale JavaScript-Variable ansprechen kann.
Shopware.Notification.createGrowlMessage('title', 'message', 'growl');
Besser sollte man sich im Controller die Messages separat anlegen. Da kann man auch direkt {s} Smarty-Tags drin verwenden für die Text-Snippets.
messages:{
success:{
title:'',
error:'',
growl:''
},
fail:{
title:'',
error:'',
growl:''
}
},
Ext.Ajax.request({
url: "",
params: {},
success: function(response, opts){
var result = Ext.decode(response.responseText);
if(result.success){
Shopware.Notification.createGrowlMessage(msgs.success.title, msgs.success.error, msgs.success.growl);
}
else{
Shopware.Notification.createGrowlMessage(msgs.fail.title, msgs.fail.error, msgs.fail.growl);
}
}
});
Damit ist dieser Teil an sich sehr viel einfacher als der Rest der Backend-UI Entwicklung.
Falls man bei der Shopware Backend UI Entwicklung diesen Fehler sieht...
Unable to find parent for query Array ( [controller] => Items )
In der menu.xml den Eintrag für <parent identifiedBy="controller"> nochmals prüfen.