From 48e8459231a1efa3e97284d07a328776a5b7485b Mon Sep 17 00:00:00 2001
From: =?utf8?q?J=C3=A9r=C3=A9my=20Bobbio?=
Date: Sat, 18 Jun 2011 17:02:10 +0200
Subject: [PATCH] Imported Upstream version 0.2~alpha
---
._INSTALL | Bin 0 -> 187 bytes
._README | Bin 0 -> 184 bytes
._UPGRADING | Bin 0 -> 184 bytes
CHANGELOG | 51 +
INSTALL | 2 +-
README | 5 +-
SQL/mysql.initial.sql | 10 +-
SQL/mysql.update.sql | 12 +-
SQL/mysql5.initial.sql | 8 +-
SQL/postgres.initial.sql | 3 +
SQL/postgres.update.sql | 3 +
SQL/sqlite.initial.sql | 3 +
SQL/sqlite.update.sql | 3 +
UPGRADING | 27 +-
bin/html2text.php | 18 +-
bin/modcss.php | 6 +-
bin/msgexport.sh | 147 +
bin/{msgimport => msgimport.sh} | 9 +-
config/main.inc.php.dist | 94 +-
index.php | 340 +-
installer/._config.php | Bin 0 -> 187 bytes
installer/check.php | 17 +-
installer/config.php | 89 +-
installer/index.php | 39 +-
installer/rcube_install.php | 9 +-
installer/test.php | 36 +-
installer/welcome.html | 2 +-
program/include/._main.inc | Bin 0 -> 184 bytes
program/include/bugs.inc | 6 +-
program/include/html.php | 642 +
program/include/iniset.php | 98 +
program/include/main.inc | 859 +-
program/include/rcmail.php | 825 +
program/include/rcmail_template.inc | 948 -
program/include/rcube_browser.php | 75 +
program/include/rcube_config.php | 181 +
...{rcube_contacts.inc => rcube_contacts.php} | 64 +-
.../include/{rcube_db.inc => rcube_db.php} | 13 +-
program/include/rcube_html.inc | 667 -
program/include/rcube_html_page.php | 255 +
.../{rcube_imap.inc => rcube_imap.php} | 203 +-
program/include/rcube_json_output.php | 241 +
.../{rcube_ldap.inc => rcube_ldap.php} | 199 +-
.../rcube_mail_mime.php} | 63 +-
.../{rcube_mdb2.inc => rcube_mdb2.php} | 15 +-
program/include/rcube_message.php | 398 +
program/include/rcube_result_set.php | 74 +
program/include/rcube_shared.inc | 187 +-
program/include/rcube_smtp.inc | 6 +-
program/include/rcube_template.php | 1016 +
.../{rcube_user.inc => rcube_user.php} | 127 +-
program/include/session.inc | 37 +-
program/js/app.js | 385 +-
program/js/common.js | 19 +-
program/js/editor.js | 56 +-
program/js/list.js | 5 +-
program/js/tiny_mce/blank.htm | 9 -
program/js/tiny_mce/langs/en.js | 195 +-
program/js/tiny_mce/langs/readme.txt | 9 -
program/js/tiny_mce/license.txt | 1008 +-
.../tiny_mce/plugins/cleanup/editor_plugin.js | 0
.../plugins/cleanup/editor_plugin_src.js | 10 -
.../js/tiny_mce/plugins/cleanup/readme.txt | 1 -
.../plugins/compat2x/editor_plugin.js | 1 +
.../plugins/compat2x/editor_plugin_src.js | 613 +
.../plugins/contextmenu/editor_plugin.js | 1 +
.../plugins/contextmenu/editor_plugin_src.js | 97 +
.../plugins/directionality/editor_plugin.js | 1 +
.../directionality/editor_plugin_src.js | 79 +
.../plugins/emotions/editor_plugin.js | 2 +-
.../plugins/emotions/editor_plugin_src.js | 89 +-
.../js/tiny_mce/plugins/emotions/emotions.htm | 43 +-
.../plugins/emotions/images/emotions.gif | Bin 319 -> 0 bytes
.../plugins/emotions/images/readme.txt | 2 -
.../emotions/{images => img}/smiley-cool.gif | Bin
.../emotions/{images => img}/smiley-cry.gif | Bin
.../{images => img}/smiley-embarassed.gif | Bin
.../{images => img}/smiley-foot-in-mouth.gif | Bin
.../emotions/{images => img}/smiley-frown.gif | Bin
.../{images => img}/smiley-innocent.gif | Bin
.../emotions/{images => img}/smiley-kiss.gif | Bin
.../{images => img}/smiley-laughing.gif | Bin
.../{images => img}/smiley-money-mouth.gif | Bin
.../{images => img}/smiley-sealed.gif | Bin
.../emotions/{images => img}/smiley-smile.gif | Bin
.../{images => img}/smiley-surprised.gif | Bin
.../{images => img}/smiley-tongue-out.gif | Bin
.../{images => img}/smiley-undecided.gif | Bin
.../emotions/{images => img}/smiley-wink.gif | Bin
.../emotions/{images => img}/smiley-yell.gif | Bin
.../tiny_mce/plugins/emotions/js/emotions.js | 22 +
.../plugins/emotions/jscripts/functions.js | 21 -
.../js/tiny_mce/plugins/emotions/langs/en.js | 22 -
.../tiny_mce/plugins/emotions/langs/en_dlg.js | 20 +
.../js/tiny_mce/plugins/emotions/readme.txt | 1 -
.../js/tiny_mce/plugins/media/css/content.css | 32 +-
.../js/tiny_mce/plugins/media/css/media.css | 136 +-
.../tiny_mce/plugins/media/editor_plugin.js | 2 +-
.../plugins/media/editor_plugin_src.js | 791 +-
.../tiny_mce/plugins/media/images/media.gif | Bin 280 -> 0 bytes
.../plugins/media/{images => img}/flash.gif | Bin
.../tiny_mce/plugins/media/img/flv_player.swf | Bin 0 -> 11668 bytes
.../media/{images => img}/quicktime.gif | Bin
.../media/{images => img}/realmedia.gif | Bin
.../media/{images => img}/shockwave.gif | Bin
.../media/img/trans.gif} | Bin
.../media/{images => img}/windowsmedia.gif | Bin
.../plugins/media/{jscripts => js}/embed.js | 146 +-
.../plugins/media/{jscripts => js}/media.js | 1215 +-
program/js/tiny_mce/plugins/media/langs/en.js | 94 -
.../js/tiny_mce/plugins/media/langs/en_dlg.js | 103 +
program/js/tiny_mce/plugins/media/media.htm | 359 +-
.../plugins/nonbreaking/editor_plugin.js | 2 +-
.../plugins/nonbreaking/editor_plugin_src.js | 96 +-
.../nonbreaking/images/nonbreaking.gif | Bin 619 -> 0 bytes
.../tiny_mce/plugins/nonbreaking/langs/en.js | 5 -
program/js/tiny_mce/plugins/paste/blank.htm | 22 +
.../js/tiny_mce/plugins/paste/css/blank.css | 14 +
.../tiny_mce/plugins/paste/css/pasteword.css | 3 +
.../tiny_mce/plugins/paste/editor_plugin.js | 1 +
.../plugins/paste/editor_plugin_src.js | 387 +
.../js/tiny_mce/plugins/paste/js/pastetext.js | 42 +
.../js/tiny_mce/plugins/paste/js/pasteword.js | 56 +
.../js/tiny_mce/plugins/paste/langs/en_dlg.js | 5 +
.../js/tiny_mce/plugins/paste/pastetext.htm | 34 +
.../js/tiny_mce/plugins/paste/pasteword.htm | 29 +
program/js/tiny_mce/plugins/readme.txt | 1 -
.../searchreplace/css/searchreplace.css | 24 +-
.../plugins/searchreplace/editor_plugin.js | 2 +-
.../searchreplace/editor_plugin_src.js | 213 +-
.../plugins/searchreplace/images/replace.gif | Bin 125 -> 0 bytes
.../images/replace_all_button_bg.gif | Bin 669 -> 0 bytes
.../images/replace_button_bg.gif | Bin 669 -> 0 bytes
.../plugins/searchreplace/images/search.gif | Bin 191 -> 0 bytes
.../plugins/searchreplace/js/searchreplace.js | 117 +
.../searchreplace/jscripts/searchreplace.js | 86 -
.../plugins/searchreplace/langs/en.js | 21 -
.../plugins/searchreplace/langs/en_dlg.js | 16 +
.../tiny_mce/plugins/searchreplace/readme.txt | 1 -
.../plugins/searchreplace/searchreplace.htm | 56 +-
.../tiny_mce/plugins/spellchecker/changelog | 11 -
.../classes/TinyGoogleSpell.class.php | 107 -
.../spellchecker/classes/TinyPspell.class.php | 64 -
.../classes/TinyPspellShell.class.php | 121 -
.../tiny_mce/plugins/spellchecker/config.php | 26 -
.../plugins/spellchecker/css/content.css | 6 +-
.../plugins/spellchecker/css/spellchecker.css | 34 -
.../plugins/spellchecker/editor_plugin.js | 2 +-
.../plugins/spellchecker/editor_plugin_src.js | 814 +-
.../spellchecker/images/spellchecker.gif | Bin 591 -> 0 bytes
.../spellchecker/{images => img}/wline.gif | Bin
.../tiny_mce/plugins/spellchecker/langs/en.js | 15 -
.../plugins/spellchecker/tinyspell.php | 142 -
program/js/tiny_mce/plugins/table/cell.htm | 102 +-
.../js/tiny_mce/plugins/table/css/cell.css | 32 +-
program/js/tiny_mce/plugins/table/css/row.css | 50 +-
.../js/tiny_mce/plugins/table/css/table.css | 26 +-
.../tiny_mce/plugins/table/editor_plugin.js | 2 +-
.../plugins/table/editor_plugin_src.js | 1679 +-
.../tiny_mce/plugins/table/images/buttons.gif | Bin 1787 -> 0 bytes
.../tiny_mce/plugins/table/images/table.gif | Bin 287 -> 0 bytes
.../plugins/table/images/table_cell_props.gif | Bin 189 -> 0 bytes
.../plugins/table/images/table_delete.gif | Bin 372 -> 0 bytes
.../plugins/table/images/table_delete_col.gif | Bin 153 -> 0 bytes
.../plugins/table/images/table_delete_row.gif | Bin 160 -> 0 bytes
.../table/images/table_insert_col_after.gif | Bin 165 -> 0 bytes
.../table/images/table_insert_col_before.gif | Bin 165 -> 0 bytes
.../table/images/table_insert_row_after.gif | Bin 163 -> 0 bytes
.../table/images/table_insert_row_before.gif | Bin 159 -> 0 bytes
.../table/images/table_merge_cells.gif | Bin 198 -> 0 bytes
.../plugins/table/images/table_row_props.gif | Bin 187 -> 0 bytes
.../table/images/table_split_cells.gif | Bin 210 -> 0 bytes
.../plugins/table/{jscripts => js}/cell.js | 94 +-
.../tiny_mce/plugins/table/js/merge_cells.js | 29 +
.../plugins/table/{jscripts => js}/row.js | 86 +-
.../plugins/table/{jscripts => js}/table.js | 216 +-
.../plugins/table/jscripts/merge_cells.js | 24 -
program/js/tiny_mce/plugins/table/langs/en.js | 79 -
.../js/tiny_mce/plugins/table/langs/en_dlg.js | 74 +
.../js/tiny_mce/plugins/table/merge_cells.htm | 28 +-
program/js/tiny_mce/plugins/table/readme.txt | 1 -
program/js/tiny_mce/plugins/table/row.htm | 90 +-
program/js/tiny_mce/plugins/table/table.htm | 131 +-
.../plugins/visualchars/editor_plugin.js | 2 +-
.../plugins/visualchars/editor_plugin_src.js | 146 +-
.../visualchars/images/visualchars.gif | Bin 134 -> 0 bytes
.../tiny_mce/plugins/visualchars/langs/en.js | 5 -
.../js/tiny_mce/plugins/xhtmlxtras/abbr.htm | 149 +
.../tiny_mce/plugins/xhtmlxtras/acronym.htm | 149 +
.../plugins/xhtmlxtras/attributes.htm | 154 +
.../js/tiny_mce/plugins/xhtmlxtras/cite.htm | 149 +
.../plugins/xhtmlxtras/css/attributes.css | 11 +
.../tiny_mce/plugins/xhtmlxtras/css/popup.css | 9 +
.../plugins/xhtmlxtras/css/xhtmlxtras.css | 24 +
.../js/tiny_mce/plugins/xhtmlxtras/del.htm | 170 +
.../plugins/xhtmlxtras/editor_plugin.js | 1 +
.../plugins/xhtmlxtras/editor_plugin_src.js | 134 +
.../js/tiny_mce/plugins/xhtmlxtras/ins.htm | 170 +
.../js/tiny_mce/plugins/xhtmlxtras/js/abbr.js | 25 +
.../tiny_mce/plugins/xhtmlxtras/js/acronym.js | 25 +
.../plugins/xhtmlxtras/js/attributes.js | 123 +
.../js/tiny_mce/plugins/xhtmlxtras/js/cite.js | 25 +
.../js/tiny_mce/plugins/xhtmlxtras/js/del.js | 50 +
.../plugins/xhtmlxtras/js/element_common.js | 221 +
.../js/tiny_mce/plugins/xhtmlxtras/js/ins.js | 49 +
.../plugins/xhtmlxtras/langs/en_dlg.js | 32 +
program/js/tiny_mce/themes/advanced/about.htm | 34 +-
.../js/tiny_mce/themes/advanced/anchor.htm | 23 +-
.../js/tiny_mce/themes/advanced/charmap.htm | 21 +-
.../tiny_mce/themes/advanced/color_picker.htm | 34 +-
.../themes/advanced/css/editor_content.css | 58 -
.../themes/advanced/css/editor_popup.css | 331 -
.../themes/advanced/docs/en/about.htm | 31 -
.../advanced/docs/en/common_buttons.htm | 162 -
.../docs/en/create_accessible_content.htm | 45 -
.../docs/en/images/insert_anchor_window.gif | Bin 5189 -> 0 bytes
.../docs/en/images/insert_image_window.gif | Bin 7195 -> 0 bytes
.../docs/en/images/insert_link_window.gif | Bin 5658 -> 0 bytes
.../docs/en/images/insert_table_window.gif | Bin 7094 -> 0 bytes
.../themes/advanced/docs/en/index.htm | 27 -
.../advanced/docs/en/insert_anchor_button.htm | 32 -
.../advanced/docs/en/insert_image_button.htm | 65 -
.../advanced/docs/en/insert_link_button.htm | 33 -
.../advanced/docs/en/insert_table_button.htm | 71 -
.../themes/advanced/docs/en/style.css | 28 -
.../themes/advanced/editor_template.js | 2 +-
.../themes/advanced/editor_template_src.js | 2564 +--
program/js/tiny_mce/themes/advanced/image.htm | 186 +-
.../themes/advanced/images/anchor.gif | Bin 171 -> 0 bytes
.../themes/advanced/images/backcolor.gif | Bin 359 -> 0 bytes
.../tiny_mce/themes/advanced/images/bold.gif | Bin 76 -> 0 bytes
.../themes/advanced/images/bold_de_se.gif | Bin 73 -> 0 bytes
.../themes/advanced/images/bold_es.gif | Bin 80 -> 0 bytes
.../themes/advanced/images/bold_fr.gif | Bin 78 -> 0 bytes
.../themes/advanced/images/bold_ru.gif | Bin 77 -> 0 bytes
.../themes/advanced/images/bold_tw.gif | Bin 207 -> 0 bytes
.../themes/advanced/images/browse.gif | Bin 113 -> 0 bytes
.../themes/advanced/images/bullist.gif | Bin 108 -> 0 bytes
.../themes/advanced/images/button_menu.gif | Bin 57 -> 0 bytes
.../themes/advanced/images/buttons.gif | Bin 5662 -> 0 bytes
.../advanced/images/cancel_button_bg.gif | Bin 677 -> 0 bytes
.../themes/advanced/images/charmap.gif | Bin 245 -> 0 bytes
.../themes/advanced/images/cleanup.gif | Bin 256 -> 0 bytes
.../tiny_mce/themes/advanced/images/close.gif | Bin 102 -> 0 bytes
.../tiny_mce/themes/advanced/images/code.gif | Bin 110 -> 0 bytes
.../tiny_mce/themes/advanced/images/color.gif | Bin 125 -> 0 bytes
.../tiny_mce/themes/advanced/images/copy.gif | Bin 263 -> 0 bytes
.../themes/advanced/images/custom_1.gif | Bin 76 -> 0 bytes
.../tiny_mce/themes/advanced/images/cut.gif | Bin 187 -> 0 bytes
.../themes/advanced/images/forecolor.gif | Bin 342 -> 0 bytes
.../tiny_mce/themes/advanced/images/help.gif | Bin 295 -> 0 bytes
.../js/tiny_mce/themes/advanced/images/hr.gif | Bin 63 -> 0 bytes
.../tiny_mce/themes/advanced/images/image.gif | Bin 194 -> 0 bytes
.../themes/advanced/images/indent.gif | Bin 112 -> 0 bytes
.../advanced/images/insert_button_bg.gif | Bin 703 -> 0 bytes
.../themes/advanced/images/italic.gif | Bin 79 -> 0 bytes
.../themes/advanced/images/italic_de_se.gif | Bin 75 -> 0 bytes
.../themes/advanced/images/italic_es.gif | Bin 74 -> 0 bytes
.../themes/advanced/images/italic_ru.gif | Bin 78 -> 0 bytes
.../themes/advanced/images/italic_tw.gif | Bin 274 -> 0 bytes
.../themes/advanced/images/justifycenter.gif | Bin 70 -> 0 bytes
.../themes/advanced/images/justifyfull.gif | Bin 71 -> 0 bytes
.../themes/advanced/images/justifyleft.gif | Bin 71 -> 0 bytes
.../themes/advanced/images/justifyright.gif | Bin 70 -> 0 bytes
.../tiny_mce/themes/advanced/images/link.gif | Bin 175 -> 0 bytes
.../themes/advanced/images/menu_check.gif | Bin 51 -> 0 bytes
.../themes/advanced/images/newdocument.gif | Bin 170 -> 0 bytes
.../themes/advanced/images/numlist.gif | Bin 111 -> 0 bytes
.../themes/advanced/images/opacity.png | Bin 147 -> 0 bytes
.../themes/advanced/images/outdent.gif | Bin 110 -> 0 bytes
.../tiny_mce/themes/advanced/images/paste.gif | Bin 286 -> 0 bytes
.../tiny_mce/themes/advanced/images/redo.gif | Bin 169 -> 0 bytes
.../themes/advanced/images/removeformat.gif | Bin 168 -> 0 bytes
.../themes/advanced/images/separator.gif | Bin 57 -> 0 bytes
.../advanced/images/statusbar_resize.gif | Bin 79 -> 0 bytes
.../themes/advanced/images/strikethrough.gif | Bin 83 -> 0 bytes
.../tiny_mce/themes/advanced/images/sub.gif | Bin 148 -> 0 bytes
.../tiny_mce/themes/advanced/images/sup.gif | Bin 147 -> 0 bytes
.../themes/advanced/images/underline.gif | Bin 88 -> 0 bytes
.../themes/advanced/images/underline_es.gif | Bin 79 -> 0 bytes
.../themes/advanced/images/underline_fr.gif | Bin 79 -> 0 bytes
.../themes/advanced/images/underline_ru.gif | Bin 77 -> 0 bytes
.../themes/advanced/images/underline_tw.gif | Bin 245 -> 0 bytes
.../tiny_mce/themes/advanced/images/undo.gif | Bin 175 -> 0 bytes
.../themes/advanced/images/unlink.gif | Bin 190 -> 0 bytes
.../themes/advanced/images/visualaid.gif | Bin 206 -> 0 bytes
.../themes/advanced/images/xp/tab_bg.gif | Bin 694 -> 0 bytes
.../themes/advanced/images/xp/tab_end.gif | Bin 169 -> 0 bytes
.../themes/advanced/images/xp/tab_sel_bg.gif | Bin 428 -> 0 bytes
.../themes/advanced/images/xp/tab_sel_end.gif | Bin 101 -> 0 bytes
.../themes/advanced/images/xp/tabs_bg.gif | Bin 48 -> 0 bytes
.../colors.jpg => img/colorpicker.jpg} | Bin
.../js/tiny_mce/themes/advanced/img/icons.gif | Bin 0 -> 11505 bytes
.../js/tiny_mce/themes/advanced/js/about.js | 72 +
.../js/tiny_mce/themes/advanced/js/anchor.js | 37 +
.../advanced/{jscripts => js}/charmap.js | 33 +-
.../advanced/{jscripts => js}/color_picker.js | 33 +-
.../js/tiny_mce/themes/advanced/js/image.js | 245 +
.../js/tiny_mce/themes/advanced/js/link.js | 126 +
.../{jscripts => js}/source_editor.js | 33 +-
.../themes/advanced/jscripts/about.js | 75 -
.../themes/advanced/jscripts/anchor.js | 74 -
.../themes/advanced/jscripts/image.js | 81 -
.../tiny_mce/themes/advanced/jscripts/link.js | 74 -
.../js/tiny_mce/themes/advanced/langs/en.js | 155 +-
.../tiny_mce/themes/advanced/langs/en_dlg.js | 51 +
program/js/tiny_mce/themes/advanced/link.htm | 93 +-
.../themes/advanced/skins/default/content.css | 25 +
.../themes/advanced/skins/default/dialog.css | 114 +
.../advanced/skins/default/img/buttons.png | Bin 0 -> 3274 bytes
.../default/img/items.gif} | Bin
.../advanced/skins/default/img/menu_arrow.gif | Bin 0 -> 68 bytes
.../advanced/skins/default/img/menu_check.gif | Bin 0 -> 70 bytes
.../advanced/skins/default/img/progress.gif | Bin 0 -> 1787 bytes
.../advanced/skins/default/img/tabs.gif | Bin 0 -> 1326 bytes
.../themes/advanced/skins/default/ui.css | 211 +
.../themes/advanced/skins/o2k7/content.css | 25 +
.../themes/advanced/skins/o2k7/dialog.css | 113 +
.../advanced/skins/o2k7/img/button_bg.png | Bin 0 -> 5859 bytes
.../skins/o2k7/img/button_bg_black.png | Bin 0 -> 3736 bytes
.../skins/o2k7/img/button_bg_silver.png | Bin 0 -> 5358 bytes
.../themes/advanced/skins/o2k7/ui.css | 211 +
.../themes/advanced/skins/o2k7/ui_black.css | 8 +
.../themes/advanced/skins/o2k7/ui_silver.css | 5 +
.../themes/advanced/source_editor.htm | 20 +-
.../tiny_mce/themes/simple/editor_template.js | 1 +
.../themes/simple/editor_template_src.js | 85 +
.../js/tiny_mce/themes/simple/img/icons.gif | Bin 0 -> 1440 bytes
program/js/tiny_mce/themes/simple/langs/en.js | 11 +
.../themes/simple/skins/default/content.css | 25 +
.../themes/simple/skins/default/ui.css | 32 +
.../themes/simple/skins/o2k7/content.css | 17 +
.../simple/skins/o2k7/img/button_bg.png | Bin 0 -> 5102 bytes
.../tiny_mce/themes/simple/skins/o2k7/ui.css | 35 +
program/js/tiny_mce/tiny_mce.js | 2 +-
program/js/tiny_mce/tiny_mce_popup.js | 569 +-
program/js/tiny_mce/tiny_mce_src.js | 17885 +++++++++-------
program/js/tiny_mce/utils/editable_selects.js | 122 +-
program/js/tiny_mce/utils/form_utils.js | 409 +-
program/js/tiny_mce/utils/mclayer.js | 210 -
program/js/tiny_mce/utils/mctabs.js | 150 +-
program/js/tiny_mce/utils/validate.js | 438 +-
program/lib/._enriched.inc | Bin 0 -> 184 bytes
program/lib/._utf7.inc | Bin 0 -> 184 bytes
program/lib/._washtml.php | Bin 0 -> 184 bytes
program/lib/{html2text.inc => html2text.php} | 0
program/lib/imap.inc | 904 +-
program/lib/magic | 10810 ----------
program/lib/washtml.php | 196 +
program/localization/{ar => ar_SA}/labels.inc | 59 +-
.../localization/{ar => ar_SA}/messages.inc | 27 +-
program/localization/{bg => bg_BG}/labels.inc | 0
.../localization/{bg => bg_BG}/messages.inc | 0
program/localization/{ca => ca_ES}/labels.inc | 59 +-
.../localization/{ca => ca_ES}/messages.inc | 25 +-
program/localization/{cz => cs_CZ}/labels.inc | 0
.../localization/{cz => cs_CZ}/messages.inc | 0
program/localization/{da => da_DK}/labels.inc | 0
.../localization/{da => da_DK}/messages.inc | 0
program/localization/de_CH/labels.inc | 44 +-
program/localization/de_CH/messages.inc | 3 +-
program/localization/de_DE/labels.inc | 39 +-
program/localization/de_DE/messages.inc | 3 +-
program/localization/{el => el_GR}/labels.inc | 0
.../localization/{el => el_GR}/messages.inc | 0
program/localization/en_GB/labels.inc | 32 +-
program/localization/en_US/labels.inc | 43 +-
program/localization/en_US/messages.inc | 3 +-
program/localization/{es => es_ES}/labels.inc | 66 +-
.../localization/{es => es_ES}/messages.inc | 0
program/localization/et_EE/labels.inc | 38 +-
program/localization/et_EE/messages.inc | 1 +
program/localization/{eu => eu_ES}/labels.inc | 0
.../localization/{eu => eu_ES}/messages.inc | 0
program/localization/{fi => fi_FI}/labels.inc | 63 +-
.../localization/{fi => fi_FI}/messages.inc | 27 +-
program/localization/{fr => fr_FR}/labels.inc | 0
.../localization/{fr => fr_FR}/messages.inc | 0
program/localization/{gl => gl_ES}/labels.inc | 0
.../localization/{gl => gl_ES}/messages.inc | 0
program/localization/{he => he_IL}/labels.inc | 410 +-
.../localization/{he => he_IL}/messages.inc | 157 +-
program/localization/{hi => hi_IN}/labels.inc | 0
.../localization/{hi => hi_IN}/messages.inc | 0
program/localization/{hu => hu_HU}/labels.inc | 0
.../localization/{hu => hu_HU}/messages.inc | 2 +-
program/localization/{am => hy_AM}/labels.inc | 0
.../localization/{am => hy_AM}/messages.inc | 0
program/localization/index.inc | 181 +-
program/localization/{is => is_IS}/labels.inc | 0
.../localization/{is => is_IS}/messages.inc | 0
program/localization/{it => it_IT}/labels.inc | 0
.../localization/{it => it_IT}/messages.inc | 0
program/localization/{ja => ja_JP}/labels.inc | 30 +-
.../localization/{ja => ja_JP}/messages.inc | 6 +-
program/localization/{ge => ka_GE}/labels.inc | 0
.../localization/{ge => ka_GE}/messages.inc | 0
program/localization/{kr => ko_KR}/labels.inc | 0
.../localization/{kr => ko_KR}/messages.inc | 0
program/localization/{lt => lt_LT}/labels.inc | 59 +-
.../localization/{lt => lt_LT}/messages.inc | 0
program/localization/{lv => lv_LV}/labels.inc | 0
.../localization/{lv => lv_LV}/messages.inc | 0
program/localization/{mk => mk_MK}/labels.inc | 0
.../localization/{mk => mk_MK}/messages.inc | 0
program/localization/ms_MY/labels.inc | 319 +-
program/localization/ms_MY/messages.inc | 43 +-
program/localization/nb_NO/labels.inc | 30 +-
program/localization/{ne => ne_NP}/labels.inc | 0
.../localization/{ne => ne_NP}/messages.inc | 0
program/localization/nl_NL/labels.inc | 64 +-
program/localization/{pl => pl_PL}/labels.inc | 50 +-
.../localization/{pl => pl_PL}/messages.inc | 6 +-
program/localization/pt_PT/labels.inc | 61 +-
program/localization/{ro => ro_RO}/labels.inc | 0
.../localization/{ro => ro_RO}/messages.inc | 0
program/localization/{ru => ru_RU}/labels.inc | 95 +-
.../localization/{ru => ru_RU}/messages.inc | 0
program/localization/{si => si_LK}/labels.inc | 0
.../localization/{si => si_LK}/messages.inc | 0
program/localization/sk/messages.inc | 83 -
program/localization/{sk => sk_SK}/labels.inc | 146 +-
program/localization/sk_SK/messages.inc | 85 +
program/localization/{sl => sl_SI}/labels.inc | 0
.../localization/{sl => sl_SI}/messages.inc | 0
.../{sr_cyrillic => sr_CS}/labels.inc | 0
.../{sr_cyrillic => sr_CS}/messages.inc | 0
program/localization/sr_latin/labels.inc | 217 -
program/localization/sr_latin/messages.inc | 66 -
program/localization/{se => sv_SE}/labels.inc | 2 +-
.../localization/{se => sv_SE}/messages.inc | 0
program/localization/{tr => tr_TR}/labels.inc | 0
.../localization/{tr => tr_TR}/messages.inc | 0
program/localization/{uk => uk_UA}/labels.inc | 0
.../localization/{uk => uk_UA}/messages.inc | 0
program/localization/{vn => vi_VN}/labels.inc | 0
.../localization/{vn => vi_VN}/messages.inc | 0
program/localization/zh_CN/labels.inc | 70 +-
program/localization/zh_CN/messages.inc | 3 +-
program/localization/zh_TW/labels.inc | 6 +-
program/steps/addressbook/delete.inc | 7 +-
program/steps/addressbook/edit.inc | 24 +-
program/steps/addressbook/func.inc | 65 +-
program/steps/addressbook/save.inc | 48 +-
program/steps/error.inc | 7 +-
program/steps/mail/addcontact.inc | 20 +-
program/steps/mail/check_recent.inc | 2 +-
program/steps/mail/compose.inc | 380 +-
program/steps/mail/folders.inc | 8 +-
program/steps/mail/func.inc | 911 +-
program/steps/mail/get.inc | 76 +-
program/steps/mail/mark.inc | 11 +-
program/steps/mail/move_del.inc | 105 +-
program/steps/mail/quotadisplay.inc | 28 -
program/steps/mail/sendmail.inc | 23 +-
program/steps/mail/sendmdn.inc | 2 -
program/steps/mail/show.inc | 153 +-
program/steps/mail/upload.inc | 16 +-
program/steps/mail/viewsource.inc | 2 +-
program/steps/settings/edit_identity.inc | 45 +-
program/steps/settings/func.inc | 134 +-
program/steps/settings/identities.inc | 7 +-
program/steps/settings/manage_folders.inc | 159 +-
program/steps/settings/save_identity.inc | 14 +-
program/steps/settings/save_prefs.inc | 19 +-
skins/default/common.css | 7 +-
skins/default/editor_ui.css | 97 -
skins/default/includes/settingstabs.html | 4 +-
skins/default/mail.css | 57 +-
skins/default/settings.css | 12 +
skins/default/templates/compose.html | 4 +-
skins/default/templates/mail.html | 2 +-
skins/default/templates/message.html | 3 +
skins/default/templates/messagepart.html | 4 +
skins/default/templates/settings.html | 2 +-
475 files changed, 29611 insertions(+), 33994 deletions(-)
create mode 100644 ._INSTALL
create mode 100644 ._README
create mode 100644 ._UPGRADING
create mode 100755 bin/msgexport.sh
rename bin/{msgimport => msgimport.sh} (88%)
create mode 100644 installer/._config.php
create mode 100644 program/include/._main.inc
create mode 100644 program/include/html.php
create mode 100755 program/include/iniset.php
create mode 100644 program/include/rcmail.php
delete mode 100644 program/include/rcmail_template.inc
create mode 100644 program/include/rcube_browser.php
create mode 100644 program/include/rcube_config.php
rename program/include/{rcube_contacts.inc => rcube_contacts.php} (90%)
rename program/include/{rcube_db.inc => rcube_db.php} (98%)
delete mode 100644 program/include/rcube_html.inc
create mode 100644 program/include/rcube_html_page.php
rename program/include/{rcube_imap.inc => rcube_imap.php} (95%)
create mode 100644 program/include/rcube_json_output.php
rename program/include/{rcube_ldap.inc => rcube_ldap.php} (61%)
rename program/{lib/rc_mail_mime.inc => include/rcube_mail_mime.php} (85%)
rename program/include/{rcube_mdb2.inc => rcube_mdb2.php} (97%)
create mode 100644 program/include/rcube_message.php
create mode 100644 program/include/rcube_result_set.php
create mode 100755 program/include/rcube_template.php
rename program/include/{rcube_user.inc => rcube_user.php} (79%)
delete mode 100644 program/js/tiny_mce/blank.htm
delete mode 100644 program/js/tiny_mce/langs/readme.txt
delete mode 100644 program/js/tiny_mce/plugins/cleanup/editor_plugin.js
delete mode 100644 program/js/tiny_mce/plugins/cleanup/editor_plugin_src.js
delete mode 100644 program/js/tiny_mce/plugins/cleanup/readme.txt
create mode 100644 program/js/tiny_mce/plugins/compat2x/editor_plugin.js
create mode 100644 program/js/tiny_mce/plugins/compat2x/editor_plugin_src.js
create mode 100644 program/js/tiny_mce/plugins/contextmenu/editor_plugin.js
create mode 100644 program/js/tiny_mce/plugins/contextmenu/editor_plugin_src.js
create mode 100644 program/js/tiny_mce/plugins/directionality/editor_plugin.js
create mode 100644 program/js/tiny_mce/plugins/directionality/editor_plugin_src.js
delete mode 100644 program/js/tiny_mce/plugins/emotions/images/emotions.gif
delete mode 100644 program/js/tiny_mce/plugins/emotions/images/readme.txt
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-cool.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-cry.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-embarassed.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-foot-in-mouth.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-frown.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-innocent.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-kiss.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-laughing.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-money-mouth.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-sealed.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-smile.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-surprised.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-tongue-out.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-undecided.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-wink.gif (100%)
rename program/js/tiny_mce/plugins/emotions/{images => img}/smiley-yell.gif (100%)
create mode 100644 program/js/tiny_mce/plugins/emotions/js/emotions.js
delete mode 100644 program/js/tiny_mce/plugins/emotions/jscripts/functions.js
delete mode 100644 program/js/tiny_mce/plugins/emotions/langs/en.js
create mode 100644 program/js/tiny_mce/plugins/emotions/langs/en_dlg.js
delete mode 100644 program/js/tiny_mce/plugins/emotions/readme.txt
delete mode 100644 program/js/tiny_mce/plugins/media/images/media.gif
rename program/js/tiny_mce/plugins/media/{images => img}/flash.gif (100%)
create mode 100644 program/js/tiny_mce/plugins/media/img/flv_player.swf
rename program/js/tiny_mce/plugins/media/{images => img}/quicktime.gif (100%)
rename program/js/tiny_mce/plugins/media/{images => img}/realmedia.gif (100%)
rename program/js/tiny_mce/plugins/media/{images => img}/shockwave.gif (100%)
rename program/js/tiny_mce/{themes/advanced/images/spacer.gif => plugins/media/img/trans.gif} (100%)
rename program/js/tiny_mce/plugins/media/{images => img}/windowsmedia.gif (100%)
rename program/js/tiny_mce/plugins/media/{jscripts => js}/embed.js (96%)
rename program/js/tiny_mce/plugins/media/{jscripts => js}/media.js (83%)
delete mode 100644 program/js/tiny_mce/plugins/media/langs/en.js
create mode 100644 program/js/tiny_mce/plugins/media/langs/en_dlg.js
delete mode 100644 program/js/tiny_mce/plugins/nonbreaking/images/nonbreaking.gif
delete mode 100644 program/js/tiny_mce/plugins/nonbreaking/langs/en.js
create mode 100644 program/js/tiny_mce/plugins/paste/blank.htm
create mode 100644 program/js/tiny_mce/plugins/paste/css/blank.css
create mode 100644 program/js/tiny_mce/plugins/paste/css/pasteword.css
create mode 100644 program/js/tiny_mce/plugins/paste/editor_plugin.js
create mode 100644 program/js/tiny_mce/plugins/paste/editor_plugin_src.js
create mode 100644 program/js/tiny_mce/plugins/paste/js/pastetext.js
create mode 100644 program/js/tiny_mce/plugins/paste/js/pasteword.js
create mode 100644 program/js/tiny_mce/plugins/paste/langs/en_dlg.js
create mode 100644 program/js/tiny_mce/plugins/paste/pastetext.htm
create mode 100644 program/js/tiny_mce/plugins/paste/pasteword.htm
delete mode 100644 program/js/tiny_mce/plugins/readme.txt
delete mode 100644 program/js/tiny_mce/plugins/searchreplace/images/replace.gif
delete mode 100644 program/js/tiny_mce/plugins/searchreplace/images/replace_all_button_bg.gif
delete mode 100644 program/js/tiny_mce/plugins/searchreplace/images/replace_button_bg.gif
delete mode 100644 program/js/tiny_mce/plugins/searchreplace/images/search.gif
create mode 100644 program/js/tiny_mce/plugins/searchreplace/js/searchreplace.js
delete mode 100644 program/js/tiny_mce/plugins/searchreplace/jscripts/searchreplace.js
delete mode 100644 program/js/tiny_mce/plugins/searchreplace/langs/en.js
create mode 100644 program/js/tiny_mce/plugins/searchreplace/langs/en_dlg.js
delete mode 100644 program/js/tiny_mce/plugins/searchreplace/readme.txt
delete mode 100644 program/js/tiny_mce/plugins/spellchecker/changelog
delete mode 100644 program/js/tiny_mce/plugins/spellchecker/classes/TinyGoogleSpell.class.php
delete mode 100644 program/js/tiny_mce/plugins/spellchecker/classes/TinyPspell.class.php
delete mode 100644 program/js/tiny_mce/plugins/spellchecker/classes/TinyPspellShell.class.php
delete mode 100644 program/js/tiny_mce/plugins/spellchecker/config.php
delete mode 100644 program/js/tiny_mce/plugins/spellchecker/css/spellchecker.css
delete mode 100644 program/js/tiny_mce/plugins/spellchecker/images/spellchecker.gif
rename program/js/tiny_mce/plugins/spellchecker/{images => img}/wline.gif (100%)
delete mode 100644 program/js/tiny_mce/plugins/spellchecker/langs/en.js
delete mode 100644 program/js/tiny_mce/plugins/spellchecker/tinyspell.php
delete mode 100644 program/js/tiny_mce/plugins/table/images/buttons.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table_cell_props.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table_delete.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table_delete_col.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table_delete_row.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table_insert_col_after.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table_insert_col_before.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table_insert_row_after.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table_insert_row_before.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table_merge_cells.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table_row_props.gif
delete mode 100644 program/js/tiny_mce/plugins/table/images/table_split_cells.gif
rename program/js/tiny_mce/plugins/table/{jscripts => js}/cell.js (70%)
create mode 100644 program/js/tiny_mce/plugins/table/js/merge_cells.js
rename program/js/tiny_mce/plugins/table/{jscripts => js}/row.js (66%)
rename program/js/tiny_mce/plugins/table/{jscripts => js}/table.js (60%)
delete mode 100644 program/js/tiny_mce/plugins/table/jscripts/merge_cells.js
delete mode 100644 program/js/tiny_mce/plugins/table/langs/en.js
create mode 100644 program/js/tiny_mce/plugins/table/langs/en_dlg.js
delete mode 100644 program/js/tiny_mce/plugins/table/readme.txt
delete mode 100644 program/js/tiny_mce/plugins/visualchars/images/visualchars.gif
delete mode 100644 program/js/tiny_mce/plugins/visualchars/langs/en.js
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/abbr.htm
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/acronym.htm
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/attributes.htm
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/cite.htm
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/css/attributes.css
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/css/popup.css
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/css/xhtmlxtras.css
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/del.htm
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/editor_plugin.js
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/ins.htm
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/js/abbr.js
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/js/acronym.js
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/js/attributes.js
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/js/cite.js
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/js/del.js
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/js/element_common.js
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/js/ins.js
create mode 100644 program/js/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js
delete mode 100644 program/js/tiny_mce/themes/advanced/css/editor_content.css
delete mode 100644 program/js/tiny_mce/themes/advanced/css/editor_popup.css
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/about.htm
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/common_buttons.htm
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/create_accessible_content.htm
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/images/insert_anchor_window.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/images/insert_image_window.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/images/insert_link_window.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/images/insert_table_window.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/index.htm
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/insert_anchor_button.htm
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/insert_image_button.htm
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/insert_link_button.htm
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/insert_table_button.htm
delete mode 100644 program/js/tiny_mce/themes/advanced/docs/en/style.css
delete mode 100644 program/js/tiny_mce/themes/advanced/images/anchor.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/backcolor.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/bold.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/bold_de_se.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/bold_es.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/bold_fr.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/bold_ru.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/bold_tw.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/browse.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/bullist.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/button_menu.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/buttons.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/cancel_button_bg.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/charmap.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/cleanup.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/close.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/code.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/color.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/copy.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/custom_1.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/cut.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/forecolor.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/help.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/hr.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/image.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/indent.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/insert_button_bg.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/italic.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/italic_de_se.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/italic_es.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/italic_ru.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/italic_tw.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/justifycenter.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/justifyfull.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/justifyleft.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/justifyright.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/link.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/menu_check.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/newdocument.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/numlist.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/opacity.png
delete mode 100644 program/js/tiny_mce/themes/advanced/images/outdent.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/paste.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/redo.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/removeformat.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/separator.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/statusbar_resize.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/strikethrough.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/sub.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/sup.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/underline.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/underline_es.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/underline_fr.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/underline_ru.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/underline_tw.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/undo.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/unlink.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/visualaid.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/xp/tab_bg.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/xp/tab_end.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/xp/tab_sel_bg.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/xp/tab_sel_end.gif
delete mode 100644 program/js/tiny_mce/themes/advanced/images/xp/tabs_bg.gif
rename program/js/tiny_mce/themes/advanced/{images/colors.jpg => img/colorpicker.jpg} (100%)
create mode 100644 program/js/tiny_mce/themes/advanced/img/icons.gif
create mode 100644 program/js/tiny_mce/themes/advanced/js/about.js
create mode 100644 program/js/tiny_mce/themes/advanced/js/anchor.js
rename program/js/tiny_mce/themes/advanced/{jscripts => js}/charmap.js (90%)
rename program/js/tiny_mce/themes/advanced/{jscripts => js}/color_picker.js (91%)
create mode 100644 program/js/tiny_mce/themes/advanced/js/image.js
create mode 100644 program/js/tiny_mce/themes/advanced/js/link.js
rename program/js/tiny_mce/themes/advanced/{jscripts => js}/source_editor.js (51%)
delete mode 100644 program/js/tiny_mce/themes/advanced/jscripts/about.js
delete mode 100644 program/js/tiny_mce/themes/advanced/jscripts/anchor.js
delete mode 100644 program/js/tiny_mce/themes/advanced/jscripts/image.js
delete mode 100644 program/js/tiny_mce/themes/advanced/jscripts/link.js
create mode 100644 program/js/tiny_mce/themes/advanced/langs/en_dlg.js
create mode 100644 program/js/tiny_mce/themes/advanced/skins/default/content.css
create mode 100644 program/js/tiny_mce/themes/advanced/skins/default/dialog.css
create mode 100644 program/js/tiny_mce/themes/advanced/skins/default/img/buttons.png
rename program/js/tiny_mce/themes/advanced/{images/anchor_symbol.gif => skins/default/img/items.gif} (100%)
create mode 100644 program/js/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif
create mode 100644 program/js/tiny_mce/themes/advanced/skins/default/img/menu_check.gif
create mode 100644 program/js/tiny_mce/themes/advanced/skins/default/img/progress.gif
create mode 100644 program/js/tiny_mce/themes/advanced/skins/default/img/tabs.gif
create mode 100644 program/js/tiny_mce/themes/advanced/skins/default/ui.css
create mode 100644 program/js/tiny_mce/themes/advanced/skins/o2k7/content.css
create mode 100644 program/js/tiny_mce/themes/advanced/skins/o2k7/dialog.css
create mode 100644 program/js/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png
create mode 100644 program/js/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png
create mode 100644 program/js/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png
create mode 100644 program/js/tiny_mce/themes/advanced/skins/o2k7/ui.css
create mode 100644 program/js/tiny_mce/themes/advanced/skins/o2k7/ui_black.css
create mode 100644 program/js/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css
create mode 100644 program/js/tiny_mce/themes/simple/editor_template.js
create mode 100644 program/js/tiny_mce/themes/simple/editor_template_src.js
create mode 100644 program/js/tiny_mce/themes/simple/img/icons.gif
create mode 100644 program/js/tiny_mce/themes/simple/langs/en.js
create mode 100644 program/js/tiny_mce/themes/simple/skins/default/content.css
create mode 100644 program/js/tiny_mce/themes/simple/skins/default/ui.css
create mode 100644 program/js/tiny_mce/themes/simple/skins/o2k7/content.css
create mode 100644 program/js/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png
create mode 100644 program/js/tiny_mce/themes/simple/skins/o2k7/ui.css
delete mode 100644 program/js/tiny_mce/utils/mclayer.js
create mode 100644 program/lib/._enriched.inc
create mode 100644 program/lib/._utf7.inc
create mode 100644 program/lib/._washtml.php
rename program/lib/{html2text.inc => html2text.php} (100%)
delete mode 100644 program/lib/magic
create mode 100644 program/lib/washtml.php
rename program/localization/{ar => ar_SA}/labels.inc (79%)
rename program/localization/{ar => ar_SA}/messages.inc (83%)
rename program/localization/{bg => bg_BG}/labels.inc (100%)
rename program/localization/{bg => bg_BG}/messages.inc (100%)
rename program/localization/{ca => ca_ES}/labels.inc (76%)
rename program/localization/{ca => ca_ES}/messages.inc (81%)
rename program/localization/{cz => cs_CZ}/labels.inc (100%)
rename program/localization/{cz => cs_CZ}/messages.inc (100%)
rename program/localization/{da => da_DK}/labels.inc (100%)
rename program/localization/{da => da_DK}/messages.inc (100%)
rename program/localization/{el => el_GR}/labels.inc (100%)
rename program/localization/{el => el_GR}/messages.inc (100%)
rename program/localization/{es => es_ES}/labels.inc (75%)
rename program/localization/{es => es_ES}/messages.inc (100%)
rename program/localization/{eu => eu_ES}/labels.inc (100%)
rename program/localization/{eu => eu_ES}/messages.inc (100%)
rename program/localization/{fi => fi_FI}/labels.inc (74%)
rename program/localization/{fi => fi_FI}/messages.inc (81%)
rename program/localization/{fr => fr_FR}/labels.inc (100%)
rename program/localization/{fr => fr_FR}/messages.inc (100%)
rename program/localization/{gl => gl_ES}/labels.inc (100%)
rename program/localization/{gl => gl_ES}/messages.inc (100%)
rename program/localization/{he => he_IL}/labels.inc (65%)
rename program/localization/{he => he_IL}/messages.inc (66%)
rename program/localization/{hi => hi_IN}/labels.inc (100%)
rename program/localization/{hi => hi_IN}/messages.inc (100%)
rename program/localization/{hu => hu_HU}/labels.inc (100%)
rename program/localization/{hu => hu_HU}/messages.inc (98%)
rename program/localization/{am => hy_AM}/labels.inc (100%)
rename program/localization/{am => hy_AM}/messages.inc (100%)
rename program/localization/{is => is_IS}/labels.inc (100%)
rename program/localization/{is => is_IS}/messages.inc (100%)
rename program/localization/{it => it_IT}/labels.inc (100%)
rename program/localization/{it => it_IT}/messages.inc (100%)
rename program/localization/{ja => ja_JP}/labels.inc (89%)
rename program/localization/{ja => ja_JP}/messages.inc (96%)
rename program/localization/{ge => ka_GE}/labels.inc (100%)
rename program/localization/{ge => ka_GE}/messages.inc (100%)
rename program/localization/{kr => ko_KR}/labels.inc (100%)
rename program/localization/{kr => ko_KR}/messages.inc (100%)
rename program/localization/{lt => lt_LT}/labels.inc (77%)
rename program/localization/{lt => lt_LT}/messages.inc (100%)
rename program/localization/{lv => lv_LV}/labels.inc (100%)
rename program/localization/{lv => lv_LV}/messages.inc (100%)
rename program/localization/{mk => mk_MK}/labels.inc (100%)
rename program/localization/{mk => mk_MK}/messages.inc (100%)
rename program/localization/{ne => ne_NP}/labels.inc (100%)
rename program/localization/{ne => ne_NP}/messages.inc (100%)
rename program/localization/{pl => pl_PL}/labels.inc (82%)
rename program/localization/{pl => pl_PL}/messages.inc (94%)
rename program/localization/{ro => ro_RO}/labels.inc (100%)
rename program/localization/{ro => ro_RO}/messages.inc (100%)
rename program/localization/{ru => ru_RU}/labels.inc (83%)
rename program/localization/{ru => ru_RU}/messages.inc (100%)
rename program/localization/{si => si_LK}/labels.inc (100%)
rename program/localization/{si => si_LK}/messages.inc (100%)
delete mode 100644 program/localization/sk/messages.inc
rename program/localization/{sk => sk_SK}/labels.inc (57%)
create mode 100644 program/localization/sk_SK/messages.inc
rename program/localization/{sl => sl_SI}/labels.inc (100%)
rename program/localization/{sl => sl_SI}/messages.inc (100%)
rename program/localization/{sr_cyrillic => sr_CS}/labels.inc (100%)
rename program/localization/{sr_cyrillic => sr_CS}/messages.inc (100%)
delete mode 100644 program/localization/sr_latin/labels.inc
delete mode 100644 program/localization/sr_latin/messages.inc
rename program/localization/{se => sv_SE}/labels.inc (99%)
rename program/localization/{se => sv_SE}/messages.inc (100%)
rename program/localization/{tr => tr_TR}/labels.inc (100%)
rename program/localization/{tr => tr_TR}/messages.inc (100%)
rename program/localization/{uk => uk_UA}/labels.inc (100%)
rename program/localization/{uk => uk_UA}/messages.inc (100%)
rename program/localization/{vn => vi_VN}/labels.inc (100%)
rename program/localization/{vn => vi_VN}/messages.inc (100%)
delete mode 100644 program/steps/mail/quotadisplay.inc
delete mode 100644 skins/default/editor_ui.css
diff --git a/._INSTALL b/._INSTALL
new file mode 100644
index 0000000000000000000000000000000000000000..92935509f1cb5910532bff22645e7db17d206dc7
GIT binary patch
literal 187
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aVHRi_`89a2;dkJ62wqdp9EA2(lG;w
zmC>{@BE&_L^K$Vqox1Ojhs@R)|o50+1L3ClDI}aT^eW_&b1@2;dkJ62wqdp8!+}(lG;w
z6@VBSFakMHana=bT)o`H$Vqox1Ojhs@R)|o50+1L3ClDI}aT^eW_&b1@2;dkJ62wqdoexwB(lG;w
z6@VBSFakMHana=bT)o`H tag filtering (#1484391)
+- Fixed tag filtering (#1484403)
+- Added sections (fieldset+label) in Settings interface
+- Mark as read in one action with message preview (#1484972)
+- Deleted redundant quota reads (#1484972)
+- Added options for empty trash and expunge inbox on logout (#1483863)
+- Removed lines wrapping when displaying message
+- Fixed month localization
+- Changed codebase to PHP5 with autoloader
+
+RELEASE 0.1.1
+
- Clear selection when selecting single item (#1484942)
- Remove hard-coded image size in skin templates (#1484893)
- Database schema improvements (dropped unnecessary indexes)
diff --git a/INSTALL b/INSTALL
index 2b8fb2e..e2f9a4e 100644
--- a/INSTALL
+++ b/INSTALL
@@ -11,7 +11,7 @@ REQUIREMENTS
* The Apache or Lighttpd Webserver
* .htaccess support allowing overrides for DirectoryIndex
-* PHP Version 4.3.1 or greater including
+* PHP Version 5.2 or greater including
- PCRE (perl compatible regular expression)
- Libiconv
- Multibyte String (mbstring)
diff --git a/README b/README
index 7aae054..e23c494 100644
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
RoundCube Webmail (http://roundcube.net)
-
+=================
Introduction:
-------------
@@ -43,6 +43,9 @@ records. If you have 'auto_create_user' set to FALSE only IMAP logins which
already have a corresponding entry in the user's table (username and hostname)
will be allowed.
+Read more at http://trac.roundcube.net/wiki/Howto_Config
+and http://trac.roundcube.net/wiki/Dev_Docs
+
Contact:
--------
diff --git a/SQL/mysql.initial.sql b/SQL/mysql.initial.sql
index ae195e4..fadc072 100644
--- a/SQL/mysql.initial.sql
+++ b/SQL/mysql.initial.sql
@@ -50,12 +50,12 @@ CREATE TABLE `identities` (
`user_id` int(10) unsigned NOT NULL default '0',
`del` tinyint(1) NOT NULL default '0',
`standard` tinyint(1) NOT NULL default '0',
- `name` varchar(128) NOT NULL default '',
+ `name` varchar(128) NOT NULL,
`organization` varchar(128) NOT NULL default '',
- `email` varchar(128) NOT NULL default '',
+ `email` varchar(128) NOT NULL,
`reply-to` varchar(128) NOT NULL default '',
`bcc` varchar(128) NOT NULL default '',
- `signature` text NOT NULL,
+ `signature` text NOT NULL default '',
`html_signature` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`identity_id`),
KEY `user_id` (`user_id`)
@@ -91,7 +91,9 @@ CREATE TABLE `users` (
`last_login` datetime NOT NULL default '0000-00-00 00:00:00',
`language` varchar(5) NOT NULL default 'en',
`preferences` text,
- PRIMARY KEY (`user_id`)
+ PRIMARY KEY (`user_id`),
+ INDEX `username_index` (`username`),
+ INDEX `alias_index` (`alias`)
);
-- --------------------------------------------------------
diff --git a/SQL/mysql.update.sql b/SQL/mysql.update.sql
index 11e744c..2a9603f 100644
--- a/SQL/mysql.update.sql
+++ b/SQL/mysql.update.sql
@@ -5,7 +5,7 @@ TRUNCATE TABLE `messages`;
ALTER TABLE `messages`
DROP INDEX `idx`,
- DROP INDEX `uid`
+ DROP INDEX `uid`;
ALTER TABLE `cache`
DROP INDEX `cache_key`,
@@ -15,3 +15,13 @@ ALTER TABLE `cache`
ALTER TABLE `users`
ADD INDEX `username_index` (`username`),
ADD INDEX `alias_index` (`alias`);
+
+-- Updates from version 0.1.1
+
+ALTER TABLE `identities`
+ MODIFY `signature` text NOT NULL DEFAULT '',
+ MODIFY `bcc` varchar(128) NOT NULL DEFAULT '',
+ MODIFY `reply-to` varchar(128) NOT NULL DEFAULT '',
+ MODIFY `organization` varchar(128) NOT NULL DEFAULT '',
+ MODIFY `name` varchar(128) NOT NULL,
+ MODIFY `email` varchar(128) NOT NULL;
diff --git a/SQL/mysql5.initial.sql b/SQL/mysql5.initial.sql
index 881344b..546eecd 100644
--- a/SQL/mysql5.initial.sql
+++ b/SQL/mysql5.initial.sql
@@ -107,11 +107,11 @@ CREATE TABLE `identities` (
`del` tinyint(1) NOT NULL DEFAULT '0',
`standard` tinyint(1) NOT NULL DEFAULT '0',
`name` varchar(128) NOT NULL,
- `organization` varchar(128) NOT NULL,
+ `organization` varchar(128) NOT NULL DEFAULT '',
`email` varchar(128) NOT NULL,
- `reply-to` varchar(128) NOT NULL,
- `bcc` varchar(128) NOT NULL,
- `signature` text NOT NULL,
+ `reply-to` varchar(128) NOT NULL DEFAULT '',
+ `bcc` varchar(128) NOT NULL DEFAULT '',
+ `signature` text NOT NULL DEFAULT '',
`html_signature` tinyint(1) NOT NULL DEFAULT '0',
`user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
PRIMARY KEY(`identity_id`),
diff --git a/SQL/postgres.initial.sql b/SQL/postgres.initial.sql
index ff239cb..05c6192 100644
--- a/SQL/postgres.initial.sql
+++ b/SQL/postgres.initial.sql
@@ -25,7 +25,10 @@ CREATE TABLE users (
preferences text DEFAULT ''::text NOT NULL
);
+CREATE INDEX users_username_id_idx ON users (username);
+CREATE INDEX users_alias_id_idx ON users (alias);
+
--
-- Table "session"
-- Name: session; Type: TABLE; Schema: public; Owner: postgres
diff --git a/SQL/postgres.update.sql b/SQL/postgres.update.sql
index ff1ce12..e0afa61 100644
--- a/SQL/postgres.update.sql
+++ b/SQL/postgres.update.sql
@@ -5,6 +5,9 @@ CREATE INDEX cache_user_id_idx ON cache (user_id, cache_key);
CREATE INDEX contacts_user_id_idx ON contacts (user_id);
CREATE INDEX identities_user_id_idx ON identities (user_id);
+CREATE INDEX users_username_id_idx ON users (username);
+CREATE INDEX users_alias_id_idx ON users (alias);
+
-- added ON DELETE/UPDATE actions
ALTER TABLE messages DROP CONSTRAINT messages_user_id_fkey;
ALTER TABLE messages ADD FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE;
diff --git a/SQL/sqlite.initial.sql b/SQL/sqlite.initial.sql
index 041696b..6adcf4d 100644
--- a/SQL/sqlite.initial.sql
+++ b/SQL/sqlite.initial.sql
@@ -80,6 +80,9 @@ CREATE TABLE users (
preferences text NOT NULL default ''
);
+CREATE INDEX ix_users_username ON users(username);
+CREATE INDEX ix_users_alias ON users(alias);
+
-- --------------------------------------------------------
--
diff --git a/SQL/sqlite.update.sql b/SQL/sqlite.update.sql
index f609a36..047fe67 100644
--- a/SQL/sqlite.update.sql
+++ b/SQL/sqlite.update.sql
@@ -22,3 +22,6 @@ CREATE TABLE messages (
);
CREATE INDEX ix_messages_user_cache_uid ON messages(user_id,cache_key,uid);
+
+CREATE INDEX ix_users_username ON users(username);
+CREATE INDEX ix_users_alias ON users(alias);
diff --git a/UPGRADING b/UPGRADING
index 9b5ac45..996b4f2 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -1,9 +1,25 @@
UPDATE instructions
===================
-Follow these instructions if upgrading from a previous version
+First you should remove all subfolders from /program/localization/
+because most language codes have changed in 0.2-alpha. This way you
+can make sure that no old localization files remain on your disk.
+
+Then follow these instructions if upgrading from a previous version
of RoundCube Webmail.
+from version 0.1.1
+----------------------------------------
+* replace index.php
+* replace all files in folder /bin/
+* replace all files in folder /program/
+* replace all files in folder /skins/default/
+* run all commands in SQL/[yourdbtype].update.sql
+ below the line "-- Updates from version 0.1.1"
+* check the config/main.inc.php.dist for new configuration
+ options and add them to your config
+
+
from version 0.1-stable
----------------------------------------
* replace index.php
@@ -11,6 +27,8 @@ from version 0.1-stable
* replace all files in folder /program/
* replace all files in folder /skins/default/
* run all commands in SQL/[yourdbtype].update.sql
+* check the config/main.inc.php.dist for new configuration options
+ and add them to your config
from version 0.1-rc2
@@ -28,7 +46,6 @@ from version 0.1-rc1
* replace all files in folder /bin/
* replace all files in folder /program/
* replace all files in folder /skins/default/
-* run all commands in SQL/[yourdbtype].update.sql
* If you have LDAP servers configured you should re-configure
the config entries using the template given in /config/main.inc.php.dist
@@ -39,7 +56,8 @@ from version 0.1-beta2
* replace all files in folder /bin/
* replace all files in folder /program/
* replace all files in folder /skins/default/
-* re-initalize the database with [yourdbtype].initial.sql
+* run all commands in SQL/[yourdbtype].update.sql or
+ re-initalize the database with [yourdbtype].initial.sql
* add these lines to /config/main.inc.php
$rcmail_config['draft_autosave'] = 300;
$rcmail_config['date_today'] = 'H:i';
@@ -53,7 +71,8 @@ form version 0.1-beta
* replace all files in folder /bin/
* replace all files in folder /program/
* replace all files in folder /skins/default/
-* re-initalize the database with [yourdbtype].initial.sql
+* run all commands in SQL/[yourdbtype].update.sql or
+ re-initalize the database with [yourdbtype].initial.sql
* add this line to /config/db.inc.php
$rcmail_config['db_persistent'] = false;
* add these lines to /config/main.inc.php
diff --git a/bin/html2text.php b/bin/html2text.php
index 7f74ac6..0f0e6ae 100644
--- a/bin/html2text.php
+++ b/bin/html2text.php
@@ -1,21 +1,11 @@
get_text();
-
-$phpver = explode('.', phpversion());
-$vernum = $phpver[0] . $phpver[1] . $phpver[2];
-
-# html_entity_decode doesn't handle UTF character sets in PHP 4.x
-
-if (($vernum >= 500) && function_exists('html_entity_decode'))
- print html_entity_decode($plaintext, ENT_COMPAT, 'UTF-8');
-else
- print $plaintext;
+print html_entity_decode($converter->get_text(), ENT_COMPAT, 'UTF-8');
?>
diff --git a/bin/modcss.php b/bin/modcss.php
index e482389..e97b8ec 100644
--- a/bin/modcss.php
+++ b/bin/modcss.php
@@ -19,10 +19,8 @@
*/
-$INSTALL_PATH = realpath("./../") . "/";
-ini_set('include_path', $INSTALL_PATH.PATH_SEPARATOR.$INSTALL_PATH.'program'.PATH_SEPARATOR.ini_get('include_path'));
-
-require 'include/main.inc';
+define('INSTALL_PATH', realpath('./../') . '/');
+require INSTALL_PATH.'program/include/iniset.php';
$source = "";
if ($url = preg_replace('/[^a-z0-9.-_\?\$&=%]/i', '', $_GET['u']))
diff --git a/bin/msgexport.sh b/bin/msgexport.sh
new file mode 100755
index 0000000..890d48a
--- /dev/null
+++ b/bin/msgexport.sh
@@ -0,0 +1,147 @@
+#!/usr/bin/php -qC
+', $pos, $max));
+}
+
+
+// get arguments
+$args = get_opt(array('h' => 'host', 'u' => 'user', 'p' => 'pass', 'm' => 'mbox', 'f' => 'file')) + array('host' => 'localhost', 'mbox' => 'INBOX');
+
+if ($_SERVER['argv'][1] == 'help')
+{
+ print_usage();
+ exit;
+}
+else if (!$args['host'])
+{
+ vputs("Missing required parameters.\n");
+ print_usage();
+ exit;
+}
+
+// prompt for username if not set
+if (empty($args['user']))
+{
+ vputs("IMAP user: ");
+ $args['user'] = trim(fgets(STDIN));
+}
+
+// prompt for password
+vputs("Password: ");
+$args['pass'] = trim(fgets(STDIN));
+
+
+// parse $host URL
+$a_host = parse_url($args['host']);
+if ($a_host['host'])
+{
+ $host = $a_host['host'];
+ $imap_ssl = (isset($a_host['scheme']) && in_array($a_host['scheme'], array('ssl','imaps','tls'))) ? TRUE : FALSE;
+ $imap_port = isset($a_host['port']) ? $a_host['port'] : ($imap_ssl ? 993 : 143);
+}
+else
+{
+ $host = $args['host'];
+ $imap_port = 143;
+}
+
+// instantiate IMAP class
+$IMAP = new rcube_imap(null);
+
+// try to connect to IMAP server
+if ($IMAP->connect($host, $args['user'], $args['pass'], $imap_port, $imap_ssl))
+{
+ vputs("IMAP login successful.\n");
+
+ $IMAP->set_mailbox($args['mbox']);
+
+ vputs("Getting message list of {$args['mbox']}...");
+ vputs($IMAP->messagecount()." messages\n");
+
+ if ($args['file'])
+ {
+ if (!($out = fopen($args['file'], 'w')))
+ {
+ vputs("Cannot write to output file\n");
+ exit;
+ }
+ }
+ else
+ $out = STDOUT;
+
+ for ($count = $IMAP->messagecount(), $i=1; $i <= $count; $i++)
+ {
+ $headers = $IMAP->get_headers($i, null, false);
+ $from = current($IMAP->decode_address_list($headers->from, 1, false));
+
+ fwrite($out, sprintf("From %s %s UID %d\n", $from['mailto'], $headers->date, $headers->uid));
+ fwrite($out, iil_C_FetchPartHeader($IMAP->conn, $IMAP->mailbox, $i, null));
+ fwrite($out, iil_C_HandlePartBody($IMAP->conn, $IMAP->mailbox, $i, null, 1));
+ fwrite($out, "\n\n\n");
+
+ progress_update($i, $count);
+ }
+ vputs("\ncomplete.\n");
+}
+else
+{
+ vputs("IMAP login failed.\n");
+}
+
+?>
\ No newline at end of file
diff --git a/bin/msgimport b/bin/msgimport.sh
similarity index 88%
rename from bin/msgimport
rename to bin/msgimport.sh
index 0ed268f..98a0389 100755
--- a/bin/msgimport
+++ b/bin/msgimport.sh
@@ -1,13 +1,10 @@
#!/usr/bin/php -qC
'domain' values to support multiple hosts
@@ -118,7 +122,7 @@ $rcmail_config['double_auth'] = false;
$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str';
// the default locale setting
-$rcmail_config['locale_string'] = 'en';
+$rcmail_config['language'] = 'en';
// use this format for short date display
$rcmail_config['date_short'] = 'D H:i';
@@ -130,7 +134,7 @@ $rcmail_config['date_long'] = 'd.m.Y H:i';
$rcmail_config['date_today'] = 'H:i';
// add this user-agent to message headers when sending
-$rcmail_config['useragent'] = 'RoundCube Webmail/0.1';
+$rcmail_config['useragent'] = 'RoundCube Webmail/0.2a';
// use this name to compose page titles
$rcmail_config['product_name'] = 'RoundCube Webmail';
@@ -213,9 +217,29 @@ $rcmail_config['mail_header_delimiter'] = NULL;
// session domain: .example.org
$rcmail_config['session_domain'] = '';
-// in order to enable public ldap search, create a config array
-// like the Verisign example below. if you would like to test,
-// simply uncomment the Verisign example.
+// This indicates which type of address book to use. Possible choises:
+// 'sql' (default) and 'ldap'.
+// If set to 'ldap' then it will look at using the first writable LDAP
+// address book as the primary address book and it will not display the
+// SQL address book in the 'Address Book' view.
+$rcmail_config['address_book_type'] = 'sql';
+
+// In order to enable public ldap search, configure an array like the Verisign
+// example further below. if you would like to test, simply uncomment the example.
+//
+// If you are going to use LDAP for individual address books, you will need to
+// set 'user_specific' to true and use the variables to generate the appropriate DNs to access it.
+//
+// The recommended directory structure for LDAP is to store all the address book entries
+// under the users main entry, e.g.:
+//
+// o=root
+// ou=people
+// uid=user@domain
+// mail=contact@contactdomain
+//
+// So the base_dn would be uid=%fu,ou=people,o=root
+// The bind_dn would be the same as based_dn or some super user login.
/**
* example config for Verisign directory
*
@@ -223,34 +247,57 @@ $rcmail_config['session_domain'] = '';
* 'name' => 'Verisign.com',
* 'hosts' => array('directory.verisign.com'),
* 'port' => 389,
+ * 'use_tls' => false,
+ * 'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMAP login.
+ * // %fu - The full username provided, assumes the username is an email
+ * // address, uses the username_domain value if not an email address.
+ * // %u - The username prior to the '@'.
+ * // %d - The domain name after the '@'.
* 'base_dn' => '',
* 'bind_dn' => '',
* 'bind_pass' => '',
+ * 'writable' => false, // Indicates if we can write to the LDAP directory or not.
+ * // If writable is true then these fields need to be populated:
+ * // LDAP_Object_Classes, required_fields, LDAP_rdn
+ * 'LDAP_Object_Classes' => array("top", "inetOrgPerson"), // To create a new contact these are the object classes to specify (or any other classes you wish to use).
+ * 'required_fields' => array("cn", "sn", "mail"), // The required fields needed to build a new contact as required by the object classes (can include additional fields not required by the object classes).
+ * 'LDAP_rdn' => 'mail', // The RDN field that is used for new entries, this field needs to be one of the search_fields, the base of base_dn is appended to the RDN to insert into the LDAP directory.
* 'ldap_version' => 3, // using LDAPv3
* 'search_fields' => array('mail', 'cn'), // fields to search in
* 'name_field' => 'cn', // this field represents the contact's name
* 'email_field' => 'mail', // this field represents the contact's e-mail
* 'surname_field' => 'sn', // this field represents the contact's last name
* 'firstname_field' => 'gn', // this field represents the contact's first name
+ * 'sort' => 'cn', // The field to sort the listing by.
* 'scope' => 'sub', // search mode: sub|base|list
* 'filter' => '', // used for basic listing (if not empty) and will be &'d with search queries. example: status=act
+ * 'global_search' => true, // perform a global search for address auto-completion on compose
* 'fuzzy_search' => true); // server allows wildcard search
*/
// don't allow these settings to be overriden by the user
$rcmail_config['dont_override'] = array();
-// list of configuration option names that need to be available in Javascript.
-$rcmail_config['javascript_config'] = array('read_when_deleted', 'flag_for_deletion');
-
// try to load host-specific configuration
+// see http://trac.roundcube.net/wiki/Howto_Config for more details
$rcmail_config['include_host_config'] = false;
+// don't let users set pagesize to more than this value if set
+$rcmail_config['max_pagesize'] = 200;
+
+// mime magic database
+$rcmail_config['mime_magic'] = '/usr/share/misc/magic';
+
+// default sort col
+$rcmail_config['message_sort_col'] = 'date';
+
+// default sort order
+$rcmail_config['message_sort_order'] = 'DESC';
+
// THIS OPTION WILL ALLOW THE INSTALLER TO RUN AND CAN EXPOSE SENSITIVE CONFIG DATA.
// ONLY ENABLE IT IF YOU'RE REALLY SURE WHAT YOU'RE DOING!
$rcmail_config['enable_installer'] = false;
-
/***** these settings can be overwritten by user's preferences *****/
// show up to X items in list view
@@ -271,23 +318,32 @@ $rcmail_config['htmleditor'] = FALSE;
// show pretty dates as standard
$rcmail_config['prettydate'] = TRUE;
-// default sort col
-$rcmail_config['message_sort_col'] = 'date';
-
-// default sort order
-$rcmail_config['message_sort_order'] = 'DESC';
-
// save compose message every 300 seconds (5min)
$rcmail_config['draft_autosave'] = 300;
// default setting if preview pane is enabled
$rcmail_config['preview_pane'] = FALSE;
-// don't let users set pagesize to more than this value if set
-$rcmail_config['max_pagesize'] = 200;
+// Clear Trash on logout
+$rcmail_config['logout_purge'] = FALSE;
-// mime magic database
-$rcmail_config['mime_magic'] = '/usr/share/misc/magic';
+// Compact INBOX on logout
+$rcmail_config['logout_expunge'] = FALSE;
+
+/**
+ * 'Delete always'
+ * This setting reflects if mail should be always marked as deleted,
+ * even if moving to "Trash" fails. This is necessary in some setups
+ * because a) people may not have a Trash folder or b) they are over
+ * quota (and Trash is included in the quota).
+ *
+ * This is a failover setting for iil_C_Move when a message is moved
+ * to the Trash, and not the same as "delete_right_away".
+ */
+$rcmail_config['delete_always'] = false;
+
+// Log successful logins
+$rcmail_config['log_logins'] = false;
// end of config file
?>
diff --git a/index.php b/index.php
index 02a6201..f40f701 100644
--- a/index.php
+++ b/index.php
@@ -1,142 +1,61 @@
|
- +-----------------------------------------------------------------------+
-
- $Id: index.php 1255 2008-04-05 12:49:21Z thomasb $
+ +-------------------------------------------------------------------------+
+ | RoundCube Webmail IMAP Client |
+ | Version 0.2-alpha |
+ | |
+ | Copyright (C) 2005-2008, RoundCube Dev. - Switzerland |
+ | |
+ | This program is free software; you can redistribute it and/or modify |
+ | it under the terms of the GNU General Public License version 2 |
+ | as published by the Free Software Foundation. |
+ | |
+ | This program is distributed in the hope that it will be useful, |
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ | GNU General Public License for more details. |
+ | |
+ | You should have received a copy of the GNU General Public License along |
+ | with this program; if not, write to the Free Software Foundation, Inc., |
+ | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
+ | |
+ +-------------------------------------------------------------------------+
+ | Author: Thomas Bruederli |
+ +-------------------------------------------------------------------------+
+
+ $Id: index.php 1499 2008-06-09 20:57:53Z thomasb $
*/
-// application constants
-define('RCMAIL_VERSION', '0.1.1');
-define('RCMAIL_CHARSET', 'UTF-8');
-define('JS_OBJECT_NAME', 'rcmail');
+// include environment
+require_once 'program/include/iniset.php';
// define global vars
$OUTPUT_TYPE = 'html';
-$INSTALL_PATH = dirname(__FILE__);
-$MAIN_TASKS = array('mail','settings','addressbook','logout');
-
-if (empty($INSTALL_PATH))
- $INSTALL_PATH = './';
-else
- $INSTALL_PATH .= '/';
-
-
-// make sure path_separator is defined
-if (!defined('PATH_SEPARATOR'))
- define('PATH_SEPARATOR', (eregi('win', PHP_OS) ? ';' : ':'));
-
-
-// RC include folders MUST be included FIRST to avoid other
-// possible not compatible libraries (i.e PEAR) to be included
-// instead the ones provided by RC
-ini_set('include_path', $INSTALL_PATH.PATH_SEPARATOR.$INSTALL_PATH.'program'.PATH_SEPARATOR.$INSTALL_PATH.'program/lib'.PATH_SEPARATOR.ini_get('include_path'));
-
-ini_set('session.name', 'roundcube_sessid');
-ini_set('session.use_cookies', 1);
-ini_set('session.gc_maxlifetime', 21600);
-ini_set('session.gc_divisor', 500);
-ini_set('error_reporting', E_ALL&~E_NOTICE);
-set_magic_quotes_runtime(0);
-
-// increase maximum execution time for php scripts
-// (does not work in safe mode)
-if (!ini_get('safe_mode')) @set_time_limit(120);
-
-// include base files
-require_once('include/rcube_shared.inc');
-require_once('include/rcube_imap.inc');
-require_once('include/bugs.inc');
-require_once('include/main.inc');
-require_once('PEAR.php');
-
-
-// set PEAR error handling
-// PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_NOTICE);
-
-
-// catch some url/post parameters
-$_task = strip_quotes(get_input_value('_task', RCUBE_INPUT_GPC));
-$_action = strip_quotes(get_input_value('_action', RCUBE_INPUT_GPC));
-$_framed = (!empty($_GET['_framed']) || !empty($_POST['_framed']));
-
-// use main task if empty or invalid value
-if (empty($_task) || !in_array($_task, $MAIN_TASKS))
- $_task = 'mail';
-
// set output buffering
-if ($_action != 'get' && $_action != 'viewsource')
-{
+if ($RCMAIL->action != 'get' && $RCMAIL->action != 'viewsource') {
// use gzip compression if supported
if (function_exists('ob_gzhandler')
- && !ini_get('zlib.output_compression')
- && ini_get('output_handler') != 'ob_gzhandler')
- {
+ && !ini_get('zlib.output_compression')
+ && ini_get('output_handler') != 'ob_gzhandler') {
ob_start('ob_gzhandler');
}
- else
+ else {
ob_start();
+ }
}
-// start session with requested task
-rcmail_startup($_task);
+// init application and start session with requested task
+$RCMAIL = rcmail::get_instance();
-// set session related variables
-$COMM_PATH = sprintf('./?_task=%s', $_task);
-$SESS_HIDDEN_FIELD = '';
-
-
-// add framed parameter
-if ($_framed)
-{
- $COMM_PATH .= '&_framed=1';
- $SESS_HIDDEN_FIELD .= "\n".'';
-}
-
-
-// init necessary objects for GUI
-rcmail_load_gui();
+// init output class
+$OUTPUT = (!empty($_GET['_remote']) || !empty($_POST['_remote'])) ? $RCMAIL->init_json() : $RCMAIL->load_gui((!empty($_GET['_framed']) || !empty($_POST['_framed'])));
// check DB connections and exit on failure
-if ($err_str = $DB->is_error())
-{
+if ($err_str = $DB->is_error()) {
raise_error(array(
'code' => 603,
'type' => 'db',
@@ -145,116 +64,102 @@ if ($err_str = $DB->is_error())
// error steps
-if ($_action=='error' && !empty($_GET['_code']))
+if ($RCMAIL->action=='error' && !empty($_GET['_code'])) {
raise_error(array('code' => hexdec($_GET['_code'])), FALSE, TRUE);
-
+}
// try to log in
-if ($_action=='login' && $_task=='mail')
-{
- $host = rcmail_autoselect_host();
+if ($RCMAIL->action=='login' && $RCMAIL->task=='mail') {
+ $host = $RCMAIL->autoselect_host();
// check if client supports cookies
- if (empty($_COOKIE))
- {
+ if (empty($_COOKIE)) {
$OUTPUT->show_message("cookiesdisabled", 'warning');
}
else if ($_SESSION['temp'] && !empty($_POST['_user']) && isset($_POST['_pass']) &&
- rcmail_login(trim(get_input_value('_user', RCUBE_INPUT_POST), ' '),
- get_input_value('_pass', RCUBE_INPUT_POST, true, 'ISO-8859-1'), $host))
- {
+ $RCMAIL->login(trim(get_input_value('_user', RCUBE_INPUT_POST), ' '),
+ get_input_value('_pass', RCUBE_INPUT_POST, true, 'ISO-8859-1'), $host)) {
// create new session ID
unset($_SESSION['temp']);
sess_regenerate_id();
// send auth cookie if necessary
- rcmail_authenticate_session();
+ $RCMAIL->authenticate_session();
+
+ // log successful login
+ if ($RCMAIL->config->get('log_logins') && $RCMAIL->config->get('debug_level') & 1)
+ console(sprintf('Successful login for %s (id %d) from %s',
+ trim(get_input_value('_user', RCUBE_INPUT_POST), ' '),
+ $_SESSION['user_id'],
+ $_SERVER['REMOTE_ADDR']));
// send redirect
- header("Location: $COMM_PATH");
+ header("Location: {$RCMAIL->comm_path}");
exit;
}
- else
- {
+ else {
$OUTPUT->show_message($IMAP->error_code == -1 ? 'imaperror' : 'loginfailed', 'warning');
- rcmail_kill_session();
+ $RCMAIL->kill_session();
}
}
// end session
-else if (($_task=='logout' || $_action=='logout') && isset($_SESSION['user_id']))
-{
+else if (($RCMAIL->task=='logout' || $RCMAIL->action=='logout') && isset($_SESSION['user_id'])) {
$OUTPUT->show_message('loggedout');
- rcmail_kill_session();
+ $RCMAIL->logout_actions();
+ $RCMAIL->kill_session();
}
// check session and auth cookie
-else if ($_action != 'login' && $_SESSION['user_id'] && $_action != 'send')
-{
- if (!rcmail_authenticate_session())
- {
+else if ($RCMAIL->action != 'login' && $_SESSION['user_id'] && $RCMAIL->action != 'send') {
+ if (!$RCMAIL->authenticate_session()) {
$OUTPUT->show_message('sessionerror', 'error');
- rcmail_kill_session();
+ $RCMAIL->kill_session();
}
}
// log in to imap server
-if (!empty($USER->ID) && $_task=='mail')
-{
- $conn = $IMAP->connect($_SESSION['imap_host'], $_SESSION['username'], decrypt_passwd($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl']);
- if (!$conn)
- {
- $OUTPUT->show_message($IMAP->error_code == -1 ? 'imaperror' : 'sessionerror', 'error');
- rcmail_kill_session();
+if (!empty($RCMAIL->user->ID) && $RCMAIL->task == 'mail') {
+ if (!$RCMAIL->imap_connect()) {
+ $RCMAIL->kill_session();
}
- else
- rcmail_set_imap_prop();
}
// not logged in -> set task to 'login
-if (empty($USER->ID))
-{
+if (empty($RCMAIL->user->ID)) {
if ($OUTPUT->ajax_call)
$OUTPUT->remote_response("setTimeout(\"location.href='\"+this.env.comm_path+\"'\", 2000);");
- $_task = 'login';
+ $RCMAIL->set_task('login');
}
// check client X-header to verify request origin
-if ($OUTPUT->ajax_call)
-{
- if (empty($CONFIG['devel_mode']) && !rc_request_header('X-RoundCube-Referer'))
- {
+if ($OUTPUT->ajax_call) {
+ if (empty($CONFIG['devel_mode']) && !rc_request_header('X-RoundCube-Referer')) {
header('HTTP/1.1 404 Not Found');
die("Invalid Request");
}
}
-// set task and action to client
-$OUTPUT->set_env('task', $_task);
-if (!empty($_action))
- $OUTPUT->set_env('action', $_action);
-
-
-
// not logged in -> show login page
-if (empty($USER->ID))
-{
+if (empty($RCMAIL->user->ID)) {
// check if installer is still active
- if ($CONFIG['enable_installer'] && is_readable('./installer/index.php'))
- $OUTPUT->add_footer('
-
-
Installer script is still accessible
-
The install script of your RoundCube installation is still stored in its default location!
-
Please remove the whole installer folder from the RoundCube directory because
- these files may expose sensitive configuration data like server passwords and encryption keys
- to the public. Make sure you cannot access the installer script from your browser.
-
');
+ if ($CONFIG['enable_installer'] && is_readable('./installer/index.php')) {
+ $OUTPUT->add_footer(html::div(array('style' => "background:#ef9398; border:2px solid #dc5757; padding:0.5em; margin:2em auto; width:50em"),
+ html::tag('h2', array('style' => "margin-top:0.2em"), "Installer script is still accessible") .
+ html::p(null, "The install script of your RoundCube installation is still stored in its default location!") .
+ html::p(null, "Please remove the whole installer folder from the RoundCube directory because .
+ these files may expose sensitive configuration data like server passwords and encryption keys
+ to the public. Make sure you cannot access the installer script from your browser.")
+ )
+ );
+ }
+ $OUTPUT->set_env('task', 'login');
$OUTPUT->task = 'login';
$OUTPUT->send('login');
exit;
@@ -262,138 +167,129 @@ if (empty($USER->ID))
// handle keep-alive signal
-if ($_action=='keep-alive')
-{
+if ($RCMAIL->action=='keep-alive') {
$OUTPUT->reset();
$OUTPUT->send('');
exit;
}
// include task specific files
-if ($_task=='mail')
-{
+if ($RCMAIL->task=='mail') {
include_once('program/steps/mail/func.inc');
- if ($_action=='show' || $_action=='preview' || $_action=='print')
+ if ($RCMAIL->action=='show' || $RCMAIL->action=='preview' || $RCMAIL->action=='print')
include('program/steps/mail/show.inc');
- if ($_action=='get')
+ if ($RCMAIL->action=='get')
include('program/steps/mail/get.inc');
- if ($_action=='moveto' || $_action=='delete')
+ if ($RCMAIL->action=='moveto' || $RCMAIL->action=='delete')
include('program/steps/mail/move_del.inc');
- if ($_action=='mark')
+ if ($RCMAIL->action=='mark')
include('program/steps/mail/mark.inc');
- if ($_action=='viewsource')
+ if ($RCMAIL->action=='viewsource')
include('program/steps/mail/viewsource.inc');
- if ($_action=='sendmdn')
+ if ($RCMAIL->action=='sendmdn')
include('program/steps/mail/sendmdn.inc');
- if ($_action=='send')
+ if ($RCMAIL->action=='send')
include('program/steps/mail/sendmail.inc');
- if ($_action=='upload')
+ if ($RCMAIL->action=='upload')
include('program/steps/mail/upload.inc');
- if ($_action=='compose' || $_action=='remove-attachment' || $_action=='display-attachment')
+ if ($RCMAIL->action=='compose' || $RCMAIL->action=='remove-attachment' || $RCMAIL->action=='display-attachment')
include('program/steps/mail/compose.inc');
- if ($_action=='addcontact')
+ if ($RCMAIL->action=='addcontact')
include('program/steps/mail/addcontact.inc');
- if ($_action=='expunge' || $_action=='purge')
+ if ($RCMAIL->action=='expunge' || $RCMAIL->action=='purge')
include('program/steps/mail/folders.inc');
- if ($_action=='check-recent')
+ if ($RCMAIL->action=='check-recent')
include('program/steps/mail/check_recent.inc');
- if ($_action=='getunread')
+ if ($RCMAIL->action=='getunread')
include('program/steps/mail/getunread.inc');
- if ($_action=='list' && isset($_REQUEST['_remote']))
+ if ($RCMAIL->action=='list' && isset($_REQUEST['_remote']))
include('program/steps/mail/list.inc');
- if ($_action=='search')
+ if ($RCMAIL->action=='search')
include('program/steps/mail/search.inc');
- if ($_action=='spell')
+ if ($RCMAIL->action=='spell')
include('program/steps/mail/spell.inc');
- if ($_action=='rss')
+ if ($RCMAIL->action=='rss')
include('program/steps/mail/rss.inc');
- if ($_action=='quotadisplay')
- include('program/steps/mail/quotadisplay.inc');
-
-
// make sure the message count is refreshed
- $IMAP->messagecount($_SESSION['mbox'], 'ALL', TRUE);
+ $IMAP->messagecount($_SESSION['mbox'], 'ALL', true);
}
// include task specific files
-if ($_task=='addressbook')
-{
+if ($RCMAIL->task=='addressbook') {
include_once('program/steps/addressbook/func.inc');
- if ($_action=='save')
+ if ($RCMAIL->action=='save')
include('program/steps/addressbook/save.inc');
- if ($_action=='edit' || $_action=='add')
+ if ($RCMAIL->action=='edit' || $RCMAIL->action=='add')
include('program/steps/addressbook/edit.inc');
- if ($_action=='delete')
+ if ($RCMAIL->action=='delete')
include('program/steps/addressbook/delete.inc');
- if ($_action=='show')
+ if ($RCMAIL->action=='show')
include('program/steps/addressbook/show.inc');
- if ($_action=='list' && $_REQUEST['_remote'])
+ if ($RCMAIL->action=='list' && $_REQUEST['_remote'])
include('program/steps/addressbook/list.inc');
- if ($_action=='search')
+ if ($RCMAIL->action=='search')
include('program/steps/addressbook/search.inc');
- if ($_action=='copy')
+ if ($RCMAIL->action=='copy')
include('program/steps/addressbook/copy.inc');
- if ($_action=='mailto')
+ if ($RCMAIL->action=='mailto')
include('program/steps/addressbook/mailto.inc');
}
// include task specific files
-if ($_task=='settings')
-{
+if ($RCMAIL->task=='settings') {
include_once('program/steps/settings/func.inc');
- if ($_action=='save-identity')
+ if ($RCMAIL->action=='save-identity')
include('program/steps/settings/save_identity.inc');
- if ($_action=='add-identity' || $_action=='edit-identity')
+ if ($RCMAIL->action=='add-identity' || $RCMAIL->action=='edit-identity')
include('program/steps/settings/edit_identity.inc');
- if ($_action=='delete-identity')
+ if ($RCMAIL->action=='delete-identity')
include('program/steps/settings/delete_identity.inc');
- if ($_action=='identities')
+ if ($RCMAIL->action=='identities')
include('program/steps/settings/identities.inc');
- if ($_action=='save-prefs')
+ if ($RCMAIL->action=='save-prefs')
include('program/steps/settings/save_prefs.inc');
- if ($_action=='folders' || $_action=='subscribe' || $_action=='unsubscribe' ||
- $_action=='create-folder' || $_action=='rename-folder' || $_action=='delete-folder')
+ if ($RCMAIL->action=='folders' || $RCMAIL->action=='subscribe' || $RCMAIL->action=='unsubscribe' ||
+ $RCMAIL->action=='create-folder' || $RCMAIL->action=='rename-folder' || $RCMAIL->action=='delete-folder')
include('program/steps/settings/manage_folders.inc');
-
}
// parse main template
-$OUTPUT->send($_task);
+$OUTPUT->send($RCMAIL->task);
// if we arrive here, something went wrong
@@ -402,6 +298,6 @@ raise_error(array(
'type' => 'php',
'line' => __LINE__,
'file' => __FILE__,
- 'message' => "Invalid request"), TRUE, TRUE);
+ 'message' => "Invalid request"), true, true);
?>
diff --git a/installer/._config.php b/installer/._config.php
new file mode 100644
index 0000000000000000000000000000000000000000..4ee59dc8f5ca0f1eeda1ea3e9cf4a8482b3f0e5e
GIT binary patch
literal 187
zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}aVHRi_`89a2;dkJ62wqd;|){_(lG;w
zmC>{@BE&_L^K
'pcre', 'Session' => 'session');
+$required_php_exts = array('PCRE' => 'pcre', 'Session' => 'session',
+ 'DOM XML' => 'dom');
$optional_php_exts = array('FileInfo' => 'fileinfo', 'Libiconv' => 'iconv',
- 'Multibyte' => 'mbstring', 'OpenSSL' => 'openssl', 'Mcrypt' => 'mcrypt', 'GD' => 'gd');
+ 'Multibyte' => 'mbstring', 'OpenSSL' => 'openssl', 'Mcrypt' => 'mcrypt',
+ 'GD' => 'gd');
$required_libs = array('PEAR' => 'PEAR.php', 'DB' => 'DB.php', 'MDB2' => 'MDB2.php',
- 'Net_SMTP' => 'Net/SMTP.php', 'Mail_mime' => 'Mail/mime.php', 'iilConnection' => 'lib/imap.inc');
+ 'Net_SMTP' => 'Net/SMTP.php', 'Mail_mime' => 'Mail/mime.php',
+ 'iilConnection' => 'lib/imap.inc');
$supported_dbs = array('MySQL' => 'mysql', 'MySQLi' => 'mysqli',
'PostgreSQL' => 'pgsql', 'SQLite (v2)' => 'sqlite');
@@ -37,11 +40,10 @@ echo '
load_defaults();
@@ -25,16 +22,16 @@ $_SESSION['allowinstaller'] = true;
if (!empty($_POST['submit'])) {
- echo '
Copy the following configurations and save them in two files (names above the text box)';
- echo ' within the config/ directory of your RoundCube installation. ';
+ echo '
Copy or download the following configurations and save them in two files';
+ echo ' (names above the text box) within the config/ directory of your RoundCube installation. ';
echo ' Make sure that there are no characters outside the <?php ?> brackets when saving the files.
'_des_key', 'size' => 30, 'id' => "cfgdeskey"));
+$input_deskey = new html_inputfield(array('name' => '_des_key', 'size' => 30, 'id' => "cfgdeskey"));
echo $input_deskey->show($RCI->getprop('des_key'));
?>
@@ -144,7 +141,7 @@ If you enter it manually please provide a string of exactly 24 chars.
'_auto_create_user', 'id' => "cfgautocreate"));
+$check_autocreate = new html_checkbox(array('name' => '_auto_create_user', 'id' => "cfgautocreate"));
echo $check_autocreate->show(intval($RCI->getprop('auto_create_user')), array('value' => 1));
?>
@@ -320,7 +317,7 @@ what means that you have to create those records manually or disable this option