/** * Main processing logic for DataTable * * @param mixed $object * @param mixed $scope */ public function process($object = null, $scope = array()) { if (is_array($object)) { $scope = $object; $object = null; } $settings = $this->_parseSettings($object); if (isset($settings['scope'])) { $scope = array_merge($settings['scope'], $scope); } if (isset($settings['findType'])) { $settings['type'] = $settings['findType']; } $query = array_diff_key($settings, array('conditions', 'columns', 'trigger', 'triggerAction', 'viewVar', 'maxLimit')); $total = $this->_object->find('count', $query); $this->_sort($settings); $this->_search($settings); $this->_paginate($settings); $this->settings[$this->_object->alias] = $settings; $results = parent::paginate($this->_object, $scope); $totalDisplayed = $this->Controller->request->params['paging'][$this->_object->alias]['count']; $dataTableData = array('iTotalRecords' => $total, 'iTotalDisplayRecords' => $totalDisplayed, 'sEcho' => isset($this->_params['sEcho']) ? intval($this->_params['sEcho']) : 0, 'aaData' => array()); $this->Controller->viewClass = 'DataTable.DataTableResponse'; $this->Controller->set($settings['viewVar'], $results); $this->Controller->set(compact('dataTableData')); if (isset($settings['view'])) { $this->Controller->view = $settings['view']; } }
/** * @param array $options * @param array $attributes * @param array $settings * @return string */ public function postsPicker(array $option, array $attributes, array $settings) { // debug($option); App::import('Component', 'Paginator'); $Paginator = new PaginatorComponent(); $posts = $Paginator->paginate(array('limit' => 2)); $outputHtml = '<div class="gumm-postpicker-input-wrapper">'; if ($posts) { $outputHtml .= '<ul>'; foreach ($posts as $post) { $outputHtml .= '<li>' . $post->post_title . '</li>'; } $outputHtml .= '</ul>'; } $outputHtml .= '</div>'; return $outputHtml; }