42 private $currentInterests = array();
52 public function __construct(array
$h, array $pageDataFields, array $tempData, array $pageData)
54 $this->model =
new PageDataModel($h, $pageDataFields, $tempData, $pageData);
66 return $this->model->storedFields();
80 return $this->currentInterests;
94 if (!in_array($field, $this->model->params)) {
95 $this->model->addParam($field);
97 $this->currentInterests[] = $field;
112 $this->model->removeParam($field);
113 $n = array_search($field, $this->currentInterests);
115 array_splice($this->currentInterests, $n, 1);
129 public function add_tab($tab_name, $tab_view, $cssClass = null)
132 $this->model->addTab($tab_name, $tab_view, $cssClass);
144 return $this->model->refresh($data);
158 $page = $this->model->findKey($id);
171 return $this->model->data;
185 $page = $this->model->create($params);
200 $pageData = $this->model->create($params);
201 $this->model->appendPage($pageData);
212 public function insert(array $pages, $index)
214 return $this->model->replace($pages, $index);
226 return $this->model->delete($key);
246 $results = $this->model->findArrayfieldValue($field, $value, $separator);
249 $results = $this->model->findFieldValue($field, $value);
267 $sortFlag = null, $sep = null
270 $results = $this->model->findFieldValueSortkey($field, $value, $sortKey, $sortFlag, $sep);
287 if (count($headings) == 0) {
294 $this->keep_in_mind($index);
295 return $this->destroy($index);
296 } elseif (count($headings) > 1) {
302 $new_pages = array();
303 $current_page = $this->find_page($index);
304 foreach ($headings as $heading) {
305 $url = trim(xh_rmws(strip_tags($heading)));
309 case $current_page[
'url']:
315 foreach ($current_page as $field => $value) {
316 $params[$field] = $value;
319 case $this->model->temp_data[
'url']:
326 foreach ($this->model->temp_data as $field => $value) {
327 $params[$field] = $value;
334 $params[
'url'] = $url;
337 $params[
'last_edit'] = time();
338 $new_pages[] = $params;
341 return $this->model->replace($new_pages, $index);
342 } elseif (count($headings) == 1) {
346 $url = trim(xh_rmws(strip_tags($headings[0])));
347 $params[
'url'] =
uenc($url);
348 $params[
'last_edit'] = time();
349 return $this->update($index, $params);
363 $update_params = array();
364 foreach ($params as $field => $update) {
365 if (in_array($field, $this->model->params)) {
366 $update_params[$field] = $update;
369 return $this->model->updateKey(
$s, $params);
391 if (is_array($this->model->tabs)
392 && count($this->model->tabs) > 0 && $edit
394 if (
$s == -1 && !$f && $o ==
'' && $su ==
'') {
395 $pd_s = $xh_publisher->getFirstPublishedPage();
399 $page = $this->find_page(
$pd_s);
401 $view_provider =
new PageDataView($page, $this->model->tabs);
402 return $view_provider->tabs() . $view_provider->views();
416 private function keep_in_mind(
$pd_s)
419 $page = $this->find_page(
$pd_s);
420 $this->model->storeTemp($page);
433 foreach ($this->model->params as $param) {
434 $flds[] =
"'" . addcslashes($param,
'\'\\
') . "'"; 436 $o = "<?php\n\$page_data_fields=array(
" 437 . implode(',', $flds) 440 foreach ($this->model->temp_data as $key => $val) { 441 $escval = addcslashes($val, '\'\\'); 442 $flds[] = "'$key'=>
'$escval'"; 444 $o .= "\$temp_data=array(\n
" 445 . implode(",\n
", $flds) 459 public function pageAsPHP($id) 461 $data = $this->find_page($id); 463 foreach ($data as $key => $val) { 464 $escval = addcslashes($val, '\'\\'); 465 $flds[] = "'$key'=>
'$escval'"; 467 $o = "<?php\n\$page_data[]=array(\n
" 468 . implode(",\n
", $flds)
__construct(array $h, array $pageDataFields, array $tempData, array $pageData)
new_page(array $params=array())
find_field_value_sortkey($field, $value, $sortKey, $sortFlag=null, $sep=null)
insert(array $pages, $index)
update($s, array $params)
appendNewPage(array $params=array())
refresh(array $data=null)
find_field_value($field, $value, $separator=null)
refresh_from_texteditor(array $headings, $index)
add_tab($tab_name, $tab_view, $cssClass=null)