Вы действительно хотите получить URL через $ this-> getUrl ('mymodule / controller / action'). Однако путаница ведет к неправильному пониманию системы маршрутизации. Тег admin указывает на использование маршрутизатора admin, а mymodule указывает имя, которое используется в URL. По сути, вы создаете свое собственное имя. Чтобы использовать имя администратора, вам необходимо использовать перезапись контроллера, чтобы выполнить его. Примерно так:
<admin>
<routers>
<adminhtml>
<args>
<modules>
<mymodule after="Mage_Adminhtml">Your_Mymodule</mymodule>
</modules>
</args>
</adminhtml>
</routers>
</admin>
Для этого нужно настроить систему маршрутизации так, чтобы она смотрела на вашем контроллере для соответствующего действия, но только если она не находит его на контроллере Mage_Adminhtml.
Обратите внимание, что при использовании этого переписывания вам нужно будет использовать «adminhtml» вместо «mymodule» в вызове getURL, так как ваши URL-адреса будут попадать под настройку front name, заданную adminhtml.
То, что вы выяснили, - это правильное решение для того, чтобы заставить работать ваше собственное имя, и оно будет работать просто отлично, если вам не нужно использовать имя администратора. :)