function tapatalk_push_pm() { global $user_info, $db_prefix, $boardurl, $modSettings, $context, $ID_MEMBER; $sent_logs = !empty($context['send_log']) && !empty($context['send_log']['sent']) ? $context['send_log']['sent'] : array(); $sent_recipients = array(); foreach ($sent_logs as $sent_log) { if (preg_match('/ \'(.*?)\'/', $sent_log, $match)) { $sent_recipients[] = $match[1]; } } $sent_recipients = verify_smf_userids_from_names($sent_recipients); if (isset($sent_recipients) && !empty($sent_recipients) && isset($_REQUEST['subject'])) { $timestr = time(); $id_pm_req = db_query("\n SELECT p.id_pm\n FROM {$db_prefix}personal_messages p\n WHERE p.id_member_from = '{$ID_MEMBER}' ORDER BY id_pm DESC LIMIT 1", __FILE__, __LINE__); if ($id_pm_req && ($id_pm = mysql_fetch_assoc($id_pm_req))) { $sent_recipients_str = implode(',', $sent_recipients); $request = db_query("\n SELECT tu.uid\n FROM {$db_prefix}tapatalk_users tu\n WHERE tu.uid IN ({$sent_recipients_str})", __FILE__, __LINE__); $userids = ''; while ($row = mysql_fetch_assoc($request)) { if ($row['uid'] == $ID_MEMBER) { continue; } $userids = empty($userids) ? $row['uid'] : $userids . ',' . $row['uid']; $pushed_user_ids[] = $row['uid']; } $ttp_data = array('userid' => $userids, 'type' => 'pm', 'id' => $id_pm['id_pm'], 'title' => tt_push_clean($_REQUEST['subject']), 'author' => tt_push_clean($user_info['name']), 'authorid' => $ID_MEMBER, 'dateline' => time()); //store_as_alert($ttp_data); $ttp_post_data = array('url' => $boardurl, 'data' => base64_encode(serialize(array($ttp_data)))); //if(isset($modSettings['tp_push_key']) && !empty($modSettings['tp_push_key'])) //$ttp_post_data['key'] = $modSettings['tp_push_key']; tt_do_post_request($ttp_post_data); } } }
function tt_send_push_data($user_id, $type, $id, $sub_id, $title, $author, $is_only_alert = false) { global $config, $db, $user, $phpbb_root_path; if (!function_exists("tt_get_ignore_users")) { if (!defined("IN_MOBIQUO")) { define('IN_MOBIQUO', true); } if (!isset($config['tapatalkdir'])) { $config['tapatalkdir'] = 'mobiquo'; } require_once $phpbb_root_path . $config['tapatalkdir'] . '/mobiquo_common.php'; } $ignore_users = tt_get_ignore_users($user_id); if (in_array($user->data['user_id'], $ignore_users)) { return false; } $boardurl = generate_board_url(); $ttp_data = array('userid' => $user_id, 'type' => $type, 'id' => $id, 'subid' => $sub_id, 'title' => tt_push_clean($title), 'author' => tt_push_clean($author), 'dateline' => time()); if (push_data_table_exists()) { tt_insert_push_data($ttp_data); } if ($is_only_alert) { return; } $ttp_post_data = array('url' => $boardurl, 'data' => base64_encode(serialize(array($ttp_data)))); if (!empty($config['tapatalk_push_key'])) { $ttp_post_data['key'] = $config['tapatalk_push_key']; } $return_status = tt_do_post_request($ttp_post_data); return $return_status; }
function tapatalk_push_quote($data, $user_name_arr, $type = "quote") { global $db, $user, $config, $table_prefix, $phpbb_root_path, $phpEx; $boardurl = generate_board_url(); $return_status = false; if (!check_push()) { return false; } if (!empty($user_name_arr) && !empty($data) && (function_exists('curl_init') || ini_get('allow_url_fopen'))) { foreach ($user_name_arr as $username) { $user_id = get_user_id($username); if ($user_id == $user->data['user_id']) { continue; } if ($user_id == $data['poster_id']) { continue; } $sql = "SELECT userid FROM " . $table_prefix . "tapatalk_users WHERE userid = '" . $user_id . "' AND " . $type . " = 1"; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); $db->sql_freeresult($result); if (!empty($row)) { $ttp_data = array('userid' => $row['userid'], 'type' => $type, 'id' => empty($data['topic_id']) ? $data['forum_id'] : $data['topic_id'], 'subid' => $data['post_id'], 'title' => tt_push_clean($data['topic_title']), 'author' => tt_push_clean($user->data['username']), 'dateline' => time()); $ttp_post_data = array('url' => $boardurl, 'data' => base64_encode(serialize(array($ttp_data)))); $return_status = tt_do_post_request($ttp_post_data); } } } return $return_status; }
function tapatalk_push_subscirbe($thread_id, $pushed_user_ids = array()) { global $user_info, $smcFunc, $context, $boardurl, $topic; if (empty($thread_id)) { $thread_id = $topic; } $ttp_data = array('type' => 'newsub', 'id' => $topic, 'subfid' => $context['current_board'], 'author' => tt_push_clean($user_info['name']), 'authorid' => $user_info['id'], 'author_postcount' => $user_info['posts'], 'dateline' => time()); if (!empty($ttp_data['subfid'])) { $request = $smcFunc['db_query']('', ' SELECT b.name FROM {db_prefix}boards as b WHERE b.id_board = {int:subfid}', array('subfid' => intval($ttp_data['subfid']))); $row = $smcFunc['db_fetch_assoc']($request); if (!empty($row)) { $ttp_data['sub_forum_name'] = tt_push_clean($row['name']); } } // Get all the important topic info. $request = $smcFunc['db_query']('', ' SELECT ms.subject FROM {db_prefix}topics AS t INNER JOIN {db_prefix}messages AS ms ON (ms.id_msg = t.id_first_msg) WHERE t.id_topic = {int:thread_id} LIMIT 1', array('thread_id' => $thread_id)); $topicinfo = $smcFunc['db_fetch_assoc']($request); $ttp_data['title'] = isset($topicinfo['subject']) ? $topicinfo['subject'] : ''; $request = $smcFunc['db_query']('', ' SELECT ts.id_member_started as id_member FROM {db_prefix}topics ts LEFT JOIN {db_prefix}tapatalk_users tu ON (ts.id_member_started=tu.userid) WHERE ts.id_topic = {int:thread_id}', array('thread_id' => $thread_id)); $userids = ''; while ($row = $smcFunc['db_fetch_assoc']($request)) { if ($row['id_member'] == $user_info['id']) { continue; } if (in_array($row['id_member'], $pushed_user_ids)) { continue; } if (!tapatalk_user_can_receive_push_topic($row['id_member'], $ttp_data['subfid'], $ttp_data['id'])) { continue; } $userids = empty($userids) ? $row['id_member'] : $userids . ',' . $row['id_member']; $pushed_user_ids[] = $row['id_member']; $ttp_data['userid'] = $row['id_member']; store_as_alert($ttp_data); } $ttp_data['userid'] = $userids; if (!empty($userids)) { $return_status = tt_do_post_request($ttp_data); } }
function tapatalk_push_pm() { global $mybb, $db, $pm, $pminfo; if (!($pminfo['messagesent'] && $db->table_exists('tapatalk_users'))) { return false; } $query = $db->query("\r\n SELECT p.pmid, p.toid ,tu.pm\r\n FROM " . TABLE_PREFIX . "privatemessages p\r\n LEFT JOIN " . TABLE_PREFIX . "tapatalk_users tu ON (p.toid=tu.userid)\r\n WHERE p.fromid = '{$mybb->user['uid']}' and p.dateline = " . TIME_NOW . " AND p.folder = 1\r\n "); $ttp_push_data = array(); while ($user = $db->fetch_array($query)) { if ($user['toid'] == $mybb->user['uid']) { continue; } if (tt_check_ignored($user['toid'])) { continue; } $ttp_data[] = array('userid' => $user['toid'], 'type' => 'pm', 'id' => $user['pmid'], 'title' => tt_push_clean($pm['subject']), 'author' => tt_push_clean($mybb->user['username']), 'dateline' => TIME_NOW); tt_insert_push_data($ttp_data[count($ttp_data) - 1]); if ($user['pm'] == 1) { $ttp_push_data[] = $ttp_data[count($ttp_data) - 1]; } } if (!empty($ttp_push_data)) { $ttp_post_data = array('url' => $mybb->settings['bburl'], 'data' => base64_encode(serialize($ttp_push_data))); $return_status = tt_do_post_request($ttp_post_data); } }