get("settings_menu") ->append(Menu::factory("link") ->label(t("Item hiding")) ->url(url::site("admin/hide"))); } static function site_menu($menu, $theme, $item_css_selector) { $item = $theme->item(); if (!empty($item) && hide::can_be_hidden($item) && hide::can_hide($item)) { $csrf = access::csrf_token(); $link = self::_get_hide_link_data($item); $menu->get("options_menu") ->append(Menu::factory("ajax_link") ->label($link["text"]) ->ajax_handler("function(data) { window.location.reload() }") ->url(url::site("display/".$link["action"]."/$item->id?csrf=$csrf"))); } } static function context_menu($menu, $theme, $item, $thumb_css_selector) { if (hide::can_be_hidden($item) && hide::can_hide($item)) { $csrf = access::csrf_token(); $link = self::_get_hide_link_data($item); $menu ->get("options_menu") ->append(Menu::factory("ajax_link") ->label($link["text"]) ->ajax_handler("function(data) { window.location.reload() }") ->url(url::site("display/".$link["action"]."/$item->id?csrf=$csrf"))); } } /** * Returns some data used to create a hide link. * * @param Item_Model $item the related item * @return array */ private static function _get_hide_link_data(Item_Model $item) { if (hide::is_hidden($item)) { $action = "show"; $action_label = "Show"; } else { $action = "hide"; $action_label = "Hide"; } switch ($item->type) { case "movie": $item_type_label = "movie"; break; default: $item_type_label = "photo"; break; } $label = t("$action_label this $item_type_label"); return array("text" => $label, "action" => $action); } }