OXID eShop CE  4.8.12
 All Classes Files Functions Variables Pages
deliveryset_users_ajax.php
Go to the documentation of this file.
1 <?php
2 
7 {
13  protected $_aColumns = array( 'container1' => array( // field , table, visible, multilanguage, ident
14  array( 'oxusername', 'oxuser', 1, 0, 0 ),
15  array( 'oxlname', 'oxuser', 0, 0, 0 ),
16  array( 'oxfname', 'oxuser', 0, 0, 0 ),
17  array( 'oxstreet', 'oxuser', 0, 0, 0 ),
18  array( 'oxstreetnr', 'oxuser', 0, 0, 0 ),
19  array( 'oxcity', 'oxuser', 0, 0, 0 ),
20  array( 'oxzip', 'oxuser', 0, 0, 0 ),
21  array( 'oxfon', 'oxuser', 0, 0, 0 ),
22  array( 'oxbirthdate', 'oxuser', 0, 0, 0 ),
23  array( 'oxid', 'oxuser', 0, 0, 1 ),
24  ),
25  'container2' => array(
26  array( 'oxusername', 'oxuser', 1, 0, 0 ),
27  array( 'oxlname', 'oxuser', 0, 0, 0 ),
28  array( 'oxfname', 'oxuser', 0, 0, 0 ),
29  array( 'oxstreet', 'oxuser', 0, 0, 0 ),
30  array( 'oxstreetnr', 'oxuser', 0, 0, 0 ),
31  array( 'oxcity', 'oxuser', 0, 0, 0 ),
32  array( 'oxzip', 'oxuser', 0, 0, 0 ),
33  array( 'oxfon', 'oxuser', 0, 0, 0 ),
34  array( 'oxbirthdate', 'oxuser', 0, 0, 0 ),
35  array( 'oxid', 'oxobject2delivery', 0, 0, 1 ),
36  )
37  );
38 
44  protected function _getQuery()
45  {
46  $myConfig = $this->getConfig();
47  $oDb = oxDb::getDb();
48  $sId = $myConfig->getRequestParameter( 'oxid' );
49  $sSynchId = $myConfig->getRequestParameter( 'synchoxid' );
50 
51  $sUserTable = $this->_getViewName('oxuser');
52 
53  // category selected or not ?
54  if ( !$sId) {
55  $sQAdd = " from $sUserTable where 1 ";
56  if (!$myConfig->getConfigParam( 'blMallUsers' ) )
57  $sQAdd .= "and $sUserTable.oxshopid = '".$myConfig->getShopId()."' ";
58  } elseif ( $sSynchId && $sSynchId != $sId ) {
59  // selected group ?
60  $sQAdd = " from oxobject2group left join $sUserTable on $sUserTable.oxid = oxobject2group.oxobjectid ";
61  $sQAdd .= " where oxobject2group.oxgroupsid = ".$oDb->quote( $sId );
62  if (!$myConfig->getConfigParam( 'blMallUsers' ) )
63  $sQAdd .= "and $sUserTable.oxshopid = '".$myConfig->getShopId()."' ";
64 
65  // resetting
66  $sId = null;
67  } else {
68  $sQAdd = " from oxobject2delivery, $sUserTable where oxobject2delivery.oxdeliveryid = ".$oDb->quote( $sId );
69  $sQAdd .= "and oxobject2delivery.oxobjectid = $sUserTable.oxid and oxobject2delivery.oxtype = 'oxdelsetu' ";
70  }
71 
72  if ( $sSynchId && $sSynchId != $sId) {
73  $sQAdd .= "and $sUserTable.oxid not in ( select $sUserTable.oxid from oxobject2delivery, $sUserTable where oxobject2delivery.oxdeliveryid = ".$oDb->quote( $sSynchId );
74  $sQAdd .= "and oxobject2delivery.oxobjectid = $sUserTable.oxid and oxobject2delivery.oxtype = 'oxdelsetu' ) ";
75  }
76 
77  return $sQAdd;
78  }
79 
85  public function removeUserFromSet()
86  {
87  $aRemoveGroups = $this->_getActionIds( 'oxobject2delivery.oxid' );
88  if ( $this->getConfig()->getRequestParameter( 'all' ) ) {
89 
90  $sQ = $this->_addFilter( "delete oxobject2delivery.* ".$this->_getQuery() );
91  oxDb::getDb()->Execute( $sQ );
92 
93  } elseif ( $aRemoveGroups && is_array( $aRemoveGroups ) ) {
94  $sQ = "delete from oxobject2delivery where oxobject2delivery.oxid in (" . implode( ", ", oxDb::getInstance()->quoteArray( $aRemoveGroups ) ) . ") ";
95  oxDb::getDb()->Execute( $sQ );
96  }
97  }
98 
104  public function addUserToSet()
105  {
106  $aChosenUsr = $this->_getActionIds( 'oxuser.oxid' );
107  $soxId = $this->getConfig()->getRequestParameter( 'synchoxid' );
108 
109  // adding
110  if ( $this->getConfig()->getRequestParameter( 'all' ) ) {
111  $sUserTable = $this->_getViewName('oxuser');
112  $aChosenUsr = $this->_getAll( $this->_addFilter( "select $sUserTable.oxid ".$this->_getQuery() ) );
113  }
114  if ( $soxId && $soxId != "-1" && is_array( $aChosenUsr ) ) {
115  foreach ( $aChosenUsr as $sChosenUsr) {
116  $oObject2Delivery = oxNew( 'oxbase' );
117  $oObject2Delivery->init( 'oxobject2delivery' );
118  $oObject2Delivery->oxobject2delivery__oxdeliveryid = new oxField($soxId);
119  $oObject2Delivery->oxobject2delivery__oxobjectid = new oxField($sChosenUsr);
120  $oObject2Delivery->oxobject2delivery__oxtype = new oxField("oxdelsetu");
121  $oObject2Delivery->save();
122  }
123  }
124  }
125 
126 }