Aliased Pages - Autonav Breadcrumb trail

Permalink Browser Info Environment
I suspect I am pushing this module to it's limits, but I'm hoping you can offer some help. We have an inventory of products which are just content pages. In order to put the products into categories, we simply create Aliases to the products we need

/ products 
/ products / product / ( lots of pages product pages here )
/ products / Category X  / "A Product" (Alias)
/ products / Category X  / "B Product" (Alias)
/ products / Category Y / "A Product" (Alias)


We need to show the same content on a different domain site. To do this we set the root "/ products" page to allow from all domains, and also added it as an Alias to the domain homepage:

/ sites / Domain B
/ sites / Domain B / products (alias of /products)


Everything is working as we would expect except the Autonav breadcrumb trail when viewing / sites / Domain B / products / *

* Breadcrumb works for all pages on main domain, including aliases
* Breadcrumb works for all "proper" pages on Domain B
* Breadcrumb works for an Aliased page on Domain B if it's placed under a "proper" page
* Breadcrumb fails when alias is placed directly under Domain B home

Any ideas?

1 Attachment

Type: Discussion
Status: Resolved
Geekcubed
View Replies:
Geekcubed replied on at Permalink Reply
Geekcubed
Note sure why this has gone down as "Pre Sale" - should be Support Req. - Can't edit
Geekcubed replied on at Permalink Reply
Geekcubed
Bumping this - still waiting for response from module dev's...
Mainio replied on at Permalink Reply
Mainio
Hi there,

Thanks for the bump, we haven't got an email notification on this one because of which it has been left unnoticed. I think there were some issues with the emails coming through, they had some filtering issues during the end of last week.

I'll put this under "Discussion" since I don't believe this falls under support.

This is how it's supposed to work internally in concrete5. Basically the sub-pages of your aliased page are not under the alias internally in concrete5. Only the aliased page is in the location where you see it in the sitemap. Because you've allowed the page to be shown from sub-domains, the page you see from under the mapped domain is the original page under its original location. And the breadcrumbs trail is generated based on that location.

I just tested what happens when you add another alias under an existing alias and it does not seem to work. It creates the alias under the original page. That would've been the only easy solution for this one that I can think of.

Other than that, I don't believe there are any ways pass this issue than creating some custom code for it. That's the only solution I can think of. Which means you'll need to create your own auto-nav block (or maybe just "breadcrumbs" block) to solve this.

To implement that, there's few things you'll need to do:
- When checking for all parents in the breadcrumbs trail, under every page, you'll need to check whether it has an alias under the domain that is currently being shown. This is the hardest part and will probably require a custom SQL query.
- If it has an alias under the domain, use that page instead with the follow up recursive call to the parent ID population. Then, it will follow the trail under the location that you'd want.

This is not internally supported in concrete5 because of the fact that you cannot create aliases under aliases and the sub-pages of the aliased pages are not mapped under those aliases. You can test this also with a normal concrete5 installation without Multiple Domains. If you try to access the sub-pages of an aliased page, you'll get a "page not found" error.

Best,
Antti / Mainio

concrete5 Environment Information

# concrete5 Version
5.6.3.1

# concrete5 Packages
Mirage Machines (1.3.0), Multiple Domains (1.4.3).

# concrete5 Overrides
blocks/form, blocks/youtube, blocks/search, helpers/navigation.php, languages/sl_SI, languages/fi_FI, languages/es_MX, languages/fa_IR, languages/es_ES, languages/sv_SE, languages/ja_JP, languages/sk_SK, languages/ar, languages/el_GR, languages/vi_VN, languages/nb_NO, languages/es_AR, languages/da_DK, languages/it_IT, languages/nl_NL, languages/es_PE, languages/cs_CZ, languages/de_DE, languages/zh_CN, languages/he_IL, languages/pt_PT, languages/tr_TR, languages/fr_FR, languages/ro_RO, languages/ru_RU, languages/zh_TW, libraries/request.php

# concrete5 Cache Settings
Block Cache - Off
Overrides Cache - Off
Full Page Caching - Off

# Server Software
Apache/2.4.10 (Amazon) PHP/5.4.34

# Server API
apache2handler

# PHP Version
5.4.34

# PHP Extensions
apache2handler, bz2, calendar, Core, ctype, curl, date, dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, json, libxml, mhash, mysql, mysqli, openssl, pcre, PDO, pdo_mysql, pdo_sqlite, Phar, posix, Reflection, session, shmop, SimpleXML, sockets, SPL, sqlite3, standard, sysvmsg, sysvsem, sysvshm, tokenizer, wddx, xml, xmlreader, xmlwriter, xsl, zip, zlib.

# PHP Settings
max_execution_time - 30
log_errors_max_len - 1024
max_file_uploads - 20
max_input_nesting_level - 64
max_input_time - 60
max_input_vars - 1000
memory_limit - 128M
post_max_size - 8M
sql.safe_mode - Off
upload_max_filesize - 10M
mysql.max_links - Unlimited
mysql.max_persistent - Unlimited
mysqli.max_links - Unlimited
mysqli.max_persistent - Unlimited
pcre.backtrack_limit - 1000000
pcre.recursion_limit - 100000
session.cache_limiter - nocache
session.gc_maxlifetime - 7200

Browser User-Agent String

Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36

Hide Post Content

This will replace the post content with the message: "Content has been removed by an Administrator"

Hide Content

Request Refund

You may not request a refund that is not currently owned by you.