- SEO › Auto-links (golem15.seo.autolinks, after Pages): list by phrase
with locale, origin and active filters, the disabled row state, the
form with its refusals, history through a field-less extension
- toolbar Add focus keyphrases (from_keyphrases) and
POST /autolinks/from-keyphrases
- GET/POST /autolinks, PUT /autolinks/{id}, DELETE /autolinks and the
tools seo_list_autolinks, seo_create_autolink, seo_update_autolink,
seo_delete_autolinks, seo_autolinks_from_keyphrases
- the settings tile description and the permission comment name
auto-links and the site audit
95 lines
2.9 KiB
Go
95 lines
2.9 KiB
Go
package seo
|
|
|
|
import (
|
|
"git.golem15.com/golem15/sm-seo-plugin/controllers"
|
|
"git.golem15.com/golem15/summercms/modules/pact"
|
|
)
|
|
|
|
// Navigation registers the SEO main item (UI-SPEC C2) behind
|
|
// golem15.seo.manage. It lands on Redirects; each side-menu entry is added
|
|
// when its controller exists, in the C2 order.
|
|
func (*Plugin) Navigation() []pact.NavigationItem {
|
|
return []pact.NavigationItem{{
|
|
Code: "seo",
|
|
Label: "golem15.seo::lang.nav.seo",
|
|
Icon: "search",
|
|
Permissions: []string{controllers.PermissionManage},
|
|
Order: 600,
|
|
Controller: controllers.RedirectsControllerID,
|
|
SideMenu: []pact.NavigationItem{
|
|
{
|
|
Code: "redirects",
|
|
Label: "golem15.seo::lang.nav.redirects",
|
|
Icon: "arrow-right",
|
|
Permissions: []string{controllers.PermissionManage},
|
|
Controller: controllers.RedirectsControllerID,
|
|
},
|
|
{
|
|
Code: "notfound",
|
|
Label: "golem15.seo::lang.nav.notfound",
|
|
Icon: "triangle-alert",
|
|
Permissions: []string{controllers.PermissionManage},
|
|
Controller: controllers.NotFoundControllerID,
|
|
},
|
|
{
|
|
Code: "rules",
|
|
Label: "golem15.seo::lang.nav.rules",
|
|
Icon: "link",
|
|
Permissions: []string{controllers.PermissionManage},
|
|
Controller: controllers.RulesControllerID,
|
|
},
|
|
{
|
|
Code: "pages",
|
|
Label: "golem15.seo::lang.nav.pages",
|
|
Icon: "files",
|
|
Permissions: []string{controllers.PermissionManage},
|
|
Controller: controllers.PagesControllerID,
|
|
},
|
|
{
|
|
Code: "autolinks",
|
|
Label: "golem15.seo::lang.nav.autolinks",
|
|
Icon: "wand-sparkles",
|
|
Permissions: []string{controllers.PermissionManage},
|
|
Controller: controllers.AutolinksControllerID,
|
|
},
|
|
{
|
|
Code: "audit",
|
|
Label: "golem15.seo::lang.nav.audit",
|
|
Icon: "gauge",
|
|
Permissions: []string{controllers.PermissionManage},
|
|
Controller: controllers.IssuesControllerID,
|
|
},
|
|
{
|
|
Code: "crawls",
|
|
Label: "golem15.seo::lang.nav.crawls",
|
|
Icon: "globe",
|
|
Permissions: []string{controllers.PermissionManage},
|
|
Controller: controllers.CrawlsControllerID,
|
|
},
|
|
{
|
|
Code: "robots",
|
|
Label: "golem15.seo::lang.nav.robots",
|
|
Icon: "file-text",
|
|
Permissions: []string{controllers.PermissionManage},
|
|
Controller: controllers.RobotsControllerID,
|
|
},
|
|
{
|
|
Code: "history",
|
|
Label: "golem15.seo::lang.nav.history",
|
|
Icon: "clock",
|
|
Permissions: []string{controllers.PermissionManage},
|
|
Controller: controllers.HistoryControllerID,
|
|
},
|
|
{
|
|
Code: "transfer",
|
|
Label: "golem15.seo::lang.nav.transfer",
|
|
Icon: "download",
|
|
Permissions: []string{controllers.PermissionManage},
|
|
Controller: controllers.TransferControllerID,
|
|
},
|
|
},
|
|
}}
|
|
}
|
|
|
|
var _ pact.HasNavigation = (*Plugin)(nil)
|