コード例 #1
0
 /**
  * @return \Phalcon\Http\ResponseInterface
  */
 public function indexAction()
 {
     $feusers = Feusers::find(array('conditions' => 'deleted=0 AND (usergroup = ?1 OR onspot=1)', 'bind' => array(1 => $this->config['onspotusergroup']), 'order' => 'last_name ASC'));
     $allUsers = Feusers::find(array('conditions' => 'deleted=0 AND usergroup > 1'));
     $users = array();
     $onspotUsers = array();
     foreach ($feusers as $feuser) {
         $isOnspot = false;
         $feuser->available = '<span class="onspot inactive"></span>';
         $onspotDates = $feuser->getOnspotdates();
         $onspot = '<span class="onspot inactive"></span>';
         $onspotTitle = ' title="Heute nicht vor Ort"';
         foreach ($onspotDates as $onspotdate) {
             if (date('d.m.') == date('d.m.', $onspotdate->tstamp)) {
                 $feuser->available = '<span class="onspot active"></span>';
                 $isOnspot = true;
             }
         }
         if ($isOnspot) {
             $onspotUsers[] = $feuser;
         } else {
             $users[] = $feuser;
         }
     }
     $mergedAndSortedUsers = array_merge($onspotUsers, $users);
     $environment = $this->config['application']['debug'] ? 'development' : 'production';
     $baseUri = $this->config['application'][$environment]['staticBaseUri'];
     $path = $baseUri . '/' . $this->view->language . '/feusers/update/';
     $this->view->setVar('path', $path);
     $this->view->setVar('feusers', $mergedAndSortedUsers);
     $this->view->setVar('allusers', $allUsers);
 }
コード例 #2
0
 public function uploadAction()
 {
     $time = time();
     $this->assets->addJs('js/vendor/addressesInit.js');
     $addressfoldersRecords = Feusers::find(array("conditions" => "deleted=0 AND hidden=0 AND usergroup = ?1", "bind" => array(1 => $this->session->get('auth')['usergroup']), "order" => "tstamp DESC"));
     $usergroups = Usergroups::find(array('conditions' => 'deleted=0 AND cruser_id <> 0'));
     $this->view->setVar('addressfolders', $addressfoldersRecords);
     $this->view->setVar('usergroups', $usergroups);
     $this->view->setVar('filehideshow', '');
     $this->view->setVar('maphideshow', 'hidden');
     if ($this->request->isPost()) {
         $this->view->setVar('filehideshow', 'hidden');
         $this->view->setVar('maphideshow', '');
         if ($this->request->hasFiles() == true) {
             $mimes = array('application/vnd.ms-excel', 'text/plain', 'text/csv', 'text/tsv');
             $fileArray = $this->request->getUploadedFiles();
             $file = $fileArray[0];
             if (in_array($file->getType(), $mimes)) {
                 $nameArray = explode('.', $file->getName());
                 $filetype = $nameArray[count($nameArray) - 1];
                 $tmpFile = '../app/cache/tmp/' . $time . '_' . $file->getName();
                 $file->moveTo($tmpFile);
                 $row = 0;
                 if (($handle = fopen($tmpFile, "r")) !== FALSE) {
                     $fileRowField = array();
                     if ($this->request->hasPost('firstRowFieldNames')) {
                         $data[$row] = fgetcsv($handle, 1000, $this->_divider[$this->request->getPost('divider')], $this->_dataWrap[$this->request->getPost('dataFieldWrap')]);
                         $fileRowField = array_values($data[$row]);
                     } else {
                         while ($row < 3) {
                             $data[$row] = fgetcsv($handle, 1000, $this->_divider[$this->request->getPost('divider')], $this->_dataWrap[$this->request->getPost('dataFieldWrap')]);
                             $row++;
                         }
                         for ($i = 0; $i < count($data[0]); $i++) {
                             $fileRowField[] = $data[0][$i] . '<br>' . $data[1][$i] . '<br>' . $data[2][$i];
                         }
                     }
                     fclose($handle);
                 } else {
                     die('Failed');
                 }
             }
             $this->view->setVar('divider', $this->request->getPost('divider'));
             $this->view->setVar('dataFieldWrap', $this->request->getPost('dataFieldWrap'));
             $this->view->setVar('tstamp', $time);
             $this->view->setVar('firstRowFieldNames', $this->request->hasPost('firstRowFieldNames') ? 1 : 0);
             $this->view->setVar('filename', $file->getName());
             $this->view->setVar('uploadfields', $fileRowField);
         } else {
             $time = time();
             $row = 0;
             $insStr = '';
             $addressesDBFieldMap = array(1 => 'first_name', 2 => 'last_name', 3 => 'title', 4 => 'salutation', 5 => 'email', 6 => 'company', 7 => 'phone', 8 => 'address', 9 => 'city', 10 => 'zip', 11 => 'userlanguage', 12 => 'gender', 13 => 'region', 14 => 'jobtitle', 15 => 'division', 16 => 'specialization', 18 => 'username', 19 => 'password', 20 => 'image', 21 => 'personellnumber');
             $addressesDBFieldTypeMap = array(1 => 'string', 2 => 'string', 3 => 'string', 4 => 'string', 5 => 'string', 6 => 'string', 7 => 'string', 8 => 'string', 9 => 'string', 10 => 'int', 11 => 'int', 12 => 'int', 13 => 'string', 14 => 'string', 15 => 'string', 16 => 'string', 18 => 'string', 19 => 'string', 20 => 'string', 21 => 'string');
             $basevals = array('pid' => 0, 'deleted' => 0, 'hidden' => 0, 'profileid' => 0, 'superuser' => 0, 'tstamp' => $time, 'crdate' => $time, 'cruser_id' => $this->session->get('auth')['uid'], 'usergroup' => $this->request->hasPost('usergroup') ? $this->request->getPost('usergroup') : 0, 'onspot' => $this->request->hasPost('onspot') ? 1 : 0);
             $indexArray = array();
             foreach ($this->request->getPost('adressFieldsMap') as $addressFieldIndex => $addressField) {
                 if (intval($addressField) != 0 && !is_nan(intval($addressField))) {
                     $indexArray[$addressFieldIndex] = $addressesDBFieldMap[$addressField];
                 }
             }
             foreach ($addressesDBFieldMap as $fieldIndex => $dbFields) {
                 if (!array_key_exists($dbFields, $indexArray)) {
                     if ($addressesDBFieldTypeMap[$fieldIndex] === 'string') {
                         $basevals[$dbFields] = '';
                     } else {
                         $basevals[$dbFields] = 0;
                     }
                 }
             }
             $tmpFile = '../app/cache/tmp/' . $this->request->getPost('time') . '_' . $this->request->getPost('filename');
             if (($handle = fopen($tmpFile, "r")) !== FALSE) {
                 if ($this->request->getPost('firstRowFieldNames') == 1) {
                     $data = fgetcsv($handle, 1000, $this->_divider[$this->request->getPost('divider')], $this->_dataWrap[$this->request->getPost('dataFieldWrap')]);
                 }
                 while (($data = fgetcsv($handle, 1000, $this->_divider[$this->request->getPost('divider')], $this->_dataWrap[$this->request->getPost('dataFieldWrap')])) !== FALSE) {
                     $feuser = new \messetool\Models\Feusers();
                     $fullname = '';
                     $imagename = ' ';
                     $imagenameName = '';
                     $imageNumber = 0;
                     $zipArrStrng = '';
                     foreach ($indexArray as $index => $indexKey) {
                         if ($indexKey == 'zip') {
                             $ins[$indexKey] = 0;
                             $zipArrStrng = $data[$index];
                         } elseif ($indexKey == 'first_name') {
                             $fullname = $data[$index];
                             $imagenameName = $data[$index];
                             $ins[$indexKey] = $data[$index];
                         } elseif ($indexKey == 'last_name') {
                             $fullname .= ' ' . $data[$index];
                             $imagenameName .= '_' . $data[$index];
                             $ins[$indexKey] = $data[$index];
                         } elseif ($indexKey == 'phone') {
                             $phone = str_replace(array(' ', '+49', '(', ')', '/', '-'), array('', '', '', '', '', ''), $data[$index]);
                             if (substr($phone, 0, 1) == '0') {
                                 $phone = '0049' . substr($phone, 1);
                             } else {
                                 $phone = '0049' . $phone;
                             }
                             $ins[$indexKey] = $phone;
                         } elseif ($indexKey == 'image') {
                             $imageNumber = $data[$index];
                         } else {
                             $ins[$indexKey] = $data[$index];
                         }
                     }
                     $insArray = array_merge($basevals, $ins);
                     $insArray['fullname'] = $fullname;
                     $insArray['image'] = $imageNumber . '_' . str_replace(' ', '_', $imagenameName) . '.jpg';
                     if ($this->request->hasPost('onspot')) {
                         $insArray['password'] = $this->auth->encryptPassword($insArray['personellnumber']);
                     }
                     $feuser->assign = $insArray;
                     $feuser->save();
                     $zipArray = explode(',', $zipArrStrng);
                     foreach ($zipArray as $zip) {
                         $lookup = new \messetool\Models\Feuser_zipcodes_lookup();
                         $lookup->assign(array('uid_local' => $feuser->uid, 'uid_foreign' => $zip));
                         $lookup->save();
                     }
                 }
                 fclose($handle);
                 unlink($tmpFile);
             }
             $this->response->redirect('backend/' . $this->view->language . '/feusers/');
             $this->view->disable();
         }
     } else {
         $this->view->setVar('divider', '');
         $this->view->setVar('dataFieldWrap', '');
         $this->view->setVar('tstamp', '');
         $this->view->setVar('filename', '');
         $this->view->setVar('firstRowFieldNames', '');
         $this->view->setVar('uploadfields', array());
     }
 }
コード例 #3
0
    private function SearchName($queryStrng)
    {
        /*$queryStrng=$this->request->getPost('query');*/
        $suggestions = array("suggestions" => array());
        $suggestionQuery = Feusers::find(array('conditions' => 'usergroup > 1 AND fullname LIKE ?1 ORDER BY usergroup DESC', 'bind' => array(1 => '%' . $queryStrng . '%')));
        foreach ($suggestionQuery as $suggestion) {
            $onspot = '';
            $onspotTitle = '';
            if ($suggestion->onspot) {
                $onspotDates = $suggestion->getOnspotdates();
                $onspot = '<span class="onspot inactive"></span>';
                $onspotTitle = ' title="Heute nicht vor Ort"';
                foreach ($onspotDates as $onspotdate) {
                    if (date('d.m.') == date('d.m.', $onspotdate->tstamp)) {
                        $onspot = '<span class="onspot active"></span>';
                        $onspotTitle = ' title="Heute für Sie am Stand"';
                    }
                }
            }
            $info1 = $suggestion->onspot ? $suggestion->jobtitle : $suggestion->specialization;
            $info2 = $suggestion->onspot ? $suggestion->city : $suggestion->region;
            $suggestions['suggestions'][] = array('value' => $suggestion->first_name . ' ' . $suggestion->last_name, 'html' => '<div class="suggestion-item"' . $onspotTitle . '>' . $onspot . '
										<table>
											<tr>
												<td>
													<img src="' . $this->userImgExists($suggestion->image) . '" style="max-height:100px">
												</td>
												<td>
													<div class="">
														<span style="font-weight:bold">' . $suggestion->first_name . ' ' . $suggestion->last_name . '</span>,<br>
														' . $info1 . ',<br>
														' . $info2 . '<br><span class="contactButton small">SMS senden</span>
													</div>
												</td>
											</tr>
										</table>
									</div>', 'data' => $suggestion->uid);
        }
        return $suggestions;
    }