Upgrade to ExtJS 3.0.0 - Released 07/06/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         if (is_array($this->id)) {
50             $res->data = array();
51             foreach ($this->id as $idx => $id) {
52                 if ($rec = User::update($id, $this->params[$idx])) {
53                     array_push($res->data, $rec->to_hash());
54                 }
55             }
56             $res->success = true;
57             $res->message = "Updated " . count($res->data) . " records";
58         } else {
59             if ($rec = User::update($this->id, $this->params)) {
60                 $res->data = $rec->to_hash();
61                 $res->success = true;
62                 $res->message = "Updated record";
63             } else {
64                 $res->message = "Failed to updated record";
65                 $res->success = false;
66             }
67             // SIMULATE ERROR:  All records having odd-numbered ID have error.
68             if ($this->id % 2) {
69                 $res->success = false;
70                 $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.";
71             }
72         }
73         return $res->to_json();
74     }
75
76     /**
77      * destroy
78      */
79     public function destroy() {
80         $res = new Response();
81
82         if (is_array($this->params)) {
83             $destroyed = array();
84             foreach ($this->params as $id) {
85                 if ($rec = User::destroy($id)) {
86                     array_push($destroyed, $rec);
87                 }
88             }
89             $res->success = true;
90             $res->message = 'Destroyed ' . count($destroyed) . ' records';
91         } else {
92             if ($rec = User::destroy($this->params)) {
93                 $res->message = "Destroyed User";
94                 $res->success = true;
95             } else {
96                 $res->message = "Failed to Destroy user";
97             }
98         }
99         return $res->to_json();
100     }
101 }
102