function phonebook_hook_phonebook_search_group($uid, $keyword = "", $count = 0, $exact = FALSE) { $ret = array(); $keyword = phonebook_code_clean($keyword); if ($keyword) { $user_mobile = user_getfieldbyuid($uid, 'mobile'); if ($exact) { $keyword_sql = "\n\t\t\t\tname='" . $keyword . "' OR\n\t\t\t\tcode='" . $keyword . "'"; } else { $keyword_sql = "\n\t\t\t\tname LIKE '%" . $keyword . "%' OR\n\t\t\t\tcode LIKE '%" . $keyword . "%'"; } $db_query = "\n\t\t\tSELECT DISTINCT id AS gpid, name AS group_name, code, flag_sender\n\t\t\tFROM " . _DB_PREF_ . "_featurePhonebook_group\n\t\t\tWHERE (\n\t\t\t\tuid='{$uid}' OR\n\t\t\t\tid in (\n\t\t\t\t\tSELECT B.id AS id FROM " . _DB_PREF_ . "_featurePhonebook AS A\n\t\t\t\t\tLEFT JOIN " . _DB_PREF_ . "_featurePhonebook_group_contacts AS C ON A.id=C.pid\n\t\t\t\t\tLEFT JOIN " . _DB_PREF_ . "_featurePhonebook_group AS B ON B.id=C.gpid\n\t\t\t\t\tWHERE A.mobile LIKE '%" . core_mobile_matcher_format($user_mobile) . "' AND B.flag_sender='1'\n\t\t\t\t) OR (\n\t\t\t\tuid <>'{$uid}' AND flag_sender>'1'\n\t\t\t\t)\n\t\t\t) AND (" . $keyword_sql . ")"; if ($count > 0) { $db_query .= " LIMIT " . $count; } $db_result = dba_query($db_query); while ($db_row = dba_fetch_array($db_result)) { $ret[] = $db_row; } } return $ret; }
function user_mobile2uid($mobile) { if ($mobile) { $db_query = "SELECT uid FROM " . _DB_PREF_ . "_tblUser WHERE flag_deleted='0' AND mobile LIKE '%" . core_mobile_matcher_format($mobile) . "'"; $db_result = dba_query($db_query); $db_row = dba_fetch_array($db_result); $uid = $db_row['uid']; } return $uid; }
$content = "\n\t\t\t<h2>" . _('Phonebook') . "</h2>\n\t\t\t<h3>" . _('Edit contact') . "</h3>\n\t\t\t<form action=\"index.php?app=main&inc=feature_phonebook&op=actions&go=edit\" name=fm_addphone method=POST>\n\t\t\t" . _CSRF_FORM_ . "\n\t\t\t<input type=hidden name=pid value=\"" . $pid . "\">\n\t\t\t<table class=playsms-table>\n\t\t\t<tbody>\n\t\t\t<tr><td class=label-sizer>" . _('Group') . "</td><td><select name=gpids[] multiple>{$list_of_group}</select></td></tr>\n\t\t\t<tr><td>" . _mandatory(_('Name')) . "</td><td><input type=text name=name value=\"" . $list[0]['name'] . "\"></td></tr>\n\t\t\t<tr><td>" . _mandatory(_('Mobile')) . "</td><td><input type=text name=mobile maxlength=20 value=\"" . $list[0]['mobile'] . "\"></td></tr>\n\t\t\t<tr><td>" . _('Email') . "</td><td><input type=text name=email value=\"" . $list[0]['email'] . "\"></td></tr>\n\t\t\t<tr><td>" . _('Tags') . "</td><td><input type=text name=tags value=\"" . $list[0]['tags'] . "\"> " . _hint(_('Multiple entries separated by space')) . "</td></tr>\n\t\t\t</tbody>\n\t\t\t</table>\n\t\t\t<p><input type=submit class=button value=\"" . _('Save') . "\"></p>\n\t\t\t</form>\n\t\t\t" . _back('index.php?app=main&inc=feature_phonebook&op=phonebook_list'); if ($err = TRUE) { _p(_dialog()); } _p($content); break; case "actions": $nav = themes_nav_session(); $search = themes_search_session(); $go = $_REQUEST['go']; switch ($go) { case 'export': $fields = 'DISTINCT A.id AS pid, A.uid AS uid, A.name AS name, A.mobile AS mobile, A.email AS email, B.code AS code, A.tags AS tags'; $join = 'LEFT JOIN ' . _DB_PREF_ . '_featurePhonebook_group_contacts AS C ON A.id=C.pid '; $join .= 'LEFT JOIN ' . _DB_PREF_ . '_featurePhonebook_group AS B ON B.id=C.gpid'; $conditions = array('( A.uid' => $user_config['uid'] . "' OR B.id in (\n\t\t\t\t\t\tSELECT B.id AS id FROM " . _DB_PREF_ . "_featurePhonebook AS A\n\t\t\t\t\t\t" . $join . "\n\t\t\t\t\t\tWHERE A.mobile LIKE '%" . core_mobile_matcher_format($user_config['mobile']) . "'\n\t\t\t\t\t\tAND B.flag_sender='1'\n\t\t\t\t\t\t) OR ( A.uid <>'" . $user_config['uid'] . "' AND B.flag_sender>'1' ) ) AND '1'='1"); $keywords = $search['dba_keywords']; $extras = array('ORDER BY' => 'A.name, mobile', 'LIMIT' => $phonebook_row_limit); $list = dba_search(_DB_PREF_ . '_featurePhonebook AS A', $fields, $conditions, $keywords, $extras, $join); $data[0] = array(_('Name'), _('Mobile'), _('Email'), _('Group code'), _('Tags')); for ($i = 0; $i < count($list); $i++) { $j = $i + 1; $data[$j] = array($list[$i]['name'], sendsms_getvalidnumber($list[$i]['mobile']), $list[$i]['email'], $list[$i]['code'], phonebook_tags_clean($list[$i]['tags'])); } $content = core_csv_format($data); $fn = 'phonebook-' . $core_config['datetime']['now_stamp'] . '.csv'; core_download($content, $fn, 'text/csv'); break; case 'add': $uid = $user_config['uid']; $gpids = $_POST['gpids'];