1: <?php
 2:  3:  4:  5:  6:  7:  8:  9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 
20: 
21: App::uses('View', 'View');
22: 
23: 24: 25: 26: 27: 
28: class ScaffoldView extends View {
29: 
30: 31: 32: 33: 34: 35: 36: 
37:     protected function _getViewFileName($name = null) {
38:         if ($name === null) {
39:             $name = $this->action;
40:         }
41:         $name = Inflector::underscore($name);
42:         $prefixes = Configure::read('Routing.prefixes');
43: 
44:         if (!empty($prefixes)) {
45:             foreach ($prefixes as $prefix) {
46:                 if (strpos($name, $prefix . '_') !== false) {
47:                     $name = substr($name, strlen($prefix) + 1);
48:                     break;
49:                 }
50:             }
51:         }
52: 
53:         if ($name === 'add' || $name === 'edit') {
54:             $name = 'form';
55:         }
56: 
57:         $scaffoldAction = 'scaffold.' . $name;
58: 
59:         if ($this->subDir !== null) {
60:             $subDir = strtolower($this->subDir) . DS;
61:         } else {
62:             $subDir = null;
63:         }
64: 
65:         $names[] = $this->viewPath . DS . $subDir . $scaffoldAction;
66:         $names[] = 'Scaffolds' . DS . $subDir . $name;
67: 
68:         $paths = $this->_paths($this->plugin);
69:         $exts = array($this->ext);
70:         if ($this->ext !== '.ctp') {
71:             $exts[] = '.ctp';
72:         }
73:         foreach ($exts as $ext) {
74:             foreach ($paths as $path) {
75:                 foreach ($names as $name) {
76:                     if (file_exists($path . $name . $ext)) {
77:                         return $path . $name . $ext;
78:                     }
79:                 }
80:             }
81:         }
82: 
83:         if ($name === 'Scaffolds' . DS . $subDir . 'error') {
84:             return CAKE . 'View' . DS . 'Errors' . DS . 'scaffold_error.ctp';
85:         }
86: 
87:         throw new MissingViewException($paths[0] . $name . $this->ext);
88:     }
89: 
90: }
91: