Bin will be removed on June 1, 2014 in favor of http://gist.github.com. Please save all your pastes before then. So long, and thanks for all the fish!×
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
    function paginate($object = null, $scope = array(), $whitelist = array()) {
        if (is_string($object)) {
            $assoc = null;
 
            if (strpos($object, '.') !== false) {
                list($object, $assoc) = explode('.', $object);
            }
 
            if ($assoc && isset($this->{$object}->{$assoc})) {
                $object = $this->{$object}->{$assoc};
            } elseif ($assoc && isset($this->{$this->modelClass}) && isset($this->{$this->modelClass}->{$assoc})) {
                $object = $this->{$this->modelClass}->{$assoc};
            } elseif (isset($this->{$object})) {
                $object = $this->{$object};
            } elseif (isset($this->{$this->modelClass}) && isset($this->{$this->modelClass}->{$object})) {
                $object = $this->{$this->modelClass}->{$object};
            }
        } elseif (empty($object) || $object == null) {
            if (isset($this->{$this->modelClass})) {
                $object = $this->{$this->modelClass};
            } else {
                $className = null;
                $name = $this->uses[0];
                if (strpos($this->uses[0], '.') !== false) {
                    list($name, $className) = explode('.', $this->uses[0]);
                }
                if ($className) {
                    $object = $this->{$className};
                } else {
                    $object = $this->{$name};
                }
            }
        }
        if (!is_object($object)) {
            trigger_error(sprintf(__('Controller::paginate() - can\'t find model %1$s in controller %2$sController', true), $object, $this->name), E_USER_WARNING);
            return array();
        }
        $alias = 'paginate.' . $this->params['controller'] . '.' . $this->params['action'] . '.' . $object->alias;
        $sessionVars = $this->Session->read($alias);
        if(!empty($this->passedArgs)) {
            if(!empty($sessionVars)) {
                $this->passedArgs = array_merge($sessionVars, $this->passedArgs);
            }
            $this->Session->write($alias, $this->passedArgs);
        } else if(!empty($sessionVars)) {
            $this->passedArgs = $sessionVars;
        }
        return parent::paginate($object, $scope, $whitelist);
    }