public static function processData($caller, $key, $data, &$processedData)
 {
     if (is_array($data) && sizeOf($data) > 0) {
         $include = new CrelishJsonDataProvider('asset', [], $data['uuid']);
         $processedData[$key] = $include->one();
     }
 }
 public static function processData($caller, $key, $data, &$processedData)
 {
     if (empty($processedData[$key])) {
         $processedData[$key] = [];
     }
     if ($data) {
         foreach ($data as $section => $subContent) {
             if (empty($processedData[$key][$section])) {
                 $processedData[$key][$section] = '';
             }
             foreach ($subContent as $subContentdata) {
                 $sourceData = new CrelishJsonDataProvider($subContentdata['ctype'], [], $subContentdata['uuid']);
                 // @todo: nesting again.
                 $sourceDataOut = $caller->processContent($subContentdata['ctype'], $sourceData->one());
                 $processedData[$key][$section] .= $caller->renderPartial($subContentdata['ctype'] . '.twig', ['data' => $sourceDataOut]);
             }
         }
     }
 }
Ejemplo n.º 3
0
 private function processData($data)
 {
     $processedData = [];
     foreach ($data as $key => $item) {
         foreach ($item as $reference) {
             $info = [];
             $dataItem = new CrelishJsonDataProvider($reference['ctype'], [], $reference['uuid']);
             $itemData = $dataItem->one();
             foreach ($dataItem->definitions->fields as $field) {
                 if ($field->visibleInGrid) {
                     if (!empty($field->label) && !empty($itemData[$field->key])) {
                         $info[] = ['label' => $field->label, 'value' => $itemData[$field->key]];
                     }
                 }
             }
             $processedData[$key][] = ['uuid' => $reference['uuid'], 'ctype' => $reference['ctype'], 'info' => $info];
         }
     }
     return Json::encode($processedData);
 }
 /**
  * [resolvePathRequested description]
  * @return [type] [description]
  */
 private function resolvePathRequested()
 {
     $slug = $path = '';
     $ctype = 'page';
     $this->requestUrl = \Yii::$app->request->getPathInfo();
     if (!empty($this->requestUrl)) {
         $keys = explode('/', $this->requestUrl);
         if (count($keys) > 1) {
             $path = $keys[0];
             $slug = str_replace(".html", "", $keys[1]);
         } else {
             $slug = str_replace(".html", "", $keys[0]);
         }
     }
     $entryDataJoint = new CrelishJsonDataProvider($ctype, ['filter' => ['slug' => $slug]]);
     $entryModel = $entryDataJoint->one();
     $this->entryPoint = ['ctype' => $ctype, 'slug' => $slug, 'path' => $path, 'uuid' => $entryModel['uuid']];
 }
Ejemplo n.º 5
0
 /**
  * [findIdentity description].
  *
  * @param [type] $id [description]
  *
  * @return [type] [description]
  */
 public static function findIdentity($id)
 {
     $userProvider = new CrelishJsonDataProvider('user', null, $id);
     $userData = $userProvider->one();
     self::prepareUserdata($userData);
     return new static($userData);
 }
Ejemplo n.º 6
0
 public function actionDelete()
 {
     $id = !empty(\Yii::$app->getRequest()->getQueryParam('uuid')) ? \Yii::$app->getRequest()->getQueryParam('uuid') : null;
     $modelProvider = new CrelishJsonDataProvider('asset', [], $id);
     $model = $modelProvider->one();
     if (@unlink(\Yii::getAlias('@webroot') . $model['src']) || !file_exists(\Yii::getAlias('@webroot') . $model['src'])) {
         $modelProvider->delete();
         \Yii::$app->session->setFlash('success', 'Asset deleted successfully...');
         header("Location: " . Url::to(['asset/index']));
         exit(0);
     }
     \Yii::$app->session->setFlash('danger', 'Asset could not be deleted...');
     header("Location: " . Url::to(['asset/index', ['uuid' => $model['uuid']]]));
     exit(0);
 }
 /**
  * [parseFolderContent description]
  * @param  [type] $folder [description]
  * @return [type]         [description]
  */
 public function parseFolderContent($folder)
 {
     $filesArr = [];
     $allModels = [];
     $fullFolder = \Yii::getAlias($this->pathAlias) . DIRECTORY_SEPARATOR . $folder;
     if (!file_exists($fullFolder)) {
         mkdir($fullFolder);
     }
     $files = FileHelper::findFiles($fullFolder, ['recursive' => false]);
     if (isset($files[0])) {
         foreach ($files as $file) {
             $filesArr[] = $file;
         }
     }
     foreach ($filesArr as $file) {
         $finalArr = [];
         $content = file_get_contents($file);
         $modelArr = json_decode($content, true);
         if (is_null($modelArr)) {
             $segments = explode(DIRECTORY_SEPARATOR, $file);
             CrelishBaseController::addError("Invalid JSON in " . array_pop($segments));
             continue;
         }
         $modelArr['id'] = $file;
         $modelArr['ctype'] = $this->ctype;
         // todo: Handle special fields... uncertain about this.
         foreach ($modelArr as $attr => $value) {
             if (strpos($attr, '__cr_include') !== false) {
                 // Include data.
                 $include = new CrelishJsonDataProvider($value['ctype'], [], $value['uuid']);
                 $finalArr[str_replace('__cr_include', '', $attr)] = $include->one();
             } else {
                 $finalArr[$attr] = $value;
             }
         }
         $allModels[] = $finalArr;
     }
     return $allModels;
 }
 public function parseFolderContent($folder)
 {
     $filesArr = [];
     $allModels = [];
     $fullFolder = \Yii::getAlias($this->pathAlias) . DIRECTORY_SEPARATOR . $folder;
     $files = FileHelper::findFiles($fullFolder);
     if (isset($files[0])) {
         foreach ($files as $file) {
             $filesArr[] = $file;
         }
     }
     foreach ($filesArr as $file) {
         $finalArr = [];
         $content = file_get_contents($file);
         $modelArr = json_decode($content, true);
         $modelArr['id'] = $file;
         $modelArr['ctype'] = $this->ctype;
         // todo: Handle special fields... uncertain about this.
         foreach ($modelArr as $attr => $value) {
             if (strpos($attr, '__cr_include') !== false) {
                 // Include data.
                 $include = new CrelishJsonDataProvider($value['ctype'], [], $value['uuid']);
                 $finalArr[str_replace('__cr_include', '', $attr)] = $include->one();
             } else {
                 $finalArr[$attr] = $value;
             }
         }
         $allModels[] = $finalArr;
     }
     return $allModels;
 }