Hi again.
So, I disassembled router for spareparts and found a little mistake (or feature) which I can't explain.
File
storage_location/joomla_article/joomla_article.php, method parseRoute, string 907:
$join .= ' LEFT JOIN #__cck_core AS e on e.' . $config['join_key'] . ' = a.id';
After this code result query looks like:
SELECT a.id FROM #__content AS a LEFT JOIN #__categories AS b on b.id = a.catid LEFT JOIN #__cck_core AS e on e.pk = a.id WHERE a.alias = 'art_alias' AND b.alias = 'cat_alias' AND e.cck = "category"
But in our case cck name is from
$params
which we took from Menu Item properties. As we remember Menu Item is List of Categories and cck name is also for category in this Menu Item settings. So, as I see we should join #__cck_core
table not to #__content
but to #__categories
table. And result query should be like this:
SELECT a.id FROM #__content AS a LEFT JOIN #__categories AS b on b.id = a.catid LEFT JOIN #__cck_core AS e on e.pk = b.id WHERE a.alias = 'art_alias' AND b.alias = 'cat_alias' AND e.cck = "category"
I've changed
... on e.pk = a.id ...
to ... on e.pk = b.id ...
So, as result I corrected string 907 in storage_location/joomla_article/joomla_article.php from
$join .= ' LEFT JOIN #__cck_core AS e on e.' . $config['join_key'] . ' = a.id';
to
$join .= ' LEFT JOIN #__cck_core AS e on e.' . $config['join_key'] . ' = b.id';
Now I can build my structure from start topic.