Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | n/a |
0 / 0 |
|
69.23% |
9 / 13 |
CRAP | |
80.95% |
34 / 42 |
|
| languages | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| currentLanguage | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| getCurrentLocale | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| descriptions | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| parseExternalVideoLink | |
0.00% |
0 / 1 |
3.01 | |
90.00% |
9 / 10 |
|||
| videoCategories | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| articleCategories | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| newsletters | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| getUser | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
| settings | |
0.00% |
0 / 1 |
3.71 | |
57.14% |
4 / 7 |
|||
| meta | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| metaFields | |
100.00% |
1 / 1 |
3 | |
100.00% |
4 / 4 |
|||
| moduleName | |
100.00% |
1 / 1 |
2 | |
100.00% |
4 / 4 |
|||
| <?php | |
| use App\Module; | |
| use App\User; | |
| use App\Setting; | |
| use App\Language; | |
| use App\Category; | |
| use App\Newsletter; | |
| use App\VideoCategory; | |
| use Illuminate\Support\Facades\DB; | |
| use App\Providers\AppServiceProvider; | |
| use Illuminate\Support\LazyCollection; | |
| use Mcamara\LaravelLocalization\Facades\LaravelLocalization; | |
| if (!function_exists('languages')){ | |
| /** | |
| * Return list of languages from database | |
| * @return mixed | |
| */ | |
| function languages() | |
| { | |
| $languages = Language::where('status', 1)->cursor(); | |
| return $languages; | |
| } | |
| } | |
| if (!function_exists('currentLanguage')){ | |
| /** | |
| * Return current language from database | |
| * @return mixed | |
| */ | |
| function currentLanguage() | |
| { | |
| $languages = Language::where('status', 1)->where('local', LaravelLocalization::getCurrentLocale())->first(); | |
| return $languages; | |
| } | |
| } | |
| if (!function_exists('getCurrentLocale')){ | |
| /** | |
| * Return current current locale from database | |
| * @return mixed | |
| */ | |
| function getCurrentLocale() | |
| { | |
| $current = Language::where('status', 1)->where('local', LaravelLocalization::getCurrentLocale())->first()->local; | |
| return $current; | |
| } | |
| } | |
| if (!function_exists('descriptions')){ | |
| /** | |
| * Return description for model | |
| * @param $model | |
| * @return mixed | |
| */ | |
| function descriptions($model) | |
| { | |
| $description = $model->descriptions->where('language_id', currentLanguage()->id)->first(); | |
| return $description ?? null; | |
| } | |
| } | |
| if (!function_exists('parseExternalVideoLink')){ | |
| /** | |
| * Parse youtube|vimo|etc link to get video ID, video embed link, video thumbnails | |
| * @param $link | |
| * @return array | |
| */ | |
| function parseExternalVideoLink($link) :array | |
| { | |
| /** | |
| * Links to test | |
| * https://youtu.be/N6wn8zMRlVE | |
| * https://www.youtube.com/watch?v=zlnau3yk0oU | |
| * https://www.youtube.com/watch?v=zlnau3yk0oU&features=adsdsd | |
| * https://www.youtube.com/embed/OC9zn5BKlC0 | |
| */ | |
| $linkPattern = '/^(https:\/\/(www\.)?(youtu|youtube){1}.([a-z]{1,4}))(\/watch\?v=|\/embed\/|\/){0,1}([a-zA-z0-9]{2,15})(&.)*/'; | |
| $m= preg_match($linkPattern, $link, $linkMatches); | |
| // dd($m, $linkMatches); | |
| if (count($linkMatches) && $linkMatches[6]){ | |
| $code = $linkMatches[6]; | |
| $video_url = 'https://www.youtube.com/embed/'.$code; | |
| $image = "https://img.youtube.com/vi/$code/hqdefault.jpg"; | |
| } else { | |
| $video_url = $link; | |
| } | |
| // $public = asset('/uploads/images/'.time().'.jpg'); | |
| // Download images from remote server | |
| // $in= fopen($image, "rb"); | |
| // $out= fopen($public, "wb"); | |
| // while ($chunk = fread($in,8192)) | |
| // { | |
| // fwrite($out, $chunk, 8192); | |
| // } | |
| // fclose($in); | |
| // fclose($out); | |
| return [ | |
| 'code' => $code, | |
| 'url' => $video_url, | |
| 'image' => $image | |
| ]; | |
| } | |
| } | |
| if (!function_exists('videoCategories')){ | |
| /** | |
| * Return video categories | |
| * @return LazyCollection | |
| */ | |
| function videoCategories() :LazyCollection | |
| { | |
| $videoCategories = VideoCategory::with('descriptions')->cursor(); | |
| return $videoCategories; | |
| } | |
| } | |
| if (!function_exists('articleCategories')){ | |
| /** | |
| * Return article categories | |
| * @return LazyCollection | |
| */ | |
| function articleCategories() :LazyCollection | |
| { | |
| $articleCategories = Category::with('descriptions')->cursor(); | |
| return $articleCategories; | |
| } | |
| } | |
| if (!function_exists('newsletters')){ | |
| /** | |
| * Return all newsletters email | |
| * @return LazyCollection | |
| */ | |
| function newsletters() :LazyCollection | |
| { | |
| $newsletters = Newsletter::cursor(); | |
| return $newsletters; | |
| } | |
| } | |
| if (!function_exists('getUser')){ | |
| /** | |
| * Return admin by id | |
| * @param $id | |
| * @return mixed | |
| */ | |
| function getUser($id) | |
| { | |
| $user = User::find($id); | |
| return $user; | |
| } | |
| } | |
| if (!function_exists('settings')){ | |
| /** | |
| * Return settings | |
| * @param null $key | |
| * @return mixed | |
| */ | |
| function settings($key = null) | |
| { | |
| $settings = []; | |
| if ($key){ | |
| $settings = Setting::where('key', $key)->first()->value; | |
| } else { | |
| $allSettings = Setting::cursor()->toArray(); | |
| foreach ($allSettings as $setting) { | |
| $settings[$setting['key']] = $setting['value']; | |
| } | |
| } | |
| return $settings; | |
| } | |
| } | |
| if (!function_exists('meta')){ | |
| /** | |
| * Return meta fields from module table | |
| * by field name and local language | |
| * this functions used mostly in blades views | |
| * to get meta field to each path individually | |
| * @param $field | |
| * @param $local | |
| * @return mixed | |
| */ | |
| function meta($field, $local) | |
| { | |
| return AppServiceProvider::getMeta()['fields'][$local][$field] ?? null; | |
| } | |
| } | |
| if (!function_exists('metaFields')){ | |
| /** | |
| * Return meta field to module by module path from modules table | |
| * most used in blades views | |
| * @param $modulePath | |
| * @param null $fieldName | |
| * @param null $local | |
| * @return mixed|null | |
| */ | |
| function metaFields($modulePath, $fieldName = null, $local = null) | |
| { | |
| $meta = Module::where('path', $modulePath)->pluck('meta')->toArray(); | |
| $meta = array_first($meta); | |
| $meta = $fieldName && $local ? $meta['fields'][$local][$fieldName] ?? null : $meta['fields']; | |
| return $meta ?? null; | |
| } | |
| } | |
| if (!function_exists('moduleName')){ | |
| /** | |
| * Return module name to module by module path from modules table | |
| * most used in blades views | |
| * @param $modulePath | |
| * @param null $local | |
| * @return mixed | |
| */ | |
| function moduleName($modulePath, $local = null) | |
| { | |
| $meta = Module::where('path', $modulePath)->pluck('meta')->toArray(); | |
| $meta = array_first($meta); | |
| $meta = $local ? $meta['module_name'][$local] : $meta['module_name']; | |
| return $meta ?? null; | |
| } | |
| } | |