/**
  * @param $view
  *
  * @return mixed
  */
 private function assignDynamicFieldsToPageObject($view)
 {
     $arrAllow = ['page', 'homepage', "en.blog.slug"];
     $data = $view->getData();
     $routName = Route::currentRouteName();
     if (in_array($routName, $arrAllow)) {
         $arrType = config('asgard.dynamicfield.config.entity-type');
         $arrType = array_keys($arrType);
         if (count($data)) {
             foreach ($data as $item) {
                 if (is_object($item)) {
                     $className = get_class($item);
                     if (in_array($className, $arrType)) {
                         $locale = LaravelLocalization::getCurrentLocale();
                         $request = Request::all();
                         $dynamicFields = new DynamicFields($item, $locale);
                         $dynamicFields->init($request);
                         $fieldValues = $dynamicFields->getFieldValues($locale);
                         $view->with('dynamicfields', $fieldValues);
                     }
                 }
             }
         }
     }
     return $view;
 }
Ejemplo n.º 2
0
 private function saveDynamicData($entity, $data)
 {
     $fields = new DynamicFields($entity);
     $fields->init($data);
     $fields->save();
 }
 /**
  * @return \Illuminate\Http\JsonResponse
  */
 public function ajaxRender()
 {
     $this->assetPipeline->requireJs('ckeditor.js');
     $request = BaseRequest::all();
     $template = $request['template'];
     $entityType = $request['entity_type'];
     $id = $request['id'];
     $entity = new $entityType();
     if (get_class($entity) == "stdClass") {
         $entity->id = null;
     } else {
         $entity = $entity->firstOrNew(['id' => $id]);
     }
     $entity->template = $template;
     $advanceFields = new DynamicFields($entity);
     $advanceFields->init();
     $locale = array_keys(LaravelLocalization::getSupportedLocales());
     $jsonData = array();
     foreach ($locale as $v) {
         $jsonData['html'][$v] = $advanceFields->renderFields($v);
     }
     $jsonData['locale'] = $locale;
     return response()->json($jsonData);
 }