PDA

View Full Version : [Help] auto replace content when post


Thangvip9x
02-07-2014, 02:15 AM
Please help me
I have a example
If i post character "a, b, c, d" will auto replace to character "e, f, g, h"
I use hook postbit_display_complete use str_replace and $this->post['message'] but it only replace message, i want auto replace pagetext from database
This is my plugin
$post1=array(
'a','b','c' ,'d'
);
$post2=array(
'e','f','g' ,'h'
);
$this->post['message'] = str_replace($post1, $post2, $this->post['message']);
I used hook postdata_presave with $this->post['pagetext'] use good, but empty first post when move threads
This is my plugin
$post1=array(
'a','b','c' ,'d'
);
$post2=array(
'e','f','g' ,'h'
);
$this->post['pagetext'] = str_replace($post1, $post2, $this->post['pagetext']);
I use hook postbit_display_complete and use $post['pagetext'] use good but error MySQL when read private message
Please help me write plugin auto replace pagetext from database when post
Thank you very much
This is my plugin i write with hook postbit_display_complete with $this->post['pagetext'] and $this->post['message'] use good but error when read private message
$post1=array(
'a','b','c' ,'d'
);
$post2=array(
'e','f','g' ,'h'
);
$this->post['message'] = str_replace($post1, $post2, $this->post['message']);
$this->post['pagetext'] = str_replace($post1, $post2, $this->post['pagetext']);
$db->query_write("
UPDATE ".TABLE_PREFIX."post
SET pagetext = '".$db->escape_string($this->post['pagetext'])."'
WHERE postid = ".$post['postid']."
");
If i remove this content in my plugin
$this->post['pagetext'] = str_replace($post1, $post2, $this->post['pagetext']);
$db->query_write("
UPDATE ".TABLE_PREFIX."post
SET pagetext = '".$db->escape_string($this->post['pagetext'])."'
WHERE postid = ".$post['postid']."
");
Use good but don't replace character from database, i want auto replace pagetext from database
Thank you very much

--------------- Added 1391756672 at 1391756672 ---------------

Please help me

kh99
02-07-2014, 10:06 AM
You could do this, using hook newpost_process:
$post1=array(
'a','b','c' ,'d'
);
$post2=array(
'e','f','g' ,'h'
);
$post['message'] = str_replace($post1, $post2, $post['message']);
$dataman->setr('pagetext', $post['message']);


but that will only change new posts. To change existing posts in the database you would need to use SQL. You would probably want to do that once only (maybe by using phpMyAdmin), instead of making a plugin for it.

Thangvip9x
02-07-2014, 10:11 AM
Thank you very much

--------------- Added 1391772078 at 1391772078 ---------------

Perfect, i want replace in private message when post and signature
Thank you very much

kh99
02-07-2014, 10:29 AM
For PM, you could create a plugin using private_insertpm_process:
$post1=array(
'a','b','c' ,'d'
);
$post2=array(
'e','f','g' ,'h'
);
$pm['message'] = str_replace($post1, $post2, $pm['message']);
$pmdm->setr('message', $pm['message']);



I don't know about signature, I will have to take some time to figure it out.

Thangvip9x
02-07-2014, 10:29 AM
I want auto replace when edit post, thread title, private message title
Because i try but your plugin don't replace
Thank you very much

--------------- Added 1391773031 at 1391773031 ---------------

This is my query
UPDATE post SET pagetext = REPLACE(pagetext, 'a', 'b');
UPDATE post SET pagetext = REPLACE(pagetext, 'e', 'f');
I want you help me write query replace all a, b, c, d to e, f, g, h with one click when run SQL, because i have 100 character replace, thank you very much

--------------- Added 1391773120 at 1391773120 ---------------

Please help me write plugin auto replace when edit post, edit thread title, private message title, thank you very much

kh99
02-07-2014, 11:13 AM
For editing post, use hook editpost_update_process,
$post1=array(
'a','b','c' ,'d'
);
$post2=array(
'e','f','g' ,'h'
);
$edit['message'] = str_replace($post1, $post2, $edit['message']);
$edit['title'] = str_replace($post1, $post2, $edit['title']);



for post title, add this to the plugin:
$post['title'] = str_replace($post1, $post2, $post['title']);
$dataman->setr('title', $post['title']);


for Pm title, add this to the plugin:
$pm['title'] = str_replace($post1, $post2, $pm['title']);
$pmdm->setr('title', $pm['title']);



I don't know how to do a REPLACE in sql for more than one character at a time. It might make sense to write it php, but you don't need to run it every time someone posts.

Thangvip9x
02-07-2014, 11:18 AM
Thank you very much, i will try

--------------- Added 1391777383 at 1391777383 ---------------

Perfect, thank you very much

--------------- Added 1391777847 at 1391777847 ---------------

This my plugin perfect with signature
I use hook postbit_display_complete
$this->post['signature'] = str_replace($post1, $post2, $this->post['signature']);
All members can use

--------------- Added 1391783297 at 1391783297 ---------------

I want you help me write plugin forced check 'V' (tick) box will replace character a,b,c,d to e,f,g,h as Quote message in reply? at vbulletin.org
If i check box, character will replace, if i don't check box, character don't replace
Thank you very much

--------------- Added 1391783332 at 1391783332 ---------------

I want you help me write plugin forced check 'V' (tick) box will replace character a,b,c,d to e,f,g,h as Quote message in reply? at vbulletin.org
If i check box, character will replace, if i don't check box, character don't replace
Thank you very much

--------------- Added 1391783444 at 1391783444 ---------------

I need add code post my template newreply, editpost, edit thread, SHOWTHREAD, thank you very much

--------------- Added 1391803631 at 1391803631 ---------------

I need add query replace character title from database
Thank you very much

Thangvip9x
02-09-2014, 04:03 AM
Please help me and i want question
When i post a thread, thread title will replace character ",>,<...to encode in thread title, please help me fix it
I created plugin as a your help

kh99
02-09-2014, 10:39 AM
I'm noy sure what you're asking. If you want to change the post title when you post, you can use code like I mentioned in post #6 above (the second and third pieces of code should be added to the plugins we discussed early in the thread).

Thangvip9x
02-09-2014, 12:14 PM
I'm noy sure what you're asking. If you want to change the post title when you post, you can use code like I mentioned in post #6 above (the second and third pieces of code should be added to the plugins we discussed early in the thread).

I understand your support, i added your code to plugin and perfect, but when i post a thread then characters special will encode
This is a example
When I post thank "kh99" very much it will display thank &quot;kh99&quot; very much, if don't error it will display thank "kh99" very much in thread title, it's mean replace " to &quot, i don't want replace special
If i don't use code #6 in plugin, thread title will display normal, but if i don't use code it will don't replace a, b, c, d to e, f, g, h
Please help me fix
Thank you very much