From fafb429bf01f4792e0510a447b49df2e4172eed5 Mon Sep 17 00:00:00 2001 From: Jonathan McGaha Date: Thu, 13 Jun 2019 12:17:05 -0400 Subject: [PATCH] Add support for YouTube links --- README.md | 11 ++++--- src/models/YouTube.php | 60 ++++++++++++++++++++++++++++++++++ src/services/LinkitService.php | 2 ++ 3 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 src/models/YouTube.php diff --git a/README.md b/README.md index 847f19d..6c1c9d3 100644 --- a/README.md +++ b/README.md @@ -57,14 +57,15 @@ Social 5. Facebook 6. Instagram 7. Linked In +8. YouTube Elements -8. Entry -9. Category -10. User -11. Asset -12. Product +9. Entry +10. Category +11. User +12. Asset +13. Product Each link type has additional option to allow further customisation. For example, the User link type allows you to set a default path... diff --git a/src/models/YouTube.php b/src/models/YouTube.php new file mode 100644 index 0000000..5e8e957 --- /dev/null +++ b/src/models/YouTube.php @@ -0,0 +1,60 @@ +value; + } + + public function rules() + { + $rules = parent::rules(); + $rules[] = [ + ['value'], + UrlValidator::class, + 'defaultScheme' => 'https', + 'message' => Craft::t('linkit', 'Please enter a valid url.') + ]; + $rules[] = [ + ['value'], + 'match', + 'pattern' => $this->_match, + 'message' => Craft::t('linkit', 'Please enter a valid YouTube link.') + ]; + return $rules; + } +} diff --git a/src/services/LinkitService.php b/src/services/LinkitService.php index 0d159e8..0006a23 100644 --- a/src/services/LinkitService.php +++ b/src/services/LinkitService.php @@ -16,6 +16,7 @@ use fruitstudios\linkit\models\Facebook; use fruitstudios\linkit\models\LinkedIn; use fruitstudios\linkit\models\Instagram; +use fruitstudios\linkit\models\YouTube; use Craft; use craft\base\Component; @@ -45,6 +46,7 @@ public function getAvailableLinkTypes() $linkTypes[] = new Facebook(); $linkTypes[] = new Instagram(); $linkTypes[] = new LinkedIn(); + $linkTypes[] = new YouTube(); // Element link types $linkTypes[] = new Entry();