Esta es una continuación de la pregunta sobre Cómo depurar: HEADER YA ENVIADO y GD2 . Específicamente cómo solucionar los siguientes errores (tenga en cuenta que la primera línea se ha agregado utilizando consejos de depuración anteriores para rastrear la fuente):
2014-02-04T14:26:06+00:00 DEBUG (7): Cannot send headers; headers already sent in /home/.../lib/Varien/Image/Adapter/Gd2.php, line 133
2014-02-05T16:14:32+00:00 DEBUG (7): HEADERS ALREADY SENT: < pre >
[0] /home/.../app/code/core/Mage/Core/Controller/Response/Http.php:52
[1] /home/.../lib/Zend/Controller/Response/Abstract.php:766
[2] /home/.../app/code/core/Mage/Core/Controller/Response/Http.php:83
[3] /home/.../app/code/core/Mage/Core/Controller/Varien/Front.php:188
[4] /home/.../app/code/core/Mage/Core/Model/App.php:354
[5] /home/.../app/Mage.php:683
[6] /home/.../public_html/index.php:87
</ pre >
Esa pregunta fue sobre cómo depurar este problema. Esta pregunta es sobre cómo solucionarlo. Según mi "respuesta" a esa pregunta, y después de haber realizado algunas pruebas adicionales en una instalación de Magento de vainilla, puedo confirmar que esto parece ser un error del núcleo de Magento (v1.7.0.2).
Simplemente administrar imágenes en páginas o bloques estáticos, usando el administrador de imágenes de página / bloque estándar de Magento provoca estos registros. Para reproducir, abra una página que tenga imágenes. Habrá uno de estos registrados por imagen en la página. Abra el administrador de imágenes y vea las imágenes cargadas; habrá otra para cada imagen mostrada.
El problema parece ser con esta función, que en mi lectura seguramente causará este error cada vez que se busca una imagen CMS para mostrarla en el tablero.
public function display()
{
header("Content-type: ".$this->getMimeType());
call_user_func($this->_getCallback('output'), $this->_imageHandler);
}
Si bien no parece tener ningún impacto en la tienda, prefiero no tratar esto como un "error benigno" (¡ya que a Microsoft le gusta llamar a cosas que no pueden corregir / corregir!). Supongo que podríamos modificar canSendHeader () en lib / Zend / Controller / Response / Abstract.php para no arrojar un error si $ file es gd2.php, ¡pero eso es solo un desagradable error!
Lo que parece es en algún momento antes de que se llame a canSendHeaders como parte de la visualización de imágenes CMS en el tablero, ya sea $ throw o $ this-> headersSentThrowsException debe establecerse como falso para que esto no genere una excepción.
¿Algunas ideas? ¿O esto es algo con lo que los propietarios de Magento han aprendido a vivir?