View Full Version : Problem with the names of plug-in menu items
gushin
02-02-2012, 06:53 AM
Hello! Sorry for my bad English. I make the vbulletin plugin, and have this problem:
in install code I'm create XML file cpnav_myplugin.xml, containing this code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<navgroups product="my_product">
<navgroup phrase="my_product_settings" hr="true" permissions="canadminsettings" displayorder="1">
<navoption displayorder="10">
<phrase>my_product_edit_text</phrase>
<link>my_product.php?action=edit_text</link>
</navoption>
<navoption displayorder="20">
<phrase>my_product_edit_emails</phrase>
<link>my_product.php?action=edit_email</link>
</navoption>
</navgroup>
</navgroups>
this xml assumes that the phrases "my_product_settings", "my_product_edit_text" et al. is defined. I'm added the following xml code of the plugin this part:
<phrases>
<phrasetype name="my_product" fieldname="my_product_phrases">
<phrase name="my_product_settings"><![CDATA[MP settings]]></phrase>
<phrase name="my_product_edit_text"><![CDATA[Edit mail text]]></phrase>
<phrase name="my_product__edit_emails"><![CDATA[Edit emails]]></phrase>
</phrasetype>
</phrases>
I assumed that the new menu item will appear in the admin interface. But I was saw the following:
https://vborg.vbsupport.ru/external/2012/02/62.png
In this regard, I want to ask: where is I did mistake? :)
Try using this instead:
<phrasetype name="Control Panel Home Pages" fieldname="cphome">
because only some phrase types are loaded for a given page, and you must set your phrases to a type that will be loaded on the menu page.
gushin
02-02-2012, 12:10 PM
Thank you. Now the code looks like this:
<phrases>
<phrasetype name="Control Panel Home Pages" fieldname="cphome">
<phrase name="wb_complaint_settings"><![CDATA[WBC settings]]></phrase>
<phrase name="wb_complaint_edit_text"><![CDATA[Edit mail text]]></phrase>
<phrase name="wb_complaint_edit_emails"><![CDATA[Edit emails]]></phrase>
</phrasetype>
</phrases>
But, the menu still looks like the first screenshot... I checked in the "language and the phrase" under Control Panel Home Pages my phrases are present:
https://vborg.vbsupport.ru/external/2012/02/60.png (http://www.radikal.ru)
what else could be the problem? Maybe I missed some more of the code?
--------------- Added 1328188604 at 1328188604 ---------------
And another question, what directory should I put a php script (my_product.php) that is invoked here:
<phrase>my_product_edit_text</phrase>
<link>my_product.php?action=edit_text</link>
--------------- Added 1328189119 at 1328189119 ---------------
tried to use:
<phrasetype name="Control Panel Global" fieldname="cpglobal">
Nothing has changed...
And another question, what directory should I put a php script (my_product.php) that is invoked here:
<phrase>my_product_edit_text</phrase>
<link>my_product.php?action=edit_text</link>
That should go in the admincp directory.
tried to use:
<phrasetype name="Control Panel Global" fieldname="cpglobal">
Nothing has changed...
You beat me to it, I was just going to suggest that. To be honest I don't understand why it isn't working, but if I figure out anything I'll post it.
gushin
02-02-2012, 12:37 PM
Ok)) Thank you!
OK, I tried using the file you posted and I got this to show up
136251
But I didn't have the phrases defined. So maybe your problem is not the phrases but the cpnav file. But I don't see anything wrong with it.
gushin
02-02-2012, 01:09 PM
It's a good thing. I agree with you, most likely the problem is not in sentences. Here is the complete code cpnav file:
<?xml version="1.0" encoding="ISO-8859-1"?>
<navgroups product="wb_complaint">
<navgroup phrase="wbcomplaint_settings" hr="true" permissions="canadminsettings" displayorder="1">
<navoption displayorder="10">
<phrase>wb_complaint_edit_text</phrase>
<link>wb_complaint.php?action=edit_text</link>
</navoption>
<navoption displayorder="20">
<phrase>wb_complaint_edit_emails</phrase>
<link>wb_complaint.php?action=edit_email</link>
</navoption>
</navgroup>
</navgroups>
I wonder what if I leave the first line cpnav file is empty, the menu item is added. As soon as I'm writing a file from the first line item is not add.
Are you saying that you leave a blank line at the top, or are you removing the <?xml line? I was wondering if it could be a character encoding issue.
gushin
02-02-2012, 01:15 PM
The problem can be encoded in which you saved the file cpnav?
--------------- Added 1328192246 at 1328192246 ---------------
I leave a blank line at the top. We believe in one direction)))
--------------- Added 1328193770 at 1328193770 ---------------
I'm create cpnav file in install code and to be sure that the encoding is correct, I used the function mb_convert_encoding:
$cpnav_wbcomplaint = '<?xml version="1.0" encoding="ISO-8859-1"?>
<navgroups product="wb_complaint">
<navgroup phrase="wbcomplaint_settings" hr="true" permissions="canadminsettings" displayorder="1">
<navoption displayorder="10">
<phrase>wb_complaint_edit_text</phrase>
<link>wb_complaint.php?action=edit_text</link>
</navoption>
<navoption displayorder="20">
<phrase>wb_complaint_edit_emails</phrase>
<link>wb_complaint.php?action=edit_email</link>
</navoption>
</navgroup>
</navgroups>
';
$cpnav_wbcomplaint = mb_convert_encoding($cpnav_wbcomplaint, "ISO-8859-1");
But nothing has changed...
--------------- Added 1328257666 at 1328257666 ---------------
I tried to change the tag <phrase> to the tag <text> as advised in one of the forums.
<?xml version="1.0" encoding="ISO-8859-1"?>
<navgroups product="test_product" master="false">
<navgroup text="test_product" permissions="canadminmaintain" hr="true" displayorder="10">
<navoption displayorder="10">
<text>first_item</text>
<link>test.php?do=edit</link>
</navoption>
<navoption displayorder="20">
<text>second_item</text>
<link>admin_rbs.php?do=edit</link>
</navoption>
<navoption displayorder="30">
<text>third_item</text>
<link>admin_rbs.php?do=edit</link>
</navoption>
</navgroup>
</navgroups>
But still no change... :(
--------------- Added 1328278249 at 1328278249 ---------------
Maybe you can tell which file script which generates the menu items, then I would be able to analyze the whole process and it is possible to solve the problem
Maybe you can tell which file script which generates the menu items, then I would be able to analyze the whole process and it is possible to solve the problem
It's in admincp/index.php around line 359 (in version 4.1.10), there's this code:
foreach ($navfiles AS $nav_file => $file)
{
$xmlobj = new vB_XML_Parser(false, DIR . "/includes/xml/$file");
$xml =& $xmlobj->parse();
I don't know very much about character encoding problems, but maybe the problem is that the xml file has ISO-8859-1 for the encoding and your editor is doing something different?
vBulletin® v3.8.12 by vBS, Copyright ©2000-2025, vBulletin Solutions Inc.