/** * Utility method to get the absolute url of a reason page * * Provide an entity when possible for a slight performance boost * * @author Nathan White * @param mixed entity or entity_id corresponding to a page or site * @return mixed string absolute url if successful; else null */ function reason_get_page_url($page_entity_or_id) { static $builder; // lets use a singleton builder instance if (!isset($builder)) { $builder = new reasonPageUrl(); } if (is_object($page_entity_or_id)) { $builder->set_id($page_entity_or_id->id()); $builder->provide_page_entity($page_entity_or_id); } elseif (is_numeric($page_entity_or_id)) { $builder->set_id($page_entity_or_id); } else { trigger_error('reason_get_page_url was passed a parameter that is not an object or integer - a url cannot be generated'); return null; } return $builder->get_url(); }