How to have includes / elemnts in Zend framework - zend-framework

I'm new to Zend Framework.
I have a menu of tabs that is used on various views but I need to highlight which section the user is in.
I have seen placeholders but they don't seem very flexible and don't really do the job since I can't access any variables to see what area the user is in.
Normally I would do this as an include, but not sure where to go with Zend.
Thank you for any help.

Zend_Navigation takes care of all your navigation problems:
Zend Framework: Documentation: Zend_Navigation - Zend Framework Manual

Related

How to make a custom request in zend framework

i wanna use zend framework for a series sites with same features but different style and language
the url would be like this
http://www.<style>.com/<language>/<controller>/<action>
how do i add plugins into zend framework to make it work
i can modify
$_SERVER['REQUEST_URI']
to realize the language feature, but it broke the urls in views.
should i create a url helper for views?
and set
$view->setScriptPath($_SERVER['HTTP_HOST'])
in controller to realize the style feature
but it's really not look grace
i wish a can get a request
$request->getParams()
will return
array(
'controller'=> <controller>,
'action'=><action>,
'module'=><module>,
'language'=><language>,
'style'=><style>
)
what i should do?
You have to create routes for your applications. See http://framework.zend.com/manual/1.12/en/zend.controller.router.html . You can modify your routes to include the language.

How to create a reusable module in Zend Framework?

For various reasons, in my latest project I need to provide an almost identical view/feature both in the admin back end, as well as in the front end. What is the best way to do this?
Example of what i need:
There exists a table, with some crud controls. I need to show this table in the frontend without the controls, and in the backend with these controls. The main thing is, that they have to look alike, and when I make a visual change in one, the other should follow suit. Therefore it sounds logical, to have but one, and then reuse it, while passing on parameters to that determine whether the controls are shown.
But how do I do this in Zend Framework?
I'd just create a view partial for the table which relies on a parameter to show / hide controls.
<?php echo $this->partial('my-table.phtml', 'module-name', array(
'showControls' => true
)) ?>
Using the three argument version of the partial helper lets you keep the partial script in one particular module where you can reference it from anywhere else.

Zend_Layout and/or Smarty

I am new to Zend Framework, but planning to create quite a complex project using it.
I was looking at the view options for Zend Framework. There is one with Zend_View and Zend_Layout and also template engines like Smarty can be integrated with it.
Now I would like to know, do they serve the same purpose? Like I can either use Zend_Layout or Smarty or is it better to use both?
I've worked on two large scale Zend projects. We don't use a separate layout engine, we just use the built in Zend_View.
Layering Smarty on top of Zend wouldn't serve much purpose (imo, would like to see some alternative experiences though)
I have seen lots of benefits of using smarty for nearly 10 years. First of all, smarty restricts template designers to use small set of functions which are related to view only. This will make easier to manage template files and will create a layer of security. Using PHP on view layer allows quick solutions with PHP and can create great mess. Smarty is compiled and there is nearly no performance loss. Syntax is more concise than PHP views. With Smarty 3 "template inheritance" features saved lots of time, which cannot be easily implemented with PHP classes.

ASP.NET MVC - Simple Breadcrumbs (SiteMap)

I have developed a ASP.NET MVC 2 application and I want to put a simple breadcrumbs (sitemap) in each page like this:
Home > Movies > Details
It is equal the URL: http://localhost/home/movies/details
How can I achieve it? I would like to put it in my master page.
Thanks!
I would recommend using MVCSiteMapProvider. It's available as a NuGet package.
It can be used to generate breadcrumbs (which you are probably asking about) and also site maps.
MvcSiteMapProvider is, as the name
implies, an ASP.NET MVC
SiteMapProvider implementation for the
ASP.NET MVC framework. Targeted at
ASP.NET MVC 2, it provides sitemap XML
functionality and interoperability
with the classic ASP.NET sitemap
controls, like the SiteMapPath control
for rendering breadcrumbs and the Menu
control.
Based on areas, controller and action
method names rather than hardcoded URL
references, sitemap nodes are
completely dynamic based on the
routing engine used in an application.
The dynamic character of ASP.NET MVC
is followed in the MvcSiteMapProvider:
there are numerous extensibility
points that allow you to extend the
basic functionality offered.
If it is always equal to the URL, the absolute simplest thing would be to make use of that by using something like this:
var menuitems = Request.Url.AbsolutePath.Split("/".ToCharArray(),
StringSplitOptions.RemoveEmptyEntries);
menuitems would now contain the menu items you need to perform a simple foreach loop and build your menu.

Zend Framework and clients User Agent

I've created an application with the Zend Framework. Now I was asked to make an iphone webapp for it.
So my solution is to get the useragent and render a different view for it.
My searches on google lead to Zend_UserAgent but my library says it doesn't contain it. ;)
Is there any Zend way to find the useragent to render a different view or should I do it another way?
Thanks in advance!
You can use $_SERVER['HTTP_USER_AGENT'] to determine which view to show. Here's a list of all available user agents.