The vBulletin product manager includes a facility to do just this. Almost all the items you have added to your product can be exported in a single XML file. The following items are included in the exported product XML file:
- Product version, title, description etc.
- Plugins
- Templates
- Phrases
- Options



<?xml version="1.0" encoding="ISO-8859-1"?>
<product productid="myproduct" active="1">
<title>My Product</title>
<description>A test product</description>
<version>1.0</version>
<codes>
<code version="1.0">
<installcode><![CDATA[$db->query("
CREATE TABLE " . TABLE_PREFIX . "profilelog (
userid INT UNSIGNED NOT NULL,
dateline INT NOT NULL,
INDEX (userid)
)
");]]></installcode>
<uninstallcode><![CDATA[$db->query("
DROP TABLE " . TABLE_PREFIX . "profilelog
");]]></uninstallcode>
</code>
<code version="2.0">
<installcode><![CDATA[$db->query("
ALTER TABLE " . TABLE_PREFIX . "profilelog
CHANGE dateline dateline INT UNSIGNED NOT NULL
");]]></installcode>
<uninstallcode>//moo</uninstallcode>
</code>
</codes>
<templates>
<template name="profile_log"
templatetype="template" date="1127469263" username="Administrator"
version="3.5.0"><![CDATA[<div>
<div style="margin-bottom:10px">Most recent profile updates:</div>
$profile_logbits
</div>]]></template>
<template name="profile_logbit"
templatetype="template" date="1127472467" username="Administrator"
version="3.5.0"><![CDATA[<div>
$log[username] @ $log[date] <span class="time">$log[date]</span>
</div>]]></template>
</templates>
<plugins>
<plugin active="1">
<title>Profile Update Logger</title>
<hookname>profile_updateprofile</hookname>
<phpcode><![CDATA[$tmp_uid =& $vbulletin->userinfo['userid'];
$db->query_write("
INSERT INTO " . TABLE_PREFIX . "profilelog
(userid, dateline)
VALUES
($tmp_uid, " . TIMENOW . ")
");]]></phpcode>
</plugin>
</plugins>
<phrases>
<phrasetype name="Permissions" fieldname="cppermission">
<phrase name="can_bar"><![CDATA[Can Bar]]></phrase>
<phrase name="can_foo"><![CDATA[Can Foo]]></phrase>
<phrase name="myproduct_permissions"><![CDATA[My Product Permissions]]></phrase>
</phrasetype>
<phrasetype name="Control Panel Home Pages" fieldname="cphome">
<phrase name="add_new_item"><![CDATA[Add New Item]]></phrase>
<phrase name="my_product"><![CDATA[My Product]]></phrase>
<phrase name="my_product_manager"><![CDATA[My Product Manager]]></phrase>
</phrasetype>
</phrases>
<options>
</options>
</product>
