Dans la continuité du précédent billet sur le Zend Framework et jQuery, j’ai codé un view helper pour la ProgressBar de jQuery UI.
Je suis tout simplement parti du code du slider que j’ai bien rogné et un peu modifié pour arriver à un code fonctionnel.
Sans plus attendre le voici :
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@zend.com so we can send you a copy immediately.
*
* @category ZendX
* @package ZendX_JQuery
* @subpackage View
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id: Slider.php 20165 2010-01-09 18:57:56Z bkarwin $
*/
/**
* @see ZendX_JQuery_View_Helper_UiWidget
*/
require_once "ZendX/JQuery/View/Helper/UiWidget.php";
/**
* jQuery ProgressBar View Helper
*
* @uses Zend_Json
* @package ZendX_JQuery
* @subpackage View
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class ZendX_JQuery_View_Helper_ProgressBar extends ZendX_JQuery_View_Helper_UiWidget
{
/**
* Create a jQuery progressbar
*
* @link http://docs.jquery.com/UI/Progressbar
* @param string $id
* @param string $value
* @param array $params
* @param array $attribs
* @return string
*/
public function progressBar($id, $value, array $params = array(), array $attribs = array())
{
if(!isset($attribs['id'])) {
$attribs['id'] = $id;
}
$jqh = ZendX_JQuery_View_Helper_JQuery::getJQueryHandler();
if(count($params) <= 0) {
$params = ZendX_JQuery::encodeJson(array('value'=>$value));
} else {
$params = ZendX_JQuery::encodeJson($params);
}
$js = sprintf('%s("#%s").progressbar(%s);', $jqh, $attribs['id'], $params);
$this->jquery->addOnLoad($js);
$html = "<div ".$this->_htmlAttribs($attribs)." >";
$html .= '</div>';
return $html;
}
}
C’est simple et ça fonctionne !
Il suffit de créer le fichier : « ZendX/JQuery/View/Helper/ProgressBar.php » et d’y placer ensuite le code ci-dessus.
Ensuite pour l’utiliser c’est très simple dans vos vues :
echo $this->progressBar("progressBarId", 65);
Voilà en espérant que cela serve





Laissez un commentaire
Additional comments powered by BackType