Untitled diff

Created Diff never expires
2 removals
60 lines
3 additions
60 lines
<?php
<?php
/**
/**
* A (fake) pager plugin that wraps around the actual pager.
* A (fake) pager plugin that wraps around the actual pager.
*
*
* @ingroup views_pager_plugins
* @ingroup views_pager_plugins
*/
*/
class views_php_plugin_pager extends views_php_plugin_wrapper {
class views_php_plugin_pager extends views_php_plugin_wrapper {
/**
/**
* Perform any needed actions just prior to the query executing.
* Perform any needed actions just prior to the query executing.
*/
*/
public function pre_execute($query) {
public function pre_execute(&$query) {
$this->wrapped->pre_execute($query);
$this->wrapped->pre_execute($query);
foreach (array(/*'argument',*/ 'field', 'filter', 'sort', /*'relationship'*/) as $type) {
foreach (array(/*'argument',*/ 'field', 'filter', 'sort', /*'relationship'*/) as $type) {
foreach ($this->wrapped->view->$type as $id => $handler) {
foreach ($this->wrapped->view->$type as $id => $handler) {
if (is_callable(array($handler, 'php_pre_execute'))) {
if (is_callable(array($handler, 'php_pre_execute'))) {
$handler->php_pre_execute();
$handler->php_pre_execute();
}
}
}
}
}
}
$this->wrapped->view->query->set_limit(0);
$this->wrapped->view->query->set_limit(0);
$this->wrapped->view->query->set_offset(0);
$this->wrapped->view->query->set_offset(0);
}
}
/**
/**
* Perform any needed actions just after the query executing.
* Perform any needed actions just after the query executing.
*/
*/
public function post_execute(&$result) {
public function post_execute(&$result) {
foreach (array(/*'argument',*/ 'field', 'filter', 'sort', /*'relationship'*/) as $type) {
foreach (array(/*'argument',*/ 'field', 'filter', 'sort', /*'relationship'*/) as $type) {
foreach ($this->wrapped->view->$type as $id => $handler) {
foreach ($this->wrapped->view->$type as $id => $handler) {
if (is_callable(array($handler, 'php_post_execute'))) {
if (is_callable(array($handler, 'php_post_execute'))) {
$handler->php_post_execute();
$handler->php_post_execute();
}
}
}
}
}
}
$this->wrapped->total_items = count($this->wrapped->view->result);
/* $this->wrapped->total_items = count($this->wrapped->view->result);
$this->wrapped->update_page_info();
$this->wrapped->update_page_info();
$item_per_page = $this->wrapped->get_items_per_page();
$item_per_page = $this->wrapped->get_items_per_page();
if ($item_per_page > 0) {
if ($item_per_page > 0) {
$offset = $this->wrapped->get_current_page() * $item_per_page + $this->wrapped->get_offset();
$offset = $this->wrapped->get_current_page() * $item_per_page + $this->wrapped->get_offset();
$this->wrapped->view->result = array_slice($this->wrapped->view->result, $offset, $item_per_page);
$this->wrapped->view->result = array_slice($this->wrapped->view->result, $offset, $item_per_page);
}
} */
$this->wrapped->post_execute($result);
$this->wrapped->post_execute($result);
}
}
/**
/**
* Execute the count query, which will be done just prior to the query
* Execute the count query, which will be done just prior to the query
* itself being executed.
* itself being executed.
*/
*/
function execute_count_query(&$count_query) {
function execute_count_query(&$count_query) {
$this->wrapped->execute_count_query($count_query);
$this->wrapped->execute_count_query($count_query);
}
}
}
}