4images Modifications / Modifikationen > Plugins

[Plugin] Pm to Members

(1/4) > >>

b.o.fan:
EDIT FROM A FORUM ADMINISTRATOR:

This plugin requires the installation of the "[MOD] Private Message System (PMS) not supported anymore!"
http://www.4homepages.de/forum/index.php?topic=5374.0

Hello,

here is my pm_to_members.php. here you can send a PM (newsletter) to all User on your Page!

save the pm_to_members.php in admin/plugin


--- Code: ---<?php // PLUGIN_TITLE: Send pm to members
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: pm_to_members.php                               *
 *        Copyright: (C) 2002 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.8                                                  *
 *                                                                        *
 *    Never released without support from: Nicky (http://www.nicky.net)   *
 *                                                                        *
 **************************************************************************
 *                                                                        *
 *    Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz-       *
 *    bedingungen (Lizenz.txt) für weitere Informationen.                 *
 *    ---------------------------------------------------------------     *
 *    This script is NOT freeware! Please read the Copyright Notice       *
 *    (Licence.txt) for further information.                              *
 *                                                                        *
 *************************************************************************/

$nozip = 1;
define('IN_CP', 1);
define('ROOT_PATH', "./../../");
define('ROOT_PATH_ADMIN', "./../");
require(ROOT_PATH_ADMIN.'admin_global.php');
if ($action == "") {
  $action = "pmusers";
}

show_admin_header();

if ($action == "sendpm") {
  $error = array();
  $stealth = ($HTTP_POST_VARS['stealth']) ? 1 : 0;
  $subject = trim($HTTP_POST_VARS['subject']);
  $message = trim($HTTP_POST_VARS['message']);

  if ($subject == "") {
    $error['subject'] = 1;
  }
  if ($message == "") {
    $error['message'] = 1;
  }
  if (!isset($HTTP_POST_VARS['pm']) || empty($HTTP_POST_VARS['pm'])) {
    $error['pm'] = 1;
  }
  if (empty($error)) {
    $pm = $HTTP_POST_VARS['pm'];
      include(ROOT_PATH.'includes/email.php');
      $n = 0;
      foreach ($pm as $key) {
         if ($key) {
            $user_to = get_user_info($key);
            $message_save = $message;
            $message = preg_replace("/".$site_template->start."user_name".$site_template->end."/siU", $user_to['user_name'], $message);
            $message = preg_replace("/".$site_template->start."user_email".$site_template->end."/siU", $user_to['user_email'], $message);

            $sql = "INSERT INTO ".PM_TABLE."
                                 (pm_date, pm_to, pm_from, pm_subject, pm_type, pm_text, pm_bbcode, pm_html, pm_ip)
                        VALUES
                                 (".time().", ".$key.", ".(($stealth) ? 0 : $user_info['user_id']).", '".$subject."', ".PM_UNREAD.", '".$message."', 1, 1, '0')";
            $result = $site_db->query($sql);
            $result_error = ($result) ? $result_error : $result_error++;
            if ($user_to['user_pm_email']){
             @set_time_limit(1200);
               $site_email = new Email();
//               $pm_url = "http://come.no-ip.com/pm.php?action=view&mode=inbox&id=".$site_db->get_insert_id();
               $pm_url = $site_url."/pm.php?action=view&mode=inbox&id=".$site_db->get_insert_id();
               $site_email->set_to($user_to['user_email']);
               $site_email->set_subject($lang['pm_email_new']);
               $site_email->register_vars(array(
                 "user_name" => $user_to['user_name'],
                 "from_name" => $user_info['user_name'],
                 "subject" => $subject,
                 "site_url" => $site_url,
//                 "site_url" => "http://come.no-ip.com",
                 "url" => $pm_url,
                 "site_name" => $config['site_name']
               ));
               $site_email->set_body("pm_notify", $config['language_dir_default']);
               $site_email->send_email();
            }
            echo ++$n." - ".$user_to['user_name'].".....DONE<br>";
            $message = $message_save;
         }
      }
    echo (!$result_error) ? "Messages sent successfully" : "Error sending messages";
    echo "<p>";
    show_text_link($lang['back'], "javascript:history.back(1)");
  }
  else {
    $msg = sprintf("<span class=\"marktext\">%s</span>", $lang['lostfield_error']);
    $action = "pmusers";
  }
}

if ($action == "pmusers") {
  if ($msg != "") {
    printf("<b>%s</b>\n", $msg);
  }
  show_form_header("pm_to_members.php", "sendpm");
  show_table_header("Send pm", 2);
  show_input_row("Subject", "subject", "", 45);
  show_textarea_row("Message", "message", "", 60, 20);

  $select = "<select name=\"pm[]\" size=\"15\" multiple=\"multiple\">\n";

  $sql = "SELECT ".get_user_table_field("", "user_id").get_user_table_field(", ", "user_level").get_user_table_field(", ", "user_name")."
          FROM ".USERS_TABLE."
          WHERE ".get_user_table_field("", "user_id")." <> ".GUEST." AND ".get_user_table_field("", "user_id")." <> ".$user_info['user_id']."
          ORDER BY ".get_user_table_field("", "user_level")." DESC, ".get_user_table_field("", "user_name")." ASC";
  $result = $site_db->query($sql);

  $level = 1000;
  while ($row = $site_db->fetch_array($result)) {
    $user_level = $row[$user_table_fields['user_level']];
    if ($level != $user_level && $user_level == ADMIN) {
      $select .= "<option value=\"0\">__________________________</option>\n";
      $select .= "<option value=\"0\" class=\"dropdownmarker\">".$lang['userlevel_admin']."</option>\n";
    }
    elseif ($level != $user_level && $user_level == USER) {
      $select .= "<option value=\"0\">__________________________</option>\n";
      $select .= "<option value=\"0\" class=\"dropdownmarker\">".$lang['userlevel_registered']."</option>\n";
    }
    elseif ($level != $user_level && $user_level == USER_AWAITING) {
      $select .= "<option value=\"0\">__________________________</option>\n";
      $select .= "<option value=\"0\" class=\"dropdownmarker\">".$lang['userlevel_registered_awaiting']."</option>\n";
    }
    $user_id = $row[$user_table_fields['user_id']];
    $user_name = $row[$user_table_fields['user_name']];
    $selected = (isset($HTTP_POST_VARS['pm']) && !in_array($user_id, $HTTP_POST_VARS['pm'])) ? "" : " selected=\"selected\"";
    $select .= "<option value=\"".$user_id."\"".$selected.">&raquo; ".$user_name."</option>\n";
    $level = $user_level;
  }
  $select .= "</select>\n";

  $title = $lang['select_email_user'];
  if (isset($error['pm'])) {
    $title = sprintf("<span class=\"marktext\">%s *</span>", $title);
  }
  $stealth = (isset($HTTP_POST_VARS['stealth'])) ? " checked" : "";
  show_custom_row($title, $select);
  show_custom_row("", "<input type=\"checkbox\" name=\"stealth\" value=\"1\"".$stealth."> Stealth mode. If u check this, member wont know from who the message came");
  show_form_footer("Send", "", 2);
}

show_admin_footer();
?>
--- End code ---

----------------Deutsch------------

hier ist meine pm_to_member.php

diese packt ihr in den Ordner admin/plugin


--- Code: ---<?php // PLUGIN_TITLE: Send pm to members
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: pm_to_members.php                               *
 *        Copyright: (C) 2002 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.8                                                  *
 *                                                                        *
 *    Never released without support from: Nicky (http://www.nicky.net)   *
 *                                                                        *
 **************************************************************************
 *                                                                        *
 *    Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz-       *
 *    bedingungen (Lizenz.txt) für weitere Informationen.                 *
 *    ---------------------------------------------------------------     *
 *    This script is NOT freeware! Please read the Copyright Notice       *
 *    (Licence.txt) for further information.                              *
 *                                                                        *
 *************************************************************************/

$nozip = 1;
define('IN_CP', 1);
define('ROOT_PATH', "./../../");
define('ROOT_PATH_ADMIN', "./../");
require(ROOT_PATH_ADMIN.'admin_global.php');
if ($action == "") {
  $action = "pmusers";
}

show_admin_header();

if ($action == "sendpm") {
  $error = array();
  $stealth = ($HTTP_POST_VARS['stealth']) ? 1 : 0;
  $subject = trim($HTTP_POST_VARS['subject']);
  $message = trim($HTTP_POST_VARS['message']);

  if ($subject == "") {
    $error['subject'] = 1;
  }
  if ($message == "") {
    $error['message'] = 1;
  }
  if (!isset($HTTP_POST_VARS['pm']) || empty($HTTP_POST_VARS['pm'])) {
    $error['pm'] = 1;
  }
  if (empty($error)) {
    $pm = $HTTP_POST_VARS['pm'];
      include(ROOT_PATH.'includes/email.php');
      $n = 0;
      foreach ($pm as $key) {
         if ($key) {
            $user_to = get_user_info($key);
            $message_save = $message;
            $message = preg_replace("/".$site_template->start."user_name".$site_template->end."/siU", $user_to['user_name'], $message);
            $message = preg_replace("/".$site_template->start."user_email".$site_template->end."/siU", $user_to['user_email'], $message);

            $sql = "INSERT INTO ".PM_TABLE."
                                 (pm_date, pm_to, pm_from, pm_subject, pm_type, pm_text, pm_bbcode, pm_html, pm_ip)
                        VALUES
                                 (".time().", ".$key.", ".(($stealth) ? 0 : $user_info['user_id']).", '".$subject."', ".PM_UNREAD.", '".$message."', 1, 1, '0')";
            $result = $site_db->query($sql);
            $result_error = ($result) ? $result_error : $result_error++;
            if ($user_to['user_pm_email']){
             @set_time_limit(1200);
               $site_email = new Email();
//               $pm_url = "http://come.no-ip.com/pm.php?action=view&mode=inbox&id=".$site_db->get_insert_id();
               $pm_url = $site_url."/pm.php?action=view&mode=inbox&id=".$site_db->get_insert_id();
               $site_email->set_to($user_to['user_email']);
               $site_email->set_subject($lang['pm_email_new']);
               $site_email->register_vars(array(
                 "user_name" => $user_to['user_name'],
                 "from_name" => $user_info['user_name'],
                 "subject" => $subject,
                 "site_url" => $site_url,
//                 "site_url" => "http://come.no-ip.com",
                 "url" => $pm_url,
                 "site_name" => $config['site_name']
               ));
               $site_email->set_body("pm_notify", $config['language_dir_default']);
               $site_email->send_email();
            }
            echo ++$n." - ".$user_to['user_name'].".....DONE<br>";
            $message = $message_save;
         }
      }
    echo (!$result_error) ? "Messages sent successfully" : "Error sending messages";
    echo "<p>";
    show_text_link($lang['back'], "javascript:history.back(1)");
  }
  else {
    $msg = sprintf("<span class=\"marktext\">%s</span>", $lang['lostfield_error']);
    $action = "pmusers";
  }
}

if ($action == "pmusers") {
  if ($msg != "") {
    printf("<b>%s</b>\n", $msg);
  }
  show_form_header("pm_to_members.php", "sendpm");
  show_table_header("Send pm", 2);
  show_input_row("Subject", "subject", "", 45);
  show_textarea_row("Message", "message", "", 60, 20);

  $select = "<select name=\"pm[]\" size=\"15\" multiple=\"multiple\">\n";

  $sql = "SELECT ".get_user_table_field("", "user_id").get_user_table_field(", ", "user_level").get_user_table_field(", ", "user_name")."
          FROM ".USERS_TABLE."
          WHERE ".get_user_table_field("", "user_id")." <> ".GUEST." AND ".get_user_table_field("", "user_id")." <> ".$user_info['user_id']."
          ORDER BY ".get_user_table_field("", "user_level")." DESC, ".get_user_table_field("", "user_name")." ASC";
  $result = $site_db->query($sql);

  $level = 1000;
  while ($row = $site_db->fetch_array($result)) {
    $user_level = $row[$user_table_fields['user_level']];
    if ($level != $user_level && $user_level == ADMIN) {
      $select .= "<option value=\"0\">__________________________</option>\n";
      $select .= "<option value=\"0\" class=\"dropdownmarker\">".$lang['userlevel_admin']."</option>\n";
    }
    elseif ($level != $user_level && $user_level == USER) {
      $select .= "<option value=\"0\">__________________________</option>\n";
      $select .= "<option value=\"0\" class=\"dropdownmarker\">".$lang['userlevel_registered']."</option>\n";
    }
    elseif ($level != $user_level && $user_level == USER_AWAITING) {
      $select .= "<option value=\"0\">__________________________</option>\n";
      $select .= "<option value=\"0\" class=\"dropdownmarker\">".$lang['userlevel_registered_awaiting']."</option>\n";
    }
    $user_id = $row[$user_table_fields['user_id']];
    $user_name = $row[$user_table_fields['user_name']];
    $selected = (isset($HTTP_POST_VARS['pm']) && !in_array($user_id, $HTTP_POST_VARS['pm'])) ? "" : " selected=\"selected\"";
    $select .= "<option value=\"".$user_id."\"".$selected.">&raquo; ".$user_name."</option>\n";
    $level = $user_level;
  }
  $select .= "</select>\n";

  $title = $lang['select_email_user'];
  if (isset($error['pm'])) {
    $title = sprintf("<span class=\"marktext\">%s *</span>", $title);
  }
  $stealth = (isset($HTTP_POST_VARS['stealth'])) ? " checked" : "";
  show_custom_row($title, $select);
  show_custom_row("", "<input type=\"checkbox\" name=\"stealth\" value=\"1\"".$stealth."> Stealth mode. If u check this, member wont know from who the message came");
  show_form_footer("Send", "", 2);
}

show_admin_footer();
?>
--- End code ---

tja. das wäre es....

b.o.fan

ascanio:
Any body has make a modificatios of this file for the new version of the Private Messages MOD?

martrix:
@ Chris:
I guess you're not right with that:

--- Quote ---EDIT FROM A FORUM ADMINISTRATOR:

This plugin requires the installation of the "[MOD] Private Message System (PMS) not supported anymore!"
--- End quote ---

Because the string pms is used in the old PM Mod.
But this Plugin uses only pm which is an indicator of the new PM system modification.
Or am I wrong?

hien:
i tried... it works fine with the new version

mawenzi:
hi b.o.fan,

danke für das Posting dieses sehr hilfreichen Plugins ...  :D
Dieses Plugin arbeitet sehrwohl mit der neusten Version (2.5.3) vom PM (...@ Chris...) .
Doch auch für die Anwendung in deutsch muss die Datei pm_to_members.php heißen ...  :wink: ... sonst läuft nichts ...

nochmals danke ... mawenzi

Navigation

[0] Message Index

[#] Next page

Go to full version