Cheetah
ChWsbAdminBuilder.php
Go to the documentation of this file.
1 <?php
2 
9 {
12  var $_sTable;
13  var $_sFieldOrder = '`order`';
14  var $_sFieldContainer = '`active`';
15  var $_sFieldId = '`id`';
16  var $_sFieldTitle = '`title`';
17 
22  function __construct($sTable, $sPostUrl, $aContainers)
23  {
24  $this->_sPostUrl = $sPostUrl;
25  $this->_sTable = $sTable;
26  $this->_aContainers = $aContainers;
27  }
28 
32  function handlePostActions ($aData)
33  {
34  switch ($aData['action']) {
35  case 'SaveItemsOrder':
36  $this->postSaveItemsOrder ($aData);
37  break;
38  }
39  }
40 
44  function postSaveItemsOrder ($aData)
45  {
46  if (!is_array($aData['cont_names']) || !is_array($aData['cont_data']))
47  return;
48  foreach ($aData['cont_names'] as $i => $sKey) {
49  $aIds = $this->_filterIds(explode(',', $aData['cont_data'][$i]));
50  $this->saveItemsOrderForContainer($sKey, $aIds);
51  }
52  echo 'ok';
53  }
54 
58  function getBuilderPage ()
59  {
60  $sContanersIds = '';
61  $aContainersForTemplate = array ();
62  foreach ($this->_aContainers as $sKey => $sTitle) {
63  $sContanersIds .= '#ch-sort-cont-' . $sKey . ',';
64  $aContainersForTemplate[] = array (
65  'id' => $sKey,
66  'title' => $sTitle,
67  'ch_repeat:items' => $this->_generateItemsForContainer($sKey),
68  );
69  }
70  $a = array (
71  'post_url' => $this->_sPostUrl,
72  'containers_ids' => substr($sContanersIds, 0, -1),
73  'ch_repeat:containers' => $aContainersForTemplate,
74  );
75  $this->addExternalResources ();
76  return $GLOBALS['oAdmTemplate']->parseHtmlByName('mobile_builder_page.html', $a);
77  }
78 
83  {
84  $GLOBALS['oAdmTemplate']->addJs(array(
85  'jquery.ui.core.min.js',
86  'jquery.ui.widget.min.js',
87  'jquery.ui.mouse.min.js',
88  'jquery.ui.sortable.min.js',
89  ));
90  $GLOBALS['oAdmTemplate']->addCss(array(
91  'mobile.css',
92  'mobile_builder.css',
93  ));
94  }
95 
96  function _filterIds ($a)
97  {
98  $aRet = array ();
99  foreach ($a as $iId) {
100  if (!$iId || $iId < 0)
101  continue;
102  $aRet[] = $iId;
103  }
104  return $aRet;
105  }
106 
107  function _generateItemsForContainer ($sKey)
108  {
109  $a = $this->getItemsForContainer ($sKey);
110  foreach ($a as $i => $r) {
111  $a[$i]['item'] = $this->getItem($r);
112  }
113  return $a;
114  }
115 
122  function getItemsForContainer ($sKey)
123  {
124  // !!! override this
125  return array (
126  array ('id' => 1, 'title' => 'Opa1'),
127  array ('id' => 2, 'title' => 'Opa2'),
128  );
129  }
130 
136  function getItem ($aItem)
137  {
138  // !!! override this
139  return $aItem['title'];
140  }
141 
148  function saveItemsOrderForContainer($sKey, $aOrderedIds)
149  {
150  global $MySQL;
151 
152  if (!isset($this->_aContainers[$sKey]))
153  return false;
154 
155  $iRet = 0;
156  $i = 1;
157  foreach ($aOrderedIds as $iId) {
158  $iRet += $MySQL->query("UPDATE {$this->_sTable} SET {$this->_sFieldOrder} = $i, {$this->_sFieldContainer} = '$sKey' WHERE {$this->_sFieldId} = " . (int)$iId);
159  ++$i;
160  }
161  return $iRet;
162  }
163 }
ChWsbAdminBuilder\saveItemsOrderForContainer
saveItemsOrderForContainer($sKey, $aOrderedIds)
Definition: ChWsbAdminBuilder.php:148
ChWsbAdminBuilder\$_sFieldOrder
$_sFieldOrder
Definition: ChWsbAdminBuilder.php:13
ChWsbAdminBuilder\__construct
__construct($sTable, $sPostUrl, $aContainers)
Definition: ChWsbAdminBuilder.php:22
php
ChWsbAdminBuilder\getBuilderPage
getBuilderPage()
Definition: ChWsbAdminBuilder.php:58
ChWsbAdminBuilder\$_sTable
$_sTable
Definition: ChWsbAdminBuilder.php:12
$iId
$iId
Definition: license.php:15
ChWsbAdminBuilder\$_sFieldContainer
$_sFieldContainer
Definition: ChWsbAdminBuilder.php:14
ChWsbAdminBuilder\$_aContainers
$_aContainers
Definition: ChWsbAdminBuilder.php:10
ChWsbAdminBuilder\addExternalResources
addExternalResources()
Definition: ChWsbAdminBuilder.php:82
ChWsbAdminBuilder\_generateItemsForContainer
_generateItemsForContainer($sKey)
Definition: ChWsbAdminBuilder.php:107
ChWsbAdminBuilder\$_sFieldId
$_sFieldId
Definition: ChWsbAdminBuilder.php:15
$sTitle
$sTitle
Definition: actions.inc.php:13
ChWsbAdminBuilder\postSaveItemsOrder
postSaveItemsOrder($aData)
Definition: ChWsbAdminBuilder.php:44
ChWsbAdminBuilder\$_sPostUrl
$_sPostUrl
Definition: ChWsbAdminBuilder.php:11
ChWsbAdminBuilder\getItem
getItem($aItem)
Definition: ChWsbAdminBuilder.php:136
global
if(!defined("GLOBAL_MODULE")) define("GLOBAL_MODULE" global
Definition: header.inc.php:25
ChWsbAdminBuilder\_filterIds
_filterIds($a)
Definition: ChWsbAdminBuilder.php:96
ChWsbAdminBuilder\$_sFieldTitle
$_sFieldTitle
Definition: ChWsbAdminBuilder.php:16
ChWsbAdminBuilder
Definition: ChWsbAdminBuilder.php:9
ChWsbAdminBuilder\handlePostActions
handlePostActions($aData)
Definition: ChWsbAdminBuilder.php:32
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10
ChWsbAdminBuilder\getItemsForContainer
getItemsForContainer($sKey)
Definition: ChWsbAdminBuilder.php:122
$GLOBALS
$GLOBALS['iAdminPage']
Definition: advanced_settings.php:10