Пример #1
0
 static function saveRelation(CCModel $model, $values)
 {
     foreach ($model->relations() as $value) {
         if ($value[0] == "CManyManyRelation") {
             $leftClass = $value[1];
             $rightClass = SiteHelper::getCamelCase($model->tableName());
             CatRelations::sql("DELETE FROM cat_relations WHERE ( leftClass='" . $leftClass . "' AND rightClass='" . $rightClass . "') OR ( leftClass='" . $rightClass . "' AND rightClass='" . $leftClass . "') ");
             foreach ($values as $value2) {
                 $new = new CatRelations();
                 $new->leftClass = $leftClass;
                 $new->rightClass = $rightClass;
                 $new->leftId = $value2;
                 $new->rightId = $model->id;
                 $new->save();
                 $new = new CatRelations();
                 $new->leftClass = $rightClass;
                 $new->rightClass = $leftClass;
                 $new->leftId = $model->id;
                 $new->rightId = $value2;
                 $new->save();
             }
         }
     }
 }
Пример #2
0
 public function fieldType()
 {
     return array_merge(parent::fieldType(), array("date2" => "date"));
 }
Пример #3
0
 static function objectCheck(CCModel $objectModel, array $param)
 {
     /*
        $itemParam["recomFields"] = array( "name", "description", "country_id", "image", "email", "www", "tel", "address" );
        $itemParam["recomSizeFields"] = array( "description"=>500 );
        $itemParam["image_count"] = 0;
     */
     $cout = "";
     $attributeLabels = $objectModel->attributeLabels();
     $attributePlaceholder = $objectModel->attributePlaceholder();
     // Проверяем опубликовано ли объявление
     if (!empty($param["check_visible"]) && $param["check_visible"] == true && $objectModel->active == 0) {
         $cout .= "<br/><h3 style='background-color: #6C0000;color: #fff;padding: 5px;text-align: center'>Вам нравится терять клиентов?</h3><p>Пользователи не видят Ваше объявление, так как вы его еще не опубликовали.<br/><b>Чего же Вы ждете?</b><br/>Переходите не странциу редактирование, проверьте еще раз все ли впорядке в описаниии Вашего объявления и нажимайте на кнопку [ Опубликовать на сайте? ].<br/></p><h4>Ваши клиенты ждут Вас!!!</h4>";
     }
     // Определяем рекоменадции по
     if (sizeof($param["recomFields"]) > 0) {
         $recommendation = "";
         foreach ($param["recomFields"] as $field) {
             if (!$objectModel->{$field}) {
                 if (!empty($attributeLabels[$field])) {
                     $recommendation .= "<li><b>" . $attributeLabels[$field] . "</b>" . (!empty($attributePlaceholder[$field]) ? ".<br/>" . $attributePlaceholder[$field] : "") . "</li>";
                 } else {
                     $recommendation .= "<li>" . $field . "</li>";
                 }
             }
         }
         if (!empty($recommendation)) {
             $cout .= "<br/><h3 style=\"background-color: #6C0000;color: #fff;padding: 5px;text-align: center\">Привлеките больше внимания клентов </h3><p>Для привлечения максимального количества клентов мы советуем Вам заполнить следующие поля: <ul>" . $recommendation . "</ul> <br/> <b>Внимание!!!</b>Данные именно этих полей анализируются, для того чтобы определить позицию объявления в поиске. И соответсвенно чем качественнее Вы заполните указанные поля, тем лучшую позицию сможет занять Ваше объявление. </p>";
         }
     }
     //  Проверяем размероность полей
     if (sizeof($param["recomSizeFields"]) > 0) {
         $recommendationSize = "";
         foreach ($param["recomSizeFields"] as $field => $value) {
             $fieldValue = trim(strip_tags($objectModel->{$field}));
             if ($objectModel->{$field} && strlen($fieldValue) < $param["recomSizeFields"][$field]) {
                 $fieldName = !empty($attributeLabels[$field]) ? $attributeLabels[$field] : $field;
                 $recommendationSize .= "<li>Для поля \"<b>" . $fieldName . "</b>\" мы рекомендуем размер - " . $param["recomSizeFields"][$field] . " знаков, а Вы указали только " . strlen($fieldValue) . " знаков.</li>";
             }
         }
         if (!empty($recommendationSize)) {
             $cout .= "<br/><h3 style=\"background-color: #6C0000;color: #fff;padding: 5px;text-align: center\">Заполняйте поля качественно</h3><p>Мы советуем Вам заполнять чественной и удобно читаемой информацией, именно поэтоу мы рекомендуем Вам внести следующие изминения:\n<ul>" . $recommendationSize . "</ul></p>";
         }
     }
     // Если указанны рекомендации по количеству картинок
     if ($param["image_count"] > 0) {
         $count = CatGallery::count(DBQueryParamsClass::CreateParams()->setConditions("item_id=:fid AND catalog=:catalog")->setParams(array(":fid" => $objectModel->id, ":catalog" => $objectModel->tableName()))->setCache(0));
         if ($count < $param["image_count"]) {
             $cout .= "<br/><h3 style=\"background-color: #6C0000;color: #fff;padding: 5px;text-align: center\">Украшайте свое объявление красочными фотографиями</h3>";
             if ($count == 0) {
                 $cout .= "<p>Вы не загрузили не одной фотографии для Вашего объявления - так не пойдет.<br/>\nЕсли Вы действительно хотите привлечь внимание к своему объвлению то Вам необходимо добавить картинки к своему объявлению.<br/>\nМы рекомендуем Вам добавить как минимум:  " . $param["image_count"] . " фото</p>";
             }
             if ($count > 0) {
                 $cout .= "<p>Вы загрузили всего <b>" . $count . "</b> фото, а что больше нет?<br/>Чем больше фото вы загрузите тем лехче заинтересовать пользователя в Ваших услугах. Именно поэтому мы рекомендуем минимум " . $param["image_count"] . " фото, а максимум 10 фото.</p>";
             }
         }
     }
     // Если указанно рекомендуемое количетсво записей
     if (!empty($param["item_count"]) && $param["item_count"] > 0 && empty($cout)) {
         $objectClass = SiteHelper::getCamelCase($objectModel->tableName());
         $countItems = $objectClass::count(DBQueryParamsClass::CreateParams()->setConditions("firm_id=:fid")->setParams(array(":fid" => $objectModel->firm_id->id)));
         if ($countItems < $param["item_count"]) {
             $cout .= "<br/><h3 style=\"background-color: #6C0000;color: #fff;padding: 5px;text-align: center\">Не останавливайтесь на достигнутом</h3>Вы добавили всего <b>" . $countItems . "</b> запись(ей), мы же рекомендуем добавить как минимум <b>" . $param["item_count"] . "</b> запись(ей).<br/>Имейте ввиду чем больше бы добавите услуг компании тем больше получите потенциальных клиентов";
         }
     }
     return $cout;
 }
Пример #4
0
 public function attributePlaceholder()
 {
     return array_merge(parent::attributePlaceholder(), array("level" => "от 1 до 5"));
 }
Пример #5
0
 static function getInputField(CCModel $form, $field, $needEmpty = true)
 {
     $listType = $form->fieldType();
     $tableClass = SiteHelper::getCamelCase($form->tableName());
     $value = !empty($_POST[$tableClass]) && !empty($_POST[$tableClass][$field]) ? $_POST[$tableClass][$field] : "";
     $HTMLOption = "";
     $fieldType = $form->fieldType();
     if (!empty($listType[$field])) {
         $fieldName = $tableClass . "[" . $field . "]";
         switch ($listType[$field]) {
             case "checkbox":
                 $input = CHtml::checkBox($fieldName, $value);
                 break;
             case "visual_textarea":
                 $input = CHtml::textArea($fieldName, $value);
                 break;
             case "url":
                 $input = CHtml::activeUrlField($form, $field);
                 break;
             case "date":
                 $input = "от: " . CHtml::textField($fieldName, $value, array("class" => "yearField"));
                 $input .= "&nbsp;&nbsp;до: " . CHtml::textField($tableClass . "[" . $field . "_2]", $value, array("class" => "yearField"));
                 break;
         }
     }
     // Выводим списк связей
     if (empty($input)) {
         if ($relation = $form->getRelationByField($field)) {
             $input = '<select name="' . $tableClass . '[' . $field . ']" class="field_' . $field . '">';
             if (!empty($needEmpty)) {
                 $input .= '<option value=""> --- --- --- </option>';
             }
             $input .= CCModelHelper::getRelationListOptions($form, $field, CCModelHelper::getRelationItems($relation, $form), $value);
             $input .= '</select>';
         }
     }
     if (empty($input)) {
         if (!empty($fieldType[$field]) && $fieldType[$field] == "integer") {
             $value_2 = !empty($_POST[$tableClass]) && !empty($_POST[$tableClass][$field . "_2"]) ? $_POST[$tableClass][$field . "_2"] : "";
             $input = "от: " . CHtml::textField($fieldName, $value, array("class" => "yearField"));
             $input .= "&nbsp;&nbsp;до: " . CHtml::textField($tableClass . "[" . $field . "_2]", $value_2, array("class" => "yearField"));
         } else {
             $input = CHtml::activeTextField($form, $field);
         }
     }
     return $input;
     // Определяем это поле релайшин или нет
     // Если не релайшин то вывести <input type="text" иначе
 }
Пример #6
0
 public function fieldType()
 {
     return array_merge(parent::fieldType(), ["banner2" => "file"]);
 }
Пример #7
0
 public function fieldType()
 {
     return array_merge(parent::fieldType(), array("default" => "checkbox", "start_date" => "date", "finish_date" => "date", "href" => "url"));
 }
Пример #8
0
 public function fieldType()
 {
     return array_merge(parent::fieldType(), array("date2", "varchar"));
 }
Пример #9
0
 public function fieldType()
 {
     return array_merge(parent::fieldType(), array("expert_name" => "textarea", "expert_text" => "textarea", "meta_keyword" => "textarea", "description2" => "visual_textarea", "description_author" => "visual_textarea", "description3" => "visual_textarea"));
 }
Пример #10
0
 public function fieldType()
 {
     return array_merge(parent::fieldType(), array("quote" => "visual_textarea"));
 }
Пример #11
0
 public function uploadFile(CCModel $model, $field, $catalog, $is_image = true, $img_type = "default", $dopUrl = "")
 {
     $error = "";
     $fileUrl = "";
     if (is_uploaded_file($_FILES[$catalog]['tmp_name'][$field])) {
         if ($model->id) {
             $imageName = basename($model->field);
             @unlink("../../" . dirname($model->field) . "/" . $imageName);
             @unlink("../../" . dirname($model->field) . "/2_" . $imageName);
             @unlink("../../" . dirname($model->field) . "/3_" . $imageName);
         }
         if ($is_image && strpos($_FILES[$catalog]['type'][$field], "image") === False) {
             $error = "Не правельный тип закачиваемого файла";
         }
         if (!$error) {
             $new_name = $this->checkFileName($_FILES[$catalog]['name'][$field]);
             $s_table = $model->tableName();
             // Каталог
             $fileUrl = "f/" . $s_table;
             if ($res = @mkdir($dopUrl . $fileUrl)) {
                 chmod($dopUrl . $fileUrl, 0777);
             }
             // Год
             $fileUrl .= "/" . date("Y");
             if ($res = @mkdir($dopUrl . $fileUrl)) {
                 chmod($dopUrl . $fileUrl, 0777);
             }
             // Месяц
             $fileUrl .= "/" . date("m");
             if ($res = @mkdir($dopUrl . $fileUrl)) {
                 chmod($dopUrl . $fileUrl, 0777);
             }
             // День
             $fileUrl .= "/" . date("d");
             if ($res = @mkdir($dopUrl . $fileUrl)) {
                 chmod($dopUrl . $fileUrl, 0777);
             }
             if ($model->id) {
                 $fileUrl .= "/" . $model->id;
                 if ($res = @mkdir($dopUrl . $fileUrl)) {
                     chmod($dopUrl . $fileUrl, 0777);
                 }
             }
             $fileUrl .= "/" . $new_name;
             $this->newFileUrl = $fileUrl;
             $res = move_uploaded_file($_FILES[$catalog]['tmp_name'][$field], $dopUrl . $fileUrl);
             if ($res === False) {
                 $error = "Произошла ошибка закачивания файла|" . $_FILES[$catalog]['error'][$field];
             }
         }
         if ($is_image == 1 && !$error && $img_type && $_FILES[$catalog]['tmp_name'][$field]) {
             $fileType = $_FILES[$catalog]['type'][$field];
             if ($catalog != "ExBanner" && (mb_stripos($fileType, "jpg") !== false || mb_stripos($fileType, "jpeg") !== false)) {
                 $this->optimization($fileUrl, $img_type, $fileType, "", $catalog);
             }
         }
     }
     if (!empty($error)) {
         $this->error = $error;
     }
     return !empty($error) ? false : true;
 }
Пример #12
0
 /**
  * Call a function as a property
  *
  * @param string 		$key
  * @return mixed
  */
 public function __call_property($key)
 {
     $result = parent::__call_property($key);
     // when we recive a relation we execute it and save it
     // to the data to avoid mutlitple queries
     if ($result instanceof Model_Relation) {
         return $this->_data_store[$key] = $result->run();
     }
     return $result;
 }
Пример #13
0
 public function fieldType()
 {
     return array_merge(parent::fieldType(), array("price" => "integer", "program" => "visual_textarea", "prices" => "visual_textarea", "included" => "visual_textarea", "not_included" => "visual_textarea", "attention" => "visual_textarea", "cancellation" => "visual_textarea", "dates" => "visual_textarea"));
 }