diff options
| author | 2014-06-13 18:51:52 +0200 | |
|---|---|---|
| committer | 2014-06-13 18:51:52 +0200 | |
| commit | f58fdfe93dbf969338fe9cecbd728e0f7add4617 (patch) | |
| tree | e1629da3361235d1c4ef28944624326491628045 /app/Models/Share.php | |
| parent | c053825ff8f9792e692c101585481129b006937b (diff) | |
| parent | 61f4d5457818204eb28ed394d4f1b97160542baa (diff) | |
Merge branch 'dev' into beta
Diffstat (limited to 'app/Models/Share.php')
| -rw-r--r-- | app/Models/Share.php | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/app/Models/Share.php b/app/Models/Share.php new file mode 100644 index 000000000..b146db722 --- /dev/null +++ b/app/Models/Share.php @@ -0,0 +1,44 @@ +<?php + +class FreshRSS_Share { + + static public function generateUrl($options, $selected, $link, $title) { + $share = $options[$selected['type']]; + $matches = array( + '~URL~', + '~TITLE~', + '~LINK~', + ); + $replaces = array( + $selected['url'], + self::transformData($title, self::getTransform($share, 'title')), + self::transformData($link, self::getTransform($share, 'link')), + ); + $url = str_replace($matches, $replaces, $share['url']); + return $url; + } + + static private function transformData($data, $transform) { + if (!is_array($transform)) { + return $data; + } + if (count($transform) === 0) { + return $data; + } + foreach ($transform as $action) { + $data = call_user_func($action, $data); + } + return $data; + } + + static private function getTransform($options, $type) { + $transform = $options['transform']; + + if (array_key_exists($type, $transform)) { + return $transform[$type]; + } + + return $transform; + } + +} |
