1: <?php
2: 3: 4: 5:
6:
7: if (!defined('XOOPS_ROOT_PATH')) exit();
8:
9: 10: 11:
12: class Profile_Delegate
13: {
14: 15: 16: 17: 18: 19: 20: 21: 22:
23: public static function saveProfile( &$ret, XCube_ActionForm $actionForm)
24: {
25: $handler = Legacy_Utils::getModuleHandler('data', 'profile');
26: if(! $obj = $handler->get($actionForm->get('uid'))){
27: $obj = $handler->create();
28: $obj->set('uid', $actionForm->get('uid'));
29: }
30: $defHandler = Legacy_Utils::getModuleHandler('definitions', 'profile');
31: $defObjs = $defHandler->getFields4DataEdit();
32: foreach($defObjs as $def){
33: $obj->setField($def->get('field_name'), $actionForm->get($def->get('field_name')));
34: }
35: $ret = $handler->insert($obj, true);
36: }
37:
38: 39: 40: 41: 42: 43: 44: 45:
46: public static function getProfile( &$profile, $uid)
47: {
48: $handler = Legacy_Utils::getModuleHandler('data', 'profile');
49: $profile = $handler->get($uid);
50: if(! $profile){
51: $profile = $handler->create();
52: }
53: }
54:
55: 56: 57: 58: 59: 60: 61: 62:
63: public static function getDefinition( &$defArr, $action)
64: {
65: $handler = Legacy_Utils::getModuleHandler('definitions', 'profile');
66: switch($action){
67: case 'edit':
68: $defArr = $handler->getFields4DataEdit();
69: break;
70: case 'view':
71: default:
72: $defArr = $handler->getFields4DataShow();
73: break;
74: }
75: }
76:
77: 78: 79: 80: 81: 82: 83:
84: public static function setupActionForm(XCube_ActionForm $actionForm)
85: {
86: $handler = Legacy_Utils::getModuleHandler('definitions', 'profile');
87: $definitions = $handler->getFields4DataEdit();
88: foreach($definitions as $def){
89: $className = $def->mFieldType->getFormPropertyClass();
90: $actionForm->mFormProperties[$def->get('field_name')] = new $className($def->get('field_name'));
91:
92:
93:
94:
95: $validationArr = array();
96: $actionForm->mFieldProperties[$def->get('field_name')] = new XCube_FieldProperty($actionForm);
97:
98: if($def->get('required')==true){
99: $validationArr[] = 'required';
100: $actionForm->mFieldProperties[$def->get('field_name')]->addMessage('required', _MD_USER_ERROR_REQUIRED, $def->get('label'));
101: }
102:
103: switch($def->get('validation')){
104: case 'email' :
105: $validationArr[] = 'email';
106: $actionForm->mFieldProperties[$def->get('field_name')]->addMessage($def->get('field_name'), _MD_USER_ERROR_EMAIL);
107: break;
108: }
109: $actionForm->mFieldProperties[$def->get('field_name')]->setDependsByArray($validationArr);
110: }
111: }
112:
113: 114: 115: 116: 117: 118: 119:
120: public static function loadActionForm(XCube_ActionForm $actionForm)
121: {
122: $defHandler = Legacy_Utils::getModuleHandler('definitions', 'profile');
123: $definitions = $defHandler->getFields4DataEdit();
124: $dataHandler = Legacy_Utils::getModuleHandler('data', 'profile');
125: $profile = $dataHandler->get($actionForm->get('uid'));
126: if(! $profile){
127: $profile = $dataHandler->create();
128: }
129: foreach($definitions as $def){
130: $actionForm->set($def->get('field_name'), $profile->showField($def->get('field_name'), Profile_ActionType::EDIT));
131: }
132: }
133: }
134:
135: 136: 137:
138: class Profile_CoolUriDelegate
139: {
140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151:
152: public static function getNormalUri( &$uri, $dirname, $dataname=null, $data_id=0, $action=null, $query=null)
153: {
154: $sUri = '/%s/index.php?action=%s%s';
155: $lUri = '/%s/index.php?action=%s%s&%s=%d';
156: $key = 'uid';
157:
158: $table = isset($dataname) ? $dataname : 'data';
159:
160: if(isset($dataname)){
161: if($data_id>0){
162: if(isset($action)){
163: $uri = sprintf($lUri, $dirname, ucfirst($dataname), ucfirst($action), $key, $data_id);
164: }
165: else{
166: $uri = sprintf($lUri, $dirname, ucfirst($dataname), 'View', $key, $data_id);
167: }
168: }
169: else{
170: if(isset($action)){
171: $uri = sprintf($sUri, $dirname, ucfirst($dataname), ucfirst($action));
172: }
173: else{
174: $uri = sprintf($sUri, $dirname, ucfirst($dataname), 'List');
175: }
176: }
177: $uri = isset($query) ? $uri.'&'.$query : $uri;
178: }
179: else{
180: if($data_id>0){
181: if(isset($action)){
182: die('invalid uri');
183: }
184: else{
185: $handler = Legacy_Utils::getModuleHandler($table, $dirname);
186: $key = $handler->mPrimary;
187: $uri = sprintf($lUri, $dirname, ucfirst($table), 'View', $key, $data_id);
188: }
189: $uri = isset($query) ? $uri.'&'.$query : $uri;
190: }
191: else{
192: if(isset($action)){
193: die('invalid uri');
194: }
195: else{
196: $uri = sprintf('/%s/', $dirname);
197: $uri = isset($query) ? $uri.'index.php?'.$query : $uri;
198: }
199: }
200: }
201: }
202: }
203: ?>
204: