Extension talk:Replace Text/Archive 2018

Tip: running two (or more) jobs together
If you run one replace text job with this extension and then quickly after run another, it looks like the second will not be run. The first is shown in Recent changes but the second is not. Before trying it again, check out the job queue (under Statistics). It will probably include the second job. There appears to be a delay of several (15 - 30 or so) minutes before the second is started, even if the first is finished. --Robinson weijman 10:24, 20 January 2011 (UTC)

I needed this but it does not work
I have a database of about 3.6 million article or so. I needed to replace one reoccurring name in the articles but it runs for a while then it is just stuck on loading. I checked on WHM and I notice at first it uses a healthy amount of resources then it uses less and less and finally it just disappears all together. I have adjusted the jobs and everything with no such luck. Is this a fluke when dealing with large databases? Currently my entire database is pushing about 20 gigs.


 * I'm sure this is due to the very large size of your wiki. Did you try using the "Replace only in pages with the prefix" option? It could help to break the process down into manageable chunks, if you, for instance, did a separate call for each letter of the alphabet. Yaron Koren 16:12, 25 January 2011 (UTC)

Thanks gonna give it a try going through each letter of the alphabet beats going through the whole thing by hand :)

Call to undefined method Xml::textarea
Fatal error: Call to undefined method Xml::textarea in /var/www/wiki/extensions/ReplaceText/SpecialReplaceText.php on line 220

I just installed the latest extension. How do I resolve this error?


 * Hi - what version of MediaWiki are you using? My guess is that you have an old version, but I don't know exactly when Xml::textarea was added. Yaron Koren 16:27, 26 January 2011 (UTC)

I have version 1.12.0. Here is the link: http://wiki.accelereyes.com/wiki/index.php/Special:ReplaceText


 * Ah, okay. That version's not supported by Replace Text - you need 1.13 or higher. Yaron Koren 16:34, 26 January 2011 (UTC)

Many thanks

Case insensitive
Now that we got regex, would a case insensitive checkbox be possible (affecting also non-regex replacements)? --Subfader 17:04, 19 February 2011 (UTC)


 * I'm glad you saw the new regex feature, and that it's (apparently) working for you. As for case-insensitive searches: my understanding is that it's not possible, because the database field where MediaWiki stores the actual text, i.e. the "old_text" field in the "text" table, is of type "mediumblob", and any kind of blob field is always case-sensitive - see here. The MediaWiki search features lets you do case-insensitive searches, but that uses a different DB table, "searchindex", which does some processing on the text to make searches easier, like removing punctuation - which also makes it unusable for Replace Text. So unfortunately, I think the only solution would be to modify or add to the MediaWiki database in some way. Yaron Koren 22:36, 20 February 2011 (UTC)


 * Sounds like the effort would not be worth it. I only tested regex quickly on localhost and it worked, but didn't highlight the found sections in the preview. Also no replacement was done, but that could be cos of the localhost installation. --Subfader 16:19, 21 February 2011 (UTC)


 * Ah - so it didn't really work, then... I know the highlighting needs fixing - it only works some of the time. Yaron Koren 19:08, 21 February 2011 (UTC)


 * Tried 0.9.1 on localhost and server: it finds the regex matches but nothing is replaced. Jobque is empty when I run maintenance/runJobs.php afterwards. MW 1.16a (August 2009), MySQL 5.0.51a. I'd also like to see text matched in teh preview of each item. --Subfader 10:39, 3 April 2011 (UTC)

Bug in 0.9 / replacing text in page titles
Hi, I just tested the new version for another reason an realised that the extension proceeds to a blank page as soon as you would like to replace some text in page titles. This behaviour does not appear with 0.8.1. Cheers --&#91;&#91;kgh&#93;&#93; 12:26, 22 February 2011 (UTC)


 * Can you give any more information - the search string, the replacement string, use of regex, the number of pages? Yaron Koren 17:35, 22 February 2011 (UTC)


 * I apologize for my delayed answer. Somehow I did not get a notification. :( Sure I can provide additional information as I should have done in the first place anyway: I did not use regex. The search string was “[G131]” and the replacement string was G131. v0.8.1 tells me that there is no such title containing “[G131]” whilst v0.9.0 just proceeds to a blank page. Thus the problem seems to be related to the special character since replacing G131 to G132 would work with both versions. Cheers --&#91;&#91;kgh&#93;&#93; 17:09, 24 February 2011 (UTC)


 * I can't reproduce this problem either. What MySQL version (assuming you're using MySQL) and PHP version are you using? Yaron Koren 20:17, 28 February 2011 (UTC)

Problem with identifying text to be replaced
Hi, I have a problem which is puzzling me. I wanted to replace the term [portfolio_slideshow] which occurred on about 150 pages. However it only replaced 50 of these occurrences - the ones the extension was able to identify. The other 100 appearances seem to be some sort of invisible. I cannot find any difference between both cases. Some kind of tip how to solve this would be cool. Cheers --&#91;&#91;kgh&#93;&#93; 13:17, 22 February 2011 (UTC)


 * I have no idea. Different namespace? Yaron Koren 17:37, 22 February 2011 (UTC)


 * Sadly this is not the case. I even selected all namespaces without helping the cause. However it would not have been necessary since the text is only included in the main namespace. Perhaps this extension uses another search mechanism than MW itself which might have caused the problem. One of my ideas was that this extension might need a leading and trailing blanc character. However this would not explain why it worked in 50 cases. Perhaps this is something for Robert Stack ;-) Cheers --&#91;&#91;kgh&#93;&#93; 17:18, 24 February 2011 (UTC)


 * I just made the observation that ReplaceText stopped working at all. It just does not pick up the text to be replaced. I am working on MW 1.16.2, SWM 1.5.5 and RT 0.8.1. I hope that this is not a big problem. Cheers --&#91;&#91;kgh&#93;&#93; 09:23, 28 February 2011 (UTC)


 * Could it be that your job queue has a backlog? All of RT's replacements are done via the job queue. Yaron Koren 14:13, 28 February 2011 (UTC)


 * No, that is not the case. I just ran runJobs.php to make sure and tried unsuccessfully to do a replacement. It still does not find the text to be replaced though the standard MW search does. I think a job queue just prevents the replacements to be done right away until it is their turn. Whilst I was at it I thought of one more thing that might result in this behaviour and tested it. That is what I found out: It does do replacements in all namespaces except for pages generated with semantic templates, e. g. page "Hello World" containing . This extension seems to ignore the source code of such pages. Thus "Hello" and "World" may not be replaced. However this would explain the partial replacement I reported about on Feb. 22, 2011 too. This problem looks now more like a feature request than an problem. Cheers --&#91;&#91;kgh&#93;&#93; 14:57, 28 February 2011 (UTC)


 * What's the feature request? Yaron Koren 15:28, 28 February 2011 (UTC)


 * The feature request would be that Replace Text will be able to pick up the source code of pages containing semantic templates instead of ignoring it unless this behaviour is a bug. --&#91;&#91;kgh&#93;&#93; 16:36, 28 February 2011 (UTC)

That seems like a bug report, not a feature request... still, I find that very strange. Do you have a case where a simple string like "Hello" doesn't get replaced, and you can duplicate the problem consistently? Yaron Koren 18:24, 28 February 2011 (UTC)


 * A long time has passed since I reported this issue first. The reason is that I am unable to detect why. In the meantime this extension stopped working entirely for the wikis I reported in February. Finally I start to have problems on a public wiki may be observed. Today I replaced “Glossar” by “Eintrag” in namespace “Glossar” This worked for 89 pages while it did not for 51 other pages. Now I tried to change back from “Eintrag” to “Glossar”. This however fails entirely. I am pretty much helpless and sadly unable to find a scheme. There are no jobs queued, so this cannot be the reason. The wiki is on MW 1.16.5 and uses RT 0.9.1. The wiki in question is here Cheers --&#91;&#91;kgh&#93;&#93; 20:36, 12 October 2011 (UTC)


 * Hi - I basically have no idea. How do you know there are no jobs queued - did you check the "jobs" database table? That's the only reliable way to know. Yaron Koren 22:41, 14 October 2011 (UTC)


 * It is really strange. Yes I checked the jobs in the database itself for the very first time to make sure. However, this problem does not seem to be related to jobs. It is "just" a matter of not recognising the strings to be replaced. I also thought of some caching related cause, still this again would not explain this behaviour in its entirety. I am sure time will reveal the reason and I was just not patient enough so far. Cheers --&#91;&#91;kgh&#93;&#93; 08:10, 15 October 2011 (UTC)

RegExp: How to match whether a substring is there or not?
I want to replace 'customdate' to 'datepicker' and 'customdatetime' to 'datetimepicker'. In the regexp language I'm used to (the one 'sed' uses), I'd do it like that:  - how to do it with Replace Text?

I tried a couple of things, but can't get it to work. When I use  as original text and   as replacement text, I get   (ok) and   (huh?). Is this a bug, or am I doing it wrong? --Patrick Nagel 10:19, 7 March 2011 (UTC)


 * I don't think it's a bug - I think it's just using "greedy matching", matching the bare string "customdate" in all cases and ignoring the rest. By the way, I believe the string "[time]" means "any individual character of t, i, m and e" - something like ((time)*) instead might be preferable. But I'm not sure about that, and I'm also not sure if it's related to the problem. Yaron Koren 15:36, 7 March 2011 (UTC)

Replace text in Categories
I tries to replace a category name at a number of image files that were misnamed. This extension normally works fine for me for texts, but any text between 137.224.252.10 10:14, 10 March 2011 (UTC)


 * Are you using regexps? If so, try not using them. Yaron Koren 15:31, 10 March 2011 (UTC)

replace text in a template
I try to replace the text to. But whatever I try, no text is found and I have this text in a lot of pages. Anyone who can help? Erwin van der Ploeg 13:17, 15 March 2011 (UTC)
 * I just tested with those exact strings, and it worked for me. As with the last question - are you using regexps? If so, try not using them. Yaron Koren 13:29, 15 March 2011 (UTC)

Strage, I do not use regexp. But I can't get it to work. Any idea? Erwin van der Ploeg 13:53, 15 March 2011 (UTC)


 * What happens if you try to replace the text without the curly brackets - does that work? Yaron Koren 14:12, 15 March 2011 (UTC)

No. nothing. Erwin van der Ploeg 14:28, 15 March 2011 (UTC)


 * I guess the issue, then, is that Replace Text doesn't work for you at all. What versions of MediaWiki, Replace Text and PHP are you using? And what DB system (MySQL, etc.) are you using? Yaron Koren 14:41, 15 March 2011 (UTC)

It does work for most texts, bit not for the {[version. I don't have any idea why. Our Wiki specs are: MediaWiki 1.16.0 PHP 5.2.13 (isapi) MySQL 5.0.24-community-nt Erwin van der Ploeg 11:45, 16 March 2011 (UTC)


 * Okay. Just to clarify: trying to replace the bare string "Version10.3" doesn't work? If so, could it be because the relevant pages are in another namespace, or something? Yaron Koren 13:25, 16 March 2011 (UTC)

The bare string also isn't found. I select all namespaces, so this can't be it. I've update to version .91 and I get an error: Fatal error: Call to undefined method OutputPage::addModuleStyles in C:\ReflexWiki\Public\common.reflexwiki.net\extensions\ReplaceText\SpecialReplaceText.php on line 26 What now? Erwin van der Ploeg 12:45, 17 March 2011 (UTC)


 * Hi - thanks for letting me know about that. I just updated version 0.9.1 to fix that problem. As for the original issue, I have no idea. Yaron Koren 13:31, 17 March 2011 (UTC)

Same for me; it all works, except texts in brackets...145.53.133.136 15:19, 17 March 2011 (UTC)


 * That's not the same, then; what didn't work above was the bare string "Version10.3". Yaron Koren 16:46, 17 March 2011 (UTC)
 * But how to change texts between [ or { ?145.53.133.136 13:42, 20 March 2011 (UTC)


 * I don't know - that should work. Are you using regexp? Yaron Koren 14:49, 20 March 2011 (UTC)

Result not shown immediately?
I tried replaced a tag in my wiki, at the first 10 minutes, nothing seemed to happen, so I disabled the require_once for replace text extension in localsetting.php.

Error immediately happens, which says something about "JobQueue.php" in /includes. And a few minutes later, I noticed some pages have been modified.

What I'm not sure is whether the script can only change parts of pages (maybe the first N results, as mentioned here ).

I'm wondering in most of cases, how long does it take to complete the replacement process? --Wmama 17:40, 21 March 2011 (UTC)


 * The whole replacement is done using MediaWiki jobs (each page replacement is a separate job), so the amount of time it takes is totally dependent on the current size of the job queue, the speed at which jobs are executed, etc. Yaron Koren 17:44, 21 March 2011 (UTC)


 * Thanks Yaron! Sorry that I didn't realize that you've already written it clearly on the Known issues section.
 * Another issue is about Extension:CommunityVoice, which provides a content page with a rating bar. The extension needs a separate table in the DB and ajax to run. After installing ReplaceText, my extension doesn't work anymore. I'm wondering if it's possible that the job queue interrupts this? --Wmama 18:10, 21 March 2011 (UTC)


 * I don't know - that sounds strange. Yaron Koren 18:45, 21 March 2011 (UTC)

Regex not working
I tried several times but I can replace regex. Nothing gets replaced, not even after running maintenance/runJobs.php. Anone got it working at all? ReplaceText 0.9.1 on MW 1.16alpha and MySQL 5.0.51a here. --Subfader 17:47, 12 June 2011 (UTC)


 * Works like a charm here: ReplaceText 0.9.1 (MW 1.16WMF4, MySQL 5.1.49, PHP 5.3.3, running on Ubuntu 10.10). No insult intended, but did you remember to check the "use regular expressions" checkbox? Dror Snir 18:05, 12 June 2011 (UTC)


 * Yes I did check, otherwise the preview page wouldn't work ;) Btw, normal replace text works, just not regex. --Subfader 18:38, 12 June 2011 (UTC)


 * Update: I used an easy example now without special characters. It worked, but still only after forcing it via maintenance/runJobs.php.
 * But still buggy: The bug is that if you don't declare special characters in the find-string it may find the correct pages but will not replace text on them. Try yourself: Create a page with this text:

http://www.somedomain.com/replacetext
 * Find

http://www.somedomain.com/(.*)$
 * Replace with

SomeDomain
 * No error message appears and the preview page builts up but with empty highlighted text (only the page name is listed). After running maintenance/runJobs.php:

2011-06-12 23:06:16 replaceText Tests/1 user_id=1 target_str=http://www.somedomain.com/(.*)$ replacement_str=SomeDomain use_regex=1 edit_summary=Text replace - "http://www.somedomain.com/(.*)$" to "SomeDomain" create_redirect= watch_page= t=75 good
 * Nothing was replaced! Now try escaping backslashes: Find:

http:\/\/www.somedomain.com\/(.*)$
 * This time it will built the preview properly and will be replaced. The problem is that it finds the correct page with the wrong find-string! Also the preview is not 100% proper (see [[Media:Capture 06132011 010842.png|here]]) Please fix. --Subfader 23:14, 12 June 2011 (UTC)


 * Nice QA! I guess I never tried it without escaping every special character. Maybe Yaron will see this discussion... Dror Snir 23:23, 12 June 2011 (UTC)


 * I think I found it. I wondererd why only some are found here: [[Media:Replace text - 1307921746054.png]]. The solution is that only those were found where the page content ended with the URL (all others have category tags in rows below the URL). Reason:  in the find string matches not the end of the row but is a placeholder for the rest of the page content!? --Subfader 23:49, 12 June 2011 (UTC)

Hi - thanks for doing all this testing. This makes sense to some extent - the regexp handling in Replace Text is only certified to work with a certain set of characters, and '$' (in the search term) is not one of them - see the extension page. It would be nice to handle '^' and '$', though - I'll try to look into it. Yaron Koren 18:09, 13 June 2011 (UTC)

PHP Fatal error: Class 'Html' not found in ...../ReplaceText/SpecialReplaceText.php on line 228
I'm receiving this error in MediaWiki 1.15. I downloaded 1.17, and includes/Html.php exists in that version whereas I do not have it in 1.15. I wonder if the minimum requirement of 1.13 is incorrect then? Does the dependency on the Html class require a more recent version of 1.15? A fresh download of 1.15.5 does not contain Html.php, but 1.16.5 does. It looks like the minimum requirement is MediaWiki 1.16, not 1.13. I'm going to edit the main extension page with this dependency once I verify that the error disappears with an upgrade... --Balleyne 19:10, 12 July 2011 (UTC)


 * Yes, it's true that some changes to the Replace Text code on SVN a few months ago (not made by me) removed backward compatibility for MW < 1.16. I'm planning to restore that backward compatibility, but I haven't gotten around to it yet. Thanks for the reminder. Yaron Koren 19:25, 12 July 2011 (UTC)

input type="text"
The category and prefix inputs miss type="text" " $category_search_label\n". Xml::input( 'category', 20, $this->category, array('type'=>'text') ). ' ' .			" $prefix_search_label\n". Xml::input( 'prefix', 20, $this->prefix, array('type'=>'text') ). ' ' .			" \n". --Subfader 19:28, 23 July 2011 (UTC)

Change notification from Replace Extension using localhost in URL
The subject almost says it all. Links in change notification emails work correctly when users edit or create a page on our intranet mediawiki. But if I use the Replace extension to make a change, the notification email uses http://localhost/main/index.php/whatever. Am I missing some setting somewhere?

MediaWiki - 1.16.0 (r150) PHP - 5.3.2-1ubuntu4.9 (apache2handler) MySQL - 5.1.41-3ubuntu12.7

Thanks. --Skew 07:22, 10 August 2011 (UTC)

Custom links better than Extension Distributor
I would assume that the version from SVN would be more up-to-date than the zip/tar links that are provided, especially when it relates to translations. What makes the direct links better? -- Prod 01:56, 20 November 2011 (UTC)


 * They're better because they've been "curated". The latest/SVN version from the ExtensionDistributor could contain code that hasn't been tested and has bugs, while snapshots for previous MediaWiki versions are just random snapshots in time, that I know for sure contain bugs. It always cause problems for various extensions of mine when someone who uses, say, MediaWiki 1.15 (understandably) downloads the 1.15 version of the code from ExtensionDistributor - and it has known bugs, missing features, etc. Yaron Koren 03:05, 20 November 2011 (UTC)