Top Tip: XHTML with Zend Form Elements
When you render a Zend_Form, the elements will render to HTML compliance rather than XHTML compliance, even if you have < ?php echo $this->doctype('XHTML1_STRICT');?> at the top of your layout script. Practically, this means that all the input elements do not end in “/>“.
To resolve this, you need to call the doctype() view helper prior to rendering your form.
Within my projects, I do this within a front controller plug-in called ViewSetup that looks a little like this:
class App_Controller_Plugin_ViewSetup extends Zend_Controller_Plugin_Abstract
{
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
{
// setup the layout
Zend_Layout::startMvc();
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$viewRenderer->init();
$view = $viewRenderer->view;
$view->doctype('XHTML1_TRANSITIONAL');
$view->headMeta()->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8');
}
}
Obviously, this class lives in the file library/App/Controller/Plugin/ViewSetup.php.
As you can see, I also set up the meta tag for the content-type to UTF-8 ready for rendering later.
Very helpful indeed! Thanks for sharing. By the way, it appears that you have a mismatched single quote type in appendName().
I think this ′was meant to be this '
Hi Chad,
That'll be WordPress trying to be helpful! It's correct when I edit the entry.
Regards,
Rob…
Rob,
I may be wrong(wouldn't be the first time) but for 'Content-Type' shouldn't you be using $view->appendHttpEquiv('Content-Type', 'text/html;charset=utf-8')?
Christian
Christian,
You are right :) I've updated.
Regards,
Rob…
Hallo Rob, I want to use fckeditor in mijn zf Wesite. Can you help me how i can do that.
Regards,
Nour
Hi Rob!, i think this is a real good wordk, but i don`t know hot to implement into my proyect, i have an modular estructure, something like this,
shout i call it
Aplications_Modules_Contact_Controller_Plugin_ViewSetup
and that's it? Regardss, Gonzalo
Gonzalo,
I would create a directory under library/ called "App" and store things like this in there.
Regards,
Rob…
The Zend docs say that XHTML11 is an option, but in fact it's not in the current 1.5.2 release.
http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers.initial.doctype
XHTML11 is an option in the trunk code, so it will probably make it into the next release.
Thanks for posting this. It helped solve my problem with special chars not displaying correctly.