Closed staabm closed 5 years ago
Mir scheint, als funktioniert das nicht... bei einem Whoops kann ich beim Klick auf den Link zum Modul dieses im Backend öffnen. Leider jedoch nicht im Editor.
ist dein developer addon aktuell genug (min. 3.8.0)?
falls ja, könnte ich mir vorstellen dass es bei dir im konkreten fall an der leidereihenfolge der addons liegt, falls du diese "manipuliert" hast.
kannst du es mal lokal mit einer demo probieren?
Description / Beschreibung Kein Link aufs Dateisystem, sondern ins REDAXO-Backend bei einem Whoops im Template/Modul
Affected versions / Verwendete Versionen REDAXO: 5.7.1 PHP: 7.3 Browser: * AddOns: developer 3.8
Die Reihenfolge der Addons habe ich nicht manipuliert.
Hmm, ich kann das bei mir nicht reproduzieren, bei mir führt der Link ins Dateisystem.
gerade das Issue nochmals gelesen: Liegt es daran, dass ich kein YDeploy verwende? Sollte doch auch ohne funktionieren
Ich debugge es Mal, komme aber erst später dazu.
Ich habe es ohne ydeploy getestet.
ping
Ich habe mir nochmal eine Erinnerung erstellt und mir vorgenommen, bis zum Wochenende darauf zu antworten.
Dieser Bereich wird innerhalb eines Whoooops scheinbar mehrfach aufgerufen, sodass mir ein sinnvolles Debuggen nicht möglich erscheint. Ich bekomme hier ganz viele Logeinträge mit einem Aufruf erzeugt, wenn ich das hier bei deiner Code-Markierung einsetze:
rex_extension::register('EDITOR_URL', function (rex_extension_point $ep) {
if (!preg_match('@^rex:///(template|module|action)/(\d+)(?:/([^/]+))?@', $ep->getParam('file'), $match)) {
rex_logger::logError(E_WARNING, (string)$ep->getParam('file'), "", 24);
return null;
}
$type = $match[1];
$id = $match[2];
if (!$this->getConfig($type.'s')) {
rex_logger::logError(E_WARNING, (string)$this->getConfig($type.'s'), "", 32);
return null;
}
if ('template' === $type) {
$subtype = 'template';
} elseif (!isset($match[3])) {
rex_logger::logError(E_WARNING, "Line 39", "", 39);
return null;
} else {
rex_logger::logError(E_WARNING, "Line 42", "", 42);
$subtype = $match[3];
}
$path = rtrim(rex_developer_manager::getBasePath(), '/\\').'/'.$type.'s';
if (!$files = rex_developer_synchronizer::glob("$path/*/$id.rex_id", GLOB_NOSORT)) {
rex_logger::logError(E_WARNING, "Line 49", "", 49);
return null;
}
$path = dirname($files[0]);
if (!$files = rex_developer_synchronizer::glob("$path/*$subtype.php", GLOB_NOSORT)) {
return null;
}
return rex_editor::factory()->getUrl($files[0], $ep->getParam('line'));
}, rex_extension::LATE);
Darunter auch leere Logeinträge:
2019-08-17 15:09:28 | Warning |
2019-08-17 15:09:28 | Warning |
2019-08-17 15:09:28 | Warning |
2019-08-17 15:09:28 | Warning |
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\cache\addons\structure\3.1.content
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\cache\addons\structure\3.1.content
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\addons\structure\plugins\content\lib\article_content.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\addons\structure\plugins\content\lib\article_content.php
2019-08-17 15:09:28 | Warning |
2019-08-17 15:09:28 | Warning |
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\addons\structure\plugins\content\lib\article_content_base.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\addons\structure\plugins\content\lib\article_content_base.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\addons\structure\plugins\content\boot.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\addons\structure\plugins\content\boot.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\core\lib\extension.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\core\lib\extension.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\core\frontend.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\core\frontend.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\core\boot.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\redaxo\src\core\boot.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\index.php
2019-08-17 15:09:28 | Warning | D:\xampp\htdocs\website.de\index.php
2019-08-17 15:09:30 | Warning | D:\xampp\htdocs\website.de\redaxo\data\core\system.log
Die leeren Einträge kommen sicherlich aus diesem Part:
if (!$this->getConfig($type.'s')) {
rex_logger::logError(E_WARNING, (string)$this->getConfig($type.'s'), "", 32);
return null;
}
Wenn die Config nicht gesetzt ist (also false oder null), dann loggst du diesen Configwert, also einen leeren String. Somit wissen wir, dass an dieser Stelle teilweise ausgestiegen wird. Sieht für mich auf den ersten Blick so aus, als wäre in den Developer Einstellungen das Syncing gar nicht aktiv. Das kannst du aber vermutlich ausschließen?
Genau. Sync wird ausgeführt. Brauchst du bestimme Einstellungen zum Nachstellen?
Der sync über das theme-Add-on ist aktiv, falls das Querschießen könnte.
Das heißt in den Developer-Einstellungen ist das Syncing nicht aktiv? Dann wäre das der Grund. (Weiß nicht wie das beim Theme-Addon ist)
@skerbis ist mein Issue vlt ein Theme-Problem?
das theme-addon deaktiviert scheinbar in der tat das native syncing des developer-addons: https://github.com/FriendsOfREDAXO/theme/blob/d2c020477241586ffdc650635bcf7051c6b1b9c3/lib/developer/theme_manager.php#L12-L21
Ich denke, das kann man hier im Addon nicht sinnvoll lösen, sondern müsste eher im theme-Addon gelöst werden. Entweder indem die Extension an dem EP in das theme-Addon dupliziert wird (dort dann mit den eigenen Einstellungen), oder indem das theme-Addon nicht mehr die Sync-Einstellungen überschreibt. War das nicht nur ein Workaround, da man den Developer-Pfad nicht programmatisch ändern konnte? Inzwischen geht das ja. Ping @DanielWeitenauer
Hier schließe ich erstmal.
Ich schaue es mir die Tage an. Diese Woche bin ich allerdings noch unterwegs.
Module und templates via „im editor öffnen“ buttons ermöglichen (für lokale installation)
Wenn developer in kombination mit ydeploy verwendet wird, sollten die editorUrls so umgebogen werden dass automatisch die korrekten lokalen files geöffnet werden