Chodzi o to aby przed wysłaniem PW była możliwość zdefiniowania odbiorców na podstawie lokalizacji i zainteresowań.
Wybór użytkowników byłby możliwy tylko z jednej lokalizacji. A zainteresowania z trzech list.
W efekcie chciałbym, aby można było wysłać PW do osób, które są z Warszawy (z kategorii Miejscowość) i interesują się różami, krzewami, owocami (z kategorii Rośliny). Plus informacja do ilu konkretnie osób zostanie wysłane PW.
Mam kilka grup (sklonowane na podstawie grup użytkownika).
Lokalizacja
Województwo DB_USER_GROUPS_WOJ przypisane pole w DB_USERS user_groups_woj
Powiat DB_USER_GROUPS_POW przypisane pole w DB_USERS user_groups_pow
Miejscowość DB_USER_GROUPS_MIEJ przypisane pole w DB_USERS user_groups_miej
Zainteresowania
Rośliny DB_USER_GROUPS przypisane pole w DB_USERS user_groups
Architektura DB_USER_GROUPS_ARCH przypisane pole w DB_USERS user_groups_arch
Posiadacz DB_USER_GROUPS_POS przypisane pole w DB_USERS user_groups_pos
Czy ktoś ma pomysł jak to wszystko wykonać?
Wiadomość doklejona:
Szukałem i kombinowałem i udało mi się to na podstawie modyfikacji Kefirka v7-pw_from_location Ograniczyłem się tylko do dwóch kryteriów odbiorców (po województwie i zainteresowaniu).
Wszystko ładnie śmiga. Można sprawdzić odbiorców w podglądzie, po wysłaniu PW jest informacja do ilu userów została wysłana wiadomość.
I pomimo tego, że wszystko działa pojawiają się błędy, które bardzo irytują.
Notice: Undefined index: woj in /home/maxdruk/domains/grupa-maxdruk.pl/public_html/dante2/pw_woj_ros3.php on line 87
Notice: Undefined index: ros in /home/maxdruk/domains/grupa-maxdruk.pl/public_html/dante2/pw_woj_ros3.php on line 105
Gdyby ktoś mógł zerknąć fachowym okiem byłbym wdzięczny.
Kod strony:
<?php
require_once "maincore.php";
require_once THEMES."templates/header.php";
include LOCALE.LOCALESET."user_fields/user_provincecity.php";
include LOCALE.LOCALESET."messages.php";
if (iADMIN) {
require_once INCLUDES."bbcode_include.php";
if (isset($_POST['send_preview'])) {
$woj = $_POST['woj'];
$ros = $_POST['ros'];
$subject = stripinput($_POST['subject']);
$message = stripinput($_POST['message']);
$message_preview = $message;
$disablesmileys_chk = isset($_POST['chk_disablesmileys']) ? " checked='checked'" : "";
if (!$disablesmileys_chk) $message_preview = parsesmileys($message_preview);
opentable($locale['438']);
echo "<table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n<tr>\n";
echo "<td class='tbl1'>".nl2br(parseubb($message_preview))."</td>\n</tr>\n";
echo "<tr><td class='tbl2' style='border-top:1px solid #999999;margin-top:5px;'>Odbiorcy: <ol>";
$result = dbquery("SELECT user_id, user_imie, user_nazwisko FROM ".DB_USERS." WHERE user_groups_woj LIKE '%".$_POST['woj']."%' AND user_groups LIKE '%".$_POST['ros']."%'");
while ($data2 = dbarray($result)) {
echo "<li> <a href='".BASEDIR."profile.php?lookup=".$data2['user_id']."'>".$data2['user_imie']." ".$data2['user_nazwisko']."</a></li> ";
}
echo "</ol></td>\n</tr>\n";
echo "</table>\n";
closetable();
} else {
$subject = ""; $message = ""; $msg_send_state = ""; $msg_to_group = "";
$msg_to_group_state = " disabled"; $sendtoall_chk = ""; $disablesmileys_chk = "";
}
if(isset($_POST['send_message']))
{
$subject = stripinput(trim($_POST['subject']));
$message = stripinput(trim($_POST['message']));
$smileys = isset($_POST['chk_disablesmileys']) ? "n" : "y";
if(isset($_POST['ros']) && isnum($_POST['ros'])){
$where = "user_groups LIKE '%".$_POST['ros']."%'";
} elseif(isset($_POST['woj']) && isnum($_POST['woj'])){
$where = "user_groups_woj LIKE '%".$_POST['woj']."%'";
} else {
redirect(FUSION_SELF.$aidlink);
}
$users_id = array();
$wynik = dbquery("SELECT user_id FROM ".DB_USERS." WHERE user_status=0 AND ".$where);
if(dbrows($wynik) > 0) {
while($r = dbarray($wynik))
{
$users_id[]=$r['user_id'];
}
}
for ($i=0;isset($users_id[$i]);$i++)
{
$result2 = dbquery("INSERT INTO ".DB_MESSAGES." (message_to, message_from, message_subject, message_message, message_smileys, message_read, message_datestamp, message_folder) VALUES('".$users_id[$i]."','".$userdata['user_id']."','".$subject."','".$message."','".$smileys."','0','".time()."','0')");
}
$licznik = dbcount("(user_id)", DB_USERS, "user_groups_woj LIKE '%".$_POST['woj']."%' AND user_groups LIKE '%".$_POST['ros']."%'");
echo "<div style='text-align:center; margin-top: 10px; margin-bottom: 10px;'><span style='font-weight: bold;'>Wiadomość została wysłana. Liczba odbiorców: ".$licznik."</span></div>";
}
//województwo
$woj = $_POST['woj'];
$woj1 = "";
$result = dbquery("SELECT group_id, group_name FROM ".DB_USER_GROUPS_WOJ." ORDER BY group_name ASC");
if(dbrows($result) > 0) {
$woj1 .= "<option value=''>---</option>";
while($data = dbarray($result)) {
$woj1 .= "<option value='".$data['group_id']."' ".(isnum($woj) && $data['group_id'] == $woj ? "selected='selected'" : "").">".$data['group_name']."</option>";
}
}
//roślny
$ros = $_POST['ros'];
$ros1 = "";
$result = dbquery("SELECT group_id, group_name FROM ".DB_USER_GROUPS." ORDER BY group_name ASC");
if(dbrows($result) > 0) {
$ros1 .= "<option value=''>---</option>";
while($data = dbarray($result)) {
$ros1 .= "<option value='".$data['group_id']."' ".(isnum($ros) && $data['group_id'] == $ros ? "selected='selected'" : "").">".$data['group_name']."</option>";
}
}
opentable('Wyślij wiadomość');
echo "<form name='inputform' method='post' action='".FUSION_SELF.$aidlink."' onsubmit=\"return ValidateForm(this)\">\n";
echo "<table cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n";
echo "<tr>\n<td align='right' width='1%' class='tbl2' style='white-space:nowrap'>Lokalizacja:</td>\n<td class='tbl1'>
<select name='woj' class='textbox'>".$woj1."</select>";
echo "<tr>\n<td align='right' width='1%' class='tbl2' style='white-space:nowrap'>Rośliny ozdobne:</td>\n<td class='tbl1'>
<select name='ros' class='textbox'>".$ros1."</select>";
echo "</td>\n<td class='tbl1' align='right'>\n";
echo "</td>\n</tr>\n";
echo "<tr>\n<td align='right' class='tbl2' style='white-space:nowrap'>".$locale['405'].":</td>\n";
echo "<td class='tbl1' colspan='2'><input type='text' name='subject' value='".$subject."' maxlength='32' class='textbox' style='width:250px;' /></td>\n</tr>\n";
echo "<tr>\n<td align='right' class='tbl2' valign='top' style='white-space:nowrap'>".$locale['422'].":</td>\n";
echo "<td class='tbl1' colspan='2'><textarea name='message' cols='75' rows='15' class='textbox' style='width:98%'>".$message."</textarea></td>\n</tr>\n";
echo "<tr>\n<td align='right' class='tbl2' valign='top'></td>\n<td class='tbl1' colspan='2'>\n";
echo display_bbcodes("98%", "message")."</td>\n</tr>\n";
echo "<tr>\n<td align='right' class='tbl2' valign='top' style='white-space:nowrap'>".$locale['425'].":</td>\n";
echo "<td class='tbl1' colspan='2'>\n<input type='checkbox' name='chk_disablesmileys' value='y'".$disablesmileys_chk." />".$locale['427']."</td>\n</tr>\n";
echo "</table>\n";
echo "<table border='0' cellpadding='0' cellspacing='0' width='100%'>\n";
echo "<tr>\n<td class='tbl'></td>\n";
echo "<td align='right' class='tbl'>\n<input type='submit' name='send_preview' value='".$locale['429']."' class='button' />\n";
echo "<input type='submit' name='send_message' value='".$locale['430']."' class='button' />\n</td>\n</tr>\n";
echo "</table>\n</form>\n";
echo "<script type='text/javascript'>function ValidateForm(frm){\n";
echo "if (frm.subject.value == \"\" || frm.message.value == \"\"){\n";
echo "alert(\"".$locale['486']."\");return false;}\n";
echo "}\n</script>\n";
closetable();
} else {
echo "<center>Opcja niedostępna</center>";
}
require_once THEMES."templates/footer.php";
?>
PW od moderatora:
- Odświeżenie Tematu - Pieka 29.10 - 18:56
Edytowane przez dante77 dnia 29.10.2010 13:27:57
|