Ссылка с раскрытием вкладки

Знатоки, вам вопрос. Возможно ли в админке при переходе по ссылке попадать не просто в соответствующий раздел, а чтобы сразу попадать на определённую вкладку этого раздела?
Допустим пункт меню расположен на дашборде, и кликнув на него надо попасть на страницу настроек товара в конкретную вкладку, например, на вкладку SEO или на вкладку Модули.

К ссылке надо добавить, например в приведенном примере -

&selected_section=seo
1 лайк

Супер, работает, только вот незадача. В маркетплейсе у страниц товара есть в ссылке параметр company_id=12345, он же у каждого магазина разный, а в админке вендора ссылка на всех одна. Что-то может служить заменителем, т.е. в зависимости от того, в чей админке нажимается ссылка, тот номер ID подставляется?

тут наверное если только ссылку через блок html + smarty

company_id={$runtime.company_id}

не помню точно, может auth.company_id - надо в выводе посмотреть

1 лайк

Вам ответили правильно. Вам поможет:

{$runtime.company_id}

тогда просто делаете:
{fn_url("controller.mode?company_id=`$runtime.company_id`&selected_section=my_section_id")}

К сожалению такая конструкция с {$ не работает в схеме, только если прямое указание ID-номера магазина. Вот кусок кода, куда хотел вставить такую ссылку.

`products_seo` => [
        `href` => `httр://site.ru/page.php?dispatch=companies.update&company_id=5&selected_section=seo`,
        `position` => 100,
         ],

В схеме по другому, тут php, не smarty
fn_url("controller.mode?company_id=". Registry::get('runtime.company_id'). "&selected_section=my_section_id")
И обязательно
use Tygh/Registry;
в начале файла

1 лайк

Честно говоря не разобрался куда впихнуть этот код fn_url("… и что должно быть в url-ссылке вместо значения в id=
И так и сяк крутил, но ссылка не работает, открывает страницу 404. :slightly_frowning_face:

Попробуйте

'href' => fn_url("companies.update?selected_section=seo&company_id=" . Registry::get('runtime.company_id')),

2 лайка

и в самом верху файла, сразу после <?php ещё добавить:

use Tygh\Registry;

(если там нет такой строчки)

3 лайка

А в эту конструкцию можно встроить target _blank?

Попробуйте туда же добавить новый параметр

                    'attrs' => [
                        'href' => [ // Attributes for <a>
                            'target' => '_blank',
                        ],
                    ],

В ссылке не появляется target, не чует что он есть. :smirk:

Странно, это кусок кода из схемы ядра. Кэш почистили?

а что за схема?

app/schemas/menu/menu.php

да, в комменте так и написано… но далее нигде не употреблено. может, хотели но не сделали подобный разбор?

В старых версиях не работало точно, в последней глянул ночью вроде разбор стоит и должен работать, но проверять не стал.

Вот сюда не получается воткнуть target _blank

   'seo_menu' => [
		'position' => 100,
        'items' => [
            'seo_menu' => [
				'href' => fn_url("companies.update?selected_section=seo&company_id=" . Registry::get("runtime.company_id")),
                'position' => 100, 
            ],
        ],
    ],

Файл этот здесь: /app/addons/vendor_panel_configurator/schemas/menu/menu_vendor.php
Может дело в самом файле, а не в таргете?

и вот так не работает?

   'seo_menu' => [
		'position' => 100,
        'items' => [
            'seo_menu' => [
				'href' => fn_url("companies.update?selected_section=seo&company_id=" . Registry::get("runtime.company_id")),
                'position' => 100, 
                'attrs' => [
                        'href' => [ 
                            'target' => '_blank',
                        ],
                    ],
            ],
        ],
    ],