summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authormodela bitweaver <spiderr@bitweaver.org>2021-02-13 19:03:53 -0500
committermodela bitweaver <spiderr@bitweaver.org>2021-02-13 19:03:53 -0500
commit6a7600fc6c90dccae6705f3f1dcc39ddc64f5cea (patch)
tree4d2f231acf9218afbe4a120b0a83ca815d875b01 /includes
parenta6afd9c663a2d2c8f06e3f4c829fa0d9874e9b1c (diff)
downloadnewsletters-6a7600fc6c90dccae6705f3f1dcc39ddc64f5cea.tar.gz
newsletters-6a7600fc6c90dccae6705f3f1dcc39ddc64f5cea.tar.bz2
newsletters-6a7600fc6c90dccae6705f3f1dcc39ddc64f5cea.zip
move bit_setup_inc.php to includes/
Diffstat (limited to 'includes')
-rw-r--r--includes/bit_setup_inc.php67
1 files changed, 67 insertions, 0 deletions
diff --git a/includes/bit_setup_inc.php b/includes/bit_setup_inc.php
new file mode 100644
index 0000000..93cb519
--- /dev/null
+++ b/includes/bit_setup_inc.php
@@ -0,0 +1,67 @@
+<?php
+global $gBitSystem;
+
+define( 'LIBERTY_SERVICE_NEWSLETTERS', 'newsletters' );
+
+$registerHash = array(
+ 'package_name' => 'newsletters',
+ 'package_path' => dirname( __FILE__ ).'/',
+ 'homeable' => TRUE,
+);
+$gBitSystem->registerPackage( $registerHash );
+
+if( $gBitSystem->isPackageActive( NEWSLETTERS_PKG_NAME ) ) {
+ $menuHash = array(
+ 'package_name' => NEWSLETTERS_PKG_NAME,
+ 'index_url' => NEWSLETTERS_PKG_URL.'index.php',
+ 'menu_template' => 'bitpackage:newsletters/menu_newsletters.tpl',
+ );
+ $gBitSystem->registerAppMenu( $menuHash );
+ if( isset( $_GET['ct'] ) && strlen( $_GET['ct'] ) == 32 ) {
+ require_once( NEWSLETTERS_PKG_PATH.'BitNewsletterMailer.php' );
+ BitNewsletterMailer::storeClickthrough( $_GET['ct'] );
+ }
+
+ $gLibertySystem->registerService( LIBERTY_SERVICE_NEWSLETTERS, NEWSLETTERS_PKG_NAME, array(
+ 'users_expunge_function' => 'newsletters_user_expunge',
+ 'users_register_function' => 'newsletters_user_register',
+ ) );
+
+ // make sure all mail_queue messages from a deleted user are nuked
+ function newsletters_user_expunge( &$pObject ) {
+ if( is_a( $pObject, 'BitUser' ) && !empty( $pObject->mUserId ) ) {
+ $pObject->mDb->StartTrans();
+ $pObject->mDb->query( "DELETE FROM `".BIT_DB_PREFIX."mail_queue` WHERE user_id=?", array( $pObject->mUserId ) );
+ $pObject->mDb->query( "DELETE FROM `".BIT_DB_PREFIX."mail_subscriptions` WHERE user_id=?", array( $pObject->mUserId ) );
+ $pObject->mDb->CompleteTrans();
+ }
+ }
+
+ function newsletters_user_register( &$pObject ) {
+ if( !empty( $_REQUEST['newsletter_optin'] ) ) {
+ // hidden flag to indicate at least one newsletter was displayed
+ require_once NEWSLETTERS_PKG_PATH.'BitNewsletter.php';
+ require_once NEWSLETTERS_PKG_PATH.'BitNewsletterMailer.php';
+
+ if( !empty( $_REQUEST['unsub_all'] ) ) {
+ $subHash['unsubscribe_all'] = 'y';
+ } else {
+ $newsletter = new BitNewsletter();
+ $pParamHash = array();
+ $newsletters = $newsletter->getList($pParamHash);
+ foreach( array_keys( $newsletters ) as $nlContentId ) {
+ if( empty( $_REQUEST['nl_content_id'] ) || !in_array( $nlContentId, $_REQUEST['nl_content_id'] ) ) {
+ $subHash['unsub_content'][] = $nlContentId;
+ $subHash['unsubscribe_all'] = NULL;
+ }
+ }
+ }
+
+ if( !empty( $subHash ) ) {
+ $subHash['sub_lookup'] = array( 'user_id' => $pObject->mUserId );
+ BitNewsletterMailer::storeSubscriptions( $subHash );
+ }
+ }
+ }
+}
+?>