Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - CanonInk

Pages: [1]
1
I made i little php and modified /admin/email.php as reminder.php (plugin) . its only a beta. i test it ONLY 1.74.
I want to remind my users they don't visit the gallery since XX days.

SAVE YOUR FILES, AND MAKE A BACKUP!

New files:
/admin/plugins/reminder.php

Changed files:
/lang/<your_language>/admin.php

Install:

1. Download attached file reminder.zip and extract
1.1 Upload to /admin/plugins/reminder.php

or
1. Create a new file called: reminder.php

Code: [Select]

<?php // PLUGIN_TITLE: Reminder
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: reminder.php                                            *
 *        Copyright: (C) 2008 Thomas Lunitz                                *
 *            Email: ./.                                    *
 *              Web: ./.                             *
 *    Scriptversion: 1.7.4                                                *
 *                                                                        *
 *                                                                        *
 **************************************************************************/
$interval 60;

$nozip 1;
define('IN_CP'1);
$root_path = (!eregi("\/plugins\/"$HTTP_SERVER_VARS['PHP_SELF'])) ? "./../" "./../../";
define('ROOT_PATH'$root_path);
require(
ROOT_PATH.'admin/admin_global.php');

show_admin_header();

if (
$action == "") {
    
$action "show_user_inactive";
}

if (
$action == "sendemails") {
  
$error = array();
  
$subject = (isset($HTTP_POST_VARS['subject'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['subject'])) : "";
  
$message = (isset($HTTP_POST_VARS['message'])) ? un_htmlspecialchars(trim($HTTP_POST_VARS['message'])) : "";


  if (
$subject == "") {
    
$error['subject'] = 1;
  }
  if (
$message == "") {
    
$error['message'] = 1;
  }
  if (!isset(
$HTTP_POST_VARS['emails']) || empty($HTTP_POST_VARS['emails']) || !check_email($HTTP_POST_VARS['emails'])) {
    
$error['emails'] = 1;
  }
  if (empty(
$error)) {
    @
set_time_limit(1200);
    include(
ROOT_PATH.'includes/email.php');
    
$site_email = new Email();
    
$site_email->set_from(stripslashes(trim($config['site_email'])));
    
$site_email->set_to(stripslashes(trim($config['site_email'])));
    
$site_email->set_subject($subject);
    
$site_email->register_vars(array(
      
"message" => $message,
      
"site_email" => (stripslashes(trim($config['site_email']))),
      
"site_name" => format_text(trim($config['site_name']), 2)
    ));
    
$site_email->set_body("admin_email"$config['language_dir_default']);
    
$emails = (isset($HTTP_POST_VARS['emails'])) ? implode(", "$HTTP_POST_VARS['emails']) : "";
    
$site_email->set_bcc($emails);
    echo (
$site_email->send_email()) ? $lang['send_emails_success'] : $lang['send_emails_error'];
    echo 
"<p>";
    
show_text_link($lang['back'], "javascript:history.back(1)");
  }
  else {
    
$msg sprintf("<span class=\"marktext\">%s</span>"$lang['lostfield_error']);
    
$action "emailusers";
  }
}

if (
$action == "show_user_inactive") {
    if (
$msg != "") {
    
printf("<b>%s</b>\n"$msg);
  }
  
show_form_header("reminder.php""sendemails");
  
show_table_header($lang['send_reminder_emails'], 2);
  
show_input_row($lang['send_emails_subject'], "subject"""45);
  
show_textarea_row($lang['send_emails_message'], "message"""6020);

  
$select "<select name=\"emails[]\" 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").get_user_table_field(", ""user_email").get_user_table_field(", ""user_lastvisit")."
       FROM "
.USERS_TABLE.
   WHERE "
.get_user_table_field("""user_id")." <> ".GUEST.
       AND "
.get_user_table_field("""user_allowemails")." = 1 
       AND FROM_UNIXTIME(user_lastvisit) < DATE_SUB(now(), INTERVAL "
.$interval." DAY)
   ORDER BY "
.get_user_table_field("""user_level")." DESC";

$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 == 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_email = (stripslashes(trim($row[$user_table_fields['user_email']])));
    
$user_name format_text(trim($row[$user_table_fields['user_name']]), 2);
    
$selected = (isset($HTTP_POST_VARS['emails']) && !in_array($user_email$HTTP_POST_VARS['emails'])) ? "" " selected=\"selected\"";
    
$select .= "<option value=\"".$user_email."\"".$selected.">&raquo; ".format_text($user_name2)." (".$user_email.")</option>\n";
    
$level $user_level;
  }
  
$select .= "</select>\n";

  
$title $lang['select_email_user'];
  if (isset(
$error['emails'])) {
    
$title sprintf("<span class=\"marktext\">%s *</span>"$title);
  }
  
show_custom_row($title$select);
  
show_form_footer($lang['send_emails'], ""2);
}

show_admin_footer();
?>




2. Open /lang/<your_language>/admin.php
   (I'm using english here!!!)

Find:
Code: [Select]

$lang['send_emails_error'] = "Error sending email!";


Add after:
Code: [Select]

$lang['send_reminder_emails'] = "Send reminder email to users";


That' all... :D

How it works:
The plugin selects all user from your 4images_users table they don't visit your gallery since 60 days. You can send them a reminder email with your own subject and message.

Change the interval of there last visit:

Open /admin/plugin/reminder.php

Find:
Code: [Select]

$interval = 60;


Change the number...
Code: [Select]

$interval = 30; //--> 30 days
$interval = 90; //--> 90 days


Enjoy and good luck... :D :D :D

CanonInk

Pages: [1]