11
nem2k2
Apache processes running for long times?
  • 2004/12/31 21:56

  • nem2k2

  • Just popping in

  • Posts: 14

  • Since: 2003/9/18


I'm not sure if this is a XOOPs problem or not, but if it isn't hopefully there are some apache gurus here that can help :)

My site (running XOOPs 2.0.5.1 with some modifications, and the IPBoard module integrated by Koudanshi v1.23) has apache processes running for very long time periods - some are still running for over 6 hours! The processes are still using CPU time so the performance of the site gets worse and worse. I've talked to my host about it and they're not sure, the only solution they could offer for now is to reboot the webserver once a day to kill off the processes.

Any ideas what would be causing these processes to be running for so long?



12
nem2k2
How to let users delete their own comments?
  • 2004/9/22 9:35

  • nem2k2

  • Just popping in

  • Posts: 14

  • Since: 2003/9/18


Hi,

My users would like to be able to delete their own comments on news items, downloads (mydownloads module) and photos (myalbum-P module). Does anyone know how to allow this or of a quick hack that will allow it?

Cheers :)



13
nem2k2
Re: [request] XOOPS notification hack for IPBoard
  • 2004/6/14 4:10

  • nem2k2

  • Just popping in

  • Posts: 14

  • Since: 2003/9/18


Well I got bored and decided to have a go at it myself.. it works pretty well!

I just use this code in my xoops/kernel/privmessage.php in place of the existing insert function:

function insert(&$pm)
    {
        if (
get_class($pm) != 'xoopsprivmessage') {
            return 
false;
        }
        if (!
$pm->isDirty()) {
            return 
true;
        }
        if (!
$pm->cleanVars()) {
            return 
false;
        }
        foreach (
$pm->cleanVars as $k => $v) {
            ${
$k} = $v;
        }
        if (
$pm->isNew()) {
            
            
// ====================================
            // IPBOARD HACK
            // ====================================
            
include(XOOPS_ROOT_PATH."/modules/ipboard/conf_global.php");
            require(
XOOPS_ROOT_PATH."/modules/ipboard/sources/Drivers/mySQL.php");
            require 
XOOPS_ROOT_PATH."/modules/ipboard/sources/functions.php";
            
$std   = new FUNC;
            
$DB = new db_driver;
            
$DB->obj['sql_database']     = $INFO['sql_database'];
            
$DB->obj['sql_user']         = $INFO['sql_user'];
            
$DB->obj['sql_pass']         = $INFO['sql_pass'];
            
$DB->obj['sql_host']         = $INFO['sql_host'];
            
$DB->obj['sql_tbl_prefix']   = $INFO['sql_tbl_prefix'];
            
$DB->obj['debug']            = ($INFO['sql_debug'] == 1) ? $_GET['debug'] : 0;
            
$DB->connect();

         require 
XOOPS_ROOT_PATH."/modules/ipboard/sources/lib/emailer.php";

        
$email = new emailer();

         
//--------------------------------------
         // Attempt to get the reciepient details
         //--------------------------------------

         
$to_member = array();

         
$DB->query("SELECT uname, uid, view_pop, mgroup, email_pm, language, email FROM ibf_members WHERE uid='$to_userid'");
         
$to_member $DB->fetch_row();

         if (empty(
$to_member['uid']))
         {
             
//echo "Member does not exist";
                        
$DB->close_db();
             return;
         }


         
//--------------------------------------
         // Can the reciepient use the PM system?
         //--------------------------------------

         
$DB->query("SELECT m.msg_total, g.g_use_pm, g.g_max_messages FROM ibf_groups g, ibf_members m WHERE m.uid='".$to_member['uid']."' AND g.g_id=m.mgroup");
         
$to_msg_stats $DB->fetch_row();

         if (
$to_msg_stats['g_use_pm'] != 1)
         {
             
//echo "Recipient cannot use PM system";
                        
$DB->close_db();
             return;
         }

         
//--------------------------------------
         // Does the target member have enough room
         // in their inbox for a new message?
         //--------------------------------------

        
if ( (($to_msg_stats['msg_total']) >= $to_msg_stats['g_max_messages']) and ($to_msg_stats['g_max_messages'] > 0) )
        {
            
//echo "No room";
                        
$DB->close_db();
                        return;
        }

         
//--------------------------------------
         // Has the reciepient blocked us?
         //--------------------------------------

         
$DB->query("SELECT contact_id, allow_msg FROM ibf_contacts WHERE contact_id='1' AND member_id='".$to_member['uid']."'");
         
$can_msg $DB->fetch_row();

         if ( (isset(
$can_msg['contact_id'])) and ($can_msg['allow_msg'] != 1) )
         {
             
//echo "blocked";
                        
$DB->close_db();
             return;
         }



         
//-----------------------------------------
         // Add our original ID to the pool and loop
         //-----------------------------------------

         
$cc_array[$to_member['uid']] = $to_member;

         unset(
$to_member);

         foreach (
$cc_array as $user_id => $to_member)
         {

            
//--------------------------------------
            // Sort out tracking and pop us status
            //--------------------------------------

            
$show_popup =  $to_member['view_pop'];

            
//--------------------------------------
            // Enter the info into the DB
            // Target user side.
            //--------------------------------------

            
$db_string $std->compile_db_string( array(
        
'member_id'      => $to_member['uid'],
        
'msg_date'       => time(),
        
'read_state'     => '0',
        
'title'          => $subject,
        
'message'        => $std->remove_tags($msg_text),
        
'from_id'        => 1,
        
'vid'            => 'in',
        
'recipient_id'   => $to_member['uid'],
        
'tracking'       => 0,
                                                )      );

            
$DB->query("INSERT INTO ibf_messages (" .$db_string['FIELD_NAMES']. ") VALUES ("$db_string['FIELD_VALUES'] .")");
            
$new_id $DB->get_insert_id();
            unset(
$db_string);

            
//-----------------------------------------------------

            
$DB->query("UPDATE ibf_members SET ".
                        
"msg_total = msg_total + 1, "                    .
                        
"new_msg = new_msg + 1, "                        .
                        
"msg_from_id='1', ".
                        
"msg_msg_id='"      $new_id                    .  "', ".
                        
"show_popup='"      $show_popup                .  "' ".
                        
"WHERE uid='"        $to_member['uid']           .  "'");
/*
            //-----------------------------------------------------
            // Has this member requested a PM email nofity?
            //-----------------------------------------------------

            if (1)//($to_member['email_pm'] == 1)
            {
                $to_member['language'] = $to_member['language'] == "" ? 'en' : $to_member['language'];

                $email->get_template("pm_notify", $to_member['language']);

                $email->build_message( array(
        'NAME'   => $to_member['uname'],
        'POSTER' => 'Samcrew',
        'TITLE'  => $input['msg_title'],
        'LINK'   => "?act=Msg&CODE=03&VID=in&MSID=$new_id",
                                                  )
                                            );

                //$email->subject = lang['pm_email_subject'];
                $email->to      = $to_member['email'];
                $email->send_mail();

            }
*/
        
}
        
//echo "OK! :)";
                
$DB->close_db();
            
// =====================================
            
            
        
} else {
            
$sql sprintf("UPDATE %s SET msg_image = %s, subject = %s, from_userid = %u, to_userid = %u, msg_text = %s, read_msg = %u WHERE msg_id = %u"$this->db->prefix('priv_msgs'), $this->db->quoteString($msg_image), $this->db->quoteString($subject), $from_userid$to_userid$this->db->quoteString($msg_text), $read_msg$msg_id);
        }
        if (!
$result $this->db->query($sql)) {
            return 
false;
        }
        if (empty(
$msg_id)) {
            
$msg_id $this->db->getInsertId();
        }
        
$pm->assignVar('msg_id'$msg_id);
        return 
true;
    }


Comments/criticism/suggestions welcome :)



14
nem2k2
[request] XOOPS notification hack for IPBoard
  • 2004/6/13 23:49

  • nem2k2

  • Just popping in

  • Posts: 14

  • Since: 2003/9/18


Hi,

I'm using XOOPS with the IPBoard module.. one small problem I am having is when users subscribe to notifications (eg. comments added to files in mydownloads module) the PMs are going to the XOOPS PM system instead of the IPBoard PM system. I've tracked down the place where the hacks would be required (xoops/kernel/privmessage.php needs to use code from xoops/modules/ipboard/sources/Messenger.php) but I'm not sure exactly what needs to be done.

I would really like the PMs to be going to the IPBoard PM system... any help is appreciated :)




TopTop
« 1 (2)



Login

Who's Online

191 user(s) are online (138 user(s) are browsing Support Forums)


Members: 0


Guests: 191


more...

Donat-O-Meter

Stats
Goal: $100.00
Due Date: May 31
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $100.00
Make donations with PayPal!

Latest GitHub Commits