Неправильная ссылка на веб-интерфейс для изображения, загруженного с помощью редактора Wysiwyg в пользовательский модуль! - PullRequest
0 голосов
/ 06 июля 2011

M получаю это:

<img alt="" }}="" es_3.jpg="" wysiwyg="" src="{{media url=">

В своей форме я добавил этот код

$wysiwygConfig = Mage::getSingleton('cms/wysiwyg_config')->getConfig(

     array('tab_id' => 'form_section')

);

$wysiwygConfig["files_browser_window_url"] = Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg_images/index');

$wysiwygConfig["directives_url"] = Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg/directive');

$wysiwygConfig["directives_url_quoted"] = Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/cms_wysiwyg/directive');

$wysiwygConfig["widget_window_url"] = Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/widget/index');

$wysiwygConfig["files_browser_window_width"] = (int) Mage::getConfig()->getNode('adminhtml/cms/browser/window_width');

$wysiwygConfig["files_browser_window_height"] = (int) Mage::getConfig()->getNode('adminhtml/cms/browser/window_height');

$plugins = $wysiwygConfig->getData("plugins");

$plugins[0]["options"]["url"] = Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/system_variable/wysiwygPlugin');

$plugins[0]["options"]["onclick"]["subject"] = "MagentovariablePlugin.loadChooser('".Mage::getSingleton('adminhtml/url')->getUrl('adminhtml/system_variable/wysiwygPlugin')."', '{{html_id}}');";

$plugins = $wysiwygConfig->setData("plugins",$plugins);



  $fieldset->addField('longdescription', 'editor', array(

      'name'      => 'longdescription',

      'label'     => Mage::helper('press')->__('Description'),

      'title'     => Mage::helper('press')->__('Description'),

      'style'     => 'width:500px; height:300px;',

      'config'    => $wysiwygConfig,



    ));

Мне все еще не ясно, о коде выше, но я скопировал его откуда-то, но я знаю, что он позволяет просматривать файлы изображений вместо того, чтобы писать собственный URL.

После этого я просто называю это во внешнем интерфейсе так:

<?php echo $item["longdescription"]; ?>

Я получаю текст, но не изображение, а для изображения я получаю неработающую ссылку, указанную вверху.

Я что-то упустил? если да то что?

Ответы [ 3 ]

2 голосов
/ 29 февраля 2012

добавить этот код:

<?php $_cmsHelper = Mage::helper('cms');?>

<?php $_process = $_cmsHelper->getBlockTemplateProcessor();?>

<?php echo $_process->filter($item["longdescription"]); ?>
0 голосов
/ 27 ноября 2013

У меня была такая же проблема сегодня.Оказывается, Mage_Adminhtml_Cms_WysiwygController::directiveAction() пытается создать изображение в соответствии с URL.Эта функция вызывает Varien_Image_Adapter_Gd2::open(), которая, в свою очередь, пытается открыть файл. Здесь все идет не так:

Адаптер изображения пытается получить информацию об изображении, например размер изображения и тип пантомимы.Но ... когда ваш сайт находится на локальном хосте или в бродячей коробке или что-то в этом роде, сервер пытается getimagesize('http://www.domain.com/image.jpg') вместо getimagesize('/Users/john/sites/domain.com/image.jpg') (например).

Исправление для этого - переопределитьdirectiveAction() в вашем собственном модуле, чтобы добавить еще один улов перед выдачей исключения:

public function directiveAction()
{
    $directive = $this->getRequest()->getParam('___directive');
    $directive = Mage::helper('core')->urlDecode($directive);
    $url = Mage::getModel('core/email_template_filter')->filter($directive);
    try {
        $image = Varien_Image_Adapter::factory('GD2');
        $image->open($url);
        $image->display();
    } catch (Exception $e) {
        // Try to get an absolute path:
        $path = Mage::getBaseDir().'/'.preg_replace('/http:\/\/(.*)\//Ui', '', $url);
        $image = Varien_Image_Adapter::factory('GD2');
        $image->open($path);
        $image->display();
    } catch (Exception $e) {
        $image = Varien_Image_Adapter::factory('GD2');
        $image->open(Mage::getSingleton('cms/wysiwyg_config')->getSkinImagePlaceholderUrl());
        $image->display();
    }
}

Приятный маленький бонус: битые ссылки в вашем админе теперь тоже исчезли!; -)

0 голосов
/ 07 июля 2011

Похоже, вы где-то ломаетесь в кавычках, как вы передаете изображение / URL-адрес изображения? Если вы посмотрите прямо здесь: alt = ""}} = "" es_3.jpg = "" вы можете увидеть, что вы где-то проходите в закрывающих скобках и полностью пропускаете SRC. Попробуйте VAR_EXPORTing $ item и покажите, что у вас есть.

...