private function getValues()
 {
     $values = array();
     if (array_key_exists('source', $this->params)) {
         $source = $this->params['source'];
         if (CUtils::strLeft($source, ".") == "class") {
             $class = CUtils::strRight($source, ".");
             if (array_key_exists('properties', $this->params)) {
                 $object = new $class(array("properties" => $this->params['properties']));
             } else {
                 $object = new $class();
             }
             $sourceParams = $this->params['params'];
             // для совместимости их надо положить в запрос
             foreach ($sourceParams as $key => $value) {
                 $_POST[$key] = $value;
             }
             $values = $object->actionGetViewData();
         } else {
             $taxonomy = CTaxonomyManager::getTaxonomy($this->params['source']);
             $values = $taxonomy->getTermsList();
         }
     } elseif (array_key_exists('values', $this->params)) {
         $values = $this->params['values'];
     }
     return $values;
 }
예제 #2
0
 /**
  * Магический метод получения любых классов
  *
  * @param $name
  * @param array $params
  * @throws Exception
  */
 public static function __callStatic($name, $params = array())
 {
     /**
      * Получаем имя класса из имени функции
      */
     $className = "C" . CUtils::strRight($name, "get");
     if (!class_exists($className)) {
         throw new Exception("В приложении не объявлен класс " . $className);
     }
     /**
      * @var CActiveModel $simpleClass
      */
     $simpleClass = new $className();
     $table = $simpleClass->getRecord()->getTable();
     $id = $params[0];
     /**
      * Попробуем сначала получить из кэша
      */
     $keySeek = $table . "_" . $id;
     if (CApp::getApp()->cache->hasCache($keySeek)) {
         return CApp::getApp()->cache->get($keySeek);
     }
     $ar = CActiveRecordProvider::getById($table, $id);
     if (!is_null($ar)) {
         $obj = new $className($ar);
         CApp::getApp()->cache->set($keySeek, $obj, 60);
         return $obj;
     }
 }
 /**
  * Получение информации о файле
  */
 public function actionGetInfo()
 {
     $storage = $_POST["_storage"];
     $file = $_POST["_file"];
     $size = $_POST["_size"];
     $index = $_POST["_index"];
     $result = array("isImage" => false, "previewUrl" => "", "fullUrl" => "", "url" => "", "name" => $file, "index" => $index);
     if (file_exists($storage . $file)) {
         // заменяем обратный слэш в адресе на прямой
         $linkWithBackSlash = CUtils::strRight($storage, CORE_CWD) . $file;
         $link = str_replace('\\', '/', $linkWithBackSlash);
         $result["fullUrl"] = WEB_ROOT . $link;
         $result["url"] = $link;
         $result["isImage"] = CUtils::isImage($storage . $file);
         if (CUtils::isImage($storage . $file)) {
             $result["previewUrl"] = WEB_ROOT . "_modules/_thumbnails/?src=" . $result["url"] . "&w=" . $size;
         } else {
             $filetype = CUtils::getMimetype($storage . $file);
             if (file_exists(CORE_CWD . CORE_DS . "images" . CORE_DS . ICON_THEME . CORE_DS . "64x64" . CORE_DS . "mimetypes" . CORE_DS . $filetype . ".png")) {
                 $result["previewUrl"] = WEB_ROOT . "images/" . ICON_THEME . "/64x64/mimetypes/" . $filetype . ".png";
             } else {
                 $result["previewUrl"] = WEB_ROOT . "images/" . ICON_THEME . "/64x64/mimetypes/unknown.png";
             }
         }
     }
     echo json_encode($result);
 }
 /**
  * Получение информации о файле
  */
 public function actionGetInfo()
 {
     $storage = $_POST["_storage"];
     $file = $_POST["_file"];
     $size = $_POST["_size"];
     $index = $_POST["_index"];
     $result = array("isImage" => false, "previewUrl" => "", "fullUrl" => "", "name" => $file, "index" => $index);
     if (file_exists($storage . $file)) {
         $result["fullUrl"] = WEB_ROOT . CUtils::strRight($storage, CORE_CWD) . $file;
         $result["isImage"] = CUtils::isImage($storage . $file);
         if (CUtils::isImage($storage . $file)) {
             $result["previewUrl"] = WEB_ROOT . "_modules/_thumbnails/?src=" . $result["fullUrl"] . "&w=" . $size;
         } else {
             $filetype = CUtils::getMimetype($storage . $file);
             if (file_exists(CORE_CWD . CORE_DS . "images" . CORE_DS . ICON_THEME . CORE_DS . "64x64" . CORE_DS . "mimetypes" . CORE_DS . $filetype . ".png")) {
                 $result["previewUrl"] = WEB_ROOT . "images/" . ICON_THEME . "/64x64/mimetypes/" . $filetype . ".png";
             } else {
                 $result["previewUrl"] = WEB_ROOT . "images/" . ICON_THEME . "/64x64/mimetypes/unknown.png";
             }
         }
     }
     echo json_encode($result);
 }
예제 #5
0
 /**
  * Параметры глобального фильтра
  *
  * @return array
  */
 public static function getGlobalFilter()
 {
     $result = array("field" => false, "value" => false);
     if (CRequest::getString("filter") != "") {
         $filter = CUtils::strRight(CRequest::getString("filter"), "=");
         $params = explode(":", $filter);
         $result["field"] = $params[0];
         $result["value"] = $params[1];
     }
     return $result;
 }
예제 #6
0
 /**
  * Предпросмотр вложений со ссылками на оригиналы
  *
  * @param $name
  * @param CModel $model
  * @param int $size
  * @param bool $addLinkToOriginal
  */
 public static function activeAttachPreview($name, CModel $model, $addLinkToOriginal = false, $size = 100)
 {
     $attributes = $model->fieldsProperty();
     $display = false;
     if (array_key_exists($name, $attributes)) {
         $field = $attributes[$name];
         if ($field["type"] == FIELD_UPLOADABLE) {
             $storage = $field["upload_dir"];
             $file = $model->{$name};
             if ($file !== "") {
                 if (file_exists($storage . $file)) {
                     $display = true;
                 }
             }
         }
     }
     if ($display) {
         // заменяем обратный слэш в адресе на прямой
         $linkWithBackSlash = CUtils::strRight($storage, CORE_CWD) . $file;
         $link = str_replace('\\', '/', $linkWithBackSlash);
         $icon = "";
         if (CUtils::isImage($storage . $file)) {
             // показываем превью изображения
             $icon = WEB_ROOT . "_modules/_thumbnails/?src=" . $link . "&w=" . $size;
         } else {
             // показываем значок типа документа
             $filetype = CUtils::getMimetype($storage . $file);
             if (file_exists(CORE_CWD . CORE_DS . "images" . CORE_DS . ICON_THEME . CORE_DS . "64x64" . CORE_DS . "mimetypes" . CORE_DS . $filetype . ".png")) {
                 $icon = WEB_ROOT . "images/" . ICON_THEME . "/64x64/mimetypes/" . $filetype . ".png";
             } else {
                 $icon = WEB_ROOT . "images/" . ICON_THEME . "/64x64/mimetypes/unknown.png";
             }
         }
         if ($addLinkToOriginal) {
             echo '<a href="' . WEB_ROOT . '' . $link . '" target="_blank"';
             if (CUtils::isImage($storage . $file)) {
                 echo ' class="image_clearboxy"';
             }
             echo '>';
         }
         echo '<img src="' . $icon . '" />';
         if ($addLinkToOriginal) {
             echo '</a>';
         }
     }
     if (!self::$_clearboxInit) {
         self::$_clearboxInit = true;
         ?>
         <script>
             jQuery(document).ready(function(){
                 jQuery("a.image_clearboxy").colorbox({
                     maxHeight: "100%",
                     title: function(){
                         var url = $(this).attr('href');
                         return '<a href="' + url + '" target="_blank">Открыть в полном размере</a>';
                     }
                 });
             });
         </script>
         <?php 
     }
 }
 /**
  * @param $catalog
  * @return ISearchCatalogInterface
  * @throws Exception
  */
 private function searchObjectsFactory($catalog, $properties = array())
 {
     if ($catalog == "staff") {
         return new CSearchCatalogStaff(array("properties" => $properties));
     } elseif ($catalog == "student") {
         return new CSearchCatalogStudent(array("properties" => $properties));
     } elseif ($catalog == "studentgroup") {
         return new CSearchCatalogStudentGroup(array("properties" => $properties));
     } elseif ($catalog == "sab_commissions") {
         return new CSearchCatalogSABCommission(array());
     } elseif (CUtils::strLeft($catalog, ".") == "class") {
         $class = CUtils::strRight($catalog, ".");
         return new $class(array("properties" => $properties));
     } elseif (!is_null(CTaxonomyManager::getTaxonomy($catalog))) {
         return new CSearchCatalogTaxonomy(array("taxonomy" => $catalog, "properties" => $properties));
     } elseif (!is_null(CTaxonomyManager::getLegacyTaxonomy($catalog))) {
         return new CSearchCatalogTaxonomyLegacy(array("taxonomy" => $catalog, "properties" => $properties));
     } else {
         throw new Exception("Не могу найти каталог для поиска " . $catalog);
     }
 }