OXID eShop CE  4.10.1
 All Classes Namespaces Files Functions Variables Pages
news_main_ajax.php
Go to the documentation of this file.
1 <?php
2 
9 {
10 
16  protected $_aColumns = array('container1' => array( // field , table, visible, multilanguage, ident
17  array('oxtitle', 'oxgroups', 1, 0, 0),
18  array('oxid', 'oxgroups', 0, 0, 0),
19  array('oxid', 'oxgroups', 0, 0, 1),
20  ),
21  'container2' => array(
22  array('oxtitle', 'oxgroups', 1, 0, 0),
23  array('oxid', 'oxgroups', 0, 0, 0),
24  array('oxid', 'oxobject2group', 0, 0, 1),
25  )
26  );
27 
33  protected function _getQuery()
34  {
35  // active AJAX component
36  $sGroupTable = $this->_getViewName('oxgroups');
37  $oDb = oxDb::getDb();
38  $sDiscountId = $this->getConfig()->getRequestParameter('oxid');
39  $sSynchDiscountId = $this->getConfig()->getRequestParameter('synchoxid');
40 
41  // category selected or not ?
42  if (!$sDiscountId) {
43  $sQAdd = " from $sGroupTable where 1 ";
44  } else {
45  $sQAdd = " from oxobject2group left join $sGroupTable on oxobject2group.oxgroupsid=$sGroupTable.oxid ";
46  $sQAdd .= " where oxobject2group.oxobjectid = " . $oDb->quote($sDiscountId);
47  }
48 
49  if ($sSynchDiscountId && $sSynchDiscountId != $sDiscountId) {
50  $sQAdd .= ' and ' . $sGroupTable . '.oxid not in ( select ' . $sGroupTable . '.oxid from oxobject2group left join ' . $sGroupTable . ' on oxobject2group.oxgroupsid=' . $sGroupTable . '.oxid ';
51  $sQAdd .= " where oxobject2group.oxobjectid = " . $oDb->quote($sSynchDiscountId) . " ) ";
52  }
53 
54  return $sQAdd;
55  }
56 
60  public function removeGroupFromNews()
61  {
62  $aRemoveGroups = $this->_getActionIds('oxobject2group.oxid');
63  if ($this->getConfig()->getRequestParameter('all')) {
64 
65  $sQ = $this->_addFilter("delete oxobject2group.* " . $this->_getQuery());
66  oxDb::getDb()->Execute($sQ);
67 
68  } elseif ($aRemoveGroups && is_array($aRemoveGroups)) {
69  $sQ = "delete from oxobject2group where oxobject2group.oxid in (" . implode(", ", oxDb::getInstance()->quoteArray($aRemoveGroups)) . ") ";
70  oxDb::getDb()->Execute($sQ);
71  }
72  }
73 
77  public function addGroupToNews()
78  {
79  $aAddGroups = $this->_getActionIds('oxgroups.oxid');
80  $soxId = $this->getConfig()->getRequestParameter('synchoxid');
81 
82  if ($this->getConfig()->getRequestParameter('all')) {
83  $sGroupTable = $this->_getViewName('oxgroups');
84  $aAddGroups = $this->_getAll($this->_addFilter("select $sGroupTable.oxid " . $this->_getQuery()));
85  }
86  if ($soxId && $soxId != "-1" && is_array($aAddGroups)) {
87  foreach ($aAddGroups as $sAddgroup) {
88  $oNewGroup = oxNew("oxobject2group");
89  $oNewGroup->oxobject2group__oxobjectid = new oxField($soxId);
90  $oNewGroup->oxobject2group__oxgroupsid = new oxField($sAddgroup);
91  $oNewGroup->save();
92  }
93  }
94  }
95 }