Upgrade to ExtJS 3.0.3 - Released 10/11/2009
[extjs.git] / examples / writer / remote / app / controllers / users.php
1 <?php
2 /**
3  * @class Users
4  * A simple application controller extension
5  */
6 class Users extends ApplicationController {
7     /**
8      * view
9      * Retrieves rows from database.
10      */
11     public function view() {
12         $res = new Response();
13         $res->success = true;
14         $res->message = "Loaded data";
15         $res->data = User::all();
16         return $res->to_json();
17     }
18     /**
19      * create
20      */
21     public function create() {
22         $res = new Response();
23
24         // Ugh, php...check if !hash
25         if (is_array($this->params) && !empty($this->params) && preg_match('/^\d+$/', implode('', array_keys($this->params)))) {
26             foreach ($this->params as $data) {
27                 array_push($res->data, User::create($data)->to_hash());
28             }
29             $res->success = true;
30             $res->message = "Created " . count($res->data) . ' records';
31         } else {
32             if ($rec =  User::create($this->params)) {
33                 $res->success = true;
34                 $res->data = $rec->to_hash();
35                 $res->message = "Created record";
36             } else {
37                 $res->success = false;
38                 $res->message = "Failed to create record";
39             }
40         }
41         return $res->to_json();
42     }
43
44     /**
45      * update
46      */
47     public function update() {
48         $res = new Response();
49
50         if (!get_class($this->params)) {
51             $res->data = array();
52             foreach ($this->params as $data) {
53                 if ($rec = User::update($data->id, $data)) {
54                     array_push($res->data, $rec->to_hash());
55                 }
56             }
57             $res->success = true;
58             $res->message = "Updated " . count($res->data) . " records";
59         } else {
60             if ($rec = User::update($this->params->id, $this->params)) {
61                 $res->data = $rec->to_hash();
62
63                 // SIMULATE ERROR:  All records having odd-numbered ID have error.
64                 if ($rec->id % 2) {
65                     $res->success = false;
66                     $res->message = "SIMULATED ERROR:  Lorem ipsum dolor sit amet, placerat consectetuer, nec lacus imperdiet velit dui interdum vestibulum, sagittis lectus morbi, urna aliquet minus natoque commodo egestas non, libero libero arcu sed sed.";
67                 } else {
68                     $res->success = true;
69                     $res->message = "Updated record";
70                 }
71             } else {
72                 $res->message = "Failed to updated record " . $this->params->id;
73                 $res->success = false;
74             }
75
76         }
77         return $res->to_json();
78     }
79
80     /**
81      * destroy
82      */
83     public function destroy() {
84         $res = new Response();
85
86         if (is_array($this->params)) {
87             $destroyed = array();
88             foreach ($this->params as $id) {
89                 if ($rec = User::destroy($id)) {
90                     array_push($destroyed, $rec);
91                 }
92             }
93             $res->success = true;
94             $res->message = 'Destroyed ' . count($destroyed) . ' records';
95         } else {
96             if ($rec = User::destroy($this->params)) {
97                 $res->message = "Destroyed User";
98                 $res->success = true;
99             } else {
100                 $res->message = "Failed to Destroy user";
101             }
102         }
103         return $res->to_json();
104     }
105 }
106