PluginProbe ʕ •ᴥ•ʔ
AI Copilot – Content Generator / 1.2.8
AI Copilot – Content Generator v1.2.8
1.5.4 1.4.21 1.4.18 1.4.19 1.4.20 trunk 1.0.4 1.1.0 1.2.0 1.2.1 1.2.10 1.2.11 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.4.0 1.4.1 1.4.10 1.4.11 1.4.12 1.4.13 1.4.14 1.4.15 1.4.17 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.9
ai-copilot-content-generator / classes / controller.php
ai-copilot-content-generator / classes Last commit date
helpers 1 year ago tables 1 year ago aIProviderInterface.php 1 year ago assets.php 1 year ago baseObject.php 1 year ago cache.php 1 year ago controller.php 1 year ago date.php 1 year ago db.php 1 year ago dispatcher.php 1 year ago errors.php 1 year ago field.php 1 year ago fieldAdapter.php 1 year ago frame.php 1 year ago helper.php 1 year ago html.php 1 year ago installer.php 1 year ago installerDbUpdater.php 1 year ago modInstaller.php 1 year ago model.php 1 year ago module.php 1 year ago req.php 1 year ago response.php 1 year ago table.php 1 year ago uri.php 1 year ago user.php 1 year ago utils.php 1 year ago validator.php 1 year ago view.php 1 year ago
controller.php
211 lines
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit;
4 }
5 abstract class WaicController {
6 protected $_models = array();
7 protected $_views = array();
8 protected $_task = '';
9 protected $_defaultView = '';
10 protected $_code = '';
11 public function __construct( $code ) {
12 $this->setCode($code);
13 $this->_defaultView = $this->getCode();
14 }
15 public function init() {
16 /*load model and other preload data goes here*/
17 }
18 protected function _onBeforeInit() {
19 }
20 protected function _onAfterInit() {
21 }
22 public function setCode( $code ) {
23 $this->_code = $code;
24 }
25 public function getCode() {
26 return $this->_code;
27 }
28 public function exec( $task = '' ) {
29 if (method_exists($this, $task)) {
30 $this->_task = $task; //For multicontrollers module version - who know, maybe that's will be?))
31 return $this->$task();
32 }
33 return null;
34 }
35 public function getView( $name = '' ) {
36 if (empty($name)) {
37 $name = $this->getCode();
38 }
39 if (!isset($this->_views[$name])) {
40 $this->_views[$name] = $this->_createView($name);
41 }
42 return $this->_views[$name];
43 }
44 public function getModel( $name = '' ) {
45 if (!$name) {
46 $name = $this->_code;
47 }
48 if (!isset($this->_models[$name])) {
49 $this->_models[$name] = $this->_createModel($name);
50 }
51 return $this->_models[$name];
52 }
53 protected function _createModel( $name = '' ) {
54 if (empty($name)) {
55 $name = $this->getCode();
56 }
57 $parentModule = WaicFrame::_()->getModule( $this->getCode() );
58 $className = '';
59 if (waicImport($parentModule->getModDir() . 'models' . WAIC_DS . $name . '.php')) {
60 $className = waicToeGetClassName($name . 'Model');
61 }
62
63 if ($className) {
64 $model = new $className();
65 $model->setCode( $this->getCode() );
66 return $model;
67 }
68 return null;
69 }
70 protected function _createView( $name = '' ) {
71 if (empty($name)) {
72 $name = $this->getCode();
73 }
74 $parentModule = WaicFrame::_()->getModule( $this->getCode() );
75 $className = '';
76
77 if (waicImport($parentModule->getModDir() . 'views' . WAIC_DS . $name . '.php')) {
78 $className = waicToeGetClassName($name . 'View');
79 }
80
81 if ($className) {
82 $view = new $className();
83 $view->setCode( $this->getCode() );
84 return $view;
85 }
86 return null;
87 }
88 public function display( $viewName = '' ) {
89 $view = $this->getView($viewName);
90 if (null === $view) {
91 $view = $this->getView(); //Get default view
92 }
93 if ($view) {
94 $view->display();
95 }
96 }
97 public function __call( $name, $arguments ) {
98 $model = $this->getModel();
99 if (method_exists($model, $name)) {
100 return $model->$name($arguments[0]);
101 } else {
102 return false;
103 }
104 }
105 /**
106 * Retrive permissions for controller methods if exist.
107 * If need - should be redefined in each controller where it required.
108 *
109 * @return array with permissions
110 * Can be used on of sub-array - WAIC_METHODS or WAIC_USERLEVELS
111 */
112 public function getPermissions() {
113 return array();
114 }
115 /**
116 * Methods that require nonce to be generated
117 * If need - should be redefined in each controller where it required.
118 *
119 * @return array
120 */
121 public function getNoncedMethods() {
122 return array();
123 }
124 public function getModule() {
125 return WaicFrame::_()->getModule( $this->getCode() );
126 }
127 protected function _prepareTextLikeSearch( $val ) {
128 return ''; // Should be re-defined for each type
129 }
130 protected function _prepareModelBeforeListSelect( $model ) {
131 return $model->setSelectFields('*');
132 }
133 /**
134 * Common method for list table data
135 */
136 public function getListForTbl() {
137 $res = new WaicResponse();
138 $res->ignoreShellData();
139 $model = $this->getModel();
140
141 $params = WaicReq::get('post');
142
143 $length = WaicUtils::getArrayValue($params, 'length', 10, 1);
144 $start = WaicUtils::getArrayValue($params, 'start', 0, 1);
145 $search = WaicUtils::getArrayValue(WaicUtils::getArrayValue($params, 'search', array(), 2), 'value');
146
147 if (!empty($search)) {
148 $model->addWhere(array('additionalCondition' => "title like '%" . $search . "%'"));
149 }
150 $order = WaicUtils::getArrayValue($params, 'order', array(), 2);
151 $orderBy = 'id';
152 $sortOrder = 'DESC';
153 if (isset($order[0])) {
154 $orderBy = WaicUtils::getArrayValue($order[0], 'column', $orderBy, 1);
155 $sortOrder = WaicUtils::getArrayValue($order[0], 'dir', $sortOrder);
156 }
157
158 // Get total pages count for current request
159 $totalCount = $model->getCount(array('clear' => array('selectFields')));
160 if ($length > 0) {
161 if ($start >= $totalCount) {
162 $start = 0;
163 }
164 $model->setLimit($start . ', ' . $length);
165 }
166
167 $model->setOrderBy($orderBy)->setSortOrder($sortOrder);
168 $data = $this->_prepareModelBeforeListSelect($model)->getFromTbl();
169
170 $data = empty($data) ? array() : $this->_prepareListForTbl($data);
171 $res->data = $data;
172
173 $res->recordsFiltered = $totalCount;
174 $res->recordsTotal = $totalCount;
175 $res->draw = WaicUtils::getArrayValue($params, 'draw', 0, 1);
176
177 $res = WaicDispatcher::applyFilters($this->getCode() . '_getListForTblResults', $res);
178 $res->ajaxExec();
179 }
180 public function removeGroup() {
181 $res = new WaicResponse();
182 if ($this->getModel()->removeGroup(WaicReq::getVar('ids', 'post'))) {
183 $res->addMessage(esc_html__('Done', 'ai-copilot-content-generator'));
184 } else {
185 $res->pushError($this->getModel()->getErrors());
186 }
187 $res->ajaxExec();
188 }
189 public function clear() {
190 $res = new WaicResponse();
191 if ($this->getModel()->clear()) {
192 $res->addMessage(esc_html__('Done', 'ai-copilot-content-generator'));
193 } else {
194 $res->pushError($this->getModel()->getErrors());
195 }
196 $res->ajaxExec();
197 }
198 protected function _prepareListForTbl( $data ) {
199 return $data;
200 }
201 protected function _prepareSearchField( $searchField ) {
202 return $searchField;
203 }
204 protected function _prepareSearchString( $searchString ) {
205 return $searchString;
206 }
207 protected function _prepareSortOrder( $sortOrder ) {
208 return $sortOrder;
209 }
210 }
211