Creating extra language definitions is the right way to go
For registering the admin pages, including the tricky configuration page (!), here's some example code taken from Links Manager
PHP Code:
# Clears out any pre-existing Links Manager configuration settings
SET @t4=0;
SELECT (@t4:=configuration_group_id) AS t4
FROM configuration_group
WHERE configuration_group_title= 'Links Manager';
DELETE FROM configuration WHERE configuration_group_id = @t4;
DELETE FROM configuration_group WHERE configuration_group_id = @t4;
DELETE FROM configuration WHERE configuration_key = 'DEFINE_LINKS_STATUS';
# Insert New Links Manager Configuration Group (will be indexed differently to any old one cleared out about)
INSERT INTO configuration_group VALUES (NULL, 'Links Manager', 'Links Display Settings', '1', '1');
UPDATE configuration_group SET sort_order = LAST_INSERT_ID() WHERE configuration_group_id = LAST_INSERT_ID();
# Register the paghes for Admin Access Control
INSERT INTO admin_pages (page_key,language_key,main_page,page_params,menu_key,display_on_menu,sort_order)
VALUES ('links','BOX_LINKS','FILENAME_LINKS','','extras','Y',101),
('linkCategories','BOX_LINK_CATEGORIES','FILENAME_LINK_CATEGORIES','','extras','Y',102),
('linksContact','BOX_LINKS_CONTACT','FILENAME_LINKS_CONTACT','','extras','Y',103),
('linksConfig','BOX_CONFIGURATION_LINKS_MANAGER','FILENAME_CONFIGURATION',CONCAT('gID=',LAST_INSERT_ID()),'configuration','Y',LAST_INSERT_ID());
This code is still being tested, but looks like it should provide a good basis for best practise for 1.5, but if anybody can improve on it, that would good to hear.
The 1.5 approach to registering pages is a big step from 1.3, specifically as a means to achieving admin user control for PCI compliance.
As such it's a delicate balance between what was required to achieve that objective and making the conversion from the box-based 1.3 admin mods as quick as possible.
The good news is that this sort of compromise won't be needed for (let's just say) future major releases.
Bookmarks