_service = 'lms'; $this->_module = 'articles_bank'; $this->_viewname = 'articlesbank'; $this->_title = 'Article Bank'; $this->_base_url = '/articlebank'; } protected function get_list_fields() { return [ 'actions' => ['title' => 'Actions', 'buttons' => ['edit', 'delete']], 'title' => ['title' => 'Title', 'type' => 'text'], 'description' => ['title' => 'Description', 'type' => 'text'], 'status' => ['title' => 'Status', 'type' => 'select'] ]; } protected function get_form_fields($type, $values) { return [ 'title' => ['title' => 'Title', 'type' => 'text', 'required' => true], 'description' => ['title' => 'Description', 'type' => 'text', 'required' => true], 'status' => ['title' => 'Status', 'type' => 'select', 'required' => true, 'values' => ['active' => 'Active', 'disabled' => 'Disabled']], 'contents' => ['title' => 'Content', 'type' => 'mapping', 'fullwidth' => true], 'icon' => ['title' => 'Icon', 'type' => 'file', 'required' => true] ]; } protected function _beforesave($type, $request) { $data = $request->except('_token'); if ($request->file('icon')) { $data['icon'] = $this->_uploadMedia($request->file('icon'), 'icon', 'lms_cources'); } $contents = []; foreach($data['sortorder'] as $i => $sort) { if(isset($data['content'][$i]) && is_object($data['content'][$i]) && get_class($data['content'][$i]) == 'Illuminate\Http\UploadedFile') { $data['content'][$i] = $this->_uploadMedia($data['content'][$i], 'image', 'lms_cources'); } $contents[] = ['order' => $sort, 'content' => isset($data['content'][$i]) ? (string)$data['content'][$i] : (isset($data['old-content'][$i]) ? (string)$data['old-content'][$i] : ''), 'type' => $data['type'][$i]]; } $data['contents'] = $contents; unset($data['sortorder']); unset($data['type']); unset($data['content']); unset($data['old-content']); // var_dump($data); //echo '
'; print_r($data); exit;
        // foreach ($data['contents']['tempcontent'] as $tempcontent) {
        //     if (!is_file($tempcontent)) {
        //         $data['contents']['content'][] = $tempcontent;
        //     }
        // }
        // $files = $request->file('contents.tempcontent');
        // if ($files) {
        //     foreach ($files as $file) {
        //         $path = $this->_uploadMedia($file, 'lms_articlebank');
        //         $data['contents']['content'][] = $path;
        //     }
        // }
        // unset($data['contents']['tempcontent']);
        return $data;
    }

    protected function _uploadMedia($file, $name = 'image', $folder = 'image')
    {
        $path = '';
        try {
            if ($file) {
                $path = $file->store($folder, 's3');
                $path = env('AWS_URL') . '/' . $path;
            }
        } catch (AwsException $e) {
            Log::debug($e->getMessage());
        }

        return $path;
    }
}