Page MenuHomePhorge

No OneTemporary

diff --git a/plugins/acl/composer.json b/plugins/acl/composer.json
index 20859eabf..a08d211dd 100644
--- a/plugins/acl/composer.json
+++ b/plugins/acl/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/acl",
"type": "roundcube-plugin",
"description": "IMAP Folders Access Control Lists Management (RFC4314, RFC2086).",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.5",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/acl/package.xml b/plugins/acl/package.xml
deleted file mode 100644
index feec9cebe..000000000
--- a/plugins/acl/package.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>acl</name>
- <channel>pear.roundcube.net</channel>
- <summary>Folders Access Control Lists</summary>
- <description>IMAP Folders Access Control Lists Management (RFC4314, RFC2086).</description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2014-08-11</date>
- <version>
- <release>1.5</release>
- <api>1.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="acl.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="acl.js" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="config.inc.php.dist" role="data"></file>
- <file name="localization/de_DE.inc" role="data"></file>
- <file name="localization/en_US.inc" role="data"></file>
- <file name="localization/pl_PL.inc" role="data"></file>
- <file name="skins/classic/acl.css" role="data"></file>
- <file name="skins/classic/images/enabled.png" role="data"></file>
- <file name="skins/classic/images/partial.png" role="data"></file>
- <file name="skins/classic/templates/table.html" role="data"></file>
- <file name="skins/larry/acl.css" role="data"></file>
- <file name="skins/larry/images/enabled.png" role="data"></file>
- <file name="skins/larry/images/partial.png" role="data"></file>
- <file name="skins/larry/templates/table.html" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/archive/composer.json b/plugins/archive/composer.json
index 1e3331b2c..0fa3802ea 100644
--- a/plugins/archive/composer.json
+++ b/plugins/archive/composer.json
@@ -1,29 +1,29 @@
{
"name": "roundcube/archive",
"type": "roundcube-plugin",
"description": "This adds a button to move the selected messages to an archive folder. The folder (and the optional structure of subfolders) can be selected in the settings panel.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "2.3",
"authors": [
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
},
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Developer"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/archive/package.xml b/plugins/archive/package.xml
deleted file mode 100644
index 4f5a87c7b..000000000
--- a/plugins/archive/package.xml
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>archive</name>
- <channel>pear.roundcube.net</channel>
- <summary>Archive feature for Roundcube</summary>
- <description>This adds a button to move the selected messages to an archive folder. The folder (and the optional structure of subfolders) can be selected in the settings panel.</description>
- <lead>
- <name>Thomas Bruederli</name>
- <user>thomasb</user>
- <email>roundcube@gmail.com</email>
- <active>yes</active>
- </lead>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2014-04-07</date>
- <version>
- <release>2.3</release>
- <api>2.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="archive.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="archive.js" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="localization/ar_SA.inc" role="data"></file>
- <file name="localization/az_AZ.inc" role="data"></file>
- <file name="localization/be_BE.inc" role="data"></file>
- <file name="localization/bg_BG.inc" role="data"></file>
- <file name="localization/bs_BA.inc" role="data"></file>
- <file name="localization/ca_ES.inc" role="data"></file>
- <file name="localization/cs_CZ.inc" role="data"></file>
- <file name="localization/cy_GB.inc" role="data"></file>
- <file name="localization/da_DK.inc" role="data"></file>
- <file name="localization/de_CH.inc" role="data"></file>
- <file name="localization/de_DE.inc" role="data"></file>
- <file name="localization/el_GR.inc" role="data"></file>
- <file name="localization/eb_GB.inc" role="data"></file>
- <file name="localization/en_US.inc" role="data"></file>
- <file name="localization/es_AR.inc" role="data"></file>
- <file name="localization/es_ES.inc" role="data"></file>
- <file name="localization/et_EE.inc" role="data"></file>
- <file name="localization/fa_IR.inc" role="data"></file>
- <file name="localization/fi_FI.inc" role="data"></file>
- <file name="localization/fr_FR.inc" role="data"></file>
- <file name="localization/gl_ES.inc" role="data"></file>
- <file name="localization/he_IL.inc" role="data"></file>
- <file name="localization/hr_HR.inc" role="data"></file>
- <file name="localization/hu_HU.inc" role="data"></file>
- <file name="localization/hy_AM.inc" role="data"></file>
- <file name="localization/id_ID.inc" role="data"></file>
- <file name="localization/it_IT.inc" role="data"></file>
- <file name="localization/ja_JP.inc" role="data"></file>
- <file name="localization/km_KH.inc" role="data"></file>
- <file name="localization/ko_KR.inc" role="data"></file>
- <file name="localization/lt_LT.inc" role="data"></file>
- <file name="localization/lv_LV.inc" role="data"></file>
- <file name="localization/ml_IN.inc" role="data"></file>
- <file name="localization/nb_NO.inc" role="data"></file>
- <file name="localization/nl_NL.inc" role="data"></file>
- <file name="localization/nn_NO.inc" role="data"></file>
- <file name="localization/pl_PL.inc" role="data"></file>
- <file name="localization/pt_BR.inc" role="data"></file>
- <file name="localization/pt_PT.inc" role="data"></file>
- <file name="localization/ru_RU.inc" role="data"></file>
- <file name="localization/si_LK.inc" role="data"></file>
- <file name="localization/sk_SK.inc" role="data"></file>
- <file name="localization/sl_SI.inc" role="data"></file>
- <file name="localization/sr_CS.inc" role="data"></file>
- <file name="localization/sv_SE.inc" role="data"></file>
- <file name="localization/tr_TR.inc" role="data"></file>
- <file name="localization/uk_UA.inc" role="data"></file>
- <file name="localization/vi_VN.inc" role="data"></file>
- <file name="localization/zh_CN.inc" role="data"></file>
- <file name="localization/zh_TW.inc" role="data"></file>
- <file name="skins/classic/archive_act.png" role="data"></file>
- <file name="skins/classic/archive_pas.png" role="data"></file>
- <file name="skins/classic/foldericon.png" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/attachment_reminder/composer.json b/plugins/attachment_reminder/composer.json
index a9601458d..7690a31a2 100644
--- a/plugins/attachment_reminder/composer.json
+++ b/plugins/attachment_reminder/composer.json
@@ -1,29 +1,29 @@
{
"name": "roundcube/Attachment Reminder",
"type": "roundcube-plugin",
"description": "This Roundcube plugin reminds the user to attach a file if the composed message text indicates that there should be any.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.1",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
},
{
"name": "Thomas Yu - Sian, Liu",
"email": "",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/attachment_reminder/package.xml b/plugins/attachment_reminder/package.xml
deleted file mode 100644
index 78768d534..000000000
--- a/plugins/attachment_reminder/package.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>Attachment Reminder</name>
- <summary>Roundcube plugin that prompts you if it looks like you wanted to attach a file but you didn't.</summary>
- <description>
- This Roundcube plugin reminds the user to attach a file if the composed message text indicates that there should be any.
- </description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <lead>
- <name>Thomas Yu - Sian, Liu</name>
- <active>yes</active>
- </lead>
- <date>2013-05-20</date>
- <version>
- <release>1.1</release>
- <api>1.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="attachment_reminder.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="attachment_reminder.js" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
-
- <file name="localization/de_CH.inc" role="data"></file>
- <file name="localization/de_DE.inc" role="data"></file>
- <file name="localization/en_US.inc" role="data"></file>
- <file name="localization/es_ES.inc" role="data"></file>
- <file name="localization/fr_FR.inc" role="data"></file>
- <file name="localization/it_IT.inc" role="data"></file>
- <file name="localization/nl_NL.inc" role="data"></file>
- <file name="localization/pl_PL.inc" role="data"></file>
- <file name="localization/zh_CN.inc" role="data"></file>
- <file name="localization/zh_TW.inc" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/database_attachments/composer.json b/plugins/database_attachments/composer.json
index 86eced62c..d0df987eb 100644
--- a/plugins/database_attachments/composer.json
+++ b/plugins/database_attachments/composer.json
@@ -1,29 +1,30 @@
{
"name": "roundcube/database_attachments",
"type": "roundcube-plugin",
"description": "This plugin which provides database backed storage for temporary attachment file handling. The primary advantage of this plugin is its compatibility with round-robin dns multi-server Roundcube installations.",
- "license": "GNU GPLv2",
+ "license": "GPLv2",
"version": "1.1",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
},
{
"name": "Ziba Scott",
"email": "ziba@umich.edu",
"role": "Developer"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
- "roundcube/plugin-installer": ">=0.1.3"
+ "roundcube/plugin-installer": ">=0.1.3",
+ "roundcube/filesystem_attachments": ">=1.0.0"
}
}
diff --git a/plugins/database_attachments/package.xml b/plugins/database_attachments/package.xml
deleted file mode 100644
index 44adc219e..000000000
--- a/plugins/database_attachments/package.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>database_attachments</name>
- <channel>pear.roundcube.net</channel>
- <summary>Database storage for uploaded attachments</summary>
- <description>
- This plugin which provides database backed storage for temporary
- attachment file handling. The primary advantage of this plugin
- is its compatibility with round-robin dns multi-server Roundcube
- installations.
- </description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <developer>
- <name>Ziba Scott</name>
- <user>ziba</user>
- <email>ziba@umich.edu</email>
- <active>yes</active>
- </developer>
- <date>2013-06-13</date>
- <version>
- <release>1.1</release>
- <api>1.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="database_attachments.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- <package>
- <name>filesystem_attachments</name>
- <channel>pear.roundcube.net</channel>
- </package>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/debug_logger/composer.json b/plugins/debug_logger/composer.json
index 8ae445247..af7e1c1f8 100644
--- a/plugins/debug_logger/composer.json
+++ b/plugins/debug_logger/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/debug_logger",
"type": "roundcube-plugin",
"description": "Enhanced logging for debugging purposes. It is not recommened to be enabled on production systems without testing because of the somewhat increased memory, cpu and disk i/o overhead.",
- "license": "GNU GPLv2",
+ "license": "GPLv2",
"version": "1.0",
"authors": [
{
"name": "Ziba Scott",
"email": "ziba@umich.edu",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/debug_logger/package.xml b/plugins/debug_logger/package.xml
deleted file mode 100644
index f416238ef..000000000
--- a/plugins/debug_logger/package.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>debug_logger</name>
- <channel>pear.roundcube.net</channel>
- <summary>Additional debugging logs</summary>
- <description>
- Enhanced logging for debugging purposes. It is not recommened
- to be enabled on production systems without testing because of
- the somewhat increased memory, cpu and disk i/o overhead.
- </description>
- <lead>
- <name>Ziba Scott</name>
- <user>ziba</user>
- <email>ziba@umich.edu</email>
- <active>yes</active>
- </lead>
- <date>2011-11-21</date>
- <version>
- <release>1.0</release>
- <api>1.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="debug_logger.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="runlog/runlog.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/emoticons/composer.json b/plugins/emoticons/composer.json
index c2ada7846..8e7b90ae9 100644
--- a/plugins/emoticons/composer.json
+++ b/plugins/emoticons/composer.json
@@ -1,29 +1,29 @@
{
"name": "roundcube/emoticons",
"type": "roundcube-plugin",
"description": "Sample plugin to replace emoticons in plain text message body with real icons.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.3",
"authors": [
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
},
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Developer"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/emoticons/package.xml b/plugins/emoticons/package.xml
deleted file mode 100644
index b4218103c..000000000
--- a/plugins/emoticons/package.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>emoticons</name>
- <channel>pear.roundcube.net</channel>
- <summary>Display emoticons in text messages</summary>
- <description>Sample plugin to replace emoticons in plain text message body with real icons.</description>
- <lead>
- <name>Thomas Bruederli</name>
- <user>thomasb</user>
- <email>roundcube@gmail.com</email>
- <active>yes</active>
- </lead>
- <developer>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </developer>
- <date>2011-11-21</date>
- <version>
- <release>1.3</release>
- <api>1.3</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="emoticons.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/filesystem_attachments/composer.json b/plugins/filesystem_attachments/composer.json
index 292360144..f13901275 100644
--- a/plugins/filesystem_attachments/composer.json
+++ b/plugins/filesystem_attachments/composer.json
@@ -1,29 +1,29 @@
{
"name": "roundcube/filesystem_attachments",
"type": "roundcube-plugin",
"description": "This is a core plugin which provides basic, filesystem based attachment temporary file handling. This includes storing attachments of messages currently being composed, writing attachments to disk when drafts with attachments are re-opened and writing attachments to disk for inline display in current html compositions.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.0",
"authors": [
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
},
{
"name": "Ziba Scott",
"email": "ziba@umich.edu",
"role": "Developer"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/filesystem_attachments/package.xml b/plugins/filesystem_attachments/package.xml
deleted file mode 100644
index 49ec51934..000000000
--- a/plugins/filesystem_attachments/package.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>filesystem_attachments</name>
- <channel>pear.roundcube.net</channel>
- <summary>Default database storage for uploaded attachments</summary>
- <description>
- This is a core plugin which provides basic, filesystem based
- attachment temporary file handling. This includes storing
- attachments of messages currently being composed, writing attachments
- to disk when drafts with attachments are re-opened and writing
- attachments to disk for inline display in current html compositions.
- </description>
- <lead>
- <name>Thomas Bruederli</name>
- <user>thomasb</user>
- <email>roundcube@gmail.com</email>
- <active>yes</active>
- </lead>
- <developer>
- <name>Ziba Scott</name>
- <user>ziba</user>
- <email>ziba@umich.edu</email>
- <active>yes</active>
- </developer>
- <date>2011-11-21</date>
- <version>
- <release>1.0</release>
- <api>1.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="filesystem_attachments.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/help/composer.json b/plugins/help/composer.json
index ee99de56d..53d413648 100644
--- a/plugins/help/composer.json
+++ b/plugins/help/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/help",
"type": "roundcube-plugin",
"description": "Plugin adds a new item (Help) in taskbar.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.4",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/help/package.xml b/plugins/help/package.xml
deleted file mode 100644
index d39143ba1..000000000
--- a/plugins/help/package.xml
+++ /dev/null
@@ -1,92 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>help</name>
- <channel>pear.roundcube.net</channel>
- <summary>Online Help for Roundcube</summary>
- <description>Plugin adds a new item (Help) in taskbar.</description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2013-07-03</date>
- <version>
- <release>1.4</release>
- <api>1.4</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="help.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="config.inc.php.dist" role="data"></file>
- <file name="content/license.html" role="data"></file>
- <file name="localization/bs_BA.inc" role="data"></file>
- <file name="localization/ca_ES.inc" role="data"></file>
- <file name="localization/cs_CZ.inc" role="data"></file>
- <file name="localization/cy_GB.inc" role="data"></file>
- <file name="localization/da_DK.inc" role="data"></file>
- <file name="localization/de_CH.inc" role="data"></file>
- <file name="localization/de_DE.inc" role="data"></file>
- <file name="localization/en_GB.inc" role="data"></file>
- <file name="localization/en_US.inc" role="data"></file>
- <file name="localization/eo.inc" role="data"></file>
- <file name="localization/es_ES.inc" role="data"></file>
- <file name="localization/et_EE.inc" role="data"></file>
- <file name="localization/fa_IR.inc" role="data"></file>
- <file name="localization/fi_FI.inc" role="data"></file>
- <file name="localization/fr_FR.inc" role="data"></file>
- <file name="localization/gl_ES.inc" role="data"></file>
- <file name="localization/he_IL.inc" role="data"></file>
- <file name="localization/hu_HU.inc" role="data"></file>
- <file name="localization/hy_AM.inc" role="data"></file>
- <file name="localization/it_IT.inc" role="data"></file>
- <file name="localization/ja_JP.inc" role="data"></file>
- <file name="localization/ko_KR.inc" role="data"></file>
- <file name="localization/lt_LT.inc" role="data"></file>
- <file name="localization/nb_NB.inc" role="data"></file>
- <file name="localization/nl_NL.inc" role="data"></file>
- <file name="localization/pl_PL.inc" role="data"></file>
- <file name="localization/pt_BR.inc" role="data"></file>
- <file name="localization/pt_PT.inc" role="data"></file>
- <file name="localization/ru_RU.inc" role="data"></file>
- <file name="localization/sk_SK.inc" role="data"></file>
- <file name="localization/sl_SI.inc" role="data"></file>
- <file name="localization/sr_CS.inc" role="data"></file>
- <file name="localization/sv_SE.inc" role="data"></file>
- <file name="localization/tr_TR.inc" role="data"></file>
- <file name="localization/vi_VN.inc" role="data"></file>
- <file name="localization/zh_CN.inc" role="data"></file>
- <file name="localization/zh_TW.inc" role="data"></file>
- <file name="skins/classic/help.css" role="data"></file>
- <file name="skins/classic/help.gif" role="data"></file>
- <file name="skins/classic/templates/help.html" role="data"></file>
- <file name="skins/larry/help.css" role="data"></file>
- <file name="skins/larry/help.png" role="data"></file>
- <file name="skins/larry/templates/help.html" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/hide_blockquote/composer.json b/plugins/hide_blockquote/composer.json
index 986477a83..5af75fe7e 100644
--- a/plugins/hide_blockquote/composer.json
+++ b/plugins/hide_blockquote/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/hide_blockquote",
"type": "roundcube-plugin",
"description": "This allows to hide long blocks of cited text in messages.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.0",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/hide_blockquote/package.xml b/plugins/hide_blockquote/package.xml
deleted file mode 100644
index 0d895c1d9..000000000
--- a/plugins/hide_blockquote/package.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>hide_blockquote</name>
- <channel>pear.roundcube.net</channel>
- <summary>Citation blocks hiding for Roundcube</summary>
- <description>This allows to hide long blocks of cited text in messages.</description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2012-05-23</date>
- <version>
- <release>1.0</release>
- <api>1.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="hide_blockquote.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="hide_blockquote.js" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="localization/en_US.inc" role="data"></file>
- <file name="localization/pl_PL.inc" role="data"></file>
- <file name="skins/classic/style.css" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/identity_select/composer.json b/plugins/identity_select/composer.json
index 61a4b0d00..c31239360 100644
--- a/plugins/identity_select/composer.json
+++ b/plugins/identity_select/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/identity_select",
"type": "roundcube-plugin",
"description": "On reply to a message user identity selection is based on\n\t\tcontent of standard headers like From, To, Cc and Return-Path.\n\t\tHere you can add header(s) set by your SMTP server (e.g.\n\t\tDelivered-To, Envelope-To, X-Envelope-To, X-RCPT-TO) to make\n\t\tidentity selection more accurate.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.0",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/identity_select/package.xml b/plugins/identity_select/package.xml
deleted file mode 100644
index 425c28830..000000000
--- a/plugins/identity_select/package.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>identity_select</name>
- <channel>pear.roundcube.net</channel>
- <summary>Extended identity selection</summary>
- <description>
- On reply to a message user identity selection is based on
- content of standard headers like From, To, Cc and Return-Path.
- Here you can add header(s) set by your SMTP server (e.g.
- Delivered-To, Envelope-To, X-Envelope-To, X-RCPT-TO) to make
- identity selection more accurate.
- </description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2013-08-04</date>
- <version>
- <release>1.0</release>
- <api>1.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="identity_select.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/jqueryui/composer.json b/plugins/jqueryui/composer.json
index d52e57c67..13ed9a16f 100644
--- a/plugins/jqueryui/composer.json
+++ b/plugins/jqueryui/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/jqueryui",
"type": "roundcube-plugin",
"description": "Plugin adds the complete jQuery-UI library including the smoothness theme to Roundcube. This allows other plugins to use jQuery-UI without having to load their own version. The benefit of using one central jQuery-UI is that we wont run into problems of conflicting jQuery libraries being loaded. All plugins that want to use jQuery-UI should use this plugin as a requirement.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.10.4",
"authors": [
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/legacy_browser/package.xml b/plugins/legacy_browser/package.xml
deleted file mode 100644
index 06e5fa2ba..000000000
--- a/plugins/legacy_browser/package.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>legacy_browser</name>
- <channel>pear.roundcube.net</channel>
- <summary>Legacy browser (IE 7/8, Firefox &lt; 4) support</summary>
- <description>This adds support for legacy browsers (IE 7/8, Firefox &lt; 4).</description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2014-06-19</date>
- <version>
- <release>1.1</release>
- <api>1.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="legacy_browser.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="js/jquery.min.js" role="data"></file>
- <file name="skins/classic/iehacks.css" role="data"></file>
- <file name="skins/classic/images/abook_toolbar.gif" role="data"></file>
- <file name="skins/classic/images/mail_toolbar.gif" role="data"></file>
- <file name="skins/larry/ie7hacks.css" role="data"></file>
- <file name="skins/larry/iehacks.css" role="data"></file>
- <file name="skins/larry/images/buttons.gif" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/markasjunk/composer.json b/plugins/markasjunk/composer.json
index edf1ad699..8ec5f3de8 100644
--- a/plugins/markasjunk/composer.json
+++ b/plugins/markasjunk/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/markasjunk",
"type": "roundcube-plugin",
"description": "Adds a new button to the mailbox toolbar to mark the selected messages as Junk and move them to the configured Junk folder.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.2",
"authors": [
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/markasjunk/package.xml b/plugins/markasjunk/package.xml
deleted file mode 100644
index 95597481a..000000000
--- a/plugins/markasjunk/package.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>markasjunk</name>
- <channel>pear.roundcube.net</channel>
- <summary>Mark messages as Junk</summary>
- <description>Adds a new button to the mailbox toolbar to mark the selected messages as Junk and move them to the configured Junk folder.</description>
- <lead>
- <name>Thomas Bruederli</name>
- <user>thomasb</user>
- <email>roundcube@gmail.com</email>
- <active>yes</active>
- </lead>
- <date>2013-08-29</date>
- <version>
- <release>1.2</release>
- <api>1.2</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="markasjunk.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="markasjunk.js" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="localization/cs_CZ.inc" role="data"></file>
- <file name="localization/da_DK.inc" role="data"></file>
- <file name="localization/de_DE.inc" role="data"></file>
- <file name="localization/en_US.inc" role="data"></file>
- <file name="localization/es_AR.inc" role="data"></file>
- <file name="localization/es_ES.inc" role="data"></file>
- <file name="localization/et_EE.inc" role="data"></file>
- <file name="localization/gl_ES.inc" role="data"></file>
- <file name="localization/it_IT.inc" role="data"></file>
- <file name="localization/ja_JP.inc" role="data"></file>
- <file name="localization/pl_PL.inc" role="data"></file>
- <file name="localization/ru_RU.inc" role="data"></file>
- <file name="localization/sk_SK.inc" role="data"></file>
- <file name="localization/sv_SE.inc" role="data"></file>
- <file name="localization/zh_TW.inc" role="data"></file>
- <file name="skins/classic/junk_act.png" role="data"></file>
- <file name="skins/classic/junk_pas.png" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/new_user_dialog/composer.json b/plugins/new_user_dialog/composer.json
index cf3a37291..78ea0645c 100644
--- a/plugins/new_user_dialog/composer.json
+++ b/plugins/new_user_dialog/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/new_user_dialog",
"type": "roundcube-plugin",
"description": "When a new user is created, this plugin checks the default identity and sets a session flag in case it is incomplete. An overlay box will appear on the screen until the user has reviewed/completed his identity.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "2.1",
"authors": [
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/new_user_dialog/package.xml b/plugins/new_user_dialog/package.xml
deleted file mode 100644
index 90ca4bed0..000000000
--- a/plugins/new_user_dialog/package.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>new_user_dialog</name>
- <channel>pear.roundcube.net</channel>
- <summary>Present identities settings dialog to new users</summary>
- <description>When a new user is created, this plugin checks the default identity and sets a session flag in case it is incomplete. An overlay box will appear on the screen until the user has reviewed/completed his identity.</description>
- <lead>
- <name>Thomas Bruederli</name>
- <user>thomasb</user>
- <email>roundcube@gmail.com</email>
- <active>yes</active>
- </lead>
- <date>2014-04-28</date>
- <version>
- <release>2.1</release>
- <api>2.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="new_user_dialog.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="newuserdialog.css" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <dir name="localization">
- <file name="en_US.inc" role="data" />
- <file name="cs_CZ.inc" role="data" />
- <file name="de_CH.inc" role="data" />
- <file name="de_DE.inc" role="data" />
- <file name="es_ES.inc" role="data" />
- <file name="et_EE.inc" role="data" />
- <file name="gl_ES.inc" role="data" />
- <file name="it_IT.inc" role="data" />
- <file name="ja_JP.inc" role="data" />
- <file name="nl_NL.inc" role="data" />
- <file name="pl_PL.inc" role="data" />
- <file name="pt_BR.inc" role="data" />
- <file name="pt_PT.inc" role="data" />
- <file name="ru_RU.inc" role="data" />
- <file name="sl_SI.inc" role="data" />
- <file name="sv_DE.inc" role="data" />
- <file name="zh_TW.inc" role="data" />
- </dir>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/new_user_identity/composer.json b/plugins/new_user_identity/composer.json
index a2e9e95dc..8378ae50c 100644
--- a/plugins/new_user_identity/composer.json
+++ b/plugins/new_user_identity/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/new_user_identity",
"type": "roundcube-plugin",
"description": "Populates a new user's default identity from LDAP on their first visit.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.1",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/new_user_identity/package.xml b/plugins/new_user_identity/package.xml
deleted file mode 100644
index 12409392b..000000000
--- a/plugins/new_user_identity/package.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>new_user_identity</name>
- <channel>pear.roundcube.net</channel>
- <summary>Populates a new user's default identity from LDAP on their first visit.</summary>
- <description>
- Populates a new user's default identity from LDAP on their first visit.
- </description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2014-10-30</date>
- <version>
- <release>1.1</release>
- <api>1.1</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="new_user_identity.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/newmail_notifier/composer.json b/plugins/newmail_notifier/composer.json
index 2ca5db709..1bca39c1f 100644
--- a/plugins/newmail_notifier/composer.json
+++ b/plugins/newmail_notifier/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/newmail_notifier",
"type": "roundcube-plugin",
"description": "Supports three methods of notification: 1. Basic - focus browser window and change favicon 2. Sound - play wav file 3. Desktop - display desktop notification (using webkitNotifications feature, supported by Chrome and Firefox with 'HTML5 Notifications' plugin).",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "0.7",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/newmail_notifier/package.xml b/plugins/newmail_notifier/package.xml
deleted file mode 100644
index 3d7277bb4..000000000
--- a/plugins/newmail_notifier/package.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>newmail_notifier</name>
- <channel>pear.roundcube.net</channel>
- <summary>Displays notification about a new mail</summary>
- <description>
- Supports three methods of notification:
- 1. Basic - focus browser window and change favicon
- 2. Sound - play wav file
- 3. Desktop - display desktop notification (using webkitNotifications feature,
- supported by Chrome and Firefox with 'HTML5 Notifications' plugin).
- </description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2013-10-04</date>
- <version>
- <release>0.7</release>
- <api>0.5</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="newmail_notifier.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="newmail_notifier.js" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="config.inc.php.dist" role="data"></file>
- <file name="favicon.ico" role="data"></file>
- <file name="mail.png" role="data"></file>
- <file name="sound.wav" role="data"></file>
- <file name="localization/de_CH.inc" role="data"></file>
- <file name="localization/de_DE.inc" role="data"></file>
- <file name="localization/en_US.inc" role="data"></file>
- <file name="localization/ja_JP.inc" role="data"></file>
- <file name="localization/lv_LV.inc" role="data"></file>
- <file name="localization/pl_PL.inc" role="data"></file>
- <file name="localization/pt_BR.inc" role="data"></file>
- <file name="localization/ru_RU.inc" role="data"></file>
- <file name="localization/sv_SE.inc" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/password/package.xml b/plugins/password/package.xml
deleted file mode 100644
index 4fa023c77..000000000
--- a/plugins/password/package.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>password</name>
- <channel>pear.roundcube.net</channel>
- <summary>Password Change for Roundcube</summary>
- <description>Plugin that adds a possibility to change user password using many
- methods (drivers) via Settings/Password tab.
- </description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2014-06-10</date>
- <version>
- <release>3.5</release>
- <api>2.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="password.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="password.js" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="README" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="localization/az_AZ.inc" role="data"></file>
- <file name="localization/bg_BG.inc" role="data"></file>
- <file name="localization/ca_ES.inc" role="data"></file>
- <file name="localization/cs_CZ.inc" role="data"></file>
- <file name="localization/da_DK.inc" role="data"></file>
- <file name="localization/de_CH.inc" role="data"></file>
- <file name="localization/de_DE.inc" role="data"></file>
- <file name="localization/en_US.inc" role="data"></file>
- <file name="localization/es_AR.inc" role="data"></file>
- <file name="localization/es_ES.inc" role="data"></file>
- <file name="localization/et_EE.inc" role="data"></file>
- <file name="localization/fi_FI.inc" role="data"></file>
- <file name="localization/fr_FR.inc" role="data"></file>
- <file name="localization/gl_ES.inc" role="data"></file>
- <file name="localization/hr_HR.inc" role="data"></file>
- <file name="localization/hu_HU.inc" role="data"></file>
- <file name="localization/it_IT.inc" role="data"></file>
- <file name="localization/ja_JA.inc" role="data"></file>
- <file name="localization/lt_LT.inc" role="data"></file>
- <file name="localization/lv_LV.inc" role="data"></file>
- <file name="localization/nl_NL.inc" role="data"></file>
- <file name="localization/pl_PL.inc" role="data"></file>
- <file name="localization/pt_BR.inc" role="data"></file>
- <file name="localization/pt_PT.inc" role="data"></file>
- <file name="localization/ru_RU.inc" role="data"></file>
- <file name="localization/sk_SK.inc" role="data"></file>
- <file name="localization/sl_SI.inc" role="data"></file>
- <file name="localization/sv_SE.inc" role="data"></file>
- <file name="localization/tr_TR.inc" role="data"></file>
- <file name="localization/zh_TW.inc" role="data"></file>
-
- <file name="drivers/chpasswd.php" role="php"></file>
- <file name="drivers/dbmail.php" role="php"></file>
- <file name="drivers/directadmin.php" role="php"></file>
- <file name="drivers/domainfactory.php" role="php"></file>
- <file name="drivers/expect.php" role="php"></file>
- <file name="drivers/ldap.php" role="php"></file>
- <file name="drivers/ldap_simple.php" role="php"></file>
- <file name="drivers/poppassd.php" role="php"></file>
- <file name="drivers/sql.php" role="php"></file>
- <file name="drivers/vpopmaild.php" role="php"></file>
- <file name="drivers/cpanel.php" role="php"></file>
- <file name="drivers/hmail.php" role="php"></file>
- <file name="drivers/pam.php" role="php"></file>
- <file name="drivers/pw_usermod.php" role="php"></file>
- <file name="drivers/sasl.php" role="php"></file>
- <file name="drivers/smb.php" role="php"></file>
- <file name="drivers/virtualmin.php" role="php"></file>
- <file name="drivers/ximss.php" role="php"></file>
- <file name="drivers/xmail.php" role="php"></file>
-
- <file name="helpers/chgdbmailusers.c" role="data"></file>
- <file name="helpers/chgsaslpasswd.c" role="data"></file>
- <file name="helpers/chgvirtualminpasswd.c" role="data"></file>
- <file name="helpers/chpass-wrapper.py" role="data"></file>
- <file name="helpers/passwd-expect" role="data"></file>
-
- <file name="config.inc.php.disc" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/redundant_attachments/composer.json b/plugins/redundant_attachments/composer.json
index 3c98b6885..56f3ab832 100644
--- a/plugins/redundant_attachments/composer.json
+++ b/plugins/redundant_attachments/composer.json
@@ -1,29 +1,30 @@
{
"name": "roundcube/redundant_attachments",
"type": "roundcube-plugin",
"description": "This plugin provides a redundant storage for temporary uploaded attachment files. They are stored in both the database backend as well as on the local file system. It provides also memcache store as a fallback.",
- "license": "GNU GPLv2",
+ "license": "GPLv2",
"version": "1.0",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
},
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
- "roundcube/plugin-installer": ">=0.1.3"
+ "roundcube/plugin-installer": ">=0.1.3",
+ "roundcube/filesystem_attachments": ">=1.0.0"
}
}
diff --git a/plugins/redundant_attachments/package.xml b/plugins/redundant_attachments/package.xml
deleted file mode 100644
index 939cf12bd..000000000
--- a/plugins/redundant_attachments/package.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>redundant_attachments</name>
- <channel>pear.roundcube.net</channel>
- <summary>Redundant storage for uploaded attachments</summary>
- <description>
- This plugin provides a redundant storage for temporary uploaded
- attachment files. They are stored in both the database backend
- as well as on the local file system.
- It provides also memcache store as a fallback.
- </description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <lead>
- <name>Thomas Bruederli</name>
- <user>thomasb</user>
- <email>roundcube@gmail.com</email>
- <active>yes</active>
- </lead>
- <date>2011-11-21</date>
- <version>
- <release>1.0</release>
- <api>1.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="redundant_attachments.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="config.inc.php.dist" role="data"/>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- <package>
- <name>filesystem_attachments</name>
- <channel>pear.roundcube.net</channel>
- </package>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/show_additional_headers/composer.json b/plugins/show_additional_headers/composer.json
index 53cd5a885..d1007547f 100644
--- a/plugins/show_additional_headers/composer.json
+++ b/plugins/show_additional_headers/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/show_additional_headers",
"type": "roundcube-plugin",
"description": "Proof-of-concept plugin which will fetch additional headers and display them in the message view.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "2.0",
"authors": [
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/show_additional_headers/package.xml b/plugins/show_additional_headers/package.xml
deleted file mode 100644
index 9ca60baa9..000000000
--- a/plugins/show_additional_headers/package.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>show_additional_headers</name>
- <channel>pear.roundcube.net</channel>
- <summary>Displays additional message headers</summary>
- <description>
- Proof-of-concept plugin which will fetch additional headers and display them in the message view.
- </description>
- <lead>
- <name>Thomas Bruederli</name>
- <user>thomasb</user>
- <email>roundcube@gmail.com</email>
- <active>yes</active>
- </lead>
- <date>2012-04-23</date>
- <version>
- <release>2.0</release>
- <api>2.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="show_additional_headers.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/subscriptions_option/composer.json b/plugins/subscriptions_option/composer.json
index a3ba7b684..57b95d2c8 100644
--- a/plugins/subscriptions_option/composer.json
+++ b/plugins/subscriptions_option/composer.json
@@ -1,29 +1,29 @@
{
"name": "roundcube/subscriptions_option",
"type": "roundcube-plugin",
"description": "A plugin which can enable or disable the use of imap subscriptions. It includes a toggle on the settings page under \"Server Settings\". The preference can also be locked.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.3",
"authors": [
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
},
{
"name": "Ziba Scott",
"email": "ziba@umich.edu",
"role": "Developer"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/subscriptions_option/package.xml b/plugins/subscriptions_option/package.xml
deleted file mode 100644
index 04f2c1b3c..000000000
--- a/plugins/subscriptions_option/package.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>subscriptions_option</name>
- <channel>pear.roundcube.net</channel>
- <summary>Option to disable IMAP subscriptions</summary>
- <description>
- A plugin which can enable or disable the use of imap subscriptions.
- It includes a toggle on the settings page under "Server Settings".
- The preference can also be locked.
- </description>
- <lead>
- <name>Thomas Bruederli</name>
- <user>thomasb</user>
- <email>roundcube@gmail.com</email>
- <active>yes</active>
- </lead>
- <developer>
- <name>Ziba Scott</name>
- <user>ziba</user>
- <email>ziba@umich.edu</email>
- <active>yes</active>
- </developer>
- <date>2012-05-21</date>
- <version>
- <release>1.3</release>
- <api>1.1</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="subscriptions_option.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="localization/cs_CZ.inc" role="data"></file>
- <file name="localization/de_CH.inc" role="data"></file>
- <file name="localization/de_DE.inc" role="data"></file>
- <file name="localization/en_US.inc" role="data"></file>
- <file name="localization/es_ES.inc" role="data"></file>
- <file name="localization/et_EE.inc" role="data"></file>
- <file name="localization/gl_ES.inc" role="data"></file>
- <file name="localization/ja_JP.inc" role="data"></file>
- <file name="localization/pl_PL.inc" role="data"></file>
- <file name="localization/ru_RU.inc" role="data"></file>
- <file name="localization/sv_SE.inc" role="data"></file>
- <file name="localization/zh_TW.inc" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/userinfo/composer.json b/plugins/userinfo/composer.json
index 0ae6f6db8..af5f6d7fa 100644
--- a/plugins/userinfo/composer.json
+++ b/plugins/userinfo/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/userinfo",
"type": "roundcube-plugin",
"description": "Sample plugin that adds a new tab to the settings section to display some information about the current user.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.0",
"authors": [
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/userinfo/package.xml b/plugins/userinfo/package.xml
deleted file mode 100644
index dd25d443b..000000000
--- a/plugins/userinfo/package.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>userinfo</name>
- <channel>pear.roundcube.net</channel>
- <summary>Information about logged in user</summary>
- <description>
- Sample plugin that adds a new tab to the settings section
- to display some information about the current user.
- </description>
- <lead>
- <name>Thomas Bruederli</name>
- <user>thomasb</user>
- <email>roundcube@gmail.com</email>
- <active>yes</active>
- </lead>
- <date>2011-11-21</date>
- <version>
- <release>1.0</release>
- <api>1.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="userinfo.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="userinfo.js" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="localization/cs_CZ.inc" role="data"></file>
- <file name="localization/da_DK.inc" role="data"></file>
- <file name="localization/de_CH.inc" role="data"></file>
- <file name="localization/en_US.inc" role="data"></file>
- <file name="localization/es_ES.inc" role="data"></file>
- <file name="localization/et_EE.inc" role="data"></file>
- <file name="localization/fr_FR.inc" role="data"></file>
- <file name="localization/gl_ES.inc" role="data"></file>
- <file name="localization/ja_JP.inc" role="data"></file>
- <file name="localization/pl_PL.inc" role="data"></file>
- <file name="localization/pt_BR.inc" role="data"></file>
- <file name="localization/pt_PT.inc" role="data"></file>
- <file name="localization/ro_RO.inc" role="data"></file>
- <file name="localization/ru_RU.inc" role="data"></file>
- <file name="localization/sv_SE.inc" role="data"></file>
- <file name="localization/zh_TW.inc" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/vcard_attachments/composer.json b/plugins/vcard_attachments/composer.json
index 5e451adf4..07105bdf6 100644
--- a/plugins/vcard_attachments/composer.json
+++ b/plugins/vcard_attachments/composer.json
@@ -1,29 +1,29 @@
{
"name": "roundcube/vcard_attachments",
"type": "roundcube-plugin",
"description": "This plugin detects vCard attachments/bodies and shows a button(s) to add them to address book",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "3.2",
"authors": [
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
},
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/vcard_attachments/package.xml b/plugins/vcard_attachments/package.xml
deleted file mode 100644
index 9fdf0acf2..000000000
--- a/plugins/vcard_attachments/package.xml
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>vcard_attachments</name>
- <channel>pear.roundcube.net</channel>
- <summary>vCard handler for Roundcube</summary>
- <description>This plugin detects vCard attachments/bodies and shows a button(s) to add them to address book</description>
- <lead>
- <name>Thomas Bruederli</name>
- <user>thomasb</user>
- <email>roundcube@gmail.com</email>
- <active>yes</active>
- </lead>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2012-11-18</date>
- <version>
- <release>3.2</release>
- <api>3.2</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>
-- Skip invalid vcards (#1488788)
- </notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="vcard_attachments.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="vcardattach.js" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="localization/be_BE.inc" role="data"></file>
- <file name="localization/bs_BA.inc" role="data"></file>
- <file name="localization/ca_ES.inc" role="data"></file>
- <file name="localization/cs_CZ.inc" role="data"></file>
- <file name="localization/cy_GB.inc" role="data"></file>
- <file name="localization/da_DK.inc" role="data"></file>
- <file name="localization/de_CH.inc" role="data"></file>
- <file name="localization/de_DE.inc" role="data"></file>
- <file name="localization/en_GB.inc" role="data"></file>
- <file name="localization/en_US.inc" role="data"></file>
- <file name="localization/eo.inc" role="data"></file>
- <file name="localization/es_ES.inc" role="data"></file>
- <file name="localization/et_EE.inc" role="data"></file>
- <file name="localization/fa_IR.inc" role="data"></file>
- <file name="localization/fi_FI.inc" role="data"></file>
- <file name="localization/fr_FR.inc" role="data"></file>
- <file name="localization/gl_ES.inc" role="data"></file>
- <file name="localization/he_IL.inc" role="data"></file>
- <file name="localization/hr_HR.inc" role="data"></file>
- <file name="localization/hu_HU.inc" role="data"></file>
- <file name="localization/hy_AM.inc" role="data"></file>
- <file name="localization/id_ID.inc" role="data"></file>
- <file name="localization/it_IT.inc" role="data"></file>
- <file name="localization/ja_JP.inc" role="data"></file>
- <file name="localization/ko_KR.inc" role="data"></file>
- <file name="localization/lt_LT.inc" role="data"></file>
- <file name="localization/lv_LV.inc" role="data"></file>
- <file name="localization/ml_IN.inc" role="data"></file>
- <file name="localization/mr_IN.inc" role="data"></file>
- <file name="localization/nb_NB.inc" role="data"></file>
- <file name="localization/nl_NL.inc" role="data"></file>
- <file name="localization/pl_PL.inc" role="data"></file>
- <file name="localization/pt_BR.inc" role="data"></file>
- <file name="localization/pt_PT.inc" role="data"></file>
- <file name="localization/ro_RO.inc" role="data"></file>
- <file name="localization/ru_RU.inc" role="data"></file>
- <file name="localization/si_LK.inc" role="data"></file>
- <file name="localization/sk_SK.inc" role="data"></file>
- <file name="localization/sl_SI.inc" role="data"></file>
- <file name="localization/sr_CS.inc" role="data"></file>
- <file name="localization/sv_SE.inc" role="data"></file>
- <file name="localization/tr_TR.inc" role="data"></file>
- <file name="localization/uk_UA.inc" role="data"></file>
- <file name="localization/vi_VN.inc" role="data"></file>
- <file name="localization/zh_CN.inc" role="data"></file>
- <file name="localization/zh_TW.inc" role="data"></file>
- <file name="skins/classic/style.css" role="data"></file>
- <file name="skins/classic/vcard_add_contact.png" role="data"></file>
- <file name="skins/classic/vcard.png" role="data"></file>
- <file name="skins/larry/style.css" role="data"></file>
- <file name="skins/larry/vcard_add_contact.png" role="data"></file>
- <file name="skins/larry/vcard.png" role="data"></file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
- <changelog>
- <release>
- <date>2010-04-28</date>
- <time>12:00:00</time>
- <version>
- <release>2.0</release>
- <api>2.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license>
- <notes>
-- Added support for Content-Type: text/directory; profile=vCard
-- Added handler for message bodies of type vCard (#1486683)
-- Added support for more than one vCard attachment/body
-- Added support for more than one contact in one vCard file
-- Created package.xml
- </notes>
- </release>
- <release>
- <date>2012-03-11</date>
- <time>19:00:00</time>
- <version>
- <release>3.1</release>
- <api>3.1</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>
- - Add styles for new skin "Larry"
- </notes>
- </release>
- <release>
- <date>2012-03-11</date>
- <time>19:00</time>
- <version>
- <release>3.1-beta</release>
- <api>3.1-beta</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>
-- Add styles for new skin "Larry"
-- Exec contact_create hook when adding contact (#1486964)
-- Make icons skinable
-- Display vcard icon on messages list when message is of type vcard
- </notes>
- </release>
- <release>
- <date>2012-04-13</date>
- <version>
- <release>3.1</release>
- <api>3.1</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>
-- Fixed doble urlencoding of vcard identifier
-- Fixed encoding when default charset is different than vcard charset
-- Improved vcards import to work as addressbook::import procedure (with validation and autofix)
-- Support IDNA
-- Import contacts to default addressbook
- </notes>
- </release>
- </changelog>
-</package>
diff --git a/plugins/virtuser_file/composer.json b/plugins/virtuser_file/composer.json
index 1bf6ec043..27beab830 100644
--- a/plugins/virtuser_file/composer.json
+++ b/plugins/virtuser_file/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/virtuser_file",
"type": "roundcube-plugin",
"description": "Plugin adds possibility to resolve user email/login according to lookup tables in files.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "1.0",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/virtuser_file/package.xml b/plugins/virtuser_file/package.xml
deleted file mode 100644
index 9b55ce427..000000000
--- a/plugins/virtuser_file/package.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>virtuser_file</name>
- <channel>pear.roundcube.net</channel>
- <summary>File based User-to-Email and Email-to-User lookup</summary>
- <description>Plugin adds possibility to resolve user email/login according to lookup tables in files.</description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2011-11-21</date>
- <version>
- <release>1.0</release>
- <api>1.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="virtuser_file.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/virtuser_query/composer.json b/plugins/virtuser_query/composer.json
index 6585a4117..7459ca9bd 100644
--- a/plugins/virtuser_query/composer.json
+++ b/plugins/virtuser_query/composer.json
@@ -1,24 +1,24 @@
{
"name": "roundcube/virtuser_query",
"type": "roundcube-plugin",
"description": "Plugin adds possibility to resolve user email/login according to lookup tables in SQL database.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "2.0",
"authors": [
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3"
}
}
diff --git a/plugins/virtuser_query/package.xml b/plugins/virtuser_query/package.xml
deleted file mode 100644
index 9430bf69d..000000000
--- a/plugins/virtuser_query/package.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>virtuser_query</name>
- <channel>pear.roundcube.net</channel>
- <summary>SQL based User-to-Email and Email-to-User lookup</summary>
- <description>Plugin adds possibility to resolve user email/login according to lookup tables in SQL database.</description>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2012-02-17</date>
- <version>
- <release>2.0</release>
- <api>2.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>-</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="virtuser_query.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/plugins/zipdownload/composer.json b/plugins/zipdownload/composer.json
index cdfbf9923..bc171d82a 100644
--- a/plugins/zipdownload/composer.json
+++ b/plugins/zipdownload/composer.json
@@ -1,30 +1,30 @@
{
"name": "roundcube/zipdownload",
"type": "roundcube-plugin",
"description": "Adds an option to download all attachments to a message in one zip file, when a message has multiple attachments. Also allows the download of a selection of messages in one zip file. Supports mbox and maildir format.",
- "license": "GNU GPLv3+",
+ "license": "GPLv3+",
"version": "3.0",
"authors": [
{
"name": "Thomas Bruederli",
"email": "roundcube@gmail.com",
"role": "Lead"
},
{
"name": "Aleksander Machniak",
"email": "alec@alec.pl",
"role": "Lead"
}
],
"repositories": [
{
"type": "composer",
"url": "http://plugins.roundcube.net"
}
],
"require": {
"php": ">=5.3.0",
"roundcube/plugin-installer": ">=0.1.3",
"ext-zip": "*"
}
}
diff --git a/plugins/zipdownload/package.xml b/plugins/zipdownload/package.xml
deleted file mode 100644
index 7485c5870..000000000
--- a/plugins/zipdownload/package.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<package xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packagerversion="1.9.0" version="2.0" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
- http://pear.php.net/dtd/tasks-1.0.xsd
- http://pear.php.net/dtd/package-2.0
- http://pear.php.net/dtd/package-2.0.xsd">
- <name>zipdownload</name>
- <channel>pear.roundcube.net</channel>
- <summary>Download multiple attachments or messages in one zip file</summary>
- <description>Adds an option to download all attachments to a message in one zip file, when a message has multiple attachments.
- Also allows the download of a selection of messages in one zip file. Supports mbox and maildir formats.</description>
- <lead>
- <name>Philip Weir</name>
- <user>JohnDoh</user>
- <email>roundcube@tehinterweb.co.uk</email>
- <active>no</active>
- </lead>
- <lead>
- <name>Thomas Bruederli</name>
- <user>bruederli</user>
- <email>roundcube@gmail.com</email>
- <active>yes</active>
- </lead>
- <lead>
- <name>Aleksander Machniak</name>
- <user>alec</user>
- <email>alec@alec.pl</email>
- <active>yes</active>
- </lead>
- <date>2014-04-18</date>
- <time>09:00:00</time>
- <version>
- <release>3.0</release>
- <api>3.0</api>
- </version>
- <stability>
- <release>stable</release>
- <api>stable</api>
- </stability>
- <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license>
- <notes>Repo only</notes>
- <contents>
- <dir baseinstalldir="/" name="/">
- <file name="zipdownload.php" role="php">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="zipdownload.js" role="data">
- <tasks:replace from="@name@" to="name" type="package-info"/>
- <tasks:replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file name="config.inc.php.dist" role="data"/>
- <file name="CHANGELOG" role="data"/>
- <file name="README" role="data"/>
- <file name="localization/ca_ES.inc" role="data"/>
- <file name="localization/cs_CZ.inc" role="data"/>
- <file name="localization/da_DK.inc" role="data"/>
- <file name="localization/de_CH.inc" role="data"/>
- <file name="localization/de_DE.inc" role="data"/>
- <file name="localization/en_GB.inc" role="data"/>
- <file name="localization/en_US.inc" role="data"/>
- <file name="localization/es_AR.inc" role="data"/>
- <file name="localization/es_ES.inc" role="data"/>
- <file name="localization/et_EE.inc" role="data"/>
- <file name="localization/fr_FR.inc" role="data"/>
- <file name="localization/gl_ES.inc" role="data"/>
- <file name="localization/hu_HU.inc" role="data"/>
- <file name="localization/it_IT.inc" role="data"/>
- <file name="localization/nl_NL.inc" role="data"/>
- <file name="localization/pl_PL.inc" role="data"/>
- <file name="localization/pt_BR.inc" role="data"/>
- <file name="localization/ro_RO.inc" role="data"/>
- <file name="localization/ru_RU.inc" role="data"/>
- <file name="localization/tr_TR.inc" role="data"/>
- <file name="skins/classic/zip.png" role="data"/>
- <file name="skins/classic/zipdownload.css" role="data"/>
- <file name="skins/larry/zipdownload.css" role="data"/>
- </dir>
- <!-- / -->
- </contents>
- <dependencies>
- <required>
- <php>
- <min>5.2.1</min>
- </php>
- <pearinstaller>
- <min>1.7.0</min>
- </pearinstaller>
- <extension>
- <name>zip</name>
- <channel>pecl.php.net</channel>
- <providesextension>zip</providesextension>
- </extension>
- </required>
- </dependencies>
- <phprelease/>
-</package>
diff --git a/program/lib/Roundcube/rcube_plugin_api.php b/program/lib/Roundcube/rcube_plugin_api.php
index 92a56363a..c74162619 100644
--- a/program/lib/Roundcube/rcube_plugin_api.php
+++ b/program/lib/Roundcube/rcube_plugin_api.php
@@ -1,663 +1,664 @@
<?php
/*
+-----------------------------------------------------------------------+
| This file is part of the Roundcube Webmail client |
| Copyright (C) 2008-2012, The Roundcube Dev Team |
| |
| Licensed under the GNU General Public License version 3 or |
| any later version with exceptions for skins & plugins. |
| See the README file for a full license statement. |
| |
| PURPOSE: |
| Plugins repository |
+-----------------------------------------------------------------------+
| Author: Thomas Bruederli <roundcube@gmail.com> |
+-----------------------------------------------------------------------+
*/
// location where plugins are loade from
if (!defined('RCUBE_PLUGINS_DIR')) {
define('RCUBE_PLUGINS_DIR', RCUBE_INSTALL_PATH . 'plugins/');
}
/**
* The plugin loader and global API
*
* @package Framework
* @subpackage PluginAPI
*/
class rcube_plugin_api
{
static protected $instance;
public $dir;
public $url = 'plugins/';
public $task = '';
public $output;
public $handlers = array();
public $allowed_prefs = array();
public $allowed_session_prefs = array();
public $active_plugins = array();
protected $plugins = array();
protected $tasks = array();
protected $actions = array();
protected $actionmap = array();
protected $objectsmap = array();
protected $template_contents = array();
protected $exec_stack = array();
// Deprecated names of hooks, will be removed after 0.5-stable release
protected $deprecated_hooks = array(
'create_user' => 'user_create',
'kill_session' => 'session_destroy',
'upload_attachment' => 'attachment_upload',
'save_attachment' => 'attachment_save',
'get_attachment' => 'attachment_get',
'cleanup_attachments' => 'attachments_cleanup',
'display_attachment' => 'attachment_display',
'remove_attachment' => 'attachment_delete',
'outgoing_message_headers' => 'message_outgoing_headers',
'outgoing_message_body' => 'message_outgoing_body',
'address_sources' => 'addressbooks_list',
'get_address_book' => 'addressbook_get',
'create_contact' => 'contact_create',
'save_contact' => 'contact_update',
'contact_save' => 'contact_update',
'delete_contact' => 'contact_delete',
'manage_folders' => 'folders_list',
'list_mailboxes' => 'mailboxes_list',
'save_preferences' => 'preferences_save',
'user_preferences' => 'preferences_list',
'list_prefs_sections' => 'preferences_sections_list',
'list_identities' => 'identities_list',
'create_identity' => 'identity_create',
'delete_identity' => 'identity_delete',
'save_identity' => 'identity_update',
'identity_save' => 'identity_update',
// to be removed after 0.8
'imap_init' => 'storage_init',
'mailboxes_list' => 'storage_folders',
'imap_connect' => 'storage_connect',
);
/**
* This implements the 'singleton' design pattern
*
* @return rcube_plugin_api The one and only instance if this class
*/
static function get_instance()
{
if (!self::$instance) {
self::$instance = new rcube_plugin_api();
}
return self::$instance;
}
/**
* Private constructor
*/
protected function __construct()
{
$this->dir = slashify(RCUBE_PLUGINS_DIR);
}
/**
* Initialize plugin engine
*
* This has to be done after rcmail::load_gui() or rcmail::json_init()
* was called because plugins need to have access to rcmail->output
*
* @param object rcube Instance of the rcube base class
* @param string Current application task (used for conditional plugin loading)
*/
public function init($app, $task = '')
{
$this->task = $task;
$this->output = $app->output;
// register an internal hook
$this->register_hook('template_container', array($this, 'template_container_hook'));
// maybe also register a shudown function which triggers
// shutdown functions of all plugin objects
}
/**
* Load and init all enabled plugins
*
* This has to be done after rcmail::load_gui() or rcmail::json_init()
* was called because plugins need to have access to rcmail->output
*
* @param array List of configured plugins to load
* @param array List of plugins required by the application
*/
public function load_plugins($plugins_enabled, $required_plugins = array())
{
foreach ($plugins_enabled as $plugin_name) {
$this->load_plugin($plugin_name);
}
// check existance of all required core plugins
foreach ($required_plugins as $plugin_name) {
$loaded = false;
foreach ($this->plugins as $plugin) {
if ($plugin instanceof $plugin_name) {
$loaded = true;
break;
}
}
// load required core plugin if no derivate was found
if (!$loaded) {
$loaded = $this->load_plugin($plugin_name);
}
// trigger fatal error if still not loaded
if (!$loaded) {
rcube::raise_error(array(
'code' => 520, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Requried plugin $plugin_name was not loaded"), true, true);
}
}
}
/**
* Load the specified plugin
*
* @param string Plugin name
* @param boolean Force loading of the plugin even if it doesn't match the filter
* @param boolean Require loading of the plugin, error if it doesn't exist
*
* @return boolean True on success, false if not loaded or failure
*/
public function load_plugin($plugin_name, $force = false, $require = true)
{
static $plugins_dir;
if (!$plugins_dir) {
$dir = dir($this->dir);
$plugins_dir = unslashify($dir->path);
}
// plugin already loaded
if ($this->plugins[$plugin_name]) {
return true;
}
$fn = "$plugins_dir/$plugin_name/$plugin_name.php";
if (is_readable($fn)) {
if (!class_exists($plugin_name, false)) {
include $fn;
}
// instantiate class if exists
if (class_exists($plugin_name, false)) {
$plugin = new $plugin_name($this);
$this->active_plugins[] = $plugin_name;
// check inheritance...
if (is_subclass_of($plugin, 'rcube_plugin')) {
// ... task, request type and framed mode
if (($force || !$plugin->task || preg_match('/^('.$plugin->task.')$/i', $this->task))
&& (!$plugin->noajax || (is_object($this->output) && $this->output->type == 'html'))
&& (!$plugin->noframe || empty($_REQUEST['_framed']))
) {
$plugin->init();
$this->plugins[$plugin_name] = $plugin;
}
if (!empty($plugin->allowed_prefs)) {
$this->allowed_prefs = array_merge($this->allowed_prefs, $plugin->allowed_prefs);
}
return true;
}
}
else {
rcube::raise_error(array('code' => 520, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "No plugin class $plugin_name found in $fn"),
true, false);
}
}
elseif ($require) {
rcube::raise_error(array('code' => 520, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Failed to load plugin file $fn"), true, false);
}
return false;
}
/**
* Get information about a specific plugin.
* This is either provided my a plugin's info() method or extracted from a package.xml or a composer.json file
*
* @param string Plugin name
* @return array Meta information about a plugin or False if plugin was not found
*/
public function get_info($plugin_name)
{
static $composer_lock, $license_uris = array(
'Apache' => 'http://www.apache.org/licenses/LICENSE-2.0.html',
'Apache-2' => 'http://www.apache.org/licenses/LICENSE-2.0.html',
'Apache-1' => 'http://www.apache.org/licenses/LICENSE-1.0',
'Apache-1.1' => 'http://www.apache.org/licenses/LICENSE-1.1',
'GPL' => 'http://www.gnu.org/licenses/gpl.html',
'GPLv2' => 'http://www.gnu.org/licenses/gpl-2.0.html',
'GPL-2.0' => 'http://www.gnu.org/licenses/gpl-2.0.html',
'GPLv3' => 'http://www.gnu.org/licenses/gpl-3.0.html',
+ 'GPLv3+' => 'http://www.gnu.org/licenses/gpl-3.0.html',
'GPL-3.0' => 'http://www.gnu.org/licenses/gpl-3.0.html',
'GPL-3.0+' => 'http://www.gnu.org/licenses/gpl.html',
'GPL-2.0+' => 'http://www.gnu.org/licenses/gpl.html',
'AGPLv3' => 'http://www.gnu.org/licenses/agpl.html',
'AGPLv3+' => 'http://www.gnu.org/licenses/agpl.html',
'AGPL-3.0' => 'http://www.gnu.org/licenses/agpl.html',
'LGPL' => 'http://www.gnu.org/licenses/lgpl.html',
'LGPLv2' => 'http://www.gnu.org/licenses/lgpl-2.0.html',
'LGPLv2.1' => 'http://www.gnu.org/licenses/lgpl-2.1.html',
'LGPLv3' => 'http://www.gnu.org/licenses/lgpl.html',
'LGPL-2.0' => 'http://www.gnu.org/licenses/lgpl-2.0.html',
'LGPL-2.1' => 'http://www.gnu.org/licenses/lgpl-2.1.html',
'LGPL-3.0' => 'http://www.gnu.org/licenses/lgpl.html',
'LGPL-3.0+' => 'http://www.gnu.org/licenses/lgpl.html',
'BSD' => 'http://opensource.org/licenses/bsd-license.html',
'BSD-2-Clause' => 'http://opensource.org/licenses/BSD-2-Clause',
'BSD-3-Clause' => 'http://opensource.org/licenses/BSD-3-Clause',
'FreeBSD' => 'http://opensource.org/licenses/BSD-2-Clause',
'MIT' => 'http://www.opensource.org/licenses/mit-license.php',
'PHP' => 'http://opensource.org/licenses/PHP-3.0',
'PHP-3' => 'http://www.php.net/license/3_01.txt',
'PHP-3.0' => 'http://www.php.net/license/3_0.txt',
'PHP-3.01' => 'http://www.php.net/license/3_01.txt',
);
$dir = dir($this->dir);
$fn = unslashify($dir->path) . "/$plugin_name/$plugin_name.php";
$info = false;
if (!class_exists($plugin_name, false)) {
if (is_readable($fn))
include($fn);
else
return false;
}
if (class_exists($plugin_name))
$info = $plugin_name::info();
// fall back to composer.json file
if (!$info) {
$composer = INSTALL_PATH . "/plugins/$plugin_name/composer.json";
if (is_readable($composer) && ($json = @json_decode(file_get_contents($composer), true))) {
list($info['vendor'], $info['name']) = explode('/', $json['name']);
$info['version'] = $json['version'];
$info['license'] = $json['license'];
$info['uri'] = $json['homepage'];
$info['require'] = array_filter(array_keys((array)$json['require']), function($pname) {
if (strpos($pname, '/') == false)
return false;
list($vendor, $name) = explode('/', $pname);
return !($name == 'plugin-installer' || $vendor == 'pear-pear');
});
}
// read local composer.lock file (once)
if (!isset($composer_lock)) {
$composer_lock = @json_decode(@file_get_contents(INSTALL_PATH . "/composer.lock"), true);
if ($composer_lock['packages']) {
foreach ($composer_lock['packages'] as $i => $package) {
$composer_lock['installed'][$package['name']] = $package;
}
}
}
// load additional information from local composer.lock file
if ($lock = $composer_lock['installed'][$json['name']]) {
$info['version'] = $lock['version'];
$info['uri'] = $lock['homepage'] ? $lock['homepage'] : $lock['source']['uri'];
$info['src_uri'] = $lock['dist']['uri'] ? $lock['dist']['uri'] : $lock['source']['uri'];
}
}
// fall back to package.xml file
if (!$info) {
$package = INSTALL_PATH . "/plugins/$plugin_name/package.xml";
if (is_readable($package) && ($file = file_get_contents($package))) {
$doc = new DOMDocument();
$doc->loadXML($file);
$xpath = new DOMXPath($doc);
$xpath->registerNamespace('rc', "http://pear.php.net/dtd/package-2.0");
// XPaths of plugin metadata elements
$metadata = array(
'name' => 'string(//rc:package/rc:name)',
'version' => 'string(//rc:package/rc:version/rc:release)',
'license' => 'string(//rc:package/rc:license)',
'license_uri' => 'string(//rc:package/rc:license/@uri)',
'src_uri' => 'string(//rc:package/rc:srcuri)',
'uri' => 'string(//rc:package/rc:uri)',
);
foreach ($metadata as $key => $path) {
$info[$key] = $xpath->evaluate($path);
}
// dependent required plugins (can be used, but not included in config)
$deps = $xpath->evaluate('//rc:package/rc:dependencies/rc:required/rc:package/rc:name');
for ($i = 0; $i < $deps->length; $i++) {
$dn = $deps->item($i)->nodeValue;
$info['require'][] = $dn;
}
}
}
// At least provide the name
if (!$info && class_exists($plugin_name)) {
$info = array('name' => $plugin_name, 'version' => '--');
}
else if ($info['license'] && empty($info['license_uri']) && ($license_uri = $license_uris[$info['license']])) {
$info['license_uri'] = $license_uri;
}
return $info;
}
/**
* Allows a plugin object to register a callback for a certain hook
*
* @param string $hook Hook name
* @param mixed $callback String with global function name or array($obj, 'methodname')
*/
public function register_hook($hook, $callback)
{
if (is_callable($callback)) {
if (isset($this->deprecated_hooks[$hook])) {
rcube::raise_error(array('code' => 522, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Deprecated hook name. "
. $hook . ' -> ' . $this->deprecated_hooks[$hook]), true, false);
$hook = $this->deprecated_hooks[$hook];
}
$this->handlers[$hook][] = $callback;
}
else {
rcube::raise_error(array('code' => 521, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Invalid callback function for $hook"), true, false);
}
}
/**
* Allow a plugin object to unregister a callback.
*
* @param string $hook Hook name
* @param mixed $callback String with global function name or array($obj, 'methodname')
*/
public function unregister_hook($hook, $callback)
{
$callback_id = array_search($callback, $this->handlers[$hook]);
if ($callback_id !== false) {
unset($this->handlers[$hook][$callback_id]);
}
}
/**
* Triggers a plugin hook.
* This is called from the application and executes all registered handlers
*
* @param string $hook Hook name
* @param array $args Named arguments (key->value pairs)
*
* @return array The (probably) altered hook arguments
*/
public function exec_hook($hook, $args = array())
{
if (!is_array($args)) {
$args = array('arg' => $args);
}
// TODO: avoid recusion by checking in_array($hook, $this->exec_stack) ?
$args += array('abort' => false);
array_push($this->exec_stack, $hook);
foreach ((array)$this->handlers[$hook] as $callback) {
$ret = call_user_func($callback, $args);
if ($ret && is_array($ret)) {
$args = $ret + $args;
}
if ($args['break']) {
break;
}
}
array_pop($this->exec_stack);
return $args;
}
/**
* Let a plugin register a handler for a specific request
*
* @param string $action Action name (_task=mail&_action=plugin.foo)
* @param string $owner Plugin name that registers this action
* @param mixed $callback Callback: string with global function name or array($obj, 'methodname')
* @param string $task Task name registered by this plugin
*/
public function register_action($action, $owner, $callback, $task = null)
{
// check action name
if ($task)
$action = $task.'.'.$action;
else if (strpos($action, 'plugin.') !== 0)
$action = 'plugin.'.$action;
// can register action only if it's not taken or registered by myself
if (!isset($this->actionmap[$action]) || $this->actionmap[$action] == $owner) {
$this->actions[$action] = $callback;
$this->actionmap[$action] = $owner;
}
else {
rcube::raise_error(array('code' => 523, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Cannot register action $action;"
." already taken by another plugin"), true, false);
}
}
/**
* This method handles requests like _task=mail&_action=plugin.foo
* It executes the callback function that was registered with the given action.
*
* @param string $action Action name
*/
public function exec_action($action)
{
if (isset($this->actions[$action])) {
call_user_func($this->actions[$action]);
}
else if (rcube::get_instance()->action != 'refresh') {
rcube::raise_error(array('code' => 524, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "No handler found for action $action"), true, true);
}
}
/**
* Register a handler function for template objects
*
* @param string $name Object name
* @param string $owner Plugin name that registers this action
* @param mixed $callback Callback: string with global function name or array($obj, 'methodname')
*/
public function register_handler($name, $owner, $callback)
{
// check name
if (strpos($name, 'plugin.') !== 0) {
$name = 'plugin.' . $name;
}
// can register handler only if it's not taken or registered by myself
if (is_object($this->output)
&& (!isset($this->objectsmap[$name]) || $this->objectsmap[$name] == $owner)
) {
$this->output->add_handler($name, $callback);
$this->objectsmap[$name] = $owner;
}
else {
rcube::raise_error(array('code' => 525, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Cannot register template handler $name;"
." already taken by another plugin or no output object available"), true, false);
}
}
/**
* Register this plugin to be responsible for a specific task
*
* @param string $task Task name (only characters [a-z0-9_-] are allowed)
* @param string $owner Plugin name that registers this action
*/
public function register_task($task, $owner)
{
// tasks are irrelevant in framework mode
if (!class_exists('rcmail', false)) {
return true;
}
if ($task != asciiwords($task, true)) {
rcube::raise_error(array('code' => 526, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Invalid task name: $task."
." Only characters [a-z0-9_.-] are allowed"), true, false);
}
else if (in_array($task, rcmail::$main_tasks)) {
rcube::raise_error(array('code' => 526, 'type' => 'php',
'file' => __FILE__, 'line' => __LINE__,
'message' => "Cannot register taks $task;"
." already taken by another plugin or the application itself"), true, false);
}
else {
$this->tasks[$task] = $owner;
rcmail::$main_tasks[] = $task;
return true;
}
return false;
}
/**
* Checks whether the given task is registered by a plugin
*
* @param string $task Task name
*
* @return boolean True if registered, otherwise false
*/
public function is_plugin_task($task)
{
return $this->tasks[$task] ? true : false;
}
/**
* Check if a plugin hook is currently processing.
* Mainly used to prevent loops and recursion.
*
* @param string $hook Hook to check (optional)
*
* @return boolean True if any/the given hook is currently processed, otherwise false
*/
public function is_processing($hook = null)
{
return count($this->exec_stack) > 0 && (!$hook || in_array($hook, $this->exec_stack));
}
/**
* Include a plugin script file in the current HTML page
*
* @param string $fn Path to script
*/
public function include_script($fn)
{
if (is_object($this->output) && $this->output->type == 'html') {
$src = $this->resource_url($fn);
$this->output->add_header(html::tag('script',
array('type' => "text/javascript", 'src' => $src)));
}
}
/**
* Include a plugin stylesheet in the current HTML page
*
* @param string $fn Path to stylesheet
*/
public function include_stylesheet($fn)
{
if (is_object($this->output) && $this->output->type == 'html') {
$src = $this->resource_url($fn);
$this->output->include_css($src);
}
}
/**
* Save the given HTML content to be added to a template container
*
* @param string $html HTML content
* @param string $container Template container identifier
*/
public function add_content($html, $container)
{
$this->template_contents[$container] .= $html . "\n";
}
/**
* Returns list of loaded plugins names
*
* @return array List of plugin names
*/
public function loaded_plugins()
{
return array_keys($this->plugins);
}
/**
* Returns loaded plugin
*
* @return rcube_plugin Plugin instance
*/
public function get_plugin($name)
{
return $this->plugins[$name];
}
/**
* Callback for template_container hooks
*
* @param array $attrib
* @return array
*/
protected function template_container_hook($attrib)
{
$container = $attrib['name'];
return array('content' => $attrib['content'] . $this->template_contents[$container]);
}
/**
* Make the given file name link into the plugins directory
*
* @param string $fn Filename
* @return string
*/
protected function resource_url($fn)
{
if ($fn[0] != '/' && !preg_match('|^https?://|i', $fn))
return $this->url . $fn;
else
return $fn;
}
}

File Metadata

Mime Type
text/x-diff
Expires
Sat, Mar 1, 2:03 AM (9 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
165479
Default Alt Text
(117 KB)

Event Timeline