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(); } } } }
public function fieldType() { return array_merge(parent::fieldType(), array("date2" => "date")); }
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; }
public function attributePlaceholder() { return array_merge(parent::attributePlaceholder(), array("level" => "от 1 до 5")); }
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 .= " до: " . 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 .= " до: " . CHtml::textField($tableClass . "[" . $field . "_2]", $value_2, array("class" => "yearField")); } else { $input = CHtml::activeTextField($form, $field); } } return $input; // Определяем это поле релайшин или нет // Если не релайшин то вывести <input type="text" иначе }
public function fieldType() { return array_merge(parent::fieldType(), ["banner2" => "file"]); }
public function fieldType() { return array_merge(parent::fieldType(), array("default" => "checkbox", "start_date" => "date", "finish_date" => "date", "href" => "url")); }
public function fieldType() { return array_merge(parent::fieldType(), array("date2", "varchar")); }
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")); }
public function fieldType() { return array_merge(parent::fieldType(), array("quote" => "visual_textarea")); }
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; }
/** * 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; }
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")); }