Commit ec0ebeb1 authored by guilhermeblanco's avatar guilhermeblanco

Updated manual pages and changed documentation naming convention (from process...

Updated manual pages and changed documentation naming convention (from process to parse) to follow the API
parent 6ea8a477
......@@ -409,7 +409,7 @@ class Doctrine_Pager_Layout
/**
* _parseTemplate
*
* Process the template of a given page and return the processed template
* Parse the template of a given page and return the processed template
*
* @param array Optional parameters to be applied in template and url mask
* @return string
......@@ -426,7 +426,7 @@ class Doctrine_Pager_Layout
/**
* _parseUrlTemplate
*
* Processes the url mask to return the correct template depending of the options sent.
* Parse the url mask to return the correct template depending of the options sent.
* Already process the mask replacements assigned.
*
* @param $options Optional parameters to be applied in template and url mask
......@@ -453,7 +453,7 @@ class Doctrine_Pager_Layout
/**
* _parseUrl
*
* Process the url mask of a given page and return the processed url
* Parse the mask replacements of a given page
*
* @param $options Optional parameters to be applied in template and url mask
* @return string
......@@ -476,7 +476,7 @@ class Doctrine_Pager_Layout
/**
* _parseUrl
*
* Process the url mask of a given page and return the processed url
* Parse the url mask of a given page and return the processed url
*
* @param $options Optional parameters to be applied in template and url mask
* @return string
......@@ -498,7 +498,7 @@ class Doctrine_Pager_Layout
/**
* _parseMaskReplacements
*
* Process the mask replacements, changing from to-be replaced mask with new masks/values
* Parse the mask replacements, changing from to-be replaced mask with new masks/values
*
* @param $str String to have masks replaced
* @return string
......
......@@ -19,6 +19,24 @@ $this->cleanMaskReplacements();
// Parses the template and returns the string of a processed page
$this->processPage($options = array()); // Needs at least page_number offset in $options array
// Protected methods, although very useful
// Parse the template of a given page and return the processed template
$this->_parseTemplate($options = array());
// Parse the url mask to return the correct template depending of the options sent
// Already process the mask replacements assigned
$this->_parseUrlTemplate($options = array());
// Parse the mask replacements of a given page
$this->_parseReplacementsTemplate($options = array());
// Parse the url mask of a given page and return the processed url
$this->_parseUrl($options = array());
// Parse the mask replacements, changing from to-be replaced mask with new masks/values
$this->_parseMaskReplacements($str);
</code>
Now that you have a small tip of useful methods to be used when extending {{Doctrine_Pager_Layout}}, it's time to see our implemented class:
......@@ -64,3 +82,43 @@ class PagerLayoutWithArrows extends Doctrine_Pager_Layout
}
}
</code>
As you may see, I have to manual process the items <<, <, > and >>. I override the **{%page}** mask by setting a raw value to it (raw value is achieved by setting the third parameter as true). Then I define the only MUST HAVE information to process the page and call it. The return is the template processed as a string. I do it to any of my custom buttons.
Now supposing a totally different situation. Doctrine is framework agnostic, but many of our users use it together with Symfony. {{Doctrine_Pager}} and subclasses are 100% compatible with Symfony, but {{Doctrine_Pager_Layout}} needs some tweaks to get it working with Symfony's {{link_to}} helper function. To allow this usage with {{Doctrine_Pager_Layout}}, you have to extend it and add your custom processor over it. For example purpose (it works in Symfony), I used **{link_to}...{/link_to}** as a template processor to do this job. Here is the extended class and usage in Symfony:
<code type="php">
// CLASS:
class sfDoctrinePagerLayout extends Doctrine_Pager_Layout
{
public function __construct($pager, $pagerRange, $urlMask)
{
sfLoader::loadHelpers(array('Url', 'Tag'));
parent::__construct($pager, $pagerRange, $urlMask);
}
protected function _parseTemplate($options = array())
{
$str = parent::_parseTemplate($options);
return preg_replace(
'/\{link_to\}(.*?)\{\/link_to\}/', link_to('$1', $this->_parseUrl($options)), $str
);
}
}
// USAGE:
$pager_layout = new sfDoctrinePagerLayout(
$pager,
new Doctrine_Pager_Range_Sliding(array('chunk' => 5)),
'@hostHistoryList?page={%page_number}'
);
$pager_layout->setTemplate('[{link_to}{%page}{/link_to}]');
</code>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment