public function run() { $model = new User('search'); if (count($model->resetScope()->searchNeedApproval()->getData()) != 0) { $this->render('profileActivities', array()); } }
public function actionChooseNewOwner() { $apId = Yii::app()->request->getParam('id'); if (!$apId) { throw404(); } $modelApartment = Apartment::model()->findByPk($apId); if (!$modelApartment) { throw404(); } $this->modelName = 'ChangeOwner'; $model = new ChangeOwner(); $modelUser = new User('search'); $modelUser->resetScope(); $modelUser->unsetAttributes(); // clear any default values if (isset($_GET['User'])) { $modelUser->attributes = $_GET['User']; } $modelUser->active = 1; if (Yii::app()->request->isPostRequest) { if (isset($_POST)) { $futureOwner = isset($_POST['itemsSelected']) && isset($_POST['itemsSelected'][0]) ? $_POST['itemsSelected'][0] : ''; $futureApartments = array($apId); $model->setAttributes(array('futureOwner' => $futureOwner, 'futureApartments' => array($apId))); if ($model->validate()) { if ($futureOwner && is_array($futureApartments)) { $sql = 'UPDATE {{apartment}} SET owner_id = ' . $futureOwner . ' WHERE id IN (' . implode(', ', $futureApartments) . ')'; Yii::app()->db->createCommand($sql)->execute(); $sql = 'UPDATE {{images}} SET id_owner = ' . $futureOwner . ' WHERE id_object IN (' . implode(', ', $futureApartments) . ')'; Yii::app()->db->createCommand($sql)->execute(); Yii::app()->cache->flush(); Yii::app()->user->setFlash('success', tc('Success')); Yii::app()->controller->redirect(array('admin')); } } } } $renderData = array('apId' => $apId, 'model' => $model, 'modelUser' => $modelUser, 'modelApartment' => $modelApartment); if (Yii::app()->request->isAjaxRequest) { $this->renderPartial('change_owner', $renderData, false, true); } else { $this->render('change_owner', $renderData); } }
public function actionImportUpload() { $model = new $this->modelName(); $session = Yii::app()->session; $modelUsers = new User('search'); $modelUsers->resetScope(); $modelUsers->active(); $modelUsers->unsetAttributes(); // clear any default values if (isset($_GET['User'])) { $modelUsers->attributes = $_GET['User']; } if (!isset($_FILES[$this->modelName]) && isset($session['importAds']) && $session['importAds']) { $itemsProvider = new CArrayDataProvider($session['importAds'], array('sort' => array('attributes' => array('title')), 'pagination' => array('pageSize' => count($session['importAds'])))); $this->render('view_import_grid', compact('itemsProvider', 'model', 'modelUsers')); } else { if (isset($_FILES[$this->modelName]) && isset($_FILES[$this->modelName]['name'])) { $model->import = CUploadedFile::getInstance($model, 'import'); if ($model->validate()) { $fileExt = $model->import->extensionName; $fileName = date('Y_m_d_s') . rand(0, 9) . '_import.' . $fileExt; $filePath = $model->csvPath . DIRECTORY_SEPARATOR . $fileName; $model->import->saveAs($filePath); $isZip = false; // if zip arhive if ($fileExt == 'zip') { $isZip = true; include_once $model->libraryPath . DIRECTORY_SEPARATOR . 'pclzip.lib.php'; $archive = new PclZip($filePath); $list = $archive->extract(PCLZIP_OPT_PATH, $model->csvPath, PCLZIP_OPT_SET_CHMOD, 0777, PCLZIP_OPT_REMOVE_ALL_PATH); $v_list = $archive->delete(); /* if ($v_list == 0) { die("Error : ".$archive->errorInfo(true)); } */ foreach ($list as $item) { if (strpos($item["stored_filename"], ".csv")) { if ($item["stored_filename"] != $fileName) { $fileNameCSV = str_replace(".zip", ".csv", $fileName); if (copy($model->csvPath . DIRECTORY_SEPARATOR . $item["stored_filename"], $model->csvPath . DIRECTORY_SEPARATOR . $fileNameCSV)) { @unlink($model->csvPath . DIRECTORY_SEPARATOR . $item["stored_filename"]); } else { Yii::app()->user->setFlash('error', tt('Error copying file. Please try again later and set 0777 for ' . $model->csvPath)); $this->redirect('viewImport'); } @unlink($model->csvPath . DIRECTORY_SEPARATOR . $item["stored_filename"]); @unlink($model->csvPath . DIRECTORY_SEPARATOR . $fileName); $fileName = $fileNameCSV; $filePath = $model->csvPath . DIRECTORY_SEPARATOR . $fileName; } break; } } } $import = $rowData = array(); //parse csv file @setlocale(LC_ALL, 'en_US.utf8'); if (($handle = fopen($filePath, "r")) !== FALSE) { while (($data = fgetcsv($handle, 0, ";")) !== FALSE) { $import[] = $data; } fclose($handle); $keys = $import[0]; // remove BOM from file $bom = pack('H*', 'EFBBBF'); $keys[0] = preg_replace("/^{$bom}/", '', $keys[0]); unset($import[0]); $j = 1; foreach ($import as $key => $items) { if (count($keys) == count($items)) { $import[$key] = array_combine($keys, $items); $import[$key]["id"] = $j; $j++; } else { continue; } } // insert result into session $session['importAds'] = $import; $session['isZip'] = $isZip; } $itemsProvider = new CArrayDataProvider($import, array('sort' => array('attributes' => array('title')), 'pagination' => array('pageSize' => count($import)))); $this->render('view_import_grid', compact('itemsProvider', 'model', 'modelUsers')); } else { Yii::app()->user->setFlash('error', Yii::t('module_iecsv', 'Please select a *.csv or *.zip file for import. Max size of file is {size}.', array('{size}' => $model->fileMaxSizeMessage))); $this->redirect('viewImport'); } } else { $this->redirect('viewImport'); } } }