├── phpinfo.php ├── .gitignore ├── img ├── to.png ├── favicon.png ├── loader.gif ├── sending.jpg ├── scheduled.jpg ├── email-icon.gif ├── sendy-avatar.png ├── sendy-icon.png ├── default-favicon.png ├── default-favicon-alt.png ├── glyphicons-halflings.png └── glyphicons-halflings-white.png ├── ckeditor ├── samples │ ├── assets │ │ ├── sample.css │ │ ├── sample.jpg │ │ ├── inlineall │ │ │ └── logo.png │ │ ├── uilanguages │ │ │ └── languages.js │ │ └── posteddata.php │ ├── plugins │ │ ├── htmlwriter │ │ │ └── assets │ │ │ │ └── outputforflash │ │ │ │ ├── outputforflash.fla │ │ │ │ └── outputforflash.swf │ │ └── dialog │ │ │ └── assets │ │ │ └── my_dialog.js │ ├── sample_posteddata.php │ ├── sample.js │ ├── appendto.html │ ├── tabindex.html │ └── uicolor.html ├── plugins │ ├── icons.png │ ├── icons_hidpi.png │ ├── link │ │ ├── images │ │ │ ├── anchor.png │ │ │ └── hidpi │ │ │ │ └── anchor.png │ │ └── dialogs │ │ │ └── anchor.js │ ├── smiley │ │ └── images │ │ │ ├── heart.gif │ │ │ ├── heart.png │ │ │ ├── kiss.gif │ │ │ ├── kiss.png │ │ │ ├── cry_smile.gif │ │ │ ├── cry_smile.png │ │ │ ├── envelope.gif │ │ │ ├── envelope.png │ │ │ ├── lightbulb.gif │ │ │ ├── lightbulb.png │ │ │ ├── omg_smile.gif │ │ │ ├── omg_smile.png │ │ │ ├── sad_smile.gif │ │ │ ├── sad_smile.png │ │ │ ├── thumbs_up.gif │ │ │ ├── thumbs_up.png │ │ │ ├── wink_smile.gif │ │ │ ├── wink_smile.png │ │ │ ├── angel_smile.gif │ │ │ ├── angel_smile.png │ │ │ ├── angry_smile.gif │ │ │ ├── angry_smile.png │ │ │ ├── broken_heart.gif │ │ │ ├── broken_heart.png │ │ │ ├── devil_smile.gif │ │ │ ├── devil_smile.png │ │ │ ├── shades_smile.gif │ │ │ ├── shades_smile.png │ │ │ ├── teeth_smile.gif │ │ │ ├── teeth_smile.png │ │ │ ├── thumbs_down.gif │ │ │ ├── thumbs_down.png │ │ │ ├── tongue_smile.gif │ │ │ ├── tongue_smile.png │ │ │ ├── tounge_smile.gif │ │ │ ├── confused_smile.gif │ │ │ ├── confused_smile.png │ │ │ ├── regular_smile.gif │ │ │ ├── regular_smile.png │ │ │ ├── embaressed_smile.gif │ │ │ ├── embarrassed_smile.gif │ │ │ ├── embarrassed_smile.png │ │ │ ├── whatchutalkingabout_smile.gif │ │ │ └── whatchutalkingabout_smile.png │ ├── image │ │ └── images │ │ │ └── noimage.png │ ├── magicline │ │ └── images │ │ │ ├── icon.png │ │ │ └── hidpi │ │ │ └── icon.png │ ├── flash │ │ └── images │ │ │ └── placeholder.png │ ├── forms │ │ ├── images │ │ │ └── hiddenfield.gif │ │ └── dialogs │ │ │ ├── hiddenfield.js │ │ │ ├── button.js │ │ │ ├── textarea.js │ │ │ ├── radio.js │ │ │ ├── form.js │ │ │ └── checkbox.js │ ├── fakeobjects │ │ └── images │ │ │ └── spacer.gif │ ├── iframe │ │ └── images │ │ │ └── placeholder.png │ ├── pagebreak │ │ └── images │ │ │ └── pagebreak.gif │ ├── showblocks │ │ └── images │ │ │ ├── block_h1.png │ │ │ ├── block_h2.png │ │ │ ├── block_h3.png │ │ │ ├── block_h4.png │ │ │ ├── block_h5.png │ │ │ ├── block_h6.png │ │ │ ├── block_p.png │ │ │ ├── block_div.png │ │ │ ├── block_pre.png │ │ │ ├── block_address.png │ │ │ └── block_blockquote.png │ ├── about │ │ └── dialogs │ │ │ ├── logo_ckeditor.png │ │ │ ├── hidpi │ │ │ └── logo_ckeditor.png │ │ │ └── about.js │ ├── templates │ │ ├── templates │ │ │ ├── images │ │ │ │ ├── template1.gif │ │ │ │ ├── template2.gif │ │ │ │ └── template3.gif │ │ │ └── default.js │ │ └── dialogs │ │ │ └── templates.css │ ├── dialog │ │ └── dialogDefinition.js │ ├── preview │ │ └── preview.html │ ├── specialchar │ │ └── dialogs │ │ │ └── lang │ │ │ ├── _translationstatus.txt │ │ │ ├── ja.js │ │ │ └── zh-cn.js │ ├── a11yhelp │ │ └── dialogs │ │ │ └── lang │ │ │ ├── _translationstatus.txt │ │ │ ├── zh-cn.js │ │ │ ├── zh.js │ │ │ ├── ja.js │ │ │ ├── si.js │ │ │ ├── he.js │ │ │ ├── ko.js │ │ │ ├── gu.js │ │ │ └── id.js │ ├── scayt │ │ ├── README.md │ │ ├── LICENSE.md │ │ └── dialogs │ │ │ └── toolbar.css │ └── wsc │ │ ├── README.md │ │ ├── LICENSE.md │ │ └── dialogs │ │ ├── wsc.css │ │ ├── ciframe.html │ │ └── tmpFrameset.html ├── skins │ └── moono │ │ ├── icons.png │ │ ├── icons_hidpi.png │ │ ├── images │ │ ├── arrow.png │ │ ├── close.png │ │ ├── lock.png │ │ ├── refresh.png │ │ ├── hidpi │ │ │ ├── lock.png │ │ │ ├── close.png │ │ │ ├── refresh.png │ │ │ └── lock-open.png │ │ └── lock-open.png │ │ └── readme.md ├── config.js ├── README.md └── contents.css ├── js ├── fancybox │ ├── blank.gif │ ├── fancybox_loading.gif │ ├── fancybox_overlay.png │ └── fancybox_sprite.png ├── redactor │ └── icons │ │ └── tags.png ├── lists │ └── editor.js ├── create │ └── editor.js ├── settings │ └── main.js ├── responsive-tables.js ├── main.js └── highcharts │ └── themes │ ├── grid.js │ └── skies.js ├── css ├── font │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ └── fontawesome-webfont.woff ├── print.css └── responsive-tables.css ├── includes ├── helpers │ ├── geo │ │ └── GeoIP.dat │ ├── class.html2text.inc │ ├── locale.php │ └── short.php ├── subscribers │ ├── delete.php │ ├── import-add.php │ ├── unsubscribe.php │ ├── line-delete.php │ ├── line-unsubscribe-from-all-lists.php │ ├── line-unsubscribe.php │ ├── manual-unsubscribe.php │ ├── line-update.php │ ├── import-delete.php │ ├── import-unsubscribe-from-all-lists.php │ └── import-unsubscribe.php ├── ares │ ├── toggle-wysiwyg.php │ ├── delete-email.php │ ├── delete-attachment.php │ ├── delete-ares.php │ └── add-autoresponder.php ├── create │ ├── toggle-wysiwyg.php │ ├── delete-attachment.php │ ├── upload.php │ └── send-later.php ├── login │ ├── auth.php │ ├── main.php │ └── forgot.php ├── campaigns │ └── delete.php ├── app │ ├── progress.php │ ├── download-errors-csv.php │ ├── generate-password.php │ ├── delete.php │ ├── main.php │ ├── check-email-verification.php │ ├── duplicate.php │ └── create.php ├── footer.php ├── settings │ └── main.php ├── config.php └── list │ ├── delete.php │ ├── delete-custom-field.php │ ├── edit-custom-field.php │ └── edit.php ├── locale └── en_US │ └── LC_MESSAGES │ └── default.mo ├── fast-unsubscribe ├── assets │ ├── fonts │ │ ├── avengers.ttf │ │ ├── digitek.ttf │ │ ├── plasmati.ttf │ │ ├── plasmati copy.ttf │ │ ├── JLSSpaceGothicR_NC.otf │ │ ├── the-fontry_jls-data-gothic.zip │ │ └── the-fontry_jls-data-gothic │ │ │ ├── JLSDataGothicC_NC.otf │ │ │ ├── JLSDataGothicR_NC.otf │ │ │ ├── JLSSpaceGothicC_NC.otf │ │ │ ├── JLSSpaceGothicR_NC.otf │ │ │ └── Description.txt │ ├── js │ │ ├── ZeroClipboard.swf │ │ └── hash.js │ ├── images │ │ ├── ajax-loader.gif │ │ └── jarvis_small.jpg │ └── css │ │ └── customcss.css ├── bootstrap2 │ └── img │ │ ├── glyphicons-halflings.png │ │ └── glyphicons-halflings-white.png ├── tablestructure.sql ├── config.php ├── Mail-1.2.0 │ └── tests │ │ ├── validateQuotedString.php │ │ ├── 13659.phpt │ │ ├── smtp_error.phpt │ │ ├── 9137.phpt │ │ └── 9137_2.phpt └── ajax.php ├── logout.php ├── README.md ├── .htaccess ├── search-and-edit-save.php ├── reset-cron.php ├── clear-queue.php ├── new-list.php └── api ├── subscribers ├── active-subscriber-count.php └── subscription-status.php └── _connect.php /phpinfo.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .project 3 | .settings 4 | .buildpath 5 | other_resources 6 | -------------------------------------------------------------------------------- /img/to.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/to.png -------------------------------------------------------------------------------- /img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/favicon.png -------------------------------------------------------------------------------- /img/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/loader.gif -------------------------------------------------------------------------------- /img/sending.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/sending.jpg -------------------------------------------------------------------------------- /ckeditor/samples/assets/sample.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Required by tests (dom/document.html). 3 | */ 4 | -------------------------------------------------------------------------------- /img/scheduled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/scheduled.jpg -------------------------------------------------------------------------------- /img/email-icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/email-icon.gif -------------------------------------------------------------------------------- /img/sendy-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/sendy-avatar.png -------------------------------------------------------------------------------- /img/sendy-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/sendy-icon.png -------------------------------------------------------------------------------- /js/fancybox/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/js/fancybox/blank.gif -------------------------------------------------------------------------------- /css/font/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/css/font/FontAwesome.otf -------------------------------------------------------------------------------- /img/default-favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/default-favicon.png -------------------------------------------------------------------------------- /ckeditor/plugins/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/icons.png -------------------------------------------------------------------------------- /img/default-favicon-alt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/default-favicon-alt.png -------------------------------------------------------------------------------- /js/redactor/icons/tags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/js/redactor/icons/tags.png -------------------------------------------------------------------------------- /ckeditor/skins/moono/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/skins/moono/icons.png -------------------------------------------------------------------------------- /img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /includes/helpers/geo/GeoIP.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/includes/helpers/geo/GeoIP.dat -------------------------------------------------------------------------------- /ckeditor/plugins/icons_hidpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/icons_hidpi.png -------------------------------------------------------------------------------- /css/font/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/css/font/fontawesome-webfont.eot -------------------------------------------------------------------------------- /css/font/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/css/font/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /js/fancybox/fancybox_loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/js/fancybox/fancybox_loading.gif -------------------------------------------------------------------------------- /js/fancybox/fancybox_overlay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/js/fancybox/fancybox_overlay.png -------------------------------------------------------------------------------- /js/fancybox/fancybox_sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/js/fancybox/fancybox_sprite.png -------------------------------------------------------------------------------- /ckeditor/samples/assets/sample.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/samples/assets/sample.jpg -------------------------------------------------------------------------------- /css/font/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/css/font/fontawesome-webfont.woff -------------------------------------------------------------------------------- /img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /locale/en_US/LC_MESSAGES/default.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/locale/en_US/LC_MESSAGES/default.mo -------------------------------------------------------------------------------- /ckeditor/skins/moono/icons_hidpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/skins/moono/icons_hidpi.png -------------------------------------------------------------------------------- /ckeditor/skins/moono/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/skins/moono/images/arrow.png -------------------------------------------------------------------------------- /ckeditor/skins/moono/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/skins/moono/images/close.png -------------------------------------------------------------------------------- /ckeditor/skins/moono/images/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/skins/moono/images/lock.png -------------------------------------------------------------------------------- /includes/helpers/class.html2text.inc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/includes/helpers/class.html2text.inc -------------------------------------------------------------------------------- /ckeditor/plugins/link/images/anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/link/images/anchor.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/heart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/heart.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/heart.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/kiss.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/kiss.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/kiss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/kiss.png -------------------------------------------------------------------------------- /ckeditor/skins/moono/images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/skins/moono/images/refresh.png -------------------------------------------------------------------------------- /ckeditor/plugins/image/images/noimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/image/images/noimage.png -------------------------------------------------------------------------------- /ckeditor/plugins/magicline/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/magicline/images/icon.png -------------------------------------------------------------------------------- /ckeditor/samples/assets/inlineall/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/samples/assets/inlineall/logo.png -------------------------------------------------------------------------------- /ckeditor/skins/moono/images/hidpi/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/skins/moono/images/hidpi/lock.png -------------------------------------------------------------------------------- /ckeditor/skins/moono/images/lock-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/skins/moono/images/lock-open.png -------------------------------------------------------------------------------- /fast-unsubscribe/assets/fonts/avengers.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/fonts/avengers.ttf -------------------------------------------------------------------------------- /fast-unsubscribe/assets/fonts/digitek.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/fonts/digitek.ttf -------------------------------------------------------------------------------- /fast-unsubscribe/assets/fonts/plasmati.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/fonts/plasmati.ttf -------------------------------------------------------------------------------- /ckeditor/plugins/flash/images/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/flash/images/placeholder.png -------------------------------------------------------------------------------- /ckeditor/plugins/forms/images/hiddenfield.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/forms/images/hiddenfield.gif -------------------------------------------------------------------------------- /ckeditor/plugins/link/images/hidpi/anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/link/images/hidpi/anchor.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/cry_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/cry_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/cry_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/cry_smile.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/envelope.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/envelope.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/envelope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/envelope.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/lightbulb.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/lightbulb.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/lightbulb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/lightbulb.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/omg_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/omg_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/omg_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/omg_smile.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/sad_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/sad_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/sad_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/sad_smile.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/thumbs_up.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/thumbs_up.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/thumbs_up.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/thumbs_up.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/wink_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/wink_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/wink_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/wink_smile.png -------------------------------------------------------------------------------- /ckeditor/skins/moono/images/hidpi/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/skins/moono/images/hidpi/close.png -------------------------------------------------------------------------------- /ckeditor/skins/moono/images/hidpi/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/skins/moono/images/hidpi/refresh.png -------------------------------------------------------------------------------- /fast-unsubscribe/assets/js/ZeroClipboard.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/js/ZeroClipboard.swf -------------------------------------------------------------------------------- /ckeditor/plugins/fakeobjects/images/spacer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/fakeobjects/images/spacer.gif -------------------------------------------------------------------------------- /ckeditor/plugins/iframe/images/placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/iframe/images/placeholder.png -------------------------------------------------------------------------------- /ckeditor/plugins/pagebreak/images/pagebreak.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/pagebreak/images/pagebreak.gif -------------------------------------------------------------------------------- /ckeditor/plugins/showblocks/images/block_h1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/showblocks/images/block_h1.png -------------------------------------------------------------------------------- /ckeditor/plugins/showblocks/images/block_h2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/showblocks/images/block_h2.png -------------------------------------------------------------------------------- /ckeditor/plugins/showblocks/images/block_h3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/showblocks/images/block_h3.png -------------------------------------------------------------------------------- /ckeditor/plugins/showblocks/images/block_h4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/showblocks/images/block_h4.png -------------------------------------------------------------------------------- /ckeditor/plugins/showblocks/images/block_h5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/showblocks/images/block_h5.png -------------------------------------------------------------------------------- /ckeditor/plugins/showblocks/images/block_h6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/showblocks/images/block_h6.png -------------------------------------------------------------------------------- /ckeditor/plugins/showblocks/images/block_p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/showblocks/images/block_p.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/angel_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/angel_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/angel_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/angel_smile.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/angry_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/angry_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/angry_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/angry_smile.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/broken_heart.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/broken_heart.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/broken_heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/broken_heart.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/devil_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/devil_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/devil_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/devil_smile.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/shades_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/shades_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/shades_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/shades_smile.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/teeth_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/teeth_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/teeth_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/teeth_smile.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/thumbs_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/thumbs_down.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/thumbs_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/thumbs_down.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/tongue_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/tongue_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/tongue_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/tongue_smile.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/tounge_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/tounge_smile.gif -------------------------------------------------------------------------------- /ckeditor/skins/moono/images/hidpi/lock-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/skins/moono/images/hidpi/lock-open.png -------------------------------------------------------------------------------- /fast-unsubscribe/assets/fonts/plasmati copy.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/fonts/plasmati copy.ttf -------------------------------------------------------------------------------- /fast-unsubscribe/assets/images/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/images/ajax-loader.gif -------------------------------------------------------------------------------- /fast-unsubscribe/assets/images/jarvis_small.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/images/jarvis_small.jpg -------------------------------------------------------------------------------- /ckeditor/plugins/about/dialogs/logo_ckeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/about/dialogs/logo_ckeditor.png -------------------------------------------------------------------------------- /ckeditor/plugins/magicline/images/hidpi/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/magicline/images/hidpi/icon.png -------------------------------------------------------------------------------- /ckeditor/plugins/showblocks/images/block_div.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/showblocks/images/block_div.png -------------------------------------------------------------------------------- /ckeditor/plugins/showblocks/images/block_pre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/showblocks/images/block_pre.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/confused_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/confused_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/confused_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/confused_smile.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/regular_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/regular_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/regular_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/regular_smile.png -------------------------------------------------------------------------------- /ckeditor/plugins/showblocks/images/block_address.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/showblocks/images/block_address.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/embaressed_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/embaressed_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/embarrassed_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/embarrassed_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/embarrassed_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/embarrassed_smile.png -------------------------------------------------------------------------------- /fast-unsubscribe/assets/fonts/JLSSpaceGothicR_NC.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/fonts/JLSSpaceGothicR_NC.otf -------------------------------------------------------------------------------- /logout.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png -------------------------------------------------------------------------------- /ckeditor/plugins/showblocks/images/block_blockquote.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/showblocks/images/block_blockquote.png -------------------------------------------------------------------------------- /ckeditor/plugins/templates/templates/images/template1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/templates/templates/images/template1.gif -------------------------------------------------------------------------------- /ckeditor/plugins/templates/templates/images/template2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/templates/templates/images/template2.gif -------------------------------------------------------------------------------- /ckeditor/plugins/templates/templates/images/template3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/templates/templates/images/template3.gif -------------------------------------------------------------------------------- /fast-unsubscribe/bootstrap2/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/bootstrap2/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.gif -------------------------------------------------------------------------------- /ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/plugins/smiley/images/whatchutalkingabout_smile.png -------------------------------------------------------------------------------- /fast-unsubscribe/assets/fonts/the-fontry_jls-data-gothic.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/fonts/the-fontry_jls-data-gothic.zip -------------------------------------------------------------------------------- /fast-unsubscribe/bootstrap2/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/bootstrap2/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | mass-emailer-sendy 2 | ================== 3 | 4 | A customized installation of http://sendy.co/ that shall be used by AAP to send out emails to a larger audience of subscribed supporters. 5 | -------------------------------------------------------------------------------- /ckeditor/plugins/dialog/dialogDefinition.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | -------------------------------------------------------------------------------- /ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.fla -------------------------------------------------------------------------------- /ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/ckeditor/samples/plugins/htmlwriter/assets/outputforflash/outputforflash.swf -------------------------------------------------------------------------------- /fast-unsubscribe/assets/fonts/the-fontry_jls-data-gothic/JLSDataGothicC_NC.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/fonts/the-fontry_jls-data-gothic/JLSDataGothicC_NC.otf -------------------------------------------------------------------------------- /fast-unsubscribe/assets/fonts/the-fontry_jls-data-gothic/JLSDataGothicR_NC.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/fonts/the-fontry_jls-data-gothic/JLSDataGothicR_NC.otf -------------------------------------------------------------------------------- /fast-unsubscribe/assets/fonts/the-fontry_jls-data-gothic/JLSSpaceGothicC_NC.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/fonts/the-fontry_jls-data-gothic/JLSSpaceGothicC_NC.otf -------------------------------------------------------------------------------- /fast-unsubscribe/assets/fonts/the-fontry_jls-data-gothic/JLSSpaceGothicR_NC.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AamAadmiParty/mass-emailer-sendy/HEAD/fast-unsubscribe/assets/fonts/the-fontry_jls-data-gothic/JLSSpaceGothicR_NC.otf -------------------------------------------------------------------------------- /ckeditor/plugins/preview/preview.html: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /css/print.css: -------------------------------------------------------------------------------- 1 | .sidebar-nav, .navbar-fixed-top{ 2 | display: none; 3 | } 4 | .label, .badge{ 5 | color: black; 6 | background: white; 7 | text-shadow: none; 8 | } 9 | .well{ 10 | border: 1px solid #858585; 11 | box-shadow: none; 12 | } -------------------------------------------------------------------------------- /fast-unsubscribe/tablestructure.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE `feedback` ( 2 | `id` INT NOT NULL AUTO_INCREMENT , 3 | `name` VARCHAR( 100 ) NOT NULL , 4 | `email` VARCHAR( 100 ) NOT NULL , 5 | `feedback` TEXT NOT NULL , 6 | PRIMARY KEY ( `id` ) 7 | ) ENGINE = MYISAM ; -------------------------------------------------------------------------------- /fast-unsubscribe/assets/css/customcss.css: -------------------------------------------------------------------------------- 1 | #loading-indicator { 2 | position: absolute; 3 | bottom: 40px; 4 | right: 185px; 5 | } 6 | html, 7 | body { 8 | margin:0; 9 | padding:0; 10 | 11 | padding-top: 30px; 12 | } 13 | #main-content { 14 | padding:10px; 15 | padding-bottom:120px; /* Height of the footer element */ 16 | } 17 | -------------------------------------------------------------------------------- /ckeditor/config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | CKEDITOR.editorConfig = function( config ) { 7 | // Define changes to default configuration here. For example: 8 | // config.language = 'fr'; 9 | // config.uiColor = '#AADC6E'; 10 | }; 11 | -------------------------------------------------------------------------------- /includes/subscribers/delete.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /includes/ares/toggle-wysiwyg.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /includes/helpers/locale.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /includes/create/toggle-wysiwyg.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /includes/ares/delete-email.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /js/lists/editor.js: -------------------------------------------------------------------------------- 1 | $(document).ready( 2 | function() 3 | { 4 | $('#thankyou_message, #goodbye_message, #confirmation_email').redactor({ 5 | autoresize: true, 6 | imageUpload: 'includes/create/upload.php', 7 | convertDivs: false, 8 | convertLinks: false, 9 | overlay: false, 10 | minHeight: 200, 11 | cleanup: false, 12 | iframe: true, 13 | fullpage: true, 14 | plugins: ['fontcolor'], 15 | buttons: ['html', '|', 'bold', 'italic', 'deleted', 'formatting', '|', 'link', 'image', 'file', 'table', '|', 'unorderedlist', 'orderedlist', 'outdent', 'indent', 'alignment', '|', 'horizontalrule'] 16 | }); 17 | } 18 | ); -------------------------------------------------------------------------------- /fast-unsubscribe/config.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /includes/ares/delete-attachment.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /includes/create/delete-attachment.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /includes/login/auth.php: -------------------------------------------------------------------------------- 1 | window.location = "'.get_app_info('path').'/login";'; 15 | else 16 | echo ''; 17 | exit; 18 | } 19 | ?> -------------------------------------------------------------------------------- /fast-unsubscribe/Mail-1.2.0/tests/validateQuotedString.php: -------------------------------------------------------------------------------- 1 | , postmaster@example.com, root'; 4 | // $address_string = "Joe Doe from Somewhere , postmaster@example.com, root"; 5 | echo $address_string . "\n"; 6 | 7 | $address_array = Mail_RFC822::parseAddressList($address_string, "example.com"); 8 | if (!is_array($address_array) || count($address_array) < 1) { 9 | die("something is wrong\n"); 10 | } 11 | 12 | foreach ($address_array as $val) { 13 | echo "mailbox : " . $val->mailbox . "\n"; 14 | echo "host : " . $val->host . "\n"; 15 | echo "personal: " . $val->personal . "\n"; 16 | } 17 | print_r($address_array); 18 | -------------------------------------------------------------------------------- /includes/subscribers/import-add.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 23 | -------------------------------------------------------------------------------- /fast-unsubscribe/Mail-1.2.0/tests/13659.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Mail: Test for bug #13659 3 | --FILE-- 4 | (test)'; 11 | $result = Mail_RFC822::parseAddressList($address, 'anydomain.com', TRUE); 12 | 13 | if (!PEAR::isError($result) && is_array($result) && is_object($result[0])) 14 | if ($result[0]->personal == '"Test Student"' && 15 | $result[0]->mailbox == "test" && 16 | $result[0]->host == "mydomain.com" && 17 | is_array($result[0]->comment) && $result[0]->comment[0] == 'test') 18 | { 19 | print("OK"); 20 | } 21 | 22 | 23 | ?> 24 | --EXPECT-- 25 | OK 26 | -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | ErrorDocument 404 "[404 error] If you're seeing this error after install, check this thread on our forum for the fix: https://sendy.co/forum/discussion/5/404-error-after-install/p1" 2 | 3 | Options +FollowSymLinks 4 | Options -Multiviews 5 | 6 | RewriteEngine On 7 | RewriteBase /sendy 8 | RewriteCond %{SCRIPT_FILENAME} !-d 9 | RewriteCond %{SCRIPT_FILENAME} !-f 10 | RewriteRule ^([a-zA-Z0-9-]+)$ $1.php [L] 11 | 12 | # Link tracker 13 | RewriteRule ^l/([a-zA-Z0-9/]+)$ l.php?i=$1 [L] 14 | 15 | # Open tracker 16 | RewriteRule ^t/([a-zA-Z0-9/]+)$ t.php?i=$1 [L] 17 | 18 | # Web version 19 | RewriteRule ^w/([a-zA-Z0-9/]+)$ w.php?i=$1 [L] 20 | 21 | # unsubscribe 22 | RewriteRule ^unsubscribe/(.*)$ unsubscribe.php?i=$1 [L] 23 | 24 | # subscribe 25 | RewriteRule ^subscribe/(.*)$ subscribe.php?i=$1 [L] 26 | -------------------------------------------------------------------------------- /includes/create/upload.php: -------------------------------------------------------------------------------- 1 | APP_PATH.'/uploads/'.$time.'.'.$extension 23 | ); 24 | echo stripslashes(json_encode($array)); 25 | } 26 | else exit; 27 | ?> -------------------------------------------------------------------------------- /includes/campaigns/delete.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /includes/app/progress.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | ('.round($percentage).'%) '; 25 | ?> -------------------------------------------------------------------------------- /ckeditor/plugins/specialchar/dialogs/lang/_translationstatus.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 2 | For licensing, see LICENSE.md or http://ckeditor.com/license 3 | 4 | cs.js Found: 118 Missing: 0 5 | cy.js Found: 118 Missing: 0 6 | de.js Found: 118 Missing: 0 7 | el.js Found: 16 Missing: 102 8 | eo.js Found: 118 Missing: 0 9 | et.js Found: 31 Missing: 87 10 | fa.js Found: 24 Missing: 94 11 | fi.js Found: 23 Missing: 95 12 | fr.js Found: 118 Missing: 0 13 | hr.js Found: 23 Missing: 95 14 | it.js Found: 118 Missing: 0 15 | nb.js Found: 118 Missing: 0 16 | nl.js Found: 118 Missing: 0 17 | no.js Found: 118 Missing: 0 18 | tr.js Found: 118 Missing: 0 19 | ug.js Found: 39 Missing: 79 20 | zh-cn.js Found: 118 Missing: 0 21 | -------------------------------------------------------------------------------- /search-and-edit-save.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /fast-unsubscribe/Mail-1.2.0/tests/smtp_error.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Mail: SMTP Error Reporting 3 | --SKIPIF-- 4 | packageExists('Net_SMTP')) die("skip\n"); 10 | --FILE-- 11 | 'bogus.host.tld'); 16 | 17 | /* Create our SMTP-based mailer object. */ 18 | $mailer = &Mail::factory('smtp', $params); 19 | 20 | /* Attempt to send an empty message in order to trigger an error. */ 21 | $e = $mailer->send(array(), array(), ''); 22 | if (is_a($e, 'PEAR_Error')) { 23 | die($e->getMessage() . "\n"); 24 | } 25 | 26 | --EXPECT-- 27 | Failed to connect to bogus.host.tld:25 [SMTP: Failed to connect socket: (code: -1, response: )] 28 | -------------------------------------------------------------------------------- /includes/subscribers/unsubscribe.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /ckeditor/samples/sample_posteddata.php: -------------------------------------------------------------------------------- 1 |
 2 | 
 3 | -------------------------------------------------------------------------------------------
 4 |   CKEditor - Posted Data
 5 | 
 6 |   We are sorry, but your Web server does not support the PHP language used in this script.
 7 | 
 8 |   Please note that CKEditor can be used with any other server-side language than just PHP.
 9 |   To save the content created with CKEditor you need to read the POST data on the server
10 |   side and write it to a file or the database.
11 | 
12 |   Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
13 |   For licensing, see LICENSE.md or http://ckeditor.com/license
14 | -------------------------------------------------------------------------------------------
15 | 
16 | 
*/ include "assets/posteddata.php"; ?> 17 | -------------------------------------------------------------------------------- /includes/footer.php: -------------------------------------------------------------------------------- 1 |
2 | 3 | 18 |
19 | 20 | -------------------------------------------------------------------------------- /includes/subscribers/line-delete.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | -------------------------------------------------------------------------------- /includes/subscribers/line-unsubscribe-from-all-lists.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | -------------------------------------------------------------------------------- /includes/subscribers/line-unsubscribe.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 32 | -------------------------------------------------------------------------------- /ckeditor/plugins/a11yhelp/dialogs/lang/_translationstatus.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 2 | For licensing, see LICENSE.md or http://ckeditor.com/license 3 | 4 | cs.js Found: 30 Missing: 0 5 | cy.js Found: 30 Missing: 0 6 | da.js Found: 12 Missing: 18 7 | de.js Found: 30 Missing: 0 8 | el.js Found: 25 Missing: 5 9 | eo.js Found: 30 Missing: 0 10 | fa.js Found: 30 Missing: 0 11 | fi.js Found: 30 Missing: 0 12 | fr.js Found: 30 Missing: 0 13 | gu.js Found: 12 Missing: 18 14 | he.js Found: 30 Missing: 0 15 | it.js Found: 30 Missing: 0 16 | mk.js Found: 5 Missing: 25 17 | nb.js Found: 30 Missing: 0 18 | nl.js Found: 30 Missing: 0 19 | no.js Found: 30 Missing: 0 20 | pt-br.js Found: 30 Missing: 0 21 | ro.js Found: 6 Missing: 24 22 | tr.js Found: 30 Missing: 0 23 | ug.js Found: 27 Missing: 3 24 | vi.js Found: 6 Missing: 24 25 | zh-cn.js Found: 30 Missing: 0 26 | -------------------------------------------------------------------------------- /includes/ares/delete-ares.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0) 13 | { 14 | while($row = mysqli_fetch_array($r3)) 15 | { 16 | $ares_email_id = $row['id']; 17 | 18 | if(file_exists('../../uploads/attachments/a'.$ares_email_id)) 19 | { 20 | $files = glob('../../uploads/attachments/a'.$ares_email_id.'/*'); // get all file names 21 | foreach($files as $file){ 22 | unlink($file); 23 | } 24 | rmdir('../../uploads/attachments/a'.$ares_email_id); 25 | } 26 | } 27 | } 28 | 29 | $q2 = 'DELETE FROM ares_emails WHERE ares_id = '.$id; 30 | $r2 = mysqli_query($mysqli, $q2); 31 | if ($r2) 32 | { 33 | echo true; 34 | } 35 | } 36 | 37 | ?> -------------------------------------------------------------------------------- /ckeditor/plugins/scayt/README.md: -------------------------------------------------------------------------------- 1 | CKEditor SCAYT Plugin 2 | ===================== 3 | 4 | This plugin brings Spell Check As You Type (SCAYT) into CKEditor. 5 | 6 | SCAYT is a "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. 7 | 8 | Installation 9 | ------------ 10 | 11 | 1. Clone/copy this repository contents in a new "plugins/scayt" folder in your CKEditor installation. 12 | 2. Enable the "scayt" plugin in the CKEditor configuration file (config.js): 13 | 14 | config.extraPlugins = 'scayt'; 15 | 16 | That's all. SCAYT will appear on the editor toolbar and will be ready to use. 17 | 18 | License 19 | ------- 20 | 21 | Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). 22 | 23 | See LICENSE.md for more information. 24 | 25 | Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). 26 | -------------------------------------------------------------------------------- /ckeditor/plugins/wsc/README.md: -------------------------------------------------------------------------------- 1 | CKEditor WebSpellChecker Plugin 2 | =============================== 3 | 4 | This plugin brings Web Spell Checker (WSC) into CKEditor. 5 | 6 | WSC is "installation-less", using the web-services of [WebSpellChecker.net](http://www.webspellchecker.net/). It's an out of the box solution. 7 | 8 | Installation 9 | ------------ 10 | 11 | 1. Clone/copy this repository contents in a new "plugins/wsc" folder in your CKEditor installation. 12 | 2. Enable the "wsc" plugin in the CKEditor configuration file (config.js): 13 | 14 | config.extraPlugins = 'wsc'; 15 | 16 | That's all. WSC will appear on the editor toolbar and will be ready to use. 17 | 18 | License 19 | ------- 20 | 21 | Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). 22 | 23 | See LICENSE.md for more information. 24 | 25 | Developed in cooperation with [WebSpellChecker.net](http://www.webspellchecker.net/). 26 | -------------------------------------------------------------------------------- /reset-cron.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
6 |


7 | '; 22 | echo _('Do you want to reset cron setup so that you can view cron setup instructions again?'); 23 | echo ' 24 |

25 | '; 26 | } 27 | ?> 28 |
29 |
30 | 31 | -------------------------------------------------------------------------------- /clear-queue.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 |
6 |


7 | '; 22 | echo _('Please make sure all currently sending campaigns are completed first before doing this.').'

'._('Do you want to clear the queue table?'); 23 | echo ' 24 |

25 | '; 26 | } 27 | ?> 28 |
29 |
30 | 31 | -------------------------------------------------------------------------------- /includes/subscribers/manual-unsubscribe.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /ckeditor/samples/plugins/dialog/assets/my_dialog.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | CKEDITOR.dialog.add( 'myDialog', function( editor ) { 7 | return { 8 | title: 'My Dialog', 9 | minWidth: 400, 10 | minHeight: 200, 11 | contents: [ 12 | { 13 | id: 'tab1', 14 | label: 'First Tab', 15 | title: 'First Tab', 16 | elements: [ 17 | { 18 | id: 'input1', 19 | type: 'text', 20 | label: 'Text Field' 21 | }, 22 | { 23 | id: 'select1', 24 | type: 'select', 25 | label: 'Select Field', 26 | items: [ 27 | [ 'option1', 'value1' ], 28 | [ 'option2', 'value2' ] 29 | ] 30 | } 31 | ] 32 | }, 33 | { 34 | id: 'tab2', 35 | label: 'Second Tab', 36 | title: 'Second Tab', 37 | elements: [ 38 | { 39 | id: 'button1', 40 | type: 'button', 41 | label: 'Button Field' 42 | } 43 | ] 44 | } 45 | ] 46 | }; 47 | }); 48 | 49 | -------------------------------------------------------------------------------- /fast-unsubscribe/Mail-1.2.0/tests/9137.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Mail: Test for bug #9137 3 | --FILE-- 4 | 'John Doe', 'email' => 'test@example.com'), 11 | array('name' => 'John Doe\\', 'email' => 'test@example.com'), 12 | array('name' => 'John "Doe', 'email' => 'test@example.com'), 13 | array('name' => 'John "Doe\\', 'email' => 'test@example.com'), 14 | ); 15 | 16 | for ($i = 0; $i < count($addresses); $i++) { 17 | // construct the address 18 | $address = "\"" . addslashes($addresses[$i]['name']) . "\" ". 19 | "<".$addresses[$i]['email'].">"; 20 | 21 | $parsedAddresses = Mail_RFC822::parseAddressList($address); 22 | if (is_a($parsedAddresses, 'PEAR_Error')) { 23 | echo $address." :: Failed to validate\n"; 24 | } else { 25 | echo $address." :: Parsed\n"; 26 | } 27 | } 28 | 29 | --EXPECT-- 30 | "John Doe" :: Parsed 31 | "John Doe\\" :: Parsed 32 | "John \"Doe" :: Parsed 33 | "John \"Doe\\" :: Parsed 34 | -------------------------------------------------------------------------------- /includes/settings/main.php: -------------------------------------------------------------------------------- 1 | 0) 14 | { 15 | while($row = mysqli_fetch_array($r)) 16 | { 17 | return $row[$val]; 18 | } 19 | } 20 | } 21 | 22 | //------------------------------------------------------// 23 | function get_saved_data($val) 24 | //------------------------------------------------------// 25 | { 26 | global $mysqli; 27 | $q = 'SELECT '.$val.' FROM apps WHERE id = "'.get_app_info('restricted_to_app').'" AND userID = '.get_app_info('main_userID'); 28 | $r = mysqli_query($mysqli, $q); 29 | if ($r && mysqli_num_rows($r) > 0) 30 | { 31 | while($row = mysqli_fetch_array($r)) 32 | { 33 | return $row[$val]; 34 | } 35 | } 36 | } 37 | ?> -------------------------------------------------------------------------------- /ckeditor/samples/assets/uilanguages/languages.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | var CKEDITOR_LANGS=function(){var c={af:"Afrikaans",ar:"Arabic",bg:"Bulgarian",bn:"Bengali/Bangla",bs:"Bosnian",ca:"Catalan",cs:"Czech",cy:"Welsh",da:"Danish",de:"German",el:"Greek",en:"English","en-au":"English (Australia)","en-ca":"English (Canadian)","en-gb":"English (United Kingdom)",eo:"Esperanto",es:"Spanish",et:"Estonian",eu:"Basque",fa:"Persian",fi:"Finnish",fo:"Faroese",fr:"French","fr-ca":"French (Canada)",gl:"Galician",gu:"Gujarati",he:"Hebrew",hi:"Hindi",hr:"Croatian",hu:"Hungarian",id:"Indonesian", 6 | is:"Icelandic",it:"Italian",ja:"Japanese",ka:"Georgian",km:"Khmer",ko:"Korean",ku:"Kurdish",lt:"Lithuanian",lv:"Latvian",mk:"Macedonian",mn:"Mongolian",ms:"Malay",nb:"Norwegian Bokmal",nl:"Dutch",no:"Norwegian",pl:"Polish",pt:"Portuguese (Portugal)","pt-br":"Portuguese (Brazil)",ro:"Romanian",ru:"Russian",si:"Sinhala",sk:"Slovak",sq:"Albanian",sl:"Slovenian",sr:"Serbian (Cyrillic)","sr-latn":"Serbian (Latin)",sv:"Swedish",th:"Thai",tr:"Turkish",ug:"Uighur",uk:"Ukrainian",vi:"Vietnamese",zh:"Chinese Traditional", 7 | "zh-cn":"Chinese Simplified"},b=[],a;for(a in CKEDITOR.lang.languages)b.push({code:a,name:c[a]||a});b.sort(function(a,b){return a.name -------------------------------------------------------------------------------- /includes/create/send-later.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 34 | -------------------------------------------------------------------------------- /fast-unsubscribe/Mail-1.2.0/tests/9137_2.phpt: -------------------------------------------------------------------------------- 1 | --TEST-- 2 | Mail: Test for bug #9137, take 2 3 | --FILE-- 4 | '"John Doe" '), 11 | array('raw' => '"John Doe' . chr(92) . '" '), 12 | array('raw' => '"John Doe' . chr(92) . chr(92) . '" '), 13 | array('raw' => '"John Doe' . chr(92) . chr(92) . chr(92) . '" '), 14 | array('raw' => '"John Doe' . chr(92) . chr(92) . chr(92) . chr(92) . '" '), 15 | array('raw' => '"John Doe '), 16 | ); 17 | 18 | for ($i = 0; $i < count($addresses); $i++) { 19 | // construct the address 20 | $address = $addresses[$i]['raw']; 21 | $parsedAddresses = Mail_RFC822::parseAddressList($address); 22 | if (PEAR::isError($parsedAddresses)) { 23 | echo $address." :: Failed to validate\n"; 24 | } else { 25 | echo $address." :: Parsed\n"; 26 | } 27 | } 28 | 29 | --EXPECT-- 30 | "John Doe" :: Parsed 31 | "John Doe\" :: Failed to validate 32 | "John Doe\\" :: Parsed 33 | "John Doe\\\" :: Failed to validate 34 | "John Doe\\\\" :: Parsed 35 | "John Doe :: Failed to validate 36 | -------------------------------------------------------------------------------- /includes/list/delete.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0) 10 | { 11 | while($row = mysqli_fetch_array($r)) 12 | { 13 | $ares_id = $row['id']; 14 | 15 | $q2 = 'DELETE FROM ares_emails WHERE ares_id = '.$ares_id; 16 | mysqli_query($mysqli, $q2); 17 | } 18 | } 19 | //delete autoresponder 20 | $q = 'DELETE FROM ares WHERE list = '.$list_id; 21 | mysqli_query($mysqli, $q); 22 | 23 | //delete list and its subscribers 24 | $q = 'DELETE FROM lists WHERE id = '.$list_id.' AND userID = '.get_app_info('main_userID'); 25 | $r = mysqli_query($mysqli, $q); 26 | if ($r) 27 | { 28 | $q2 = 'DELETE FROM subscribers WHERE list = '.$list_id; 29 | $r2 = mysqli_query($mysqli, $q2); 30 | if ($r2) 31 | { 32 | //delete CSV file (in case it was uploaded and waiting for import by cron) 33 | $server_path_array = explode('delete.php', $_SERVER['SCRIPT_FILENAME']); 34 | $server_path = str_replace('includes/list/', '', $server_path_array[0]).'uploads/csvs/'; 35 | 36 | $filename = $server_path.get_app_info('main_userID').'-'.$list_id.'.csv'; 37 | 38 | if(file_exists($filename)) unlink($filename); 39 | 40 | echo true; 41 | } 42 | } 43 | ?> -------------------------------------------------------------------------------- /ckeditor/plugins/templates/templates/default.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.addTemplates("default",{imagesPath:CKEDITOR.getUrl(CKEDITOR.plugins.getPath("templates")+"templates/images/"),templates:[{title:"Image and Title",image:"template1.gif",description:"One main image with a title and text that surround the image.",html:'

Type the title here

Type the text here

'},{title:"Strange Template",image:"template2.gif",description:"A template that defines two colums, each one with a title, and some text.", 6 | html:'

Title 1

Title 2

Text 1Text 2

More text goes here.

'},{title:"Text and Table",image:"template3.gif",description:"A title with some text and a table.",html:'

Title goes here

Table title
   
   
   

Type the text here

'}]}); -------------------------------------------------------------------------------- /includes/app/download-errors-csv.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0) 29 | { 30 | while($row = mysqli_fetch_array($r2)) 31 | { 32 | $name = $row['name']; 33 | $email = $row['email']; 34 | $lines .= $name.','.$email.','.$error_code."\n"; 35 | } 36 | } 37 | } 38 | 39 | //Export 40 | $lines = str_replace("\r" , "" , $lines); 41 | if ( $lines == "" ) 42 | { 43 | $lines = "\n(0) Records Found!\n"; 44 | } 45 | 46 | header("Content-type: application/octet-stream"); 47 | header("Content-Disposition: attachment; filename=$filename"); 48 | header("Pragma: no-cache"); 49 | header("Expires: 0"); 50 | print "$lines"; 51 | ?> -------------------------------------------------------------------------------- /ckeditor/README.md: -------------------------------------------------------------------------------- 1 | CKEditor 4 2 | ========== 3 | 4 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 5 | http://ckeditor.com - See LICENSE.md for license information. 6 | 7 | CKEditor is a text editor to be used inside web pages. It's not a replacement 8 | for desktop text editors like Word or OpenOffice, but a component to be used as 9 | part of web applications and websites. 10 | 11 | ## Documentation 12 | 13 | The full editor documentation is available online at the following address: 14 | http://docs.ckeditor.com 15 | 16 | ## Installation 17 | 18 | Installing CKEditor is an easy task. Just follow these simple steps: 19 | 20 | 1. **Download** the latest version from the CKEditor website: 21 | http://ckeditor.com. You should have already completed this step, but be 22 | sure you have the very latest version. 23 | 2. **Extract** (decompress) the downloaded file into the root of your website. 24 | 25 | **Note:** CKEditor is by default installed in the `ckeditor` folder. You can 26 | place the files in whichever you want though. 27 | 28 | ## Checking Your Installation 29 | 30 | The editor comes with a few sample pages that can be used to verify that 31 | installation proceeded properly. Take a look at the `samples` directory. 32 | 33 | To test your installation, just call the following page at your website: 34 | 35 | http:////samples/index.html 36 | 37 | For example: 38 | 39 | http://www.example.com/ckeditor/samples/index.html 40 | -------------------------------------------------------------------------------- /ckeditor/plugins/about/dialogs/about.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("about",function(a){var a=a.lang.about,b=CKEDITOR.plugins.get("about").path+"dialogs/"+(CKEDITOR.env.hidpi?"hidpi/":"")+"logo_ckeditor.png";return{title:CKEDITOR.env.ie?a.dlgTitle:a.title,minWidth:390,minHeight:230,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[{type:"html",html:'

CKEditor '+CKEDITOR.version+" (revision "+CKEDITOR.revision+')
http://ckeditor.com

'+a.help.replace("$1",''+ 7 | a.userGuide+"")+"

"+a.moreInfo+'
http://ckeditor.com/about/license

'+a.copy.replace("$1",'CKSource - Frederico Knabben')+"

"}]}],buttons:[CKEDITOR.dialog.cancelButton]}}); -------------------------------------------------------------------------------- /includes/app/generate-password.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0) 22 | { 23 | //update password 24 | $q = 'UPDATE login SET password = "'.$pass_encrypted.'" WHERE app = '.$app; 25 | $r = mysqli_query($mysqli, $q); 26 | if ($r) echo $password; 27 | } 28 | else 29 | { 30 | //insert new record 31 | $q = 'INSERT INTO login (name, company, username, password, tied_to, app) VALUES ("'.$name.'", "'.$company.'", "'.$username.'", "'.$pass_encrypted.'", '.get_app_info('userID').', '.$app.')'; 32 | $r = mysqli_query($mysqli, $q); 33 | if ($r) echo $password; 34 | } 35 | ?> -------------------------------------------------------------------------------- /ckeditor/plugins/wsc/LICENSE.md: -------------------------------------------------------------------------------- 1 | Software License Agreement 2 | ========================== 3 | 4 | **CKEditor WSC Plugin** 5 | Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. 6 | 7 | Licensed under the terms of any of the following licenses at your choice: 8 | 9 | * GNU General Public License Version 2 or later (the "GPL"): 10 | http://www.gnu.org/licenses/gpl.html 11 | 12 | * GNU Lesser General Public License Version 2.1 or later (the "LGPL"): 13 | http://www.gnu.org/licenses/lgpl.html 14 | 15 | * Mozilla Public License Version 1.1 or later (the "MPL"): 16 | http://www.mozilla.org/MPL/MPL-1.1.html 17 | 18 | You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. 19 | 20 | Sources of Intellectual Property Included in this plugin 21 | -------------------------------------------------------- 22 | 23 | Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. 24 | 25 | Trademarks 26 | ---------- 27 | 28 | CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. 29 | -------------------------------------------------------------------------------- /ckeditor/plugins/scayt/LICENSE.md: -------------------------------------------------------------------------------- 1 | Software License Agreement 2 | ========================== 3 | 4 | **CKEditor SCAYT Plugin** 5 | Copyright © 2012, [CKSource](http://cksource.com) - Frederico Knabben. All rights reserved. 6 | 7 | Licensed under the terms of any of the following licenses at your choice: 8 | 9 | * GNU General Public License Version 2 or later (the "GPL"): 10 | http://www.gnu.org/licenses/gpl.html 11 | 12 | * GNU Lesser General Public License Version 2.1 or later (the "LGPL"): 13 | http://www.gnu.org/licenses/lgpl.html 14 | 15 | * Mozilla Public License Version 1.1 or later (the "MPL"): 16 | http://www.mozilla.org/MPL/MPL-1.1.html 17 | 18 | You are not required to, but if you want to explicitly declare the license you have chosen to be bound to when using, reproducing, modifying and distributing this software, just include a text file titled "legal.txt" in your version of this software, indicating your license choice. 19 | 20 | Sources of Intellectual Property Included in this plugin 21 | -------------------------------------------------------- 22 | 23 | Where not otherwise indicated, all plugin content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, the plugin will incorporate work done by developers outside of CKSource with their express permission. 24 | 25 | Trademarks 26 | ---------- 27 | 28 | CKEditor is a trademark of CKSource - Frederico Knabben. All other brand and product names are trademarks, registered trademarks or service marks of their respective holders. 29 | -------------------------------------------------------------------------------- /ckeditor/plugins/a11yhelp/dialogs/lang/zh-cn.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.plugins.setLang("a11yhelp","zh-cn",{title:"辅助功能说明",contents:"帮助内容。要关闭此对话框请按 ESC 键。",legend:[{name:"常规",items:[{name:"编辑器工具栏",legend:"按 ${toolbarFocus} 导航到工具栏,使用 TAB 键和 SHIFT+TAB 组合键移动到上一个和下一个工具栏组。使用左右箭头键移动到上一个和下一个工具栏按钮。按空格键或回车键以选中工具栏按钮。"},{name:"编辑器对话框",legend:"在对话框内,TAB 键移动到下一个字段,SHIFT + TAB 组合键移动到上一个字段,ENTER 键提交对话框,ESC 键取消对话框。对于有多选项卡的对话框,用ALT + F10来移到选项卡列表。然后用 TAB 键或者向右箭头来移动到下一个选项卡;SHIFT + TAB 组合键或者向左箭头移动到上一个选项卡。用 SPACE 键或者 ENTER 键选择选项卡。"},{name:"编辑器上下文菜单",legend:"用 ${contextMenu} 或者“应用程序键”打开上下文菜单。然后用 TAB 键或者下箭头键来移动到下一个菜单项;SHIFT + TAB 组合键或者上箭头键移动到上一个菜单项。用 SPACE 键或者 ENTER 键选择菜单项。用 SPACE 键,ENTER 键或者右箭头键打开子菜单。返回菜单用 ESC 键或者左箭头键。用 ESC 键关闭上下文菜单。"}, 6 | {name:"编辑器列表框",legend:"在列表框中,移到下一列表项用 TAB 键或者下箭头键。移到上一列表项用SHIFT + TAB 组合键或者上箭头键,用 SPACE 键或者 ENTER 键选择列表项。用 ESC 键收起列表框。"},{name:"编辑器元素路径栏",legend:"按 ${elementsPathFocus} 以导航到元素路径栏,使用 TAB 键或右箭头键选择下一个元素,使用 SHIFT+TAB 组合键或左箭头键选择上一个元素,按空格键或回车键以选定编辑器里的元素。"}]},{name:"命令",items:[{name:" 撤消命令",legend:"按 ${undo}"},{name:" 重做命令",legend:"按 ${redo}"},{name:" 加粗命令",legend:"按 ${bold}"},{name:" 倾斜命令",legend:"按 ${italic}"},{name:" 下划线命令",legend:"按 ${underline}"},{name:" 链接命令",legend:"按 ${link}"},{name:" 工具栏折叠命令",legend:"按 ${toolbarCollapse}"}, 7 | {name:"访问前一个焦点区域的命令",legend:"按 ${accessPreviousSpace} 访问^符号前最近的不可访问的焦点区域,例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"访问下一个焦点区域命令",legend:"按 ${accessNextSpace} 以访问^符号后最近的不可访问的焦点区域。例如:两个相邻的 HR 元素。重复此组合按键可以到达远处的焦点区域。"},{name:"辅助功能帮助",legend:"按 ${a11yHelp}"}]}]}); -------------------------------------------------------------------------------- /ckeditor/plugins/wsc/dialogs/wsc.css: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.html or http://ckeditor.com/license 4 | */ 5 | 6 | html, body 7 | { 8 | background-color: transparent; 9 | margin: 0px; 10 | padding: 0px; 11 | } 12 | 13 | body 14 | { 15 | padding: 10px; 16 | } 17 | 18 | body, td, input, select, textarea 19 | { 20 | font-size: 11px; 21 | font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; 22 | } 23 | 24 | .midtext 25 | { 26 | padding:0px; 27 | margin:10px; 28 | } 29 | 30 | .midtext p 31 | { 32 | padding:0px; 33 | margin:10px; 34 | } 35 | 36 | .Button 37 | { 38 | border: #737357 1px solid; 39 | color: #3b3b1f; 40 | background-color: #c7c78f; 41 | } 42 | 43 | .PopupTabArea 44 | { 45 | color: #737357; 46 | background-color: #e3e3c7; 47 | } 48 | 49 | .PopupTitleBorder 50 | { 51 | border-bottom: #d5d59d 1px solid; 52 | } 53 | .PopupTabEmptyArea 54 | { 55 | padding-left: 10px; 56 | border-bottom: #d5d59d 1px solid; 57 | } 58 | 59 | .PopupTab, .PopupTabSelected 60 | { 61 | border-right: #d5d59d 1px solid; 62 | border-top: #d5d59d 1px solid; 63 | border-left: #d5d59d 1px solid; 64 | padding: 3px 5px 3px 5px; 65 | color: #737357; 66 | } 67 | 68 | .PopupTab 69 | { 70 | margin-top: 1px; 71 | border-bottom: #d5d59d 1px solid; 72 | cursor: pointer; 73 | } 74 | 75 | .PopupTabSelected 76 | { 77 | font-weight: bold; 78 | cursor: default; 79 | padding-top: 4px; 80 | border-bottom: #f1f1e3 1px solid; 81 | background-color: #f1f1e3; 82 | } 83 | -------------------------------------------------------------------------------- /ckeditor/plugins/scayt/dialogs/toolbar.css: -------------------------------------------------------------------------------- 1 | a 2 | { 3 | text-decoration:none; 4 | padding: 2px 4px 4px 6px; 5 | display : block; 6 | border-width: 1px; 7 | border-style: solid; 8 | margin : 0px; 9 | } 10 | 11 | a.cke_scayt_toogle:hover, 12 | a.cke_scayt_toogle:focus, 13 | a.cke_scayt_toogle:active 14 | { 15 | border-color: #316ac5; 16 | background-color: #dff1ff; 17 | color : #000; 18 | cursor: pointer; 19 | margin : 0px; 20 | } 21 | a.cke_scayt_toogle { 22 | color : #316ac5; 23 | border-color: #fff; 24 | } 25 | .scayt_enabled a.cke_scayt_item { 26 | color : #316ac5; 27 | border-color: #fff; 28 | margin : 0px; 29 | } 30 | .scayt_disabled a.cke_scayt_item { 31 | color : gray; 32 | border-color : #fff; 33 | } 34 | .scayt_enabled a.cke_scayt_item:hover, 35 | .scayt_enabled a.cke_scayt_item:focus, 36 | .scayt_enabled a.cke_scayt_item:active 37 | { 38 | border-color: #316ac5; 39 | background-color: #dff1ff; 40 | color : #000; 41 | cursor: pointer; 42 | } 43 | .scayt_disabled a.cke_scayt_item:hover, 44 | .scayt_disabled a.cke_scayt_item:focus, 45 | .scayt_disabled a.cke_scayt_item:active 46 | { 47 | border-color: gray; 48 | background-color: #dff1ff; 49 | color : gray; 50 | cursor: no-drop; 51 | } 52 | .cke_scayt_set_on, .cke_scayt_set_off 53 | { 54 | display: none; 55 | } 56 | .scayt_enabled .cke_scayt_set_on 57 | { 58 | display: none; 59 | } 60 | .scayt_disabled .cke_scayt_set_on 61 | { 62 | display: inline; 63 | } 64 | .scayt_disabled .cke_scayt_set_off 65 | { 66 | display: none; 67 | } 68 | .scayt_enabled .cke_scayt_set_off 69 | { 70 | display: inline; 71 | } 72 | -------------------------------------------------------------------------------- /includes/app/delete.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0) 10 | { 11 | while($row = mysqli_fetch_array($r)) 12 | { 13 | $campaign_id = stripslashes($row['id']); 14 | 15 | $q = 'DELETE FROM links WHERE campaign_id = '.$campaign_id; 16 | $r = mysqli_query($mysqli, $q); 17 | if ($r) 18 | { 19 | $q = 'DELETE FROM campaigns WHERE id = '.$campaign_id; 20 | $r = mysqli_query($mysqli, $q); 21 | if ($r) 22 | { 23 | //ok 24 | } 25 | } 26 | } 27 | } 28 | 29 | //delete subscribers 30 | $q = 'SELECT id FROM lists WHERE app = '.$id; 31 | $r = mysqli_query($mysqli, $q); 32 | if ($r && mysqli_num_rows($r) > 0) 33 | { 34 | while($row = mysqli_fetch_array($r)) 35 | { 36 | $list_id = stripslashes($row['id']); 37 | 38 | $q = 'DELETE FROM subscribers WHERE list = '.$list_id; 39 | $r = mysqli_query($mysqli, $q); 40 | if ($r) 41 | { 42 | $q = 'DELETE FROM lists WHERE id = '.$list_id; 43 | $r = mysqli_query($mysqli, $q); 44 | if ($r) 45 | { 46 | //ok 47 | } 48 | } 49 | } 50 | } 51 | 52 | //delete login 53 | $q = 'DELETE FROM login WHERE app = '.$id; 54 | $r = mysqli_query($mysqli, $q); 55 | if ($r) 56 | { 57 | echo true; 58 | } 59 | 60 | //delete app 61 | $q = 'DELETE FROM apps WHERE id = '.$id; 62 | $r = mysqli_query($mysqli, $q); 63 | if ($r) 64 | { 65 | echo true; 66 | } 67 | 68 | ?> -------------------------------------------------------------------------------- /ckeditor/plugins/a11yhelp/dialogs/lang/zh.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.plugins.setLang("a11yhelp","zh",{title:"輔助工具指南",contents:"說明內容。若要關閉此對話框請按「ESC」。",legend:[{name:"一般",items:[{name:"編輯器工具列",legend:"請按「${toolbarFocus}」以瀏覽工具列。\r\n利用「TAB」或「SHIFT+TAB」以便移動到下一個或前一個工具列群組。\r\n利用「→」或「←」以便移動到下一個或前一個工具列按鈕。\r\n請按下「空白鍵」或「ENTER」鍵啟動工具列按鈕。"},{name:"編輯器對話方塊",legend:"在對話框中,請按 TAB 鍵以便移動到下個欄位,請按 SHIFT + TAB 以便移動到前個欄位;請按 ENTER 以提交對話框資料,或按下 ESC 取消對話框。\r\n若是有多個頁框的對話框,請按 ALT + F10 以移動到頁框列表,並以 TAB 或是 → 方向鍵移動到下個頁框。以 SHIFT + TAB 或是 ← 方向鍵移動到前個頁框。按下 空白鍵 或是 ENTER 以選取頁框。"},{name:"編輯器內容功能表", 6 | legend:"請按下「${contextMenu}」或是「應用程式鍵」以開啟內容選單。以「TAB」或是「↓」鍵移動到下一個選單選項。以「SHIFT + TAB」或是「↑」鍵移動到上一個選單選項。按下「空白鍵」或是「ENTER」鍵以選取選單選項。以「空白鍵」或「ENTER」或「→」開啟目前選項之子選單。以「ESC」或「←」回到父選單。以「ESC」鍵關閉內容選單」。"},{name:"編輯器清單方塊",legend:"在列表中,請利用 TAB 或 ↓ 方向鍵以移動到下一個項目;或利用 SHIFT + TAB 或 ↑ 方向鍵移動到前一個項目。請按下 空白鍵 或是 ENTER 以選取項目。請按 ESC 關閉列表。"},{name:"編輯器元件路徑工具列",legend:"請按「${elementsPathFocus}」以瀏覽元素路徑工具列。\r\n利用「TAB」或「→」以便移動到下一個元素按鈕。\r\n利用「SHIFT+TAB」或「←」以便移動到前一個元素按鈕。\r\n請按下「空白鍵」或「ENTER」鍵選擇編輯器中的元素。"}]},{name:"命令",items:[{name:"復原命令", 7 | legend:"請按下「${undo}」"},{name:"重複命令",legend:"請按下「 ${redo}」"},{name:"粗體命令",legend:"請按下「${bold}」"},{name:"斜體",legend:"請按下「${italic}」"},{name:"底線命令",legend:"請按下「${underline}」"},{name:"連結",legend:"請按下「${link}」"},{name:"隱藏工具列",legend:"請按下「${toolbarCollapse}」"},{name:"存取前一個焦點空間命令",legend:"請按下 ${accessPreviousSpace} 以存取最近但無法靠近之插字符號前的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"存取下一個焦點空間命令",legend:"請按下 ${accessNextSpace} 以存取最近但無法靠近之插字符號後的焦點空間。舉例:二個相鄰的 HR 元素。\r\n重複按鍵以存取較遠的焦點空間。"},{name:"協助工具說明",legend:"請按下「${a11yHelp}」"}]}]}); -------------------------------------------------------------------------------- /ckeditor/samples/assets/posteddata.php: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 10 | 11 | Sample — CKEditor 12 | 13 | 14 | 15 |

16 | CKEditor — Posted Data 17 |

18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | $value ) 31 | { 32 | if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) ) 33 | continue; 34 | 35 | if ( get_magic_quotes_gpc() ) 36 | $value = htmlspecialchars( stripslashes((string)$value) ); 37 | else 38 | $value = htmlspecialchars( (string)$value ); 39 | ?> 40 | 41 | 42 | 43 | 44 | 48 |
Field NameValue
49 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /js/create/editor.js: -------------------------------------------------------------------------------- 1 | $(document).ready( 2 | function() 3 | { 4 | $('#html').redactor({ 5 | autoresize: true, 6 | imageUpload: 'includes/create/upload.php', 7 | convertDivs: false, 8 | convertLinks: false, 9 | overlay: false, 10 | minHeight: 600, 11 | cleanup: false, 12 | iframe: true, 13 | fullpage: true, 14 | plugins: ['fontcolor'], 15 | buttons: ['html', '|', 'bold', 'italic', 'deleted', 'formatting', '|', 'link', 'image', 'file', 'table', '|', 'unorderedlist', 'orderedlist', 'outdent', 'indent', 'alignment', '|', 'horizontalrule'], 16 | buttonsCustom: { 17 | tags: { 18 | title: "Insert tags", 19 | dropdown: { 20 | point1: { 21 | title: 'Insert unsubscribe tag', 22 | callback: function(obj, event, key){$('#html').insertHtml('Unsubscribe here');} 23 | }, 24 | point2: { 25 | title: 'Insert webversion tag', 26 | callback: function(obj, event, key){$('#html').insertHtml('View web version');} 27 | }, 28 | point3: { 29 | title: 'Insert name tag', 30 | callback: function(obj, event, key){$('#html').insertHtml('[Name,fallback=]');} 31 | }, 32 | point4: { 33 | title: 'Insert email tag', 34 | callback: function(obj, event, key){$('#html').insertHtml('[Email]');} 35 | } 36 | } 37 | } 38 | } 39 | }); 40 | } 41 | ); -------------------------------------------------------------------------------- /ckeditor/plugins/forms/dialogs/hiddenfield.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("hiddenfield",function(d){return{title:d.lang.forms.hidden.title,hiddenField:null,minWidth:350,minHeight:110,onShow:function(){delete this.hiddenField;var a=this.getParentEditor(),b=a.getSelection(),c=b.getSelectedElement();c&&(c.data("cke-real-element-type")&&"hiddenfield"==c.data("cke-real-element-type"))&&(this.hiddenField=c,c=a.restoreRealElement(this.hiddenField),this.setupContent(c),b.selectElement(this.hiddenField))},onOk:function(){var a=this.getValueOf("info","_cke_saved_name"); 6 | this.getValueOf("info","value");var b=this.getParentEditor(),a=CKEDITOR.env.ie&&!(8<=CKEDITOR.document.$.documentMode)?b.document.createElement(''):b.document.createElement("input");a.setAttribute("type","hidden");this.commitContent(a);a=b.createFakeElement(a,"cke_hidden","hiddenfield");this.hiddenField?(a.replace(this.hiddenField),b.getSelection().selectElement(a)):b.insertElement(a);return!0},contents:[{id:"info",label:d.lang.forms.hidden.title,title:d.lang.forms.hidden.title, 7 | elements:[{id:"_cke_saved_name",type:"text",label:d.lang.forms.hidden.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.setAttribute("name",this.getValue()):a.removeAttribute("name")}},{id:"value",type:"text",label:d.lang.forms.hidden.value,"default":"",accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){this.getValue()?a.setAttribute("value",this.getValue()): 8 | a.removeAttribute("value")}}]}]}}); -------------------------------------------------------------------------------- /fast-unsubscribe/assets/js/hash.js: -------------------------------------------------------------------------------- 1 | ( function(window, undefined) { 2 | "use strict"; 3 | 4 | var hash = (function() { 5 | 6 | var fromHash = function() { 7 | var params = window.location.hash ? window.location.hash.substr(1).split("&") : [], 8 | paramsObject = {}; 9 | 10 | for(var i = 0; i < params.length; i++) { 11 | var a = params[i].split("="); 12 | paramsObject[a[0]] = decodeURIComponent(a[1]); 13 | } 14 | return paramsObject; 15 | }; 16 | 17 | var toHash = function(params) { 18 | var str = []; 19 | for(var p in params) { 20 | str.push(p + "=" + encodeURIComponent(params[p])); 21 | } 22 | window.location.hash = str.join("&"); 23 | }; 24 | 25 | return { 26 | get: function(param) { 27 | var params = fromHash(); 28 | if (param) { 29 | return params[param]; 30 | } else { 31 | return params; 32 | } 33 | }, 34 | add: function(newParams) { 35 | var params = fromHash(); 36 | for (var p in newParams) { 37 | params[p] = newParams[p]; 38 | } 39 | toHash(params); 40 | }, 41 | remove: function(removeParams) { 42 | removeParams = (typeof(removeParams)=='string') ? [removeParams] : removeParams; 43 | var params = fromHash(); 44 | for (var i = 0; i < removeParams.length; i++) { 45 | delete params[removeParams[i]]; 46 | } 47 | toHash(params); 48 | }, 49 | clear: function() { 50 | toHash({}); 51 | } 52 | }; 53 | })(); 54 | 55 | window.hash = hash; 56 | })(window); -------------------------------------------------------------------------------- /ckeditor/plugins/forms/dialogs/button.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("button",function(b){function d(a){var b=this.getValue();b?(a.attributes[this.id]=b,"name"==this.id&&(a.attributes["data-cke-saved-name"]=b)):(delete a.attributes[this.id],"name"==this.id&&delete a.attributes["data-cke-saved-name"])}return{title:b.lang.forms.button.title,minWidth:350,minHeight:150,onShow:function(){delete this.button;var a=this.getParentEditor().getSelection().getSelectedElement();a&&a.is("input")&&a.getAttribute("type")in{button:1,reset:1,submit:1}&&(this.button= 6 | a,this.setupContent(a))},onOk:function(){var a=this.getParentEditor(),b=this.button,d=!b,c=b?CKEDITOR.htmlParser.fragment.fromHtml(b.getOuterHtml()).children[0]:new CKEDITOR.htmlParser.element("input");this.commitContent(c);var e=new CKEDITOR.htmlParser.basicWriter;c.writeHtml(e);c=CKEDITOR.dom.element.createFromHtml(e.getHtml(),a.document);d?a.insertElement(c):(c.replace(b),a.getSelection().selectElement(c))},contents:[{id:"info",label:b.lang.forms.button.title,title:b.lang.forms.button.title,elements:[{id:"name", 7 | type:"text",label:b.lang.common.name,"default":"",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:d},{id:"value",type:"text",label:b.lang.forms.button.text,accessKey:"V","default":"",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:d},{id:"type",type:"select",label:b.lang.forms.button.type,"default":"button",accessKey:"T",items:[[b.lang.forms.button.typeBtn,"button"],[b.lang.forms.button.typeSbm,"submit"],[b.lang.forms.button.typeRst, 8 | "reset"]],setup:function(a){this.setValue(a.getAttribute("type")||"")},commit:d}]}]}}); -------------------------------------------------------------------------------- /includes/app/main.php: -------------------------------------------------------------------------------- 1 | 0) 14 | { 15 | while($row = mysqli_fetch_array($r)) 16 | { 17 | return $row[$val]; 18 | } 19 | } 20 | } 21 | 22 | //------------------------------------------------------// 23 | function get_saved_data($val) 24 | //------------------------------------------------------// 25 | { 26 | global $mysqli; 27 | $q = 'SELECT '.$val.' FROM apps WHERE id = "'.mysqli_real_escape_string($mysqli, $_GET['i']).'" AND userID = '.get_app_info('userID'); 28 | $r = mysqli_query($mysqli, $q); 29 | if ($r && mysqli_num_rows($r) > 0) 30 | { 31 | while($row = mysqli_fetch_array($r)) 32 | { 33 | return $row[$val]; 34 | } 35 | } 36 | } 37 | 38 | //------------------------------------------------------// 39 | function get_login_data($val) 40 | //------------------------------------------------------// 41 | { 42 | global $mysqli; 43 | $q = 'SELECT '.$val.' FROM login WHERE app = '.mysqli_real_escape_string($mysqli, $_GET['i']); 44 | $r = mysqli_query($mysqli, $q); 45 | if ($r && mysqli_num_rows($r) > 0) 46 | { 47 | while($row = mysqli_fetch_array($r)) 48 | { 49 | return $row[$val]; 50 | } 51 | } 52 | } 53 | ?> -------------------------------------------------------------------------------- /new-list.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 21 | 22 |
23 |
24 | 25 |
26 |
27 |
28 |

29 |
30 |


31 |
32 | 33 | 34 |
35 |
36 | 37 |
38 |
39 | 40 | 41 | 42 | 43 |
44 |
45 |
46 | 47 | -------------------------------------------------------------------------------- /js/settings/main.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | $("#settings-form").submit(function(e){ 3 | e.preventDefault(); 4 | 5 | var $form = $(this), 6 | uid = $form.find('input[name="uid"]').val(), 7 | personal_name = $form.find('input[name="personal_name"]').val(), 8 | company = $form.find('input[name="company"]').val(), 9 | email = $form.find('input[name="email"]').val(), 10 | password = $form.find('input[name="password"]').val(), 11 | aws_key = $form.find('input[name="aws_key"]').val(), 12 | aws_secret = $form.find('input[name="aws_secret"]').val(), 13 | paypal = $form.find('input[name="paypal"]').val(), 14 | timezone = $form.find('#timezone').val(), 15 | language = $form.find('#language').val(), 16 | from_name = $form.find('input[name="from_name"]').val(), 17 | from_email = $form.find('input[name="from_email"]').val(), 18 | reply_to = $form.find('input[name="reply_to"]').val(), 19 | url = $form.attr('action'); 20 | 21 | //validate email 22 | AtPos = email.indexOf("@") 23 | StopPos = email.lastIndexOf(".") 24 | if (AtPos == -1 || StopPos == -1) 25 | email_valid = false; 26 | else 27 | email_valid = true; 28 | 29 | if(personal_name!="" && company!="" && email!="" && email_valid==true) 30 | $.post(url, { uid: uid, personal_name: personal_name, company: company, email: email, password: password, aws_key: aws_key, aws_secret: aws_secret, paypal: paypal, timezone: timezone, language:language, from_name: from_name, from_email: from_email, reply_to: reply_to }, 31 | function(data) { 32 | if(data) 33 | { 34 | if(data=="email exists") $("#alert-error2").css("display", "block"); 35 | else window.location = $("#redirect").val(); 36 | } 37 | else 38 | { 39 | $("#alert-error1").css("display", "block"); 40 | } 41 | } 42 | ); 43 | }); 44 | }); -------------------------------------------------------------------------------- /includes/ares/add-autoresponder.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /css/responsive-tables.css: -------------------------------------------------------------------------------- 1 | /* Foundation v2.1.4 http://foundation.zurb.com */ 2 | /* Artfully masterminded by ZURB */ 3 | 4 | /* -------------------------------------------------- 5 | Table of Contents 6 | ----------------------------------------------------- 7 | :: Shared Styles 8 | :: Page Name 1 9 | :: Page Name 2 10 | */ 11 | 12 | 13 | /* ----------------------------------------- 14 | Shared Styles 15 | ----------------------------------------- */ 16 | 17 | table th { font-weight: bold; } 18 | table td, table th { padding: 9px 10px; text-align: left; } 19 | 20 | /* Mobile */ 21 | @media only screen and (max-width: 767px) { 22 | 23 | table.responsive { margin-bottom: 0; } 24 | 25 | .pinned { position: absolute; left: 0; top: 0; background: #fff; width: 35%; overflow: hidden; overflow-x: scroll; border-right: 1px solid #ccc; border-left: 1px solid #ccc; } 26 | .pinned table { border-right: none; border-left: none; width: 100%; } 27 | .pinned table th, .pinned table td { white-space: nowrap; } 28 | .pinned td:last-child { border-bottom: 0; } 29 | 30 | div.table-wrapper { position: relative; margin-bottom: 20px; overflow: hidden; border-right: 1px solid #ccc; } 31 | div.table-wrapper div.scrollable table { margin-left: 35%; } 32 | div.table-wrapper div.scrollable { overflow: scroll; overflow-y: hidden; } 33 | 34 | table.responsive td, table.responsive th { position: relative; white-space: nowrap; overflow: hidden; } 35 | table.responsive th:first-child, table.responsive td:first-child, table.responsive td:first-child, table.responsive.pinned td { display: none; } 36 | 37 | } 38 | 39 | /* ----------------------------------------- 40 | Page Name 1 41 | ----------------------------------------- */ 42 | 43 | 44 | 45 | 46 | /* ----------------------------------------- 47 | Page Name 2 48 | ----------------------------------------- */ 49 | 50 | 51 | -------------------------------------------------------------------------------- /ckeditor/samples/sample.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | // Tool scripts for the sample pages. 7 | // This file can be ignored and is not required to make use of CKEditor. 8 | 9 | (function() { 10 | CKEDITOR.on( 'instanceReady', function( ev ) { 11 | // Check for sample compliance. 12 | var editor = ev.editor, 13 | meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ), 14 | requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [], 15 | missing = [], 16 | i; 17 | 18 | if ( requires.length ) { 19 | for ( i = 0; i < requires.length; i++ ) { 20 | if ( !editor.plugins[ requires[ i ] ] ) 21 | missing.push( '' + requires[ i ] + '' ); 22 | } 23 | 24 | if ( missing.length ) { 25 | var warn = CKEDITOR.dom.element.createFromHtml( 26 | '
' + 27 | 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required.' + 28 | '
' 29 | ); 30 | warn.insertBefore( editor.container ); 31 | } 32 | } 33 | 34 | // Set icons. 35 | var doc = new CKEDITOR.dom.document( document ), 36 | icons = doc.find( '.button_icon' ); 37 | 38 | for ( i = 0; i < icons.count(); i++ ) { 39 | var icon = icons.getItem( i ), 40 | name = icon.getAttribute( 'data-icon' ), 41 | style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) ); 42 | 43 | icon.addClass( 'cke_button_icon' ); 44 | icon.addClass( 'cke_button__' + name + '_icon' ); 45 | icon.setAttribute( 'style', style ); 46 | icon.setStyle( 'float', 'none' ); 47 | 48 | } 49 | } ); 50 | })(); 51 | -------------------------------------------------------------------------------- /fast-unsubscribe/assets/fonts/the-fontry_jls-data-gothic/Description.txt: -------------------------------------------------------------------------------- 1 | Everyone remembers their first. JLS Space was my first. It was the first computer format font that I created. The font was inspired by the sci-fi movie posters, book covers and comic books of my childhood. Its crude letterforms were conjured in an all night marathon session with no sketches and no planning. A simple character set, it consisted of upper case, lower case, numbers and basic punctuation. But, the project was little more than an interesting exercise, and JLS Space faded into digital limbo. This unfortunate font was ignored and lost for fifteen years. Mike Adkins, my co-conspirator, found and rescued the font file from the depths of a failing hard drive. He sent the file to me as a curiosity - a glipse back at our humble beginnings. I started puttering around with it on a whim. Without really trying, Data Gothic began to form. The interesting letter forms in Data and Space Gothic struck a cord, and I was inspired to complete the project almost twenty years after it was started. 2 | 3 | JLS Space Gothic was inspired by the OCR and MICR fonts of the science fiction genre. Today, its character will enhance terms like Computer Diagnostic or Space Age Polymer. Posters, titles and displays will boldly blast off into the market place with these cybernetic letterforms. If Space Gothic is retro and seems limited in its genre, Data Gothic is contemporary with a broad spectrum of uses. This futuristic gothic doesn't sacrifice legibility for style. As a screen font, JLS Data Gothic is excellent for technical specifications, on screen dialogue, labeling, etc. In print, Data Gothic is a great font for text in manuals, schematics, maps and diagrams. 4 | 5 | For commercial use please feel free to contact us for price, links and details at: 6 | the_fontry@yahoo.com 7 | 8 | or visit the Fontry website 9 | http://www.thefontry.com/ 10 | 11 | 12 | -------------------------------------------------------------------------------- /ckeditor/plugins/link/dialogs/anchor.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("anchor",function(c){var d=function(a){this._.selectedElement=a;this.setValueOf("info","txtName",a.data("cke-saved-name")||"")};return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:a,name:a,"data-cke-saved-name":a};if(this._.selectedElement)this._.selectedElement.data("cke-realelement")?(a=c.document.createElement("a",{attributes:a}),c.createFakeElement(a,"cke_anchor","anchor").replace(this._.selectedElement)): 6 | this._.selectedElement.setAttributes(a);else{var b=c.getSelection(),b=b&&b.getRanges()[0];b.collapsed?(CKEDITOR.plugins.link.synAnchorSelector&&(a["class"]="cke_anchor_empty"),CKEDITOR.plugins.link.emptyAnchorFix&&(a.contenteditable="false",a["data-cke-editable"]=1),a=c.document.createElement("a",{attributes:a}),CKEDITOR.plugins.link.fakeAnchor&&(a=c.createFakeElement(a,"cke_anchor","anchor")),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a", 7 | attributes:a}),a.type=CKEDITOR.STYLE_INLINE,c.applyStyle(a))}},onHide:function(){delete this._.selectedElement},onShow:function(){var a=c.getSelection(),b=a.getSelectedElement();if(b)CKEDITOR.plugins.link.fakeAnchor?((a=CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b))&&d.call(this,a),this._.selectedElement=b):b.is("a")&&b.hasAttribute("name")&&d.call(this,b);else if(b=CKEDITOR.plugins.link.getSelectedLink(c))d.call(this,b),a.selectElement(b);this.getContentElement("info","txtName").focus()},contents:[{id:"info", 8 | label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return!this.getValue()?(alert(c.lang.link.anchor.errorName),!1):!0}}]}]}}); -------------------------------------------------------------------------------- /includes/app/check-email-verification.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | check_email_address($from_email)) 16 | { 17 | echo 'Invalid email'; 18 | exit; 19 | } 20 | 21 | //Get email's domain 22 | $from_email_domain_array = explode('@', $from_email); 23 | $from_email_domain = $from_email_domain_array[1]; 24 | 25 | //------------------------------------------------------// 26 | // FUNCTIONS // 27 | //------------------------------------------------------// 28 | 29 | //Check if from email is verified in SES console 30 | if(!get_app_info('is_sub_user') && get_app_info('s3_key')!='' && get_app_info('s3_secret')!='') 31 | { 32 | $ses = new SimpleEmailService(get_app_info('s3_key'), get_app_info('s3_secret')); 33 | $v_addresses = $ses->ListIdentities(); 34 | $verifiedEmailsArray = array(); 35 | $verifiedDomainsArray = array(); 36 | foreach($v_addresses['Addresses'] as $val){ 37 | $validator = new EmailAddressValidator; 38 | if ($validator->check_email_address($val)) array_push($verifiedEmailsArray, $val); 39 | else array_push($verifiedDomainsArray, $val); 40 | } 41 | if(!in_array($from_email, $verifiedEmailsArray) && !in_array($from_email_domain, $verifiedDomainsArray)) 42 | echo false; //From email address or domain IS NOT verified in SES console 43 | else 44 | echo true; //From email address or domain IS verified in SES console 45 | } 46 | ?> -------------------------------------------------------------------------------- /ckeditor/plugins/templates/dialogs/templates.css: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | .cke_tpl_list 7 | { 8 | border: #dcdcdc 2px solid; 9 | background-color: #ffffff; 10 | overflow-y: auto; 11 | overflow-x: hidden; 12 | width: 100%; 13 | height: 220px; 14 | } 15 | 16 | .cke_tpl_item 17 | { 18 | margin: 5px; 19 | padding: 7px; 20 | border: #eeeeee 1px solid; 21 | *width: 88%; 22 | } 23 | 24 | .cke_tpl_preview 25 | { 26 | border-collapse: separate; 27 | text-indent:0; 28 | width: 100%; 29 | } 30 | .cke_tpl_preview td 31 | { 32 | padding: 2px; 33 | vertical-align: middle; 34 | } 35 | .cke_tpl_preview .cke_tpl_preview_img 36 | { 37 | width: 100px; 38 | } 39 | .cke_tpl_preview span 40 | { 41 | white-space: normal; 42 | } 43 | 44 | .cke_tpl_title 45 | { 46 | font-weight: bold; 47 | } 48 | 49 | .cke_tpl_list a:hover .cke_tpl_item, 50 | .cke_tpl_list a:focus .cke_tpl_item, 51 | .cke_tpl_list a:active .cke_tpl_item 52 | { 53 | border: #ff9933 1px solid; 54 | background-color: #fffacd; 55 | } 56 | 57 | .cke_tpl_list a:hover *, 58 | .cke_tpl_list a:focus *, 59 | .cke_tpl_list a:active * 60 | { 61 | cursor: pointer; 62 | } 63 | 64 | /* IE6 contextual selectors childs won't get :hover transition until, 65 | the hover style of the link itself contains certain CSS declarations.*/ 66 | .cke_browser_ie6 .cke_tpl_list a:active, 67 | .cke_browser_ie6 .cke_tpl_list a:hover, 68 | .cke_browser_ie6 .cke_tpl_list a:focus 69 | { 70 | background-position: 0 0; 71 | } 72 | 73 | .cke_hc .cke_tpl_list a:hover .cke_tpl_item, 74 | .cke_hc .cke_tpl_list a:focus .cke_tpl_item, 75 | .cke_hc .cke_tpl_list a:active .cke_tpl_item 76 | { 77 | border-width: 3px; 78 | } 79 | 80 | .cke_tpl_empty, .cke_tpl_loading 81 | { 82 | text-align: center; 83 | padding: 5px; 84 | } 85 | -------------------------------------------------------------------------------- /ckeditor/plugins/a11yhelp/dialogs/lang/ja.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.plugins.setLang("a11yhelp","ja",{title:"ユーザー補助の説明",contents:"ヘルプ このダイアログを閉じるには ESCを押してください。",legend:[{name:"全般",items:[{name:"エディターツールバー",legend:"${toolbarFocus} を押すとツールバーのオン/オフ操作ができます。カーソルをツールバーのグループで移動させるにはTabかSHIFT+Tabを押します。グループ内でカーソルを移動させるには、右カーソルか左カーソルを押します。スペースキーやエンターを押すとボタンを有効/無効にすることができます。"},{name:"編集ダイアログ",legend:"ダイヤログ内では、ダイアログの次の選択肢に移動するにはTabを押します。前の選択肢に移動するには、SHIFT+Tabを押します。ダイアログを決定するには、ENTERを押します。ESCでダイアログをキャンセルできます。複数のタブがあるダイアログではタブリストを操作するにはALT+F10を押します。次のタブに移動するにはTabか右カーソル、前のタブに戻るにはSHIFT+Tabか左カーソルです。タブページを決定するにはスペースもしくは、ENTERキーを押してください。"}, 6 | {name:"エディターのメニュー",legend:"${contextMenu} キーかAPPLICATION KEYを押すとコンテキストメニューが開きます。Tabか下カーソルでメニューのオプション選択が下に移動します。戻るには、SHIFT+Tabか上カーソルです。スペースもしくはENTERキーでメニューオプションを決定できます。現在選んでいるオプションのサブメニューを開くには、スペース、もしくは右カーソルを押します。サブメニューから親メニューに戻るには、ESCか左カーソルを押してください。ESCでコンテキストメニュー自体をキャンセルできます。"},{name:"エディターリストボックス",legend:"リストボックス内で移動するには、Tabか下カーソルで次のアイテムへ移動します。SHIFT+Tabで前のアイテムに戻ります。リストのオプションを選択するには、スペースもしくは、ENTERを押してください。リストボックスを閉じるには、ESCを押してください。"},{name:"エディター要素パスバー",legend:"${elementsPathFocus} を押すとエレメントパスバーを操作出来ます。Tabか右カーソルで次のエレメントを選択できます。前のエレメントを選択するには、SHIFT+Tabか左カーソルです。スペースもしくは、ENTERでエディタ内の対象エレメントを選択出来ます。"}]}, 7 | {name:"コマンド",items:[{name:"元に戻す",legend:"${undo} をクリック"},{name:"やり直し",legend:"${redo} をクリック"},{name:"太字",legend:"${bold} をクリック"},{name:"斜体 ",legend:"${italic} をクリック"},{name:"下線",legend:"${underline} をクリック"},{name:"リンク",legend:"${link} をクリック"},{name:"ツールバーを縮める",legend:"${toolbarCollapse} をクリック"},{name:"前のカーソル移動のできないポイントへ",legend:"${accessPreviousSpace} を押すとカーソルより前にあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"},{name:"次のカーソル移動のできないポイントへ",legend:"${accessNextSpace} を押すとカーソルより後ろにあるカーソルキーで入り込めないスペースへ移動できます。例えば、HRエレメントが2つ接している場合などです。離れた場所へは、複数回キーを押します。"}, 8 | {name:"ユーザー補助ヘルプ",legend:"${a11yHelp} をクリック"}]}]}); -------------------------------------------------------------------------------- /includes/app/duplicate.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0) 19 | { 20 | while($row = mysqli_fetch_array($r)) 21 | { 22 | $from_name = $row['from_name']; 23 | $from_email = $row['from_email']; 24 | $reply_to = $row['reply_to']; 25 | } 26 | } 27 | 28 | //get campaign's data 29 | $q2 = 'SELECT title, plain_text, html_text FROM campaigns WHERE id = '.$campaign_id; 30 | $r2 = mysqli_query($mysqli, $q2); 31 | if ($r2) 32 | { 33 | while($row = mysqli_fetch_array($r2)) 34 | { 35 | $title = stripslashes($row['title']); 36 | $plain_text = stripslashes($row['plain_text']); 37 | $html_text = stripslashes($row['html_text']); 38 | } 39 | } 40 | 41 | //Insert into database 42 | $q3 = 'INSERT INTO campaigns (userID, app, from_name, from_email, reply_to, title, plain_text, html_text) VALUES ('.get_app_info('main_userID').', '.$app_id.', "'.$from_name.'", "'.$from_email.'", "'.$reply_to.'", "'.addslashes($title).'", "'.addslashes($plain_text).'", "'.addslashes($html_text).'")'; 43 | $r3 = mysqli_query($mysqli, $q3); 44 | if ($r3) 45 | header("Location: ".get_app_info('path')."/app?i=".$app_id); 46 | else 47 | echo 'Error duplicating.'; 48 | ?> -------------------------------------------------------------------------------- /ckeditor/plugins/forms/dialogs/textarea.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("textarea",function(b){return{title:b.lang.forms.textarea.title,minWidth:350,minHeight:220,onShow:function(){delete this.textarea;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"textarea"==a.getName()&&(this.textarea=a,this.setupContent(a))},onOk:function(){var a,b=this.textarea,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("textarea"));this.commitContent(b);c&&a.insertElement(b)},contents:[{id:"info",label:b.lang.forms.textarea.title,title:b.lang.forms.textarea.title, 6 | elements:[{id:"_cke_saved_name",type:"text",label:b.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{type:"hbox",widths:["50%","50%"],children:[{id:"cols",type:"text",label:b.lang.forms.textarea.cols,"default":"",accessKey:"C",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed), 7 | setup:function(a){this.setValue(a.hasAttribute("cols")&&a.getAttribute("cols")||"")},commit:function(a){this.getValue()?a.setAttribute("cols",this.getValue()):a.removeAttribute("cols")}},{id:"rows",type:"text",label:b.lang.forms.textarea.rows,"default":"",accessKey:"R",style:"width:50px",validate:CKEDITOR.dialog.validate.integer(b.lang.common.validateNumberFailed),setup:function(a){this.setValue(a.hasAttribute("rows")&&a.getAttribute("rows")||"")},commit:function(a){this.getValue()?a.setAttribute("rows", 8 | this.getValue()):a.removeAttribute("rows")}}]},{id:"value",type:"textarea",label:b.lang.forms.textfield.value,"default":"",setup:function(a){this.setValue(a.$.defaultValue)},commit:function(a){a.$.value=a.$.defaultValue=this.getValue()}}]}]}}); -------------------------------------------------------------------------------- /ckeditor/plugins/wsc/dialogs/ciframe.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 64 | 65 |

66 | 67 | -------------------------------------------------------------------------------- /ckeditor/plugins/forms/dialogs/radio.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("radio",function(d){return{title:d.lang.forms.checkboxAndRadio.radioTitle,minWidth:350,minHeight:140,onShow:function(){delete this.radioButton;var a=this.getParentEditor().getSelection().getSelectedElement();a&&("input"==a.getName()&&"radio"==a.getAttribute("type"))&&(this.radioButton=a,this.setupContent(a))},onOk:function(){var a,b=this.radioButton,c=!b;c&&(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","radio"));c&&a.insertElement(b);this.commitContent({element:b})}, 6 | contents:[{id:"info",label:d.lang.forms.checkboxAndRadio.radioTitle,title:d.lang.forms.checkboxAndRadio.radioTitle,elements:[{id:"name",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"value",type:"text",label:d.lang.forms.checkboxAndRadio.value,"default":"", 7 | accessKey:"V",setup:function(a){this.setValue(a.getAttribute("value")||"")},commit:function(a){a=a.element;this.getValue()?a.setAttribute("value",this.getValue()):a.removeAttribute("value")}},{id:"checked",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"",accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(!CKEDITOR.env.ie&&!CKEDITOR.env.opera)this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked"); 8 | else{var c=b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}}}]}]}}); -------------------------------------------------------------------------------- /js/responsive-tables.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | var switched = false; 3 | var updateTables = function() { 4 | if (($(window).width() < 767) && !switched ){ 5 | switched = true; 6 | $("table.responsive").each(function(i, element) { 7 | splitTable($(element)); 8 | }); 9 | return true; 10 | } 11 | else if (switched && ($(window).width() > 767)) { 12 | switched = false; 13 | $("table.responsive").each(function(i, element) { 14 | unsplitTable($(element)); 15 | }); 16 | } 17 | }; 18 | 19 | $(window).load(updateTables); 20 | $(window).on("redraw",function(){switched=false;updateTables();}); // An event to listen for 21 | $(window).on("resize", updateTables); 22 | 23 | 24 | function splitTable(original) 25 | { 26 | original.wrap("
"); 27 | 28 | var copy = original.clone(); 29 | copy.find("td:not(:first-child), th:not(:first-child)").css("display", "none"); 30 | copy.removeClass("responsive"); 31 | 32 | original.closest(".table-wrapper").append(copy); 33 | copy.wrap("
"); 34 | original.wrap("
"); 35 | 36 | setCellHeights(original, copy); 37 | } 38 | 39 | function unsplitTable(original) { 40 | original.closest(".table-wrapper").find(".pinned").remove(); 41 | original.unwrap(); 42 | original.unwrap(); 43 | } 44 | 45 | function setCellHeights(original, copy) { 46 | var tr = original.find('tr'), 47 | tr_copy = copy.find('tr'), 48 | heights = []; 49 | 50 | tr.each(function (index) { 51 | var self = $(this), 52 | tx = self.find('th, td'); 53 | 54 | tx.each(function () { 55 | var height = $(this).outerHeight(true); 56 | heights[index] = heights[index] || 0; 57 | if (height > heights[index]) heights[index] = height; 58 | }); 59 | 60 | }); 61 | 62 | tr_copy.each(function (index) { 63 | $(this).height(heights[index]); 64 | }); 65 | } 66 | 67 | }); 68 | -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | //------------------------------------------------------// 3 | // INIT // 4 | //------------------------------------------------------// 5 | //Tooltip 6 | $('a').tooltip({ 7 | animation : false 8 | }) 9 | 10 | //Reports 11 | $(".recipient-click-export").tooltip("destroy"); 12 | $(".recipient-click-export").tooltip({animation : false, placement: "left"}); 13 | 14 | //Campaigns 15 | $(".delete-campaign").tooltip("destroy"); 16 | $(".delete-campaign").tooltip({animation : false, placement: "left"}); 17 | 18 | //Lists 19 | $(".delete-list").tooltip("destroy"); 20 | $(".delete-list").tooltip({animation : false, placement: "left"}); 21 | 22 | //Subscribers 23 | $(".delete-subscriber").tooltip("destroy"); 24 | $(".delete-subscriber").tooltip({animation : false, placement: "left"}); 25 | 26 | //Campaigns RSS 27 | $(".campaigns-rss-btn").tooltip("destroy"); 28 | $(".campaigns-rss-btn").tooltip({animation : false, placement: "left"}); 29 | //------------------------------------------------------// 30 | // BUTTONS // 31 | //------------------------------------------------------// 32 | 33 | //------------------------------------------------------// 34 | // FUNCTIONS // 35 | //------------------------------------------------------// 36 | 37 | jQuery.fn.selectText = function(){ 38 | var doc = document 39 | , element = this[0] 40 | , range, selection 41 | ; 42 | if (doc.body.createTextRange) { 43 | range = document.body.createTextRange(); 44 | range.moveToElementText(element); 45 | range.select(); 46 | } else if (window.getSelection) { 47 | selection = window.getSelection(); 48 | range = document.createRange(); 49 | range.selectNodeContents(element); 50 | selection.removeAllRanges(); 51 | selection.addRange(range); 52 | } 53 | }; 54 | }); -------------------------------------------------------------------------------- /ckeditor/samples/appendto.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | CKEDITOR.appendTo — CKEditor Sample 9 | 10 | 11 | 12 | 13 | 14 |

15 | CKEditor Samples » Append To Page Element Using JavaScript Code 16 |

17 |
18 |
19 |

20 | CKEDITOR.appendTo is basically to place editors 21 | inside existing DOM elements. Unlike CKEDITOR.replace, 22 | a target container to be replaced is no longer necessary. A new editor 23 | instance is inserted directly wherever it is desired. 24 |

25 |
CKEDITOR.appendTo( 'container_id',
26 | 	{ /* Configuration options to be used. */ }
27 | 	'Editor content to be used.'
28 | );
29 |
30 | 44 |
45 |
46 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /ckeditor/plugins/forms/dialogs/form.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("form",function(a){var d={action:1,id:1,method:1,enctype:1,target:1};return{title:a.lang.forms.form.title,minWidth:350,minHeight:200,onShow:function(){delete this.form;var b=this.getParentEditor().elementPath().contains("form",1);b&&(this.form=b,this.setupContent(b))},onOk:function(){var b,a=this.form,c=!a;c&&(b=this.getParentEditor(),a=b.document.createElement("form"),a.appendBogus());c&&b.insertElement(a);this.commitContent(a)},onLoad:function(){function a(b){this.setValue(b.getAttribute(this.id)|| 6 | "")}function e(a){this.getValue()?a.setAttribute(this.id,this.getValue()):a.removeAttribute(this.id)}this.foreach(function(c){d[c.id]&&(c.setup=a,c.commit=e)})},contents:[{id:"info",label:a.lang.forms.form.title,title:a.lang.forms.form.title,elements:[{id:"txtName",type:"text",label:a.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name", 7 | !1),a.removeAttribute("name"))}},{id:"action",type:"text",label:a.lang.forms.form.action,"default":"",accessKey:"T"},{type:"hbox",widths:["45%","55%"],children:[{id:"id",type:"text",label:a.lang.common.id,"default":"",accessKey:"I"},{id:"enctype",type:"select",label:a.lang.forms.form.encoding,style:"width:100%",accessKey:"E","default":"",items:[[""],["text/plain"],["multipart/form-data"],["application/x-www-form-urlencoded"]]}]},{type:"hbox",widths:["45%","55%"],children:[{id:"target",type:"select", 8 | label:a.lang.common.target,style:"width:100%",accessKey:"M","default":"",items:[[a.lang.common.notSet,""],[a.lang.common.targetNew,"_blank"],[a.lang.common.targetTop,"_top"],[a.lang.common.targetSelf,"_self"],[a.lang.common.targetParent,"_parent"]]},{id:"method",type:"select",label:a.lang.forms.form.method,accessKey:"M","default":"GET",items:[["GET","get"],["POST","post"]]}]}]}]}}); -------------------------------------------------------------------------------- /includes/subscribers/line-update.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 0){} 44 | else 45 | { 46 | //Check if this email is previously marked as bounced, if so, we shouldn't add it 47 | $q = 'SELECT email from subscribers WHERE (email = "'.$email.'" || email = " '.$email.'") AND bounced = 1'; 48 | $r = mysqli_query($mysqli, $q); 49 | if (mysqli_num_rows($r) > 0){} 50 | else 51 | { 52 | $validator = new EmailAddressValidator; 53 | 54 | if ($validator->check_email_address(trim($email))) 55 | { 56 | $q = 'INSERT INTO subscribers (userID, name, email, list, timestamp) values('.$userID.', "'.$name.'", "'.trim($email).'", '.$listID.', '.$time.')'; 57 | $r = mysqli_query($mysqli, $q); 58 | if ($r){} 59 | } 60 | } 61 | } 62 | } 63 | 64 | header("Location: ".get_app_info('path').'/subscribers?i='.$app.'&l='.$listID); 65 | 66 | ?> 67 | -------------------------------------------------------------------------------- /js/highcharts/themes/grid.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Grid theme for Highcharts JS 3 | * @author Torstein Hønsi 4 | */ 5 | 6 | Highcharts.theme = { 7 | colors: ['#058DC7', '#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4'], 8 | chart: { 9 | backgroundColor: { 10 | linearGradient: [0, 0, 500, 500], 11 | stops: [ 12 | [0, 'rgb(255, 255, 255)'], 13 | [1, 'rgb(240, 240, 255)'] 14 | ] 15 | }, 16 | borderWidth: 2, 17 | plotBackgroundColor: 'rgba(255, 255, 255, .9)', 18 | plotShadow: true, 19 | plotBorderWidth: 1 20 | }, 21 | title: { 22 | style: { 23 | color: '#000', 24 | font: 'bold 16px "Trebuchet MS", Verdana, sans-serif' 25 | } 26 | }, 27 | subtitle: { 28 | style: { 29 | color: '#666666', 30 | font: 'bold 12px "Trebuchet MS", Verdana, sans-serif' 31 | } 32 | }, 33 | xAxis: { 34 | gridLineWidth: 1, 35 | lineColor: '#000', 36 | tickColor: '#000', 37 | labels: { 38 | style: { 39 | color: '#000', 40 | font: '11px Trebuchet MS, Verdana, sans-serif' 41 | } 42 | }, 43 | title: { 44 | style: { 45 | color: '#333', 46 | fontWeight: 'bold', 47 | fontSize: '12px', 48 | fontFamily: 'Trebuchet MS, Verdana, sans-serif' 49 | 50 | } 51 | } 52 | }, 53 | yAxis: { 54 | minorTickInterval: 'auto', 55 | lineColor: '#000', 56 | lineWidth: 1, 57 | tickWidth: 1, 58 | tickColor: '#000', 59 | labels: { 60 | style: { 61 | color: '#000', 62 | font: '11px Trebuchet MS, Verdana, sans-serif' 63 | } 64 | }, 65 | title: { 66 | style: { 67 | color: '#333', 68 | fontWeight: 'bold', 69 | fontSize: '12px', 70 | fontFamily: 'Trebuchet MS, Verdana, sans-serif' 71 | } 72 | } 73 | }, 74 | legend: { 75 | itemStyle: { 76 | font: '9pt Trebuchet MS, Verdana, sans-serif', 77 | color: 'black' 78 | 79 | }, 80 | itemHoverStyle: { 81 | color: '#039' 82 | }, 83 | itemHiddenStyle: { 84 | color: 'gray' 85 | } 86 | }, 87 | labels: { 88 | style: { 89 | color: '#99b' 90 | } 91 | } 92 | }; 93 | 94 | // Apply the theme 95 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme); 96 | -------------------------------------------------------------------------------- /js/highcharts/themes/skies.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Skies theme for Highcharts JS 3 | * @author Torstein Hønsi 4 | */ 5 | 6 | Highcharts.theme = { 7 | colors: ["#514F78", "#42A07B", "#9B5E4A", "#72727F", "#1F949A", "#82914E", "#86777F", "#42A07B"], 8 | chart: { 9 | className: 'skies', 10 | borderWidth: 0, 11 | plotShadow: true, 12 | plotBackgroundImage: '/demo/gfx/skies.jpg', 13 | plotBackgroundColor: { 14 | linearGradient: [0, 0, 250, 500], 15 | stops: [ 16 | [0, 'rgba(255, 255, 255, 1)'], 17 | [1, 'rgba(255, 255, 255, 0)'] 18 | ] 19 | }, 20 | plotBorderWidth: 1 21 | }, 22 | title: { 23 | style: { 24 | color: '#3E576F', 25 | font: '16px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 26 | } 27 | }, 28 | subtitle: { 29 | style: { 30 | color: '#6D869F', 31 | font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 32 | } 33 | }, 34 | xAxis: { 35 | gridLineWidth: 0, 36 | lineColor: '#C0D0E0', 37 | tickColor: '#C0D0E0', 38 | labels: { 39 | style: { 40 | color: '#666', 41 | fontWeight: 'bold' 42 | } 43 | }, 44 | title: { 45 | style: { 46 | color: '#666', 47 | font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 48 | } 49 | } 50 | }, 51 | yAxis: { 52 | alternateGridColor: 'rgba(255, 255, 255, .5)', 53 | lineColor: '#C0D0E0', 54 | tickColor: '#C0D0E0', 55 | tickWidth: 1, 56 | labels: { 57 | style: { 58 | color: '#666', 59 | fontWeight: 'bold' 60 | } 61 | }, 62 | title: { 63 | style: { 64 | color: '#666', 65 | font: '12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' 66 | } 67 | } 68 | }, 69 | legend: { 70 | itemStyle: { 71 | font: '9pt Trebuchet MS, Verdana, sans-serif', 72 | color: '#3E576F' 73 | }, 74 | itemHoverStyle: { 75 | color: 'black' 76 | }, 77 | itemHiddenStyle: { 78 | color: 'silver' 79 | } 80 | }, 81 | labels: { 82 | style: { 83 | color: '#3E576F' 84 | } 85 | } 86 | }; 87 | 88 | // Apply the theme 89 | var highchartsOptions = Highcharts.setOptions(Highcharts.theme); 90 | -------------------------------------------------------------------------------- /api/subscribers/active-subscriber-count.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0) 60 | { 61 | while($row = mysqli_fetch_array($r)) 62 | { 63 | $count = $row['count(id)']; 64 | 65 | echo $count; 66 | } 67 | } 68 | //-----------------------------------------------------------// 69 | ?> -------------------------------------------------------------------------------- /includes/subscribers/import-delete.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1) 56 | { 57 | header("Location: ".get_app_info('path').'/delete-from-list?i='.$app.'&l='.$listID.'&e=1'); 58 | exit; 59 | } 60 | 61 | //check if email exists to be deleted 62 | $q = 'SELECT email FROM subscribers WHERE list = '.$listID.' AND email = "'.$line.'" AND userID = '.$userID; 63 | $r = mysqli_query($mysqli, $q); 64 | if (mysqli_num_rows($r) > 0) 65 | { 66 | //email exists, delete subscriber 67 | $query = 'DELETE FROM '.$databasetable.' WHERE email = "'.$line.'" AND list = '.$listID.' AND userID = '.$userID; 68 | mysqli_query($mysqli, $query); 69 | } 70 | } 71 | 72 | //return 73 | header("Location: ".get_app_info('path').'/subscribers?i='.$app.'&l='.$listID); 74 | 75 | ?> 76 | -------------------------------------------------------------------------------- /ckeditor/plugins/wsc/dialogs/tmpFrameset.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /ckeditor/plugins/forms/dialogs/checkbox.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("checkbox",function(d){return{title:d.lang.forms.checkboxAndRadio.checkboxTitle,minWidth:350,minHeight:140,onShow:function(){delete this.checkbox;var a=this.getParentEditor().getSelection().getSelectedElement();a&&"checkbox"==a.getAttribute("type")&&(this.checkbox=a,this.setupContent(a))},onOk:function(){var a,b=this.checkbox;b||(a=this.getParentEditor(),b=a.document.createElement("input"),b.setAttribute("type","checkbox"),a.insertElement(b));this.commitContent({element:b})},contents:[{id:"info", 6 | label:d.lang.forms.checkboxAndRadio.checkboxTitle,title:d.lang.forms.checkboxAndRadio.checkboxTitle,startupFocus:"txtName",elements:[{id:"txtName",type:"text",label:d.lang.common.name,"default":"",accessKey:"N",setup:function(a){this.setValue(a.data("cke-saved-name")||a.getAttribute("name")||"")},commit:function(a){a=a.element;this.getValue()?a.data("cke-saved-name",this.getValue()):(a.data("cke-saved-name",!1),a.removeAttribute("name"))}},{id:"txtValue",type:"text",label:d.lang.forms.checkboxAndRadio.value, 7 | "default":"",accessKey:"V",setup:function(a){a=a.getAttribute("value");this.setValue(CKEDITOR.env.ie&&"on"==a?"":a)},commit:function(a){var b=a.element,c=this.getValue();c&&!(CKEDITOR.env.ie&&"on"==c)?b.setAttribute("value",c):CKEDITOR.env.ie?(c=new CKEDITOR.dom.element("input",b.getDocument()),b.copyAttributes(c,{value:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c):b.removeAttribute("value")}},{id:"cmbSelected",type:"checkbox",label:d.lang.forms.checkboxAndRadio.selected,"default":"", 8 | accessKey:"S",value:"checked",setup:function(a){this.setValue(a.getAttribute("checked"))},commit:function(a){var b=a.element;if(CKEDITOR.env.ie){var c=!!b.getAttribute("checked"),e=!!this.getValue();c!=e&&(c=CKEDITOR.dom.element.createFromHtml('",d.document),b.copyAttributes(c,{type:1,checked:1}),c.replace(b),d.getSelection().selectElement(c),a.element=c)}else this.getValue()?b.setAttribute("checked","checked"):b.removeAttribute("checked")}}]}]}}); -------------------------------------------------------------------------------- /includes/helpers/short.php: -------------------------------------------------------------------------------- 1 | check_email_address($in) ? true : false; 19 | 20 | if($to_num) 21 | { 22 | if(version_compare(PHP_VERSION, '5.3.0') >= 0) //openssl_decrypt requires at least 5.3.0 23 | { 24 | $decrypted = str_replace('892', '/', $in); 25 | $decrypted = str_replace('763', '+', $decrypted); 26 | 27 | if(function_exists('openssl_encrypt')) 28 | { 29 | $decrypted = version_compare(PHP_VERSION, '5.3.3') >= 0 ? openssl_decrypt($decrypted, $encryptionMethod, $api_key, 0, '3j9hwG7uj8uvpRAT') : openssl_decrypt($decrypted, $encryptionMethod, $api_key, 0); 30 | if(!$decrypted) return $is_email ? $in : intval($in, 36); 31 | } 32 | else return $is_email ? $in : intval($in, 36); 33 | 34 | return $decrypted=='' ? intval($in, 36) : $decrypted; 35 | } 36 | else return $is_email ? $in : intval($in, 36); 37 | } 38 | else 39 | { 40 | if(version_compare(PHP_VERSION, '5.3.0') >= 0) //openssl_encrypt requires at least 5.3.0 41 | { 42 | if(function_exists('openssl_encrypt')) 43 | { 44 | $encrypted = version_compare(PHP_VERSION, '5.3.3') >= 0 ? openssl_encrypt($in, $encryptionMethod, $api_key, 0, '3j9hwG7uj8uvpRAT') : openssl_encrypt($in, $encryptionMethod, $api_key, 0); 45 | if(!$encrypted) return $is_email ? $in : base_convert($in, 10, 36); 46 | } 47 | else return $is_email ? $in : base_convert($in, 10, 36); 48 | 49 | $encrypted = str_replace('/', '892', $encrypted); 50 | $encrypted = str_replace('+', '763', $encrypted); 51 | $encrypted = str_replace('=', '', $encrypted); 52 | 53 | return $encrypted; 54 | } 55 | else return $is_email ? $in : base_convert($in, 10, 36); 56 | } 57 | } 58 | ?> -------------------------------------------------------------------------------- /ckeditor/plugins/specialchar/dialogs/lang/ja.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.plugins.setLang("specialchar","ja",{euro:"ユーロ記号",lsquo:"左シングル引用符",rsquo:"右シングル引用符",ldquo:"左ダブル引用符",rdquo:"右ダブル引用符",ndash:"半角ダッシュ",mdash:"全角ダッシュ",iexcl:"逆さ感嘆符",cent:"セント記号",pound:"ポンド記号",curren:"通貨記号",yen:"円記号",brvbar:"上下に分かれた縦棒",sect:"節記号",uml:"分音記号(ウムラウト)",copy:"著作権表示記号",ordf:"女性序数標識",laquo:" 始め二重山括弧引用記号",not:"論理否定記号",reg:"登録商標記号",macr:"長音符",deg:"度記号",sup2:"上つき2, 2乗",sup3:"上つき3, 3乗",acute:"揚音符",micro:"ミクロン記号",para:"段落記号",middot:"中黒",cedil:"セディラ",sup1:"上つき1",ordm:"男性序数標識",raquo:"終わり二重山括弧引用記号", 6 | frac14:"四分の一",frac12:"二分の一",frac34:"四分の三",iquest:"逆疑問符",Agrave:"抑音符つき大文字A",Aacute:"揚音符つき大文字A",Acirc:"曲折アクセントつき大文字A",Atilde:"チルダつき大文字A",Auml:"分音記号つき大文字A",Aring:"リングつき大文字A",AElig:"AとEの合字",Ccedil:"セディラつき大文字C",Egrave:"抑音符つき大文字E",Eacute:"揚音符つき大文字E",Ecirc:"曲折アクセントつき大文字E",Euml:"分音記号つき大文字E",Igrave:"抑音符つき大文字I",Iacute:"揚音符つき大文字I",Icirc:"曲折アクセントつき大文字I",Iuml:"分音記号つき大文字I",ETH:"[アイスランド語]大文字ETH",Ntilde:"チルダつき大文字N",Ograve:"抑音符つき大文字O",Oacute:"揚音符つき大文字O",Ocirc:"曲折アクセントつき大文字O",Otilde:"チルダつき大文字O",Ouml:" 分音記号つき大文字O", 7 | times:"乗算記号",Oslash:"打ち消し線つき大文字O",Ugrave:"抑音符つき大文字U",Uacute:"揚音符つき大文字U",Ucirc:"曲折アクセントつき大文字U",Uuml:"分音記号つき大文字U",Yacute:"揚音符つき大文字Y",THORN:"[アイスランド語]大文字THORN",szlig:"ドイツ語エスツェット",agrave:"抑音符つき小文字a",aacute:"揚音符つき小文字a",acirc:"曲折アクセントつき小文字a",atilde:"チルダつき小文字a",auml:"分音記号つき小文字a",aring:"リングつき小文字a",aelig:"aとeの合字",ccedil:"セディラつき小文字c",egrave:"抑音符つき小文字e",eacute:"揚音符つき小文字e",ecirc:"曲折アクセントつき小文字e",euml:"分音記号つき小文字e",igrave:"抑音符つき小文字i",iacute:"揚音符つき小文字i",icirc:"曲折アクセントつき小文字i",iuml:"分音記号つき小文字i",eth:"アイスランド語小文字eth", 8 | ntilde:"チルダつき小文字n",ograve:"抑音符つき小文字o",oacute:"揚音符つき小文字o",ocirc:"曲折アクセントつき小文字o",otilde:"チルダつき小文字o",ouml:"分音記号つき小文字o",divide:"除算記号",oslash:"打ち消し線つき小文字o",ugrave:"抑音符つき小文字u",uacute:"揚音符つき小文字u",ucirc:"曲折アクセントつき小文字u",uuml:"分音記号つき小文字u",yacute:"揚音符つき小文字y",thorn:"アイスランド語小文字thorn",yuml:"分音記号つき小文字y",OElig:"OとEの合字",oelig:"oとeの合字",372:"曲折アクセントつき大文字W",374:"曲折アクセントつき大文字Y",373:"曲折アクセントつき小文字w",375:"曲折アクセントつき小文字y",sbquo:"シングル下引用符",8219:"左右逆の左引用符",bdquo:"ダブル下引用符",hellip:"三点リーダ",trade:"商標記号",9658:"右黒三角ポインタ",bull:"黒丸", 9 | rarr:"右矢印",rArr:"右二重矢印",hArr:"左右二重矢印",diams:"ダイヤ",asymp:"漸近"}); -------------------------------------------------------------------------------- /includes/subscribers/import-unsubscribe-from-all-lists.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1) 56 | { 57 | header("Location: ".get_app_info('path').'/unsubscribe-from-list?i='.$app.'&l='.$listID.'&e=1'); 58 | exit; 59 | } 60 | 61 | //check if email exists to be unsubscribed 62 | $q = 'SELECT email FROM subscribers WHERE email = "'.$line.'" AND userID = '.$userID; 63 | $r = mysqli_query($mysqli, $q); 64 | if (mysqli_num_rows($r) > 0) 65 | { 66 | //email exists, unsubscribe subscriber 67 | $query = 'UPDATE '.$databasetable.' SET unsubscribed = 1 WHERE email = "'.$line.'" AND userID = '.$userID; 68 | mysqli_query($mysqli, $query); 69 | } 70 | } 71 | 72 | //return 73 | header("Location: ".get_app_info('path').'/subscribers?i=1&l=1'); 74 | 75 | ?> 76 | -------------------------------------------------------------------------------- /includes/subscribers/import-unsubscribe.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 1) 56 | { 57 | header("Location: ".get_app_info('path').'/unsubscribe-from-list?i='.$app.'&l='.$listID.'&e=1'); 58 | exit; 59 | } 60 | 61 | //check if email exists to be unsubscribed 62 | $q = 'SELECT email FROM subscribers WHERE list = '.$listID.' AND email = "'.$line.'" AND userID = '.$userID; 63 | $r = mysqli_query($mysqli, $q); 64 | if (mysqli_num_rows($r) > 0) 65 | { 66 | //email exists, unsubscribe subscriber 67 | $query = 'UPDATE '.$databasetable.' SET unsubscribed = 1 WHERE email = "'.$line.'" AND list = '.$listID.' AND userID = '.$userID; 68 | mysqli_query($mysqli, $query); 69 | } 70 | 71 | } 72 | 73 | //return 74 | header("Location: ".get_app_info('path').'/subscribers?i='.$app.'&l='.$listID); 75 | 76 | ?> 77 | -------------------------------------------------------------------------------- /includes/login/main.php: -------------------------------------------------------------------------------- 1 | 0) 30 | { 31 | while($row = mysqli_fetch_array($r)) 32 | { 33 | $userID = $row['id']; 34 | $tied_to = $row['tied_to']; 35 | $_SESSION['restricted_to_app'] = $row['app']; 36 | $_SESSION['userID'] = $userID; 37 | } 38 | 39 | //set cookie and log in 40 | if(setcookie('logged_in', hash('sha512', $userID.$email.$pass_encrypted.'PectGtma'), time()+31556926, '/', get_app_info('cookie_domain'))) 41 | { 42 | if($tied_to=='') 43 | { 44 | if($redirect_to=='') 45 | header("Location: ".get_app_info('path')); 46 | else 47 | header("Location: ".get_app_info('path').'/'.$redirect_to); 48 | } 49 | else 50 | { 51 | if($redirect_to=='') 52 | header("Location: ".get_app_info('path')."/app?i=".$_SESSION['restricted_to_app']); 53 | else 54 | header("Location: ".get_app_info('path')."/".$redirect_to); 55 | } 56 | } 57 | } 58 | else 59 | { 60 | //user doesn't exist and exit 61 | if($redirect_to=='') header("Location: ".get_app_info('path')."/login?e=2"); 62 | else header("Location: ".get_app_info('path')."/login?e=2&redirect=$redirect_to"); 63 | exit; 64 | } 65 | } 66 | ?> -------------------------------------------------------------------------------- /ckeditor/plugins/specialchar/dialogs/lang/zh-cn.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.plugins.setLang("specialchar","zh-cn",{euro:"欧元符号",lsquo:"左单引号",rsquo:"右单引号",ldquo:"左双引号",rdquo:"右双引号",ndash:"短划线",mdash:"长划线",iexcl:"竖翻叹号",cent:"分币符号",pound:"英镑符号",curren:"货币符号",yen:"日元符号",brvbar:"间断条",sect:"节标记",uml:"分音符",copy:"版权所有标记",ordf:"阴性顺序指示符",laquo:"左指双尖引号",not:"非标记",reg:"注册标记",macr:"长音符",deg:"度标记",sup2:"上标二",sup3:"上标三",acute:"锐音符",micro:"微符",para:"段落标记",middot:"中间点",cedil:"下加符",sup1:"上标一",ordm:"阳性顺序指示符",raquo:"右指双尖引号",frac14:"普通分数四分之一",frac12:"普通分数二分之一",frac34:"普通分数四分之三",iquest:"竖翻问号", 6 | Agrave:"带抑音符的拉丁文大写字母 A",Aacute:"带锐音符的拉丁文大写字母 A",Acirc:"带扬抑符的拉丁文大写字母 A",Atilde:"带颚化符的拉丁文大写字母 A",Auml:"带分音符的拉丁文大写字母 A",Aring:"带上圆圈的拉丁文大写字母 A",AElig:"拉丁文大写字母 Ae",Ccedil:"带下加符的拉丁文大写字母 C",Egrave:"带抑音符的拉丁文大写字母 E",Eacute:"带锐音符的拉丁文大写字母 E",Ecirc:"带扬抑符的拉丁文大写字母 E",Euml:"带分音符的拉丁文大写字母 E",Igrave:"带抑音符的拉丁文大写字母 I",Iacute:"带锐音符的拉丁文大写字母 I",Icirc:"带扬抑符的拉丁文大写字母 I",Iuml:"带分音符的拉丁文大写字母 I",ETH:"拉丁文大写字母 Eth",Ntilde:"带颚化符的拉丁文大写字母 N",Ograve:"带抑音符的拉丁文大写字母 O",Oacute:"带锐音符的拉丁文大写字母 O",Ocirc:"带扬抑符的拉丁文大写字母 O",Otilde:"带颚化符的拉丁文大写字母 O", 7 | Ouml:"带分音符的拉丁文大写字母 O",times:"乘号",Oslash:"带粗线的拉丁文大写字母 O",Ugrave:"带抑音符的拉丁文大写字母 U",Uacute:"带锐音符的拉丁文大写字母 U",Ucirc:"带扬抑符的拉丁文大写字母 U",Uuml:"带分音符的拉丁文大写字母 U",Yacute:"带抑音符的拉丁文大写字母 Y",THORN:"拉丁文大写字母 Thorn",szlig:"拉丁文小写字母清音 S",agrave:"带抑音符的拉丁文小写字母 A",aacute:"带锐音符的拉丁文小写字母 A",acirc:"带扬抑符的拉丁文小写字母 A",atilde:"带颚化符的拉丁文小写字母 A",auml:"带分音符的拉丁文小写字母 A",aring:"带上圆圈的拉丁文小写字母 A",aelig:"拉丁文小写字母 Ae",ccedil:"带下加符的拉丁文小写字母 C",egrave:"带抑音符的拉丁文小写字母 E",eacute:"带锐音符的拉丁文小写字母 E",ecirc:"带扬抑符的拉丁文小写字母 E",euml:"带分音符的拉丁文小写字母 E",igrave:"带抑音符的拉丁文小写字母 I", 8 | iacute:"带锐音符的拉丁文小写字母 I",icirc:"带扬抑符的拉丁文小写字母 I",iuml:"带分音符的拉丁文小写字母 I",eth:"拉丁文小写字母 Eth",ntilde:"带颚化符的拉丁文小写字母 N",ograve:"带抑音符的拉丁文小写字母 O",oacute:"带锐音符的拉丁文小写字母 O",ocirc:"带扬抑符的拉丁文小写字母 O",otilde:"带颚化符的拉丁文小写字母 O",ouml:"带分音符的拉丁文小写字母 O",divide:"除号",oslash:"带粗线的拉丁文小写字母 O",ugrave:"带抑音符的拉丁文小写字母 U",uacute:"带锐音符的拉丁文小写字母 U",ucirc:"带扬抑符的拉丁文小写字母 U",uuml:"带分音符的拉丁文小写字母 U",yacute:"带抑音符的拉丁文小写字母 Y",thorn:"拉丁文小写字母 Thorn",yuml:"带分音符的拉丁文小写字母 Y",OElig:"拉丁文大写连字 Oe",oelig:"拉丁文小写连字 Oe",372:"带扬抑符的拉丁文大写字母 W",374:"带扬抑符的拉丁文大写字母 Y", 9 | 373:"带扬抑符的拉丁文小写字母 W",375:"带扬抑符的拉丁文小写字母 Y",sbquo:"单下 9 形引号",8219:"单高横翻 9 形引号",bdquo:"双下 9 形引号",hellip:"水平省略号",trade:"商标标志",9658:"实心右指指针",bull:"加重号",rarr:"向右箭头",rArr:"向右双线箭头",hArr:"左右双线箭头",diams:"实心方块纸牌",asymp:"约等于"}); -------------------------------------------------------------------------------- /fast-unsubscribe/ajax.php: -------------------------------------------------------------------------------- 1 | \nPhone: $phone\nTopic: $topic\n\nFeedback: $feedback2"; 34 | $replyto = "$name <$email>"; 35 | 36 | $headers = array( 37 | 'From' => $from, 38 | 'Reply-To' => $replyto, 39 | 'To' => $to, 40 | 'Subject' => $subject 41 | ); 42 | 43 | $smtp = Mail::factory('smtp', array( 44 | 'host' => 'ssl://smtp.gmail.com', 45 | 'port' => '465', 46 | 'auth' => true, 47 | 'username' => 'alexpeterace@gmail.com', 48 | 'password' => '12345678!@#' 49 | )); 50 | 51 | $mail = $smtp->send($to, $headers, $body); 52 | 53 | if (PEAR::isError($mail)) { 54 | echo('

' . $mail->getMessage() . '

'); 55 | } else { 56 | echo('

Message successfully sent!

'); 57 | } 58 | 59 | } 60 | else 61 | { 62 | header('HTTP/1.1 401 All fields not received', true, 401); 63 | die(); 64 | } 65 | } 66 | 67 | ?> -------------------------------------------------------------------------------- /api/_connect.php: -------------------------------------------------------------------------------- 1 | connect_error) { 20 | fail(""._('Can\'t connect to database')."

"._('Can\'t connect to database')."

"._('There is a problem connecting to the database. Please try again later.')."

"); 21 | } 22 | 23 | global $charset; mysqli_set_charset($mysqli, isset($charset) ? $charset : "utf8"); 24 | 25 | return $mysqli; 26 | } 27 | //--------------------------------------------------------------// 28 | function fail($errorMsg) { //Database connection fails 29 | //--------------------------------------------------------------// 30 | echo $errorMsg; 31 | exit; 32 | } 33 | // connect to database 34 | dbConnect(); 35 | 36 | //--------------------------------------------------------------// 37 | function verify_api_key($api_key) { 38 | //--------------------------------------------------------------// 39 | global $mysqli; 40 | 41 | $q = 'SELECT id FROM login WHERE api_key = "'.$api_key.'"'; 42 | $r = mysqli_query($mysqli, $q); 43 | if (mysqli_num_rows($r) > 0) 44 | return true; 45 | else 46 | return false; 47 | } 48 | ?> -------------------------------------------------------------------------------- /includes/login/forgot.php: -------------------------------------------------------------------------------- 1 | 0) 20 | { 21 | while($row = mysqli_fetch_array($r)) 22 | { 23 | $uid = $row['id']; 24 | $company = stripslashes($row['company']); 25 | $name = stripslashes($row['name']); 26 | $aws_key = stripslashes($row['s3_key']); 27 | $aws_secret = stripslashes($row['s3_secret']); 28 | } 29 | 30 | //Change user's password to the new one 31 | $q = 'UPDATE login SET password = "'.$pass_encrypted.'" WHERE id = '.$uid; 32 | $r = mysqli_query($mysqli, $q); 33 | if ($r) 34 | { 35 | //send a message to let them know 36 | $plain_text = $name.', 37 | '._('Your password has been reset, here\'s your new one').': 38 | 39 | '._('Password').': '.$new_pass.' 40 | 41 | '._('Remember to change it immediately once you log back in.'); 42 | 43 | $message = ' 44 |

'.$name.',

45 |

'._('Your password has been reset, here\'s your new one').':

46 |

'._('Password').': '.$new_pass.'

47 |

'._('Remember to change it immediately once you log back in.').'

48 | '; 49 | 50 | //send email to me 51 | $mail = new PHPMailer(); 52 | if($aws_key!='' && $aws_secret!='') 53 | { 54 | $mail->IsAmazonSES(); 55 | $mail->AddAmazonSESKey($aws_key, $aws_secret); 56 | } 57 | $mail->CharSet = "UTF-8"; 58 | $mail->From = $email; 59 | $mail->FromName = $company; 60 | $mail->Subject = '['.$company.'] '._('Your new password'); 61 | $mail->AltBody = $plain_text; 62 | $mail->MsgHTML($message); 63 | $mail->AddAddress($email, $company); 64 | $mail->Send(); 65 | } 66 | echo true; 67 | } 68 | else 69 | { 70 | echo _('Email does not exist.'); 71 | } 72 | ?> -------------------------------------------------------------------------------- /ckeditor/contents.css: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | body 7 | { 8 | /* Font */ 9 | font-family: sans-serif, Arial, Verdana, "Trebuchet MS"; 10 | font-size: 12px; 11 | 12 | /* Text color */ 13 | color: #333; 14 | 15 | /* Remove the background color to make it transparent */ 16 | background-color: #fff; 17 | 18 | margin: 20px; 19 | } 20 | 21 | .cke_editable 22 | { 23 | font-size: 13px; 24 | line-height: 1.6em; 25 | } 26 | 27 | blockquote 28 | { 29 | font-style: italic; 30 | font-family: Georgia, Times, "Times New Roman", serif; 31 | padding: 2px 0; 32 | border-style: solid; 33 | border-color: #ccc; 34 | border-width: 0; 35 | } 36 | 37 | .cke_contents_ltr blockquote 38 | { 39 | padding-left: 20px; 40 | padding-right: 8px; 41 | border-left-width: 5px; 42 | } 43 | 44 | .cke_contents_rtl blockquote 45 | { 46 | padding-left: 8px; 47 | padding-right: 20px; 48 | border-right-width: 5px; 49 | } 50 | 51 | a 52 | { 53 | color: #0782C1; 54 | } 55 | 56 | ol,ul,dl 57 | { 58 | /* IE7: reset rtl list margin. (#7334) */ 59 | *margin-right: 0px; 60 | /* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/ 61 | padding: 0 40px; 62 | } 63 | 64 | h1,h2,h3,h4,h5,h6 65 | { 66 | font-weight: normal; 67 | line-height: 1.2em; 68 | } 69 | 70 | hr 71 | { 72 | border: 0px; 73 | border-top: 1px solid #ccc; 74 | } 75 | 76 | img.right 77 | { 78 | border: 1px solid #ccc; 79 | float: right; 80 | margin-left: 15px; 81 | padding: 5px; 82 | } 83 | 84 | img.left 85 | { 86 | border: 1px solid #ccc; 87 | float: left; 88 | margin-right: 15px; 89 | padding: 5px; 90 | } 91 | 92 | pre 93 | { 94 | white-space: pre-wrap; /* CSS 2.1 */ 95 | word-wrap: break-word; /* IE7 */ 96 | } 97 | 98 | .marker 99 | { 100 | background-color: Yellow; 101 | } 102 | 103 | span[lang] 104 | { 105 | font-style: italic; 106 | } 107 | 108 | figure 109 | { 110 | text-align: center; 111 | border: solid 1px #ccc; 112 | border-radius: 2px; 113 | background: rgba(0,0,0,0.05); 114 | padding: 10px; 115 | margin: 10px 20px; 116 | display: block; /* For IE8 */ 117 | } 118 | 119 | figure figcaption 120 | { 121 | text-align: center; 122 | display: block; /* For IE8 */ 123 | } 124 | -------------------------------------------------------------------------------- /ckeditor/samples/tabindex.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | TAB Key-Based Navigation — CKEditor Sample 9 | 10 | 11 | 12 | 22 | 42 | 43 | 44 |

45 | CKEditor Samples » TAB Key-Based Navigation 46 |

47 |
48 |

49 | This sample shows how tab key navigation among editor instances is 50 | affected by the tabIndex attribute from 51 | the original page element. Use TAB key to move between the editors. 52 |

53 |
54 |

55 | 56 |

57 |
58 |

59 | 60 |

61 |

62 | 63 |

64 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /includes/app/create.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /ckeditor/plugins/a11yhelp/dialogs/lang/si.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.plugins.setLang("a11yhelp","si",{title:"ළඟා වියහැකි ",contents:"උදව් සඳහා අන්තර්ගතය.නික්මයෙමට ESC බොත්තම ඔබන්න",legend:[{name:"පොදු කරුණු",items:[{name:"සංස්කරණ මෙවලම් ",legend:"ඔබන්න ${මෙවලම් තීරු අවධානය} මෙවලම් තීරුවේ එහා මෙහා යෑමට.ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරුකාණ්ඩය හා TAB හා SHIFT-TAB .ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරු බොත්තම සමග RIGHT ARROW හෝ LEFT ARROW.මෙවලම් තීරු බොත්තම සක්‍රිය කර ගැනීමට SPACE හෝ ENTER බොත්තම ඔබන්න."},{name:"සංස්කරණ ",legend:"දෙබසක් තුළ, ඊළඟ දෙබස් පෙදෙසට යෑමට TAB බොත්තම ඔබන්න, කලින් පෙදෙසට යෑමට SHIFT + TAB බොත්තම ද, දෙබස් ඉදිරිපත් කිරීමට ENTER බොත්තම ද, දෙබස් නැවතීමට ESCබොත්තම ද, දෙබස් සහිත ගොනු, පිටු වැඩි සංක්‍යයාවක් ලබා ගෙනිමට,ගොනු තුළ එහාමෙහා යෑමට ALT + F10 බොත්තම් ද, ඊළඟ ගොනුවට යෑමට TAB හෝ RIGTH ARROW බොත්තම ඔබන්න. පෙර ගොනුවට යෑමට SHIFT + TAB හෝ LEFT ARROW බොත්තම් ද ,ගොනු පිටු තේරීමට SPACE හෝ ENTER බොත්තම් ද ඔබන්න."}, 6 | {name:"සංස්කරණ අඩංගුවට ",legend:"ඔබන්න ${අන්තර්ගත මෙනුව} හෝ APPLICATION KEY අන්තර්ගත-මෙනුව විවුරතකිරීමට. ඊළඟ මෙනුව-ව්කල්පයන්ට යෑමට TAB හෝ DOWN ARROW බොත්තම ද, පෙර විකල්පයන්ටයෑමට SHIFT+TAB හෝ UP ARROW බොත්තම ද, මෙනුව-ව්කල්පයන් තේරීමට SPACE හෝ ENTER බොත්තම ද, දැනට විවුර්තව ඇති උප-මෙනුවක වීකල්ප තේරීමට SPACE හෝ ENTER හෝ RIGHT ARROW ද, නැවත පෙර ප්‍රධාන මෙනුවට යෑමට ESC හෝ LEFT ARROW බොත්තම ද. අන්තර්ගත-මෙනුව වැසීමට ESC බොත්තම ද ඔබන්න."},{name:"සංස්කරණ තේරුම් ",legend:"තේරුම් කොටුව තුළ , ඊළඟ අයිතමයට යෑමට TAB හෝ DOWN ARROW , පෙර අයිතමයට යෑමට SHIFT + TAB හෝ UP ARROW . අයිතම විකල්පයන් තේරීමට SPACE හෝ ENTER ,තේරුම් කොටුව වැසීමට ESC බොත්තම් ද ඔබන්න."}, 7 | {name:"සංස්කරණ අංග සහිත ",legend:"ඔබන්න ${මෙවලම් තීරු අවධානය} මෙවලම් තීරුවේ එහා මෙහා යෑමට.ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරුකාණ්ඩය හා TAB හා SHIFT-TAB .ඉදිරියට යෑමට හා ආපසු යෑමට මෙවලම් තීරු බොත්තම සමග RIGHT ARROW හෝ LEFT ARROW.මෙවලම් තීරු බොත්තම සක්‍රිය කර ගැනීමට SPACE හෝ ENTER බොත්තම ඔබන්න."}]},{name:"විධාන",items:[{name:"විධානය වෙනස් ",legend:"ඔබන්න ${වෙනස් කිරීම}"},{name:"විධාන නැවත් පෙර පරිදිම වෙනස්කර ගැනීම.",legend:"ඔබන්න ${නැවත් පෙර පරිදිම වෙනස්කර ගැනීම}"},{name:"තද අකුරින් විධාන",legend:"ඔබන්න ${තද }"}, 8 | {name:"බැධී අකුරු විධාන",legend:"ඔබන්න ${බැධී අකුරු }"},{name:"යටින් ඉරි ඇද ඇති විධාන.",legend:"ඔබන්න ${යටින් ඉරි ඇද ඇති}"},{name:"සම්බන්ධිත විධාන",legend:"ඔබන්න ${සම්බන්ධ }"},{name:"මෙවලම් තීරු හැකුලුම් විධාන",legend:"ඔබන්න ${මෙවලම් තීරු හැකුලුම් }"},{name:"යොමුවීමට පෙර වැදගත් විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"යොමුවීමට ඊළග වැදගත් විධාන",legend:"ඔබන්න ${යොමුවීමට ඊළඟ }"},{name:"ප්‍රවේශ ",legend:"ඔබන්න ${a11y }"}]}]}); -------------------------------------------------------------------------------- /includes/list/delete-custom-field.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0) 32 | { 33 | echo 'ares_used'; 34 | exit; 35 | } 36 | 37 | unset($custom_fields_array[$index]); 38 | $c_field = implode('%s%', $custom_fields_array); 39 | 40 | //update custom_fields column 41 | $q2 = 'UPDATE lists SET custom_fields = "'.$c_field.'" WHERE id = '.$list_id; 42 | $r2 = mysqli_query($mysqli, $q2); 43 | if ($r2){} 44 | } 45 | 46 | //delete data from subscribers 47 | $q3 = 'SELECT id, custom_fields FROM subscribers WHERE list = '.$list_id; 48 | $r3 = mysqli_query($mysqli, $q3); 49 | if ($r3) 50 | { 51 | while($row = mysqli_fetch_array($r3)) 52 | { 53 | //reset array and vars 54 | unset($custom_fields_array); 55 | $c_field = ''; 56 | 57 | //retrieved from database 58 | $s_id = $row['id']; 59 | $custom_fields = $row['custom_fields']; 60 | 61 | //delete element from array 62 | $custom_fields_array = explode('%s%', $custom_fields); 63 | unset($custom_fields_array[$index]); 64 | $c_field = implode('%s%', $custom_fields_array); 65 | 66 | //update custom_fields column 67 | $q4 = 'UPDATE subscribers SET custom_fields = "'.$c_field.'" WHERE list = '.$list_id.' AND id = '.$s_id; 68 | $r4 = mysqli_query($mysqli, $q4); 69 | } 70 | } 71 | 72 | echo true; 73 | ?> -------------------------------------------------------------------------------- /includes/list/edit-custom-field.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0) 51 | { 52 | while($row = mysqli_fetch_array($r3)) $ares_id = $row['id']; 53 | 54 | $q4 = 'UPDATE ares SET custom_field = "'.$field_name.'" WHERE id = '.$ares_id; 55 | $r4 = mysqli_query($mysqli, $q4); 56 | if ($r4){} 57 | } 58 | 59 | //update custom_fields column 60 | $q2 = 'UPDATE lists SET custom_fields = "'.$c_field.'" WHERE id = '.$list_id; 61 | $r2 = mysqli_query($mysqli, $q2); 62 | if ($r2) 63 | header("Location: ".get_app_info('path')."/custom-fields?i=$app&l=$list_id"); 64 | } 65 | ?> -------------------------------------------------------------------------------- /ckeditor/plugins/a11yhelp/dialogs/lang/he.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.plugins.setLang("a11yhelp","he",{title:"הוראות נגישות",contents:"הוראות נגישות. לסגירה לחץ אסקייפ (ESC).",legend:[{name:"כללי",items:[{name:"סרגל הכלים",legend:"לחץ על ${toolbarFocus} כדי לנווט לסרגל הכלים. עבור לכפתור הבא עם מקש הטאב (TAB) או חץ שמאלי. עבור לכפתור הקודם עם מקש השיפט (SHIFT) + טאב (TAB) או חץ ימני. לחץ רווח או אנטר (ENTER) כדי להפעיל את הכפתור הנבחר."},{name:"דיאלוגים (חלונות תשאול)",legend:"בתוך דיאלוג, לחץ טאב (TAB) כדי לנווט לשדה הבא, לחץ שיפט (SHIFT) + טאב (TAB) כדי לנווט לשדה הקודם, לחץ אנטר (ENTER) כדי לשלוח את הדיאלוג, לחץ אסקייפ (ESC) כדי לבטל. בתוך דיאלוגים בעלי מספר טאבים (לשוניות), לחץ אלט (ALT) + F10 כדי לנווט לשורת הטאבים. נווט לטאב הבא עם טאב (TAB) או חץ שמאלי. עבור לטאב הקודם עם שיפט (SHIFT) + טאב (TAB) או חץ שמאלי. לחץ רווח או אנטר (ENTER) כדי להיכנס לטאב."}, 6 | {name:"תפריט ההקשר (Context Menu)",legend:"לחץ ${contextMenu} או APPLICATION KEYכדי לפתוח את תפריט ההקשר. עבור לאפשרות הבאה עם טאב (TAB) או חץ למטה. עבור לאפשרות הקודמת עם שיפט (SHIFT) + טאב (TAB) או חץ למעלה. לחץ רווח או אנטר (ENTER) כדי לבחור את האפשרות. פתח את תת התפריט (Sub-menu) של האפשרות הנוכחית עם רווח או אנטר (ENTER) או חץ שמאלי. חזור לתפריט האב עם אסקייפ (ESC) או חץ שמאלי. סגור את תפריט ההקשר עם אסקייפ (ESC)."},{name:"תפריטים צפים (List boxes)",legend:"בתוך תפריט צף, עבור לפריט הבא עם טאב (TAB) או חץ למטה. עבור לתפריט הקודם עם שיפט (SHIFT) + טאב (TAB) or חץ עליון. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, 7 | {name:"עץ אלמנטים (Elements Path)",legend:"לחץ ${elementsPathFocus} כדי לנווט לעץ האלמנטים. עבור לפריט הבא עם טאב (TAB) או חץ ימני. עבור לפריט הקודם עם שיפט (SHIFT) + טאב (TAB) או חץ שמאלי. לחץ רווח או אנטר (ENTER) כדי לבחור את האלמנט בעורך."}]},{name:"פקודות",items:[{name:" ביטול צעד אחרון",legend:"לחץ ${undo}"},{name:" חזרה על צעד אחרון",legend:"לחץ ${redo}"},{name:" הדגשה",legend:"לחץ ${bold}"},{name:" הטייה",legend:"לחץ ${italic}"},{name:" הוספת קו תחתון",legend:"לחץ ${underline}"},{name:" הוספת לינק", 8 | legend:"לחץ ${link}"},{name:" כיווץ סרגל הכלים",legend:"לחץ ${toolbarCollapse}"},{name:"גישה למיקום המיקוד הקודם",legend:"לחץ ${accessPreviousSpace} כדי לגשת למיקום המיקוד הלא-נגיש הקרוב לפני הסמן, למשל בין שני אלמנטים סמוכים מסוג HR. חזור על צירוף מקשים זה כדי להגיע למקומות מיקוד רחוקים יותר."},{name:"גישה למיקום המיקוד הבא",legend:"לחץ ${accessNextSpace} כדי לגשת למיקום המיקוד הלא-נגיש הקרוב אחרי הסמן, למשל בין שני אלמנטים סמוכים מסוג HR. חזור על צירוף מקשים זה כדי להגיע למקומות מיקוד רחוקים יותר."}, 9 | {name:" הוראות נגישות",legend:"לחץ ${a11yHelp}"}]}]}); -------------------------------------------------------------------------------- /ckeditor/samples/uicolor.html: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | UI Color Picker — CKEditor Sample 9 | 10 | 11 | 12 | 13 | 14 |

15 | CKEditor Samples » UI Color 16 |

17 |
18 |

19 | This sample shows how to automatically replace <textarea> elements 20 | with a CKEditor instance with an option to change the color of its user interface.
21 | Note:The UI skin color feature depends on the CKEditor skin 22 | compatibility. The Moono and Kama skins are examples of skins that work with it. 23 |

24 |
25 |
26 |

27 | This editor instance has a UI color value defined in configuration to change the skin color, 28 | To specify the color of the user interface, set the uiColor property: 29 |

30 |
31 | CKEDITOR.replace( 'textarea_id', {
32 | 	uiColor: '#14B8C4'
33 | });
34 |

35 | Note that textarea_id in the code above is the id attribute of 36 | the <textarea> element to be replaced. 37 |

38 |

39 | 40 | 53 |

54 |

55 | 56 |

57 |
58 | 68 | 69 | 70 | -------------------------------------------------------------------------------- /ckeditor/skins/moono/readme.md: -------------------------------------------------------------------------------- 1 | "Moono" Skin 2 | ==================== 3 | 4 | This skin has been chosen for the **default skin** of CKEditor 4.x, elected from the CKEditor 5 | [skin contest](http://ckeditor.com/blog/new_ckeditor_4_skin) and further shaped by 6 | the CKEditor team. "Moono" is maintained by the core developers. 7 | 8 | For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) 9 | documentation. 10 | 11 | Features 12 | ------------------- 13 | "Moono" is a monochromatic skin, which offers a modern look coupled with gradients and transparency. 14 | It comes with the following features: 15 | 16 | - Chameleon feature with brightness, 17 | - high-contrast compatibility, 18 | - graphics source provided in SVG. 19 | 20 | Directory Structure 21 | ------------------- 22 | 23 | CSS parts: 24 | - **editor.css**: the main CSS file. It's simply loading several other files, for easier maintenance, 25 | - **mainui.css**: the file contains styles of entire editor outline structures, 26 | - **toolbar.css**: the file contains styles of the editor toolbar space (top), 27 | - **richcombo.css**: the file contains styles of the rich combo ui elements on toolbar, 28 | - **panel.css**: the file contains styles of the rich combo drop-down, it's not loaded 29 | until the first panel open up, 30 | - **elementspath.css**: the file contains styles of the editor elements path bar (bottom), 31 | - **menu.css**: the file contains styles of all editor menus including context menu and button drop-down, 32 | it's not loaded until the first menu open up, 33 | - **dialog.css**: the CSS files for the dialog UI, it's not loaded until the first dialog open, 34 | - **reset.css**: the file defines the basis of style resets among all editor UI spaces, 35 | - **preset.css**: the file defines the default styles of some UI elements reflecting the skin preference, 36 | - **editor_XYZ.css** and **dialog_XYZ.css**: browser specific CSS hacks. 37 | 38 | Other parts: 39 | - **skin.js**: the only JavaScript part of the skin that registers the skin, its browser specific files and its icons and defines the Chameleon feature, 40 | - **icons/**: contains all skin defined icons, 41 | - **images/**: contains a fill general used images, 42 | - **dev/**: contains SVG source of the skin icons. 43 | 44 | License 45 | ------- 46 | 47 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 48 | 49 | Licensed under the terms of any of the following licenses at your choice: [GPL](http://www.gnu.org/licenses/gpl.html), [LGPL](http://www.gnu.org/licenses/lgpl.html) and [MPL](http://www.mozilla.org/MPL/MPL-1.1.html). 50 | 51 | See LICENSE.md for more information. 52 | -------------------------------------------------------------------------------- /includes/list/edit.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /api/subscribers/subscription-status.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 0) 58 | { 59 | while($row = mysqli_fetch_array($r)) 60 | { 61 | $unsubscribed = $row['unsubscribed']; 62 | $bounced = $row['bounced']; 63 | $bounce_soft = $row['bounce_soft']; 64 | $complaint = $row['complaint']; 65 | $confirmed = $row['confirmed']; 66 | 67 | if(!$unsubscribed && !$bounced && !$bounce_soft && !$complaint && $confirmed) 68 | echo 'Subscribed'; 69 | else if(!$confirmed) 70 | echo 'Unconfirmed'; 71 | else if($unsubscribed) 72 | echo 'Unsubscribed'; 73 | else if($bounced) 74 | echo 'Bounced'; 75 | else if($bounce_soft>0) 76 | echo 'Soft bounced'; 77 | else if($complaint) 78 | echo 'Complained'; 79 | } 80 | } 81 | else 82 | { 83 | echo $error_passed[2]; 84 | } 85 | //-----------------------------------------------------------// 86 | ?> -------------------------------------------------------------------------------- /ckeditor/plugins/a11yhelp/dialogs/lang/ko.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.plugins.setLang("a11yhelp","ko",{title:"Accessibility Instructions",contents:"Help Contents. To close this dialog press ESC.",legend:[{name:"General",items:[{name:"편집기 툴바",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"편집기 다이얼로그",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."}, 6 | {name:"편집기 환경 메뉴",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"편집기 목록 박스",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, 7 | {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"명령",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", 8 | legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, 9 | {name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]}); -------------------------------------------------------------------------------- /ckeditor/plugins/a11yhelp/dialogs/lang/gu.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.plugins.setLang("a11yhelp","gu",{title:"એક્ક્ષેબિલિટી ની વિગતો",contents:"હેલ્પ. આ બંધ કરવા ESC દબાવો.",legend:[{name:"જનરલ",items:[{name:"એડિટર ટૂલબાર",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"એડિટર ડાયલોગ",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."}, 6 | {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, 7 | {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"કમાંડસ",items:[{name:"અન્ડું કમાંડ",legend:"$ દબાવો {undo}"},{name:"ફરી કરો કમાંડ",legend:"$ દબાવો {redo}"},{name:"બોલ્દનો કમાંડ",legend:"$ દબાવો {bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", 8 | legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, 9 | {name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]}); -------------------------------------------------------------------------------- /ckeditor/plugins/a11yhelp/dialogs/lang/id.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.plugins.setLang("a11yhelp","id",{title:"Accessibility Instructions",contents:"Bantuan. Tekan ESC untuk menutup dialog ini.",legend:[{name:"Umum",items:[{name:"Editor Toolbar",legend:"Press ${toolbarFocus} to navigate to the toolbar. Move to the next and previous toolbar group with TAB and SHIFT-TAB. Move to the next and previous toolbar button with RIGHT ARROW or LEFT ARROW. Press SPACE or ENTER to activate the toolbar button."},{name:"Editor Dialog",legend:"Inside a dialog, press TAB to navigate to next dialog field, press SHIFT + TAB to move to previous field, press ENTER to submit dialog, press ESC to cancel dialog. For dialogs that have multiple tab pages, press ALT + F10 to navigate to tab-list. Then move to next tab with TAB OR RIGTH ARROW. Move to previous tab with SHIFT + TAB or LEFT ARROW. Press SPACE or ENTER to select the tab page."}, 6 | {name:"Editor Context Menu",legend:"Press ${contextMenu} or APPLICATION KEY to open context-menu. Then move to next menu option with TAB or DOWN ARROW. Move to previous option with SHIFT+TAB or UP ARROW. Press SPACE or ENTER to select the menu option. Open sub-menu of current option with SPACE or ENTER or RIGHT ARROW. Go back to parent menu item with ESC or LEFT ARROW. Close context menu with ESC."},{name:"Editor List Box",legend:"Inside a list-box, move to next list item with TAB OR DOWN ARROW. Move to previous list item with SHIFT + TAB or UP ARROW. Press SPACE or ENTER to select the list option. Press ESC to close the list-box."}, 7 | {name:"Editor Element Path Bar",legend:"Press ${elementsPathFocus} to navigate to the elements path bar. Move to next element button with TAB or RIGHT ARROW. Move to previous button with SHIFT+TAB or LEFT ARROW. Press SPACE or ENTER to select the element in editor."}]},{name:"Commands",items:[{name:" Undo command",legend:"Press ${undo}"},{name:" Redo command",legend:"Press ${redo}"},{name:" Bold command",legend:"Press ${bold}"},{name:" Italic command",legend:"Press ${italic}"},{name:" Underline command", 8 | legend:"Press ${underline}"},{name:" Link command",legend:"Press ${link}"},{name:" Toolbar Collapse command",legend:"Press ${toolbarCollapse}"},{name:" Access previous focus space command",legend:"Press ${accessPreviousSpace} to access the closest unreachable focus space before the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."},{name:" Access next focus space command",legend:"Press ${accessNextSpace} to access the closest unreachable focus space after the caret, for example: two adjacent HR elements. Repeat the key combination to reach distant focus spaces."}, 9 | {name:" Accessibility Help",legend:"Press ${a11yHelp}"}]}]}); --------------------------------------------------------------------------------