PDA

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? :)

kh99
02-02-2012, 11:44 AM
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...

kh99
02-02-2012, 12:30 PM
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!

kh99
02-02-2012, 12:38 PM
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.

kh99
02-02-2012, 01:15 PM
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

kh99
02-03-2012, 03:20 PM
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?