/** * Table body * @param string $column_name * @param int $item_id */ public function td($column_name, $item_id) { if ('mslscol' == $column_name) { $blogs = MslsBlogCollection::instance()->get(); if ($blogs) { $mydata = MslsOptions::create($item_id); foreach ($blogs as $blog) { switch_to_blog($blog->userblog_id); $language = $blog->get_language(); $icon = MslsAdminIcon::create(); $icon->set_language($language); if ($mydata->has_value($language)) { $flag_url = MslsOptions::instance()->get_url('images/link_edit.png'); $icon->set_href($mydata->{$language})->set_src($flag_url); } else { $flag_url = MslsOptions::instance()->get_url('images/link_add.png'); $icon->set_src($flag_url); } echo $icon; // xss ok restore_current_blog(); } } } }
/** * Creates and gets the output as an array * @param int $display * @param bool $filter * @param bool $exists * @uses MslsOptions * @uses MslsLink * @return array */ public function get($display, $filter = false, $exists = false) { $arr = array(); $blogs = MslsBlogCollection::instance()->get_filtered($filter); if ($blogs) { $mydata = MslsOptions::create(); $link = MslsLink::create($display); foreach ($blogs as $blog) { $language = $blog->get_language(); $url = $mydata->get_current_link(); $current = $blog->userblog_id == MslsBlogCollection::instance()->get_current_blog_id(); if ($current) { $link->txt = $blog->get_description(); } else { switch_to_blog($blog->userblog_id); if ($this->is_requirements_not_fulfilled($mydata, $exists, $language)) { restore_current_blog(); continue; } else { $url = $mydata->get_permalink($language); $link->txt = $blog->get_description(); } restore_current_blog(); } $link->src = MslsOptions::instance()->get_flag_url($language); $link->alt = $language; if (has_filter('msls_output_get')) { /** * Returns HTML-link for an item of the output-arr * @since 0.9.8 * @param string $url * @param MslsLink $link * @param bool current */ $arr[] = (string) apply_filters('msls_output_get', $url, $link, $current); } else { $arr[] = sprintf('<a href="%s" title="%s"%s>%s</a>', $url, $link->txt, $current ? ' class="current_language"' : '', $link); } } } return $arr; }
/** * Help searchengines to index and to serve the localized version with * rel="alternate"-links in the html-header */ function msls_head() { $blogs = MslsBlogCollection::instance(); $mydata = MslsOptions::create(); foreach ($blogs->get_objects() as $blog) { $language = $blog->get_language(); $url = $mydata->get_current_link(); $current = $blog->userblog_id == MslsBlogCollection::instance()->get_current_blog_id(); $title = $blog->get_description(); if (!$current) { switch_to_blog($blog->userblog_id); if ('MslsOptions' != get_class($mydata) && (is_null($mydata) || !$mydata->has_value($language))) { restore_current_blog(); continue; } $url = $mydata->get_permalink($language); $title = $blog->get_description(); restore_current_blog(); } if (has_filter('msls_head_hreflang')) { /** * Overrides the hreflang value * @since 0.9.9 * @param string $language */ $hreflang = (string) apply_filters('msls_head_hreflang', $language); } else { $hreflang = $blog->get_alpha2(); } printf('<link rel="alternate" hreflang="%s" href="%s" title="%s" />', $hreflang, $url, esc_attr($title)); echo "\n"; } }
/** * Verify the static create-method */ function test_create_method() { $this->assertInstanceOf('MslsOptions', MslsOptions::create()); }