Forms 在实现Sozfo TinyMCE解决方案时,类Sofzo_From not found error

Forms 在实现Sozfo TinyMCE解决方案时,类Sofzo_From not found error,forms,zend-framework,tinymce,textarea,Forms,Zend Framework,Tinymce,Textarea,我正在尝试使用中提到的解决方案实现TinyMCE到文本区域。但当我尝试扩展Sofzo_表单时,我得到以下错误: Fatal error: Class 'Sozfo_Form' not found in /home/foldername/public_html/application/forms/PageForm.php on line 4 到目前为止我做了什么- 已将Sofzo文件上载到具有以下目录结构的库 /图书馆 ../Sozfo ../Form.php ../../Form ../..

我正在尝试使用中提到的解决方案实现TinyMCE到文本区域。但当我尝试扩展Sofzo_表单时,我得到以下错误:

Fatal error: Class 'Sozfo_Form' not found in /home/foldername/public_html/application/forms/PageForm.php on line 4
到目前为止我做了什么-

已将Sofzo文件上载到具有以下目录结构的库

/图书馆
../Sozfo
../Form.php
../../Form
../../../Element
../../../TinyMce.php
../../View
../../../Helper
../../../Exception.php
../../../FormTinyMce.php
../../../TinyMce.php

在application.ini中加载类作为

Autoloadnamaspaces[] = "Sofzo_"
并在引导中作为

 $autoLoader = Zend_Loader_Autoloader::getInstance();
    $autoLoader->registerNamespace('Zend_');
    $autoLoader->registerNamespace('SF_');
    $autoLoader->registerNamespace('CMS_');
    $autoLoader->registerNamespace('Sofzo_');

    $loader = new Zend_Loader_PluginLoader();
    $loader->addPrefixPath('Zend_View_Helper', 'Zend/View/Helper/')
           ->addPrefixPath('Storefront_View_Helper',
                           'application/modules/storefront/views/helpers')
                    ->addPrefixPath('Sozfo_Form', 'Sozfo/');

                    $view=new Zend_View();
                   $view->addHelperPath('Sozfo/View/Helper', 'Sozfo_View_Helper'); 
但是当我试图将Sofzo_形式扩展为Page_形式时

class Form_PageForm extends Sozfo_Form { }
多亏了Tim Fountain,这个问题才得以解决。但是现在当我加载一个元素作为

$this->addElement('tinyMce', 'message', array(
        'label' => 'Message',
        'required' => true,
        'cols' => '50',
        'rows' => '10',
        'editorOptions' => new Zend_Config_Ini(APPLICATION_PATH . '/configs/tinymce.ini', 'moderator')
    ));
我得到以下错误

Plugin by name 'FormTinyMce' was not found in the registry
通读原始站点中的几条评论,据说它们是在添加

$view->addHelperPath('Sozfo/View/Helper', 'Sozfo_View_Helper');

引导。我已经这么做了,但我猜我做得不对。非常感谢您的帮助。

我认为问题在于ZF找不到该类,因为它不知道
Sozfo
名称空间。您试图以两种不同的方式注册此命名空间,但这两种方式都不正确

在application.ini中,您有:

Autoloadnamaspaces[] = "Sofzo_"
但这应该是:

autoloaderNamespaces[] = "Sozfo_"
$autoLoader->registerNamespace('Sozfo_');
然后在引导中,您尝试将其注册到:

$autoLoader->registerNamespace('Sofzo_');
但这大概应该是:

autoloaderNamespaces[] = "Sozfo_"
$autoLoader->registerNamespace('Sozfo_');
(注意拼写)。无论您应用哪种修复方法,您都应该只使用其中一种方法,因为它们做的是相同的事情

如果在那之后仍然不起作用,那么您的include\u路径就有问题

编辑:若要修复视图辅助对象路径,请尝试此操作,而不是当前的两行:

$view = new Zend_View();

$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
$stack = Zend_Controller_Action_HelperBroker::getStack();
$stack->push($viewRenderer);

$view->addHelperPath('Sozfo/View/Helper', 'Sozfo_View_Helper');
这会将辅助对象路径添加到视图对象中,就像您所做的那样,但也会将其提供给视图渲染器(这是渲染所有视图脚本的方式)。如果不这样做,视图渲染器将使用自己的视图对象,因此在引导中设置的视图对象永远不会用于任何用途

如果这不起作用,请尝试将完整路径作为第一个参数传递给addHelperPath:

$view->addHelperPath(APPLICATION_PATH.'/../library/Sozfo/View/Helper', 'Sozfo_View_Helper');

我认为问题在于ZF找不到类,因为它不知道
Sozfo_ZF
名称空间。您试图以两种不同的方式注册此命名空间,但这两种方式都不正确

在application.ini中,您有:

Autoloadnamaspaces[] = "Sofzo_"
但这应该是:

autoloaderNamespaces[] = "Sozfo_"
$autoLoader->registerNamespace('Sozfo_');
然后在引导中,您尝试将其注册到:

$autoLoader->registerNamespace('Sofzo_');
但这大概应该是:

autoloaderNamespaces[] = "Sozfo_"
$autoLoader->registerNamespace('Sozfo_');
(注意拼写)。无论您应用哪种修复方法,您都应该只使用其中一种方法,因为它们做的是相同的事情

如果在那之后仍然不起作用,那么您的include\u路径就有问题

编辑:若要修复视图辅助对象路径,请尝试此操作,而不是当前的两行:

$view = new Zend_View();

$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
$stack = Zend_Controller_Action_HelperBroker::getStack();
$stack->push($viewRenderer);

$view->addHelperPath('Sozfo/View/Helper', 'Sozfo_View_Helper');
这会将辅助对象路径添加到视图对象中,就像您所做的那样,但也会将其提供给视图渲染器(这是渲染所有视图脚本的方式)。如果不这样做,视图渲染器将使用自己的视图对象,因此在引导中设置的视图对象永远不会用于任何用途

如果这不起作用,请尝试将完整路径作为第一个参数传递给addHelperPath:

$view->addHelperPath(APPLICATION_PATH.'/../library/Sozfo/View/Helper', 'Sozfo_View_Helper');

请编辑您的问题以包含完整的错误消息-错误应在包含的位之后显示包含路径。还可以从引导中添加完整的autoloader设置(在这里设置
$autoloader
)。感谢您的回复,但这实际上是我收到的完整错误消息。在引导中使用完整的自动加载程序代码更新了原始版本。请编辑您的问题以包含完整的错误消息-错误应在包含的位之后显示包含路径。还可以从引导中添加完整的autoloader设置(在这里设置
$autoloader
)。感谢您的回复,但这实际上是我收到的完整错误消息。在bootstrap中使用完整的自动加载程序代码更新了原始版本。非常感谢,这在很大程度上解决了扩展Sozfo_表单的问题,现在当我添加一个元素时,我会遇到另一组错误。如果你也能看一看,我将不胜感激。将更新原始问题。谢谢,这就成功了:)但是当我按照上面的指定向控制器添加带有TinyMCE编辑器的新元素时,它会将控制器中的所有文本区域都转换为TinyMCE编辑器。你知道问题在哪里吗?谢谢。这取决于TinyMCE的“mode”配置参数。您必须查看Sozfo是否允许您在tinymce.ini配置文件中更改它。谢谢,通过设置类属性使其正常工作。非常感谢,这基本上解决了扩展Sozfo_表单的问题,现在,当我添加一个元素时,会出现另一组错误。如果你也能看一看,我将不胜感激。将更新原始问题。谢谢,这就成功了:)但是当我按照上面的指定向控制器添加带有TinyMCE编辑器的新元素时,它会将控制器中的所有文本区域都转换为TinyMCE编辑器。你知道问题在哪里吗?谢谢。这取决于TinyMCE的“mode”配置参数。您必须查看Sozfo是否允许您在tinymce.ini配置文件中更改它。谢谢,通过设置class属性,它可以正常工作。