public function afterFetch() { // dodanie walidacji do pól foreach ($this->field as $key => $value) { $field_config = Yaml::parse($value->code); if (empty($field_config['validator']) === false) { \Bm\Field\Models\Post::extend(function ($model) use($value, $field_config) { $model->rules[$value->name] = $field_config['validator']; }); } } }
public static function run() { // komunikaty 5270 9351 // wiadomości 10 // wiadomosci z pomorza 4136 // Regulaminy rozgrywek 127 // Regulaminy rozgrywek 2452 // Regulaminy Pomorskiego ZPN 5234 // Regulaminy 2014/15 6926 // Regulaminy Piłka Kobieca 2014/15 7249 ini_set('max_execution_time', 1200); $aktualnosci = [0 => 7, 1 => 18, 2 => 19, 3 => 20]; $aktualnosci_z_pomorza = [0 => 17, 1 => 21, 2 => 22, 3 => 23]; $tags = [1 => 18, 2 => 19, 3 => 20]; $komisje = [82 => 53, 83 => 16, 2447 => 54, 4093 => 55, 1842 => 56, 95 => 57, 111 => 58, 7277 => 59, 7912 => 60, 96 => 61, 112 => 62, 97 => 63, 7947 => 65, 98 => 66, 2347 => 67, 117 => 69, 118 => 70, 7958 => 71, 2006 => 72]; $komunikaty_komisji = [1305 => 83, 109 => 84, 2009 => 91, 110 => 86, 1863 => 77, 1302 => 79, 1320 => 89, 1324 => 88, 108 => 82, 2350 => 87, 101 => 78, 2451 => 75, 1216 => 73, 92 => 74, 7930 => 81]; $komunikaty_id = array_flip($komunikaty_komisji); $wydzialy = [19 => 73, 2 => 74, 53 => 75, 43 => 77, 8 => 78, 6 => 78, 3 => 78, 15 => 79, 12 => 80, 13 => 80, 16 => 82, 11 => 82, 10 => 82, 25 => 83, 26 => 84, 4 => 86, 7 => 86, 9 => 86, 18 => 87, 52 => 87, 19 => 88, 24 => 89, 38 => 90, 21 => 91, 22 => 91, 23 => 91]; /* 25 Komisja Piłkarstwa Młodzieżowego - od 01.01.2015 – do komunikatów przy zakładce komisji 26 Komisja Szkoleniowa Kolegium Sędziów - od 01.01.2015 – do komunikatów przy zakładce komisji 27 Komisja Kwalifikacji Kolegium Sędziów - od 01.01.2015 – do komunikatów przy zakładce komisji 28 Komisja Mentorska – Kolegium Sędziów - od 01.01.2015 – do komunikatów przy zakładce komisji 30 OSSM Gdańsk - od 01.01.2015 – do komunikatów przy zakładce komisji 31 Kadra im. K. Deyny od 01.06.2015 – do komunikatów przy zakładce komisji 33 Kadra im. K. Górskiego 01.06.2015 – do komunikatów przy zakładce komisji 34* Kadra im. W. Smolarka - od 01.06.2015 – do komunikatów przy zakładce komisji 35 Kadra Juniorek U-13 01.06.2015 – do komunikatów przy zakładce komisji 36 Kadra Młodziczek U-16 01.06.2015 – do komunikatów przy zakładce komisji 38 Rada Trenerów 01.01.2015 – do komunikatów przy zakładce komisji 39 Komisja Odznaczeń i Wyróżnień 01.01.2015 – do komunikatów przy zakładce komisji 41 PZPN - 01.01.2015 – do komunikatów przy zakładce komisji 42 Extranet - 01.01.2014 – do komunikatów przy zakładce komisji 43 Komisja ds. Nagłych 01.01.2015 – do komunikatów przy zakładce komisji 45 Z podwórka na stadion - 01.08.2014 – do komunikatów przy zakładce komisji 47 Komunikaty obsad 01.07.2015 – do komunikatów przy zakładce komisji 48 OSSM Malbork 01.01.2015 – do komunikatów przy zakładce komisji 49 Warsztaty i szkolenia - 01.07.2014 – do komunikatów przy zakładce komisji 50 Rozgrywki Junior E i F - 01.07.2015 – do komunikatów przy zakładce komisji 52 Komisja Piłki Plażowej – PRZENIEŚĆ DO FUTSALU (od stycznia 2015) 57 Fair_play - 01.01.2015 – do komunikatów przy zakładce biuro Gdańsk 58 Facebook 01.01.2015 – do komunikatów przy zakładce biuro Gdańsk */ $dzialy = [3 => 57, 4 => 66, 5 => 63, 6 => 136, 7 => 137, 8 => 134, 9 => 135, 10 => 61, 11 => 61, 16 => 61, 14 => 147, 15 => 58, 17 => 69, 18 => 67, 21 => 72, 22 => 18, 23 => 20, 24 => 70, 25 => 62, 26 => 145, 28 => 141, 30 => 123, 31 => 118, 33 => 119, 34 => 120, 35 => 121, 36 => 122, 38 => 71, 41 => 72, 42 => 72, 43 => 56, 45 => 38, 47 => 127, 48 => 124, 49 => 45, 50 => 72, 52 => 67, 57 => 72, 58 => 72]; $daty = [31 => '2015-06-01 00:00:00', 33 => '2015-06-01 00:00:00', 34 => '2015-06-01 00:00:00', 35 => '2015-06-01 00:00:00', 36 => '2015-06-01 00:00:00', 42 => '2014-06-01 00:00:00', 45 => '2014-08-01 00:00:00', 47 => '2015-07-01 00:00:00', 49 => '2014-07-01 00:00:00', 50 => '2015-07-01 00:00:00']; Post::extend(function ($model) { //$model->guarded = ['id']; $model->throwOnValidation = false; $model->rules['title'] = ''; //'unique:rainlab_blog_posts,title'; $model->rules['url'] = ''; $model->rules['slug'] = ['required', 'regex:/^[a-z0-9\\/\\:_\\-\\*\\[\\]\\+\\?\\|]*$/i', 'unique:rainlab_blog_posts,slug']; }); $i = 0; DB::rollBack(); DB::beginTransaction(); try { foreach (ImporterBase::$pzpn_site_content as $content) { $date = '2015-01-01 00:00:00'; if (empty($content['wydzialid']) === false && isset($daty[$content['wydzialid']])) { $date = $daty[$content['wydzialid']]; } if ($content['isfolder'] === '0' && date('Y-m-d H:i:s', $content['publishedon']) >= $date && in_array($content['parent'], [10]) && empty($content['alias']) === false) { $category = isset($dzialy[$content['wydzialid']]) ? $dzialy[$content['wydzialid']] : (isset($aktualnosci[$content['podokreg_id']]) ? $aktualnosci[$content['podokreg_id']] : 17); $html = str_replace('assets/', '/storage/app/media/', $content['content']); $data = ['user_id' => 2, 'title' => $content['pagetitle'], 'slug' => Str::slug($content['alias']), 'excerpt' => str_replace('assets/', '/storage/app/media/', $content['introtext']), 'content' => $html, 'published_at' => date('Y-m-d H:i:s', $content['publishedon']), 'published' => $content['published'] === '1' && $content['deleted'] === '0', 'created_at' => date('Y-m-d H:i:s', $content['createdon']), 'updated_at' => date('Y-m-d H:i:s'), 'content_html' => '', 'template_id' => 1, 'category_id' => $category]; $model_post = new Post(); $model_post->fill($data); if (!$model_post->validate()) { //dd($model_post->errors()); echo 'Błąd - ' . $content['id'], '<br>'; continue; } else { $data['url'] = $model_post->getUrl(); $post = $model_post->insertGetId($data); if ($post > 0 && $content['podokreg_id'] > 0) { $tag = Db::insert(Db::raw('insert into bedard_blogtags_post_tag values(' . (int) $tags[$content['podokreg_id']] . ',' . $post . ')')); } echo $content['id'], '<br>'; } } } } catch (Exception $e) { DB::rollBack(); dd($e); } DB::commit(); echo 'Sukces!'; exit; array('id' => '9423', 'type' => 'document', 'contentType' => 'text/html', 'pagetitle' => 'Uchwała nr VIII/124 w sprawie statusu zawodników oraz zasad zmian przynależności klubowej ', 'longtitle' => '', 'description' => 'assets/files/A_2015/Uchwaly/Uchwala nr VIII-124.pdf', 'alias' => 'uchwała-nr-viii124-w-sprawie-statusu-zawodników-oraz-zasad-zmian-przynależności-klubowej1', 'link_attributes' => '', 'published' => '1', 'pub_date' => '0', 'unpub_date' => '0', 'parent' => '9411', 'isfolder' => '0', 'introtext' => '', 'content' => '<p>Uchwała nr VIII/124 w sprawie statusu zawodników oraz zasad zmian przynależności klubowej .pdf</p>', 'richtext' => '1', 'template' => '5', 'menuindex' => '12', 'searchable' => '1', 'cacheable' => '0', 'createdby' => '1', 'createdon' => '1438635743', 'editedby' => '1', 'editedon' => '1438636045', 'deleted' => '0', 'deletedon' => '0', 'deletedby' => '0', 'publishedon' => '1438635855', 'publishedby' => '1', 'menutitle' => '', 'donthit' => '0', 'haskeywords' => '0', 'hasmetatags' => '0', 'privateweb' => '0', 'privatemgr' => '0', 'content_dispo' => '0', 'hidemenu' => '1', 'podokreg_id' => '0', 'wydzialid' => '0', 'slideron' => '0', 'czy_wazna' => '0'); }
public function boot() { $plugin_manager = \System\Classes\PluginManager::instance(); // Walidacja tablicy Validator::extend('arrayed', function ($attribute, $value, $params) { foreach ($value as $key => $val) { $validation = true; for ($i = 1; $i < count($params); $i++) { $validation = $validation && Validator::make($val, [$params[$i] => $params[0]])->fails(); } if ($validation === true) { return false; } } return true; }); // Walidacja numeru telefonu Validator::extend('phone', function ($attribute, $value, $parameters) { return preg_match('/^(\\+|(00))?(\\([0-9]{2}\\))?([ -]?[0-9]{2,})+$/i', $value) && mb_strlen($value) >= 9 && mb_strlen($value) <= 18; }); /** * Rozdzerzenie menu o prawidłowe urle do artykułów */ if ($plugin_manager->hasPlugin('Flynsarmy.Menu')) { \Flynsarmy\Menu\Models\Menuitem::extend(function ($model) { $model->addDynamicMethod('beforeSave', function () use($model) { $classes = ['Flynsarmy\\Menu\\MenuItemTypes\\BlogPost' => 'rainlab_blog_posts', 'Flynsarmy\\Menu\\MenuItemTypes\\BlogCategory' => 'rainlab_blog_categories']; $column = ['post_id', 'category_id']; if (array_key_exists(post('master_object_class'), $classes)) { $object = Db::table($classes[post('master_object_class')])->find($model->master_object_id); if ($object) { $url = $object->url; $model->url = $url; $model->{$column[array_search(post('master_object_class'), $classes)]} = $model->master_object_id; $model->selected_item_id = $model->selected_item_id ?: $url; } } // usunięcie hosta z urla $model->url = str_replace(\URL::to('/'), '', $model->url); }); }); } // Rozszerzenie pluginu Tags if ($plugin_manager->hasPlugin('Bedard.BlogTags')) { Tag::extend(function ($model) { $model->belongsToMany = ['posts' => ['Bm\\Field\\Models\\Post', 'table' => 'bedard_blogtags_post_tag', 'order' => 'published_at desc']]; }); // Extend the model Post::extend(function ($model) { // Relationship $model->belongsToMany['tags'] = ['Bedard\\BlogTags\\Models\\Tag', 'table' => 'bedard_blogtags_post_tag', 'order' => 'name']; // getTagboxAttribute() $model->addDynamicMethod('getTaglistAttribute', function () use($model) { return $model->tags()->lists('name'); }); // setTagboxAttribute() $model->addDynamicMethod('setTaglistAttribute', function ($tags) use($model) { $this->tags = $tags; }); }); // Attach tags to model Post::saved(function ($model) { if ($this->tags) { $ids = []; foreach ($this->tags as $name) { $create = Tag::firstOrCreate(['name' => $name]); $ids[] = $create->id; } $model->tags()->sync($ids); } }); } /** * Problem z grupowaniem w zarządzaniu grupami * @todo usunąć po poprawce w octoberze */ Backend\Models\UserGroup::extend(function ($model) { $model->belongsToMany['users_count'] = ['Backend\\Models\\User', 'table' => 'backend_users_groups', 'count' => true, 'key' => 'user_id']; }); /** * Rozszerzanie pól bloga */ Event::listen('backend.form.extendFields', function ($form) { if ($form->getController() instanceof \Bm\Field\Controllers\Posts && in_array($form->getContext(), ['create', 'update'])) { // Nadpisanie pola z tagami if (class_exists('\\Bedard\\BlogTags\\Plugin')) { $form->removeField('tagbox'); } // Generowanie pól szablonu $form->addTabFields($form->model->generateFields()); // Ustawianie domyślnej daty publikacji $form->data->published_at = $form->data->published_at ?: Carbon::now(); } }); /** * Rozdzerzenie pól menu o id artykułukategorii */ Event::listen('backend.list.extendColumns', function ($widget) { if ($widget->getController() instanceof \Flynsarmy\Menu\Controllers\Menus) { $widget->addColumns(['post_id' => ['hidden' => true], 'category_id' => ['hidden' => false]]); } }); // Rejestracja rozszerzeń Twiga Event::listen('cms.page.beforeDisplay', function ($controller, $url, $page) { $twig = $controller->getTwig(); $twig->addExtension(new \Bm\Field\Classes\TwigExcerpt()); $twig->addExtension(new \Bm\Field\Classes\TwigThumbnail()); $twig->addExtension(new \Bm\Field\Classes\TwigPostUrl()); if ($page) { // Ustawianie aktywnego urla w menu $page->menu_url = empty($page->url) ? '/' : $page->url; } }); }