<?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; } }