fn_update_subscriber($v, $subscriber_id); } } } if ($mode == 'm_delete') { fn_delete_subscribers($_REQUEST['subscriber_ids']); } if ($mode == 'delete') { if (!empty($_REQUEST['subscriber_id'])) { fn_delete_subscribers((array) $_REQUEST['subscriber_id']); } } return array(CONTROLLER_STATUS_OK, 'subscribers' . $suffix); } if ($mode == 'manage') { list($subscribers, $search) = fn_get_subscribers($_REQUEST, Registry::get('settings.Appearance.admin_elements_per_page')); foreach ($subscribers as &$subscriber) { if (!empty($subscriber['list_ids'])) { $subscriber['mailing_lists'] = array(); foreach (explode(',', $subscriber['list_ids']) as $list_id) { $subscriber['mailing_lists'][$list_id] = fn_get_mailing_list_data($list_id, DESCR_SL); // get additional user-specific data for each mailing list (like lang_code) $_where = array('list_id' => $list_id, 'subscriber_id' => $subscriber['subscriber_id']); $subscriber_list_data = db_get_row("SELECT * FROM ?:user_mailing_lists WHERE ?w", $_where); $subscriber['mailing_lists'][$list_id] = array_merge($subscriber['mailing_lists'][$list_id], $subscriber_list_data); $subscriber['lang_code'] = $subscriber['mailing_lists'][$list_id]['lang_code']; } unset($subscriber['list_ids']); } } $mailing_lists = db_get_hash_array("SELECT m.list_id, d.object, ?:newsletters.newsletter_id as register_autoresponder FROM ?:mailing_lists AS m INNER JOIN ?:common_descriptions AS d ON m.list_id=d.object_id LEFT JOIN ?:newsletters ON m.register_autoresponder = ?:newsletters.newsletter_id AND ?:newsletters.status = 'A' WHERE d.object_holder='mailing_lists' AND d.lang_code = ?s", 'list_id', DESCR_SL);
db_query("UPDATE ?:user_mailing_lists SET ?u WHERE subscriber_id = ?i AND list_id = ?i", $_data, $subscriber_id, $list_id); } } db_query("DELETE FROM ?:user_mailing_lists WHERE subscriber_id = ?i AND list_id NOT IN(?n)", $subscriber_id, $v['list_ids']); } else { db_query("DELETE FROM ?:user_mailing_lists WHERE subscriber_id = ?i", $subscriber_id); } } } if ($mode == 'delete') { fn_delete_subscribers($_REQUEST['subscriber_ids']); } return array(CONTROLLER_STATUS_OK, "subscribers.manage"); } if ($mode == 'manage') { list($subscribers, $search) = fn_get_subscribers($_REQUEST); foreach ($subscribers as &$subscriber) { if (!empty($subscriber['list_ids'])) { $subscriber['mailing_lists'] = array(); foreach (explode(',', $subscriber['list_ids']) as $list_id) { $subscriber['mailing_lists'][$list_id] = fn_get_mailing_list_data($list_id, DESCR_SL); // get additional user-specific data for each mailing list (like format and lang_code) $_where = array('list_id' => $list_id, 'subscriber_id' => $subscriber['subscriber_id']); $subscriber_list_data = db_get_row("SELECT * FROM ?:user_mailing_lists WHERE ?w", $_where); $subscriber['mailing_lists'][$list_id] = array_merge($subscriber['mailing_lists'][$list_id], $subscriber_list_data); } unset($subscriber['list_ids']); } } $mailing_lists = db_get_hash_single_array("SELECT m.list_id, d.object FROM ?:mailing_lists m INNER JOIN ?:common_descriptions d ON m.list_id=d.object_id WHERE d.object_holder='mailing_lists' AND d.lang_code = ?s", array('list_id', 'object'), DESCR_SL); $view->assign('mailing_lists', $mailing_lists);