You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
940 B
44 lines
940 B
<?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; |
|
} |
|
|
|
}
|
|
|