Example #1
0
 /**
  * Bearbeiten eines Dokuments (metadaten)
  * 
  * @param string $id
  * @return \yii\web\View
  * @author KAS <*****@*****.**> 06.08.2015
  */
 public function actionEdit($id = NULL)
 {
     Yii::$app->view->params['headline'] = 'Dokument bearbeiten';
     // Wir laden das gewählte Document
     $model = Documents::findOne(new \MongoId($id));
     // Wir machen aus dem Array ein Object ---------------------------------
     #$model->metadata = new Metadata($model->metadata);
     // Nur wenn auch ein POST gesendet wurde -------------------------------
     if (\Yii::$app->request->isPost) {
         $post = \Yii::$app->request->post();
         $meta = new Metadata($post['Documents']['metadata']);
         // Hier werden die Daten für Mongo angepasst(convertiert) ----------
         $meta->load($post['Documents']['metadata']);
         //------------------------------------------------------------------
         // wir belassen die originalen Metadaten
         $model->metadata = $model->metadata->toArray();
         // Änderungen werden in metadatanew abgelegt
         $model->metadatanew = $meta->toArray();
         #var_dump($model);
         // Speichern der Daten
         $model->update();
         // daten refreshen und neu zuordnen --------------------------------
         $model->refresh();
         $model->metadata = new Metadata($model->metadata);
     }
     //----------------------------------------------------------------------
     // Wenn bereits neue Daten vorhanden sind,
     // laden wir diese für die Anzeige
     if ($model->metadatanew !== NULL) {
         #$model->metadata = new Metadata($model->metadatanew);
     }
     return $this->render('edit', ['model' => $model]);
 }
Example #2
0
 public function actionIndex()
 {
     $request = Yii::$app->request;
     try {
         $query = $request->get('search-string', '');
         $query = HtmlPurifier::process($query);
         Yii::$app->view->title = 'Kết quả tìm kiếm cho ' . $query;
         Yii::$app->view->registerMetaTag(['name' => 'description', 'content' => 'Bluebee-UET.com - Kết quả tìm kiếm cho ' . $query]);
         Yii::$app->view->registerMetaTag(['property' => 'og:title', 'content' => 'Bluebee-UET.com - Kết quả tìm kiếm cho ' . $query]);
         Yii::$app->view->registerMetaTag(['property' => 'og:description', 'content' => 'Bluebee-UET.com - Kết quả tìm kiếm cho ' . $query]);
         Yii::$app->view->registerMetaTag(['property' => 'og:image', 'content' => 'http://bluebee-uet.com/img/logo.jpg']);
         $attr = $request->get('attr', '');
         switch ($attr) {
             case 'teacher':
                 $data = Teachers::searchTeachers(strtolower($query));
                 break;
             case 'document':
                 $data = Documents::searchDocuments(strtolower($query));
                 break;
             case 'subject':
                 $data = Subjects::searchSubjects(strtolower($query));
                 break;
             default:
                 $this->redirect('http://bluebee-uet.com');
                 break;
         }
         $data['attr'] = $attr;
         $data['query'] = $query;
         return $this->render('index', $data);
     } catch (Exception $ex) {
     }
 }
 public function actionDelete()
 {
     Yii::$app->response->format = Response::FORMAT_JSON;
     $request = \Yii::$app->request;
     $data = $request->post();
     $id = $data['id'];
     try {
         Documents::findOne(['id' => $id])->delete();
         return ['status' => 1, 'message' => 'Thành công'];
     } catch (Exception $ex) {
         return ['status' => 0, 'message' => 'Có lỗi xảy ra'];
     }
 }
Example #4
0
 public function document()
 {
     $user = Session::read('member');
     $id = md5($user['email']);
     $document = Details::find('first', array('conditions' => array('user_id' => (string) $user['_id'])));
     //		if(count($document)==0){return $this->redirect('/');}
     $uploadOk = 1;
     if ($this->request->data) {
         $extension = pathinfo($this->request->data['file']['name'], PATHINFO_EXTENSION);
         $allowed = array('pdf');
         if (!in_array(strtolower($extension), $allowed)) {
             $msg = "Sorry, only PDF files are allowed.";
             $uploadOk = 0;
         }
         if ($uploadOk = 1) {
             $option = 'doc';
             $data = array('details_' . $option . '_id' => (string) $document['_id'], 'docname' => $this->request->data['docname'], 'date' => $this->request->data['date'], 'DateTime' => new \MongoDate(), 'keywords' => $this->request->data['keywords'], 'description' => $this->request->data['description'], $option => $this->request->data['file'], $option . '.verified' => 'No', $option . '.IP' => $_SERVER['REMOTE_ADDR']);
             $field = 'details_' . $option . '_id';
             $Documents = Documents::create($data);
             $saved = $Documents->save();
             $fileData = array('file' => $this->request->data['file'], 'documents_' . $option . '_id' => (string) $Documents->_id);
             $file = File::create();
             if ($file->save($fileData)) {
                 $msg = "Upload OK";
             }
             $image_address = File::find('first', array('conditions' => array('documents_doc_id' => (string) $Documents->_id)));
             if ($image_address['filename'] != "") {
                 $imagename_address = $image_address['_id'] . '_' . $image_address['filename'];
                 $path = LITHIUM_APP_PATH . '/webroot/download/' . $imagename_address;
                 file_put_contents($path, $image_address->file->getBytes());
             }
             //		print_r($path);
             $pages = $this->getPDFPages($path);
             // Output: 13
             //				print_r($pages);exit;
             unlink($path);
             $docdata = array();
             foreach ($pages as $page) {
                 $params = explode(":", $page);
                 $left = $params[0];
                 $right = $params[1];
                 $docdata = array_merge($docdata, array($left => trim($right)));
             }
             $data = array("document" => $docdata);
             $conditions = array("_id" => (string) $Documents->_id);
             Documents::update($data, $conditions);
             // Use the function
         }
     }
     return $this->redirect('ex::save');
 }
Example #5
0
 public function actionMyWishlist()
 {
     try {
         $id = Yii::$app->session['user_id'];
         if (empty($id)) {
             $this->redirect('http://bluebee-uet.com');
         }
         $data = Documents::getDocumentsByWishlist($id);
         $user = Users::findOne(['id' => $id]);
         Yii::$app->view->title = $user->name . ', đây là tài liệu bạn đã đánh dấu';
         return $this->render('//document/documents', $data);
     } catch (Exception $ex) {
     }
 }
Example #6
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Documents::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'created' => $this->created]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'text', $this->text]);
     return $dataProvider;
 }
 public function getkycinfo()
 {
     $email = $this->request->query['email'];
     $kycid = $this->request->query['kycid'];
     if ($email == "" || $kycid == "") {
         return $this->render(array('json' => array('success' => 0)));
     }
     $document = Documents::find('first', array('conditions' => array('email' => $email, 'kyc_id' => $kycid)));
     $encrypt = $document['hash'];
     //		print_r($function->decrypt($encrypt,CONNECTION_DB_KYC));
     if (count($document) == 1) {
         return $this->render(array('json' => array('success' => 1, 'id' => $encrypt)));
     } else {
         return $this->render(array('json' => array('success' => 0)));
     }
 }
Example #8
0
 public function save($id = null)
 {
     $user = Session::read('member');
     if ($user == "") {
         return $this->redirect('/');
     }
     //			$id = 		md5($user['email']);
     if ($id != "") {
         $data = array("Saved" => "Yes");
         $conditions = array('_id' => $id);
         Documents::update($data, $conditions);
         $this->redirect("ex::dashboard");
     }
     $detail = Details::find('first', array('conditions' => array('user_id' => (string) $user['_id'])));
     $option = 'fileType';
     $document = Documents::find('first', array('conditions' => array('details_doc_id' => (string) $detail['_id'], 'Saved' => null)));
     $rates = Rates::find('first', array('conditions' => array('Min' => array('$lte' => intval($document['document']['Pages'])), 'Max' => array('$gte' => intval($document['document']['Pages'])))));
     return compact('document', 'rates');
 }
Example #9
0
 /**
  * Filtern und Sortieren der Documente
  * 
  * @param type $params
  * @return ActiveDataProvider
  * @author KAS <*****@*****.**>
  */
 public function search($params)
 {
     $query = Documents::find();
     //
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 15]]);
     // Sortieren setzen ----------------------------------------------------
     $dataProvider->setSort(['defaultOrder' => ['filename' => SORT_ASC], 'attributes' => ['metadata.TITEL' => ['asc' => ['metadata.TITEL' => SORT_ASC], 'desc' => ['metadata.TITEL' => SORT_DESC]], 'filename' => ['asc' => ['filename' => SORT_ASC], 'desc' => ['filename' => SORT_DESC]], 'onlineStatus' => ['asc' => ['onlineStatus' => SORT_ASC], 'desc' => ['onlineStatus' => SORT_DESC]]]]);
     // Setzen der Get Parameter --------------------------------------------
     $this->setAttributes($params);
     // Filter für Status ---------------------------------------------------
     if ($this->onlineStatus !== "" and $this->onlineStatus !== NULL) {
         // Boolean aus string erzeugen (testen ob auch (bool)$this->onlineStatus gehen würde)
         $this->onlineStatus = $this->onlineStatus === "false" ? false : true;
         $query->filterWhere(['onlineStatus' => $this->onlineStatus]);
     }
     // Sonstige Filter -----------------------------------------------------
     $query->andFilterWhere(['like', 'filename', $this->filename]);
     $query->andFilterWhere(['like', 'metadata.ZSTITEL', $this->zs]);
     $query->andFilterWhere(['like', 'metadata.TITEL', $this->titel]);
     $query->andFilterWhere(['like', 'groups', $this->group]);
     //----------------------------------------------------------------------
     return $dataProvider;
 }
Example #10
0
 public function signup()
 {
     if ($this->request->data) {
         //		if(stristr( $_SERVER['HTTP_REFERER'],COMPANY_URL)===FALSE){return $this->redirect('/login');exit;}
         $Users = Users::create($this->request->data);
         $saved = $Users->save();
         if ($saved == true) {
             $verification = sha1($Users->_id);
             //			$oauth = new OAuth2();
             //			$key_secret = $oauth->request_token();
             $ga = new GoogleAuthenticator();
             $data = array('user_id' => (string) $Users->_id, 'username' => (string) $Users->username, 'email.verify' => $verification, 'mobile.verified' => "No", 'mobile.number' => "", 'key' => $ga->createSecret(64), 'secret' => $ga->createSecret(64), 'Friend' => array());
             $Details = Details::create($data);
             $saved = $Details->save();
             $data = array('user_id' => (string) $Users->_id, 'email' => $Users->email, 'username' => (string) $Users->username, 'detail_id' => (string) $Details->_id, 'hash' => md5($Users->email), 'IP' => $_SERVER['REMOTE_ADDR']);
             $Documents = Documents::create($data);
             $saved = $Documents->save();
             $email = $this->request->data['email'];
             $name = $this->request->data['firstname'];
             $view = new View(array('loader' => 'File', 'renderer' => 'File', 'paths' => array('template' => '{:library}/views/{:controller}/{:template}.{:type}.php')));
             $body = $view->render('template', compact('email', 'verification', 'name'), array('controller' => 'users', 'template' => 'confirm', 'type' => 'mail', 'layout' => false));
             $transport = Swift_MailTransport::newInstance();
             $mailer = Swift_Mailer::newInstance($transport);
             $message = Swift_Message::newInstance();
             $message->setSubject("Verification of email from " . COMPANY_URL);
             $message->setFrom(array(NOREPLY => 'Verification email ' . COMPANY_URL));
             $message->setTo($Users->email);
             $message->addBcc(MAIL_1);
             $message->addBcc(MAIL_2);
             $message->addBcc(MAIL_3);
             $message->setBody($body, 'text/html');
             $mailer->send($message);
             $this->redirect('Users::email');
         }
     }
     return compact('saved', 'Users');
 }
Example #11
0
 public static function getAllgroups()
 {
     $arr = Documents::find()->distinct('groups');
     return array_combine(array_values($arr), array_values($arr));
 }
Example #12
0
 public function checkCompanyemail()
 {
     $email = strtolower($this->request->query['email']);
     $uuid = new Uuid();
     $emails = Documents::find('first', array('conditions' => array('email' => $email)));
     if (count($emails) === 0) {
         $kyc_id = $uuid->v4v();
         $email_code = substr($kyc_id, 0, 4);
         $data = array('kyc_id' => $kyc_id, 'email_code' => $email_code, 'email' => $email, 'hash' => md5($email), 'IP' => $_SERVER['REMOTE_ADDR']);
         $Companies = Companies::create($data);
         $saved = $Companies->save();
     } else {
         $emails = Companies::find('first', array('conditions' => array('email' => $email)));
         $kyc_id = $emails['kyc_id'];
         if ($emails['Verify']['Score'] >= 80) {
             return $this->render(array('json' => array('success' => 0, 'reason' => 'Aleredy KYC complete')));
         }
     }
     /////////////////////////////////Email//////////////////////////////////////////////////
     $emaildata = array('kyc_id' => $kyc_id, 'email' => $email);
     $function = new Functions();
     $compact = array('data' => $emaildata);
     $from = array(NOREPLY => "noreply@" . COMPANY_URL);
     $email = $email;
     $function->sendEmailTo($email, $compact, 'process', 'sendKYCCompany', "KYCGlobal - Email Code", $from, '', '', '', null);
     /////////////////////////////////Email//////////////////////////////////////////////////
     return $this->render(array('json' => array('success' => 1)));
 }
Example #13
0
 public function actionAddWishlist()
 {
     $request = Yii::$app->request;
     try {
         $doc_id = $request->post('doc_id', '');
         $user_id = Yii::$app->session['user_id'];
         $check_doc = Documents::find()->where(['id' => $doc_id])->count();
         if ($check_doc == 0) {
             return json_encode(Util::arrayError('Không tồn tại tài liệu này', ''));
         }
         if (empty($user_id)) {
             return json_encode(Util::arrayError('Bạn chưa đăng nhập', ''));
         }
         $result = Wishlist::add($doc_id, $user_id);
         return json_encode(Util::arraySuccess('Thành công', $result));
     } catch (Exception $ex) {
     }
 }
Example #14
0
 public static function getDocumentsByWishlist($user)
 {
     $query = Documents::find()->join('JOIN', 'wishlist', '`wishlist`.`doc_id`=`documents`.`id`')->where(['wishlist.user_id' => $user])->orderBy('wishlist.created_at desc');
     $countQuery = clone $query;
     $pages = new Pagination(['totalCount' => $countQuery->count()]);
     $pages->defaultPageSize = 27;
     $models = $query->offset($pages->offset)->limit($pages->limit)->all();
     if (!Yii::$app->cache->exists('subjects')) {
         $subjects = Subjects::find()->orderBy('name', 'desc')->all();
         Yii::$app->cache->add('subjects', $subjects, 3600);
     } else {
         $subjects = Yii::$app->cache->get('subjects');
     }
     return ['models' => $models, 'pages' => $pages, 'subjects' => $subjects];
 }
Example #15
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getDocument()
 {
     return $this->hasOne(Documents::className(), ['id' => 'document_id']);
 }
Example #16
0
 public function info($id = null)
 {
     $document = Documents::find('first', array('conditions' => array('kyc_id' => $id)));
     if (count($document) == 0) {
         return $this->render(array('json' => array("success" => 0)));
     }
     if ($document['Verify']['Percent'] > 60) {
         $success = 1;
     } else {
         $success = 0;
     }
     $data = array('success' => $success, 'kyc_id' => $document['kyc_id'], 'email' => $document['email'], 'details' => $document['details'], 'score' => $document['Verify']['Score'], 'percent' => $document['Verify']['Percent']);
     return $this->render(array('json' => $data));
 }