Files
IPB/applications/core/data/furl.json
T
2025-12-19 04:57:54 -08:00

362 lines
12 KiB
JSON

/**
* Friendly URL Structure
*
* For each value in the $furl array:
* The key should be the "SEO Template" - an identifier which you'll use when displaying a URL.
* The value should be an associative array with two or three elements: 'friendly' and 'real', and optionally 'verify':
* 'friendly'
* The friendly URL to use - encase variables in {curly braces} containing a symbol, followed by the name of the parameter that matches in the "real" URL
* The symbol should be # for numbers or @ for strings
* For example, if the "real" URL contains id=XXX, where XXX is a number, you should include {#id} somewhere in the friendly URL.
* You can also use the tag {?} for the "SEO Title" (that is, any variables that shouldn't be part of the real URL, such as the name of the topipc being viewed).
* If you want to support more than one SEO Title, you can give them zero-indexed keys like so: {?0} {?1} {?2}
* 'real'
* This should be the base of the real URL. You should not include parameters which will be parsed out from the friendly URL.
* 'verify'
* This should be the name of a class that contains a loadFromUrl() and an url() method. The dynamic URL (i.e. app=core&...) will be passed to loadFromUrl(), and the url()
* method will subsequently be called to retrieve the correct URL, ideal with ActiveRecord pattern classes.
*
* IMPORTANT: Ensure values are listed with the most specific ones first. This is to ensure that non-FURL redirects are done correctly. For example, if you have these FURLs:
* /index.php?app=myapp&module=mymodule&controller=mycontroller&do=myaction -> /myfolder/myaction
* /index.php?app=myapp&module=mymodule&controller=mycontroller -> /myfolder
* They must be provided in that order, otherwise the former will redirec to /myfolder/?do=myaction rather than /myfolder/myaction
*/
{
"topLevel": "",
"pages": {
/* Login */
"login": {
"friendly": "login",
"real": "app=core&module=system&controller=login"
},
"logout": {
"friendly": "logout",
"real": "app=core&module=system&controller=login&do=logout"
},
"lostpassword": {
"friendly": "lostpassword",
"real": "app=core&module=system&controller=lostpass"
},
/* User CP */
"settings_email": {
"friendly": "settings/email",
"real": "app=core&module=system&controller=settings&area=email"
},
"settings_password": {
"friendly": "settings/password",
"real": "app=core&module=system&controller=settings&area=password"
},
"settings_username": {
"friendly": "settings/username",
"real": "app=core&module=system&controller=settings&area=username"
},
"settings_signature": {
"friendly": "settings/signature",
"real": "app=core&module=system&controller=settings&area=signature"
},
"settings_Facebook": {
"friendly": "settings/facebook",
"real": "app=core&module=system&controller=settings&area=profilesync&service=Facebook"
},
"settings_Google": {
"friendly": "settings/google",
"real": "app=core&module=system&controller=settings&area=profilesync&service=Google"
},
"settings_LinkedIn": {
"friendly": "settings/linkedin",
"real": "app=core&module=system&controller=settings&area=profilesync&service=LinkedIn"
},
"settings_Microsoft": {
"friendly": "settings/microsoft",
"real": "app=core&module=system&controller=settings&area=profilesync&service=Microsoft"
},
"settings_Twitter": {
"friendly": "settings/twitter",
"real": "app=core&module=system&controller=settings&area=profilesync&service=Twitter"
},
"settings": {
"friendly": "settings",
"real": "app=core&module=system&controller=settings"
},
"unsubscribe": {
"friendly": "unsubscribe",
"real": "app=core&module=system&controller=unsubscribe"
},
"privacy": {
"friendly": "privacy",
"real": "app=core&module=system&controller=privacy",
"alias": "privacypolicy"
},
"register": {
"friendly": "register",
"real": "app=core&module=system&controller=register"
},
"attachments": {
"friendly": "attachments",
"real": "app=core&module=system&controller=attachments"
},
/* Messenger */
"messenger_compose": {
"friendly": "messenger/compose",
"real": "app=core&module=messaging&controller=messenger&do=compose"
},
"messenger_convo": {
"friendly": "messenger/{#id}",
"real": "app=core&module=messaging&controller=messenger"
},
"messenger_unread": {
"friendly": "messenger/unread",
"real": "app=core&module=messaging&controller=messenger&folder=unread"
},
"messenger_drafts": {
"friendly": "messenger/drafts",
"real": "app=core&module=messaging&controller=messenger&folder=drafts"
},
"messaging": {
"friendly": "messenger",
"real": "app=core&module=messaging&controller=messenger"
},
/* Profiles */
"warn_add": {
"friendly": "profile/{#id}-{?}/warnings/add",
"real": "app=core&module=system&controller=warnings&do=warn",
"seoTitles": [
{
"class": "\\IPS\\Member",
"queryParam": "id",
"property": "members_seo_name"
}
]
},
"warn_view": {
"friendly": "profile/{#id}-{?}/warnings/{#w}",
"real": "app=core&module=system&controller=warnings&do=view",
"verify": "\\IPS\\core\\Warnings\\Warning"
},
"warn_list": {
"friendly": "profile/{#id}-{?}/warnings",
"real": "app=core&module=system&controller=warnings",
"seoTitles": [
{
"class": "\\IPS\\Member",
"queryParam": "id",
"property": "members_seo_name"
}
]
},
"profile_content": {
"friendly": "profile/{#id}-{?}/content",
"real": "app=core&module=members&controller=profile&do=content",
"seoTitles": [
{
"class": "\\IPS\\Member",
"queryParam": "id",
"property": "members_seo_name"
}
]
},
"profile_reputation": {
"friendly": "profile/{#id}-{?}/reputation",
"real": "app=core&module=members&controller=profile&do=reputation",
"seoTitles": [
{
"class": "\\IPS\\Member",
"queryParam": "id",
"property": "members_seo_name"
}
]
},
"edit_profile": {
"friendly": "profile/{#id}-{?}/edit",
"real": "app=core&module=members&controller=profile&do=edit",
"seoTitles": [
{
"class": "\\IPS\\Member",
"queryParam": "id",
"property": "members_seo_name"
}
]
},
"edit_profile_photo": {
"friendly": "profile/{#id}-{?}/photo",
"real": "app=core&module=members&controller=profile&do=editPhoto",
"seoTitles": [
{
"class": "\\IPS\\Member",
"queryParam": "id",
"property": "members_seo_name"
}
]
},
"flag_as_spammer": {
"friendly": "profile/{#id}-{?}/spammer",
"real": "app=core&module=system&controller=moderation&do=flagAsSpammer",
"seoTitles": [
{
"class": "\\IPS\\Member",
"queryParam": "id",
"property": "members_seo_name"
}
]
},
"profile_followers": {
"friendly": "profile/{#id}-{?}/followers",
"real": "app=core&module=members&controller=profile&do=followers",
"seoTitles": [
{
"class": "\\IPS\\Member",
"queryParam": "id",
"property": "members_seo_name"
}
]
},
"profile": {
"friendly": "profile/{#id}-{?}",
"real": "app=core&module=members&controller=profile",
"verify": "\\IPS\\Member",
"alias": "user/{#id}-{?}"
},
/* Status Updates */
"status_following": {
"friendly": "statuses/following",
"real": "app=core&module=status&controller=feed&following=1"
},
"status": {
"friendly": "statuses",
"real": "app=core&module=status&controller=feed"
},
/* Mod CP */
"modcp_announcements": {
"friendly": "modcp/announcements",
"real": "app=core&module=modcp&controller=modcp&tab=announcements"
},
"modcp_report": {
"friendly": "modcp/reports/{#id}",
"real": "app=core&module=modcp&controller=modcp&tab=reports&action=view"
},
"modcp": {
"friendly": "modcp",
"real": "app=core&module=modcp&controller=modcp"
},
"modcp_members": {
"friendly": "modcp/members",
"real": "app=core&module=modcp&controller=modcp&tab=members"
},
"modcp_reports": {
"friendly": "modcp/reports",
"real": "app=core&module=modcp&controller=modcp&tab=reports"
},
"modcp_content": {
"friendly": "modcp/content",
"real": "app=core&module=modcp&controller=modcp&tab=hidden"
},
"modcp_approval": {
"friendly": "modcp/approval-queue",
"real": "app=core&module=modcp&controller=modcp&tab=approval"
},
"modcp_recent_warnings": {
"friendly": "modcp/recent-warnings",
"real": "app=core&module=modcp&controller=modcp&tab=recent_warnings"
},
"modcp_ip_tools": {
"friendly": "modcp/ip-tools",
"real": "app=core&module=modcp&controller=modcp&tab=ip_tools"
},
/* Ignore */
"ignore": {
"friendly": "ignore",
"real": "app=core&module=system&controller=ignore"
},
/* Online Users */
"online": {
"friendly": "online",
"real": "app=core&module=online&controller=online"
},
/* Staff directory */
"staffdirectory": {
"friendly": "staff",
"real": "app=core&module=staffdirectory&controller=directory"
},
/* Guidelines */
"guidelines": {
"friendly": "guidelines",
"real": "app=core&module=system&controller=guidelines"
},
/* Notifications */
"notifications_options": {
"friendly": "notifications/options",
"real": "app=core&module=system&controller=notifications&do=options"
},
"notifications_rss": {
"friendly": "notifications.xml",
"real": "app=core&module=system&controller=notifications&format=rss"
},
"notifications": {
"friendly": "notifications",
"real": "app=core&module=system&controller=notifications"
},
"terms": {
"friendly": "terms",
"real": "app=core&module=system&controller=terms"
},
"announcement": {
"friendly": "announcement/{#id}-{?}",
"real": "app=core&module=system&controller=announcement"
},
"contact": {
"friendly": "contact",
"real": "app=core&module=contact&controller=contact"
},
"followed_content": {
"friendly": "followed",
"real": "app=core&module=system&controller=followed"
},
/* Search */
"search": {
"friendly": "search",
"real": "app=core&module=search&controller=search"
},
/* New Content */
"vnc" : {
"friendly": "new-content",
"real": "app=core&module=system&controller=vnc"
},
/* New Content */
"activity" : {
"friendly": "activity",
"real": "app=core&module=activity&controller=activity"
},
/* Language Selector */
"language": {
"friendly": "language",
"real": "app=core&module=system&controller=language"
},
/* Theme Selector */
"theme": {
"friendly": "theme",
"real": "app=core&module=system&controller=theme"
},
/* Mark site as read */
"mark_site_as_read": {
"friendly": "markallread",
"real": "app=core&module=system&controller=markread"
}
}
}