function execute()
 {
     $this->frame = false;
     $locale = new Locales('connection');
     $list = $locale->getList();
     $this->smarty->assign('lang', $list);
     $fieldID = Request::post('id');
     $model = new connectionFieldsModel();
     $this->smarty->assign('field', $model->getField($fieldID));
 }
 function execute()
 {
     $field = Request::post('field');
     $model = new connectionFieldsModel();
     if ($model->save($field)) {
         return 'success';
     } else {
         return 'error';
     }
 }
 function execute()
 {
     $locale = new Locales('connection');
     $list = $locale->getList();
     $this->smarty->assign('lang', $list);
     $model = new connectionFieldsModel();
     $fields = array();
     $fields['info'] = $model->getGroup('info');
     $fields['interest'] = $model->getGroup('interest');
     $this->smarty->assign('fields', $fields);
 }
 function execute()
 {
     $user_id = Request::get('user_id');
     $model = new connectionUserModel();
     $user = $model->getFromId((int) $user_id);
     if (!$user || $user['status'] != connectionUserModel::STATUS_PUBLISHED) {
         $this->showNotFound();
         return;
     }
     $userInfo = $model->getInfo((int) $user['id']);
     $fieldsModel = new connectionFieldsModel();
     $this->setSeoPage('profile');
     return array('user_profile' => $userInfo, 'video' => connectionUserVideoModel::create()->where(array('user' => (int) $user_id, 'status' => 'published'))->sort('date', -1)->fetchAll(), 'fields' => array('info' => $fieldsModel->getGroupLocale('info', Language::getActiveLanguageISO(), true), 'interest' => $fieldsModel->getGroupLocale('interest', Language::getActiveLanguageISO(), true)));
 }
 function execute()
 {
     $field = Request::post('field');
     $value = Request::post('value');
     $field_id = Request::post('id');
     connectionFieldsModel::create()->where(array('id' => (int) $field_id))->update(array($field => $value == 1 ? true : false));
 }
 function execute()
 {
     if (Request::get('delete_attach') && Request::get('file')) {
         $user = ConnectionHelper::userLogin();
         $key = 'field_' . (int) Request::get('delete_attach');
         if (isset($user[$key])) {
             foreach ($user[$key] as $index => $value) {
                 if ($value['file'] == Request::get('file')) {
                     unset($user[$key][$index]);
                 }
             }
             connectionUserModel::create()->where(array('id' => (int) $user['id']))->update(array($key => array_values($user[$key])));
         }
     }
     $model = new connectionFieldsModel();
     return array('fields' => $model->getGroupLocale('info', Language::getActiveLanguageISO()));
 }
 function execute()
 {
     $fields = connectionFieldsModel::create()->where(array('filter' => true))->sort('sort', -1)->fetchAll();
     $fields = array_map(function ($field) {
         return connectionFieldsModel::create()->getFieldLocale($field['id'], Language::getActiveLanguageISO());
     }, $fields);
     $this->setSeoPage('advanced_search');
     return array('fields' => $fields);
 }
 public function execute()
 {
     $user = connectionUserModel::create()->getInfo((int) Request::post('id'));
     $activeLang = $user['lang'];
     $lang = array();
     array_map(function ($a) use(&$lang, $activeLang) {
         if ($a['iso'] == $activeLang) {
             $lang = $a;
         }
     }, Language::getList());
     $fieldModel = new connectionFieldsModel();
     $fields = array();
     $fields = array_merge($fieldModel->getGroupLocale('info', 'ru'), $fields);
     $fields = array_merge($fieldModel->getGroupLocale('interest', 'ru'), $fields);
     $this->smarty->assign('lang', $lang);
     $this->smarty->assign('user', $user);
     $this->smarty->assign('fields', $fields);
 }
 private function filterCustomField($fields)
 {
     $result = array();
     $model = new connectionFieldsModel();
     foreach ($fields as $key => $value) {
         $exp = explode('_', $key);
         $fieldId = (int) $exp[1];
         $field = $model->getField($fieldId);
         $type = $field['type'] == 'textarea' ? 'input' : $field['type'];
         switch ($type) {
             case 'input':
                 $result[$key] = new MongoRegex('/' . $value . '/i');
                 break;
             case 'checkbox':
                 $result[$key] = true;
                 break;
             case 'select':
                 if ($model->hasVariant($fieldId, $value)) {
                     $variants = $model->getLocalesVariant($fieldId, $value);
                     $result[$key] = array('$in' => $variants);
                 }
                 break;
             case 'list':
                 if (is_array($value)) {
                     $variants = array();
                     foreach ($value as $variant) {
                         if ($model->hasVariant($fieldId, $variant)) {
                             $variantsLocale = $model->getLocalesVariant($fieldId, $variant);
                             $variants = array_merge($variants, $variantsLocale);
                         }
                     }
                     if (sizeof($variants) != 0) {
                         $result[$key] = array('$in' => $variants);
                     }
                 }
                 break;
         }
     }
     return $result;
 }
예제 #10
0
 static function getFieldValue($data, $fieldId, $lang = false)
 {
     $name = 'field_' . $fieldId;
     if (!array_key_exists($name, $data)) {
         return '';
     }
     $model = new connectionFieldsModel();
     $field = $model->getField((int) $fieldId);
     $lang = $lang ? $lang : Language::getActiveLanguageISO();
     if ($field) {
         switch ($field['type']) {
             case 'select':
                 $variants = $model->getLocalesVariant($fieldId, $data[$name], true);
                 if (isset($variants[$lang])) {
                     return $variants[$lang];
                 } else {
                     return '';
                 }
                 break;
             case 'list':
                 $ret = array();
                 foreach ($data[$name] as $vart) {
                     $variants = $model->getLocalesVariant($fieldId, $vart, true);
                     if (isset($variants[$lang])) {
                         $ret[] = $variants[$lang];
                     }
                 }
                 return $ret;
                 break;
             default:
                 return $data[$name];
                 break;
         }
     }
     return $data[$name];
 }
예제 #11
0
 public function updateInfo($array, $id, $files = array())
 {
     $update = array();
     $default = array('first_name', 'last_name', 'birth_day', 'birth_month', 'birth_year', 'country');
     foreach ($default as $value) {
         if (array_key_exists($value, $array) && Validator::Field($array[$value], $this->regFields[$value])) {
             $update[$value] = Validator::clearValue($array[$value]);
         }
         unset($array[$value]);
     }
     if (isset($update['birth_day']) && isset($update['birth_month']) && isset($update['birth_year'])) {
         $update['birth_date'] = (int) strtotime($update['birth_year'] . '-' . $update['birth_month'] . '-' . $update['birth_day']);
     }
     unset($update['birth_day']);
     unset($update['birth_month']);
     unset($update['birth_year']);
     $fieldModel = new connectionFieldsModel();
     $fieldMask = 'field_';
     foreach ($array as $key => $value) {
         if (substr($key, 0, strlen($fieldMask)) != $fieldMask) {
             continue;
         }
         $fieldStr = explode('_', $key);
         $fieldId = (int) $fieldStr[1];
         $field = $fieldModel->getField($fieldId);
         if ($field) {
             switch ($field['type']) {
                 case 'checkbox':
                     $update[$key] = false;
                     if ((int) $value == 1) {
                         $update[$key] = true;
                     }
                     break;
                 case 'select':
                     if ($fieldModel->hasVariant($fieldId, $value)) {
                         $update[$key] = $value;
                     }
                     break;
                 case 'list':
                     if (is_array($value)) {
                         $values = array();
                         foreach ($value as $field_variant) {
                             if ($fieldModel->hasVariant($fieldId, $field_variant)) {
                                 $values = $value;
                             }
                         }
                         $update[$key] = $values;
                     } else {
                         $update[$key] = array();
                     }
                     break;
                 case 'group':
                     $update[$key] = array(Validator::clearValue($value[0]), Validator::clearValue($value[1]));
                     break;
                 default:
                     $update[$key] = Validator::clearValue($value);
                     break;
             }
         }
     }
     if (sizeof($files) > 0) {
         foreach ($files as $key => $file) {
             if (substr($key, 0, strlen($fieldMask)) != $fieldMask) {
                 continue;
             }
             $fID = (int) str_replace($fieldMask, '', $key);
             if (!($field = $fieldModel->where(array('id' => $fID, 'type' => 'file'))->fetchOne())) {
                 continue;
             }
             $extension = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
             if (!in_array($extension, $field['extension'])) {
                 continue;
             }
             $fileName = md5($file['name'] . time() . uniqid()) . '.' . $extension;
             $fileInfo = array('name' => htmlspecialchars($file['name']), 'extension' => $extension, 'file' => $fileName);
             if (move_uploaded_file($file['tmp_name'], UPLOAD_DIR . DS . 'attachment' . DS . $fileName)) {
                 $user = $this->getFromId((int) $id);
                 if (!isset($user[$key]) || !is_array($user[$key]) || sizeof($user[$key]) == 0) {
                     $update[$key] = array($fileInfo);
                 } else {
                     $user[$key][] = $fileInfo;
                     $update[$key] = $user[$key];
                 }
             }
         }
     }
     $this->where(array('id' => (int) $id))->update($update);
     return true;
 }
 function execute()
 {
     $model = new connectionFieldsModel();
     return array('fields' => $model->getGroupLocale('interest', Language::getActiveLanguageISO()));
 }
 function execute()
 {
     $model = new connectionFieldsModel();
     $model->setSort(Request::post('id'), Request::post('sort'));
 }
 function execute()
 {
     $model = new connectionFieldsModel();
     $model->deleteField(Request::post('id'));
 }