OXID eShop CE  4.10.3
 All Classes Namespaces Files Functions Variables Pages
selectlist_order_ajax.php
Go to the documentation of this file.
1 <?php
2 
7 {
8 
14  protected $_aColumns = array('container1' => array(
15  array('oxtitle', 'oxselectlist', 1, 1, 0),
16  array('oxsort', 'oxobject2selectlist', 1, 0, 0),
17  array('oxident', 'oxselectlist', 0, 0, 0),
18  array('oxvaldesc', 'oxselectlist', 0, 0, 0),
19  array('oxid', 'oxobject2selectlist', 0, 0, 1)
20  )
21  );
22 
28  protected function _getQuery()
29  {
30  $sSelTable = $this->_getViewName('oxselectlist');
31  $sArtId = oxRegistry::getConfig()->getRequestParameter('oxid');
32 
33  $sQAdd = " from $sSelTable left join oxobject2selectlist on oxobject2selectlist.oxselnid = $sSelTable.oxid " .
34  "where oxobjectid = '$sArtId' ";
35 
36  return $sQAdd;
37  }
38 
44  protected function _getSorting()
45  {
46  return 'order by oxobject2selectlist.oxsort ';
47  }
48 
52  public function setSorting()
53  {
54  $sSelId = oxRegistry::getConfig()->getRequestParameter('oxid');
55  $sSelect = "select * from oxobject2selectlist where oxobjectid='$sSelId' order by oxsort";
56 
57  $oList = oxNew("oxlist");
58  $oList->init("oxbase", "oxobject2selectlist");
59  $oList->selectString($sSelect);
60 
61  // fixing indexes
62  $iSelCnt = 0;
63  $aIdx2Id = array();
64  foreach ($oList as $sKey => $oSel) {
65 
66  if ($oSel->oxobject2selectlist__oxsort->value != $iSelCnt) {
67  $oSel->oxobject2selectlist__oxsort->setValue($iSelCnt);
68 
69  // saving new index
70  $oSel->save();
71  }
72  $aIdx2Id[$iSelCnt] = $sKey;
73  $iSelCnt++;
74  }
75 
76  //
77  if (($iKey = array_search(oxRegistry::getConfig()->getRequestParameter('sortoxid'), $aIdx2Id)) !== false) {
78  $iDir = (oxRegistry::getConfig()->getRequestParameter('direction') == 'up') ? ($iKey - 1) : ($iKey + 1);
79  if (isset($aIdx2Id[$iDir])) {
80  // exchanging indexes
81  $oDir1 = $oList->offsetGet($aIdx2Id[$iDir]);
82  $oDir2 = $oList->offsetGet($aIdx2Id[$iKey]);
83 
84  $iCopy = $oDir1->oxobject2selectlist__oxsort->value;
85  $oDir1->oxobject2selectlist__oxsort->setValue($oDir2->oxobject2selectlist__oxsort->value);
86  $oDir2->oxobject2selectlist__oxsort->setValue($iCopy);
87 
88  $oDir1->save();
89  $oDir2->save();
90  }
91  }
92 
93  $sQAdd = $this->_getQuery();
94 
95  $sQ = 'select ' . $this->_getQueryCols() . $sQAdd;
96  $sCountQ = 'select count( * ) ' . $sQAdd;
97 
98  $this->_outputResponse($this->_getData($sCountQ, $sQ));
99  }
100 }