Created by: Lee LaMont Bell Jr., Last modification: 11 Mar 2006 (16:53 UTC)


Have you ever had a project that seemed to have a life of it’s own? I have and my latest was SpyText. It not only gave itself it’s name but also demanded features that I never intended to include. Let me explain.
I originally named the Plugin HideText on the Plugins Proposal Page but felt a better name for it would have been HideStuff - mainly because that's what it does. When I started working on it though - I asked myself - "What kind of people hide things in plain sight?" - and quickly answered "A Spy Does!" I didn't seem to have be a choice after that. My imagination (and warped sense of humor) took me and I found myself in the Madd Magazine's Land named Spy-Verses-Spy where I left Secret Messages everywhere. Alive or not - the decision was made. The name became SpyText and there was no turning back.
While the idea behind SpyText was simple - I found that writing the code was far more difficult than I had imagined. I like Puns (especially Groaners) and when I started writing - they kept jumping on my desk and demanding to be included. Each time the code became a little more complex - but that wasn't the real killer. The real difficultly was that I couldn't reach the keyboard while sitting on the floor. Each Pun arrived in rapid succession and they had me laughing so hard I that I kept falling out of my chair.
I've been told that simple minds are easily amused and I guess it's true. At any rate - there is a Spy hidden on nearly every line of SpyText's code.

Summary - So What Does It Do?

All that SpyText does is Hide Stuff! The Default Visibility for every Message is - Don't Show Nobody Nuttin and everything placed between it's 2 Code Blocks is hidden from everyone Except the Spy(s) & Agency(ies) (Users & Groups) that you define.
Note: It's a Plot! A Conspiracy I say! Every Administrator is a Spy! They see every SpyText Message!
All of this means that SpyText can be used as a way of controlling what each User will see on a page. As an example: Anonymous Users can be shown one thing while Registered Users can be shown something else entirely.
Note To Administrators: If you are using SpyText Messages in this manner - Make sure you test the visibility of the Messages in the Groups your including (or excluding). I know that this seems obvious - but I made this mistake while writing this page. I do most of my editing on my Testing Site before placing the finished pages on Everything looked great to on my Site where I was the Administrator. After adding it to though - I discovered that None of my Examples were visible. Oh - Dahhhhh!

The Plugin's Help


A Note On Abusing SpyText

The alert parameter is provided to give the Less-Than-Swift Spy a little assistance in finding their Messages. Alert Boxes can be very annoying when overused - so please limit their usage to once a page or once per Spy / Group.

Administrators are not quite that fortunate. Every time SpyText creates a Hidden Message - an Alert Box is added to give the Administrator notice that a page has Hidden SpyText Message on it. This may be a mistake and if so it will be changed in the future - but that is how it is right now. What that means is that the Administrator will have a lot of Alert Boxes to respond to when the page contains a lot of hidden messages. This page as an example has 7 Alert Boxes - far too many.

Now if you Really want to play games with your Administrator - just dump a few hundred Hidden SpyText Messages on every page. Yes - You can be the first one on your block to find out how long it takes to Never Be Able To Login Again.

Note: This problem has been eliminated with the last update. Only one Alert Box will be generated per page.


All of the Examples on this page have agency='Registered' specified so that only Users who are Logged In will be able to see the Messages. Anonymous User will not be able to see any of the Examples on this page. See for yourself - Log out and look at this page. The only SpyText Message that is visible - is Example 2 for Anonymous Users.

Example 1 - No Parameters Or Data


Example 2 - Only Visible To Anonymous Users


A Note About The Following Examples

In the following Examples we are going to play a buildup game with the Parameters. Each Example will have the same Parameters as the preceding Example except as noted.

Example 3 - Only Visible To Registered Users


Example 4 - The Address Box


Example 5 - The Spy Line Only Displays Valid Users


Example 6 - The Agency Line Only Displays Valid Groups


Example 7 - The Sender Line Only Displays Valid Users


Examples 8 & 9 - Demonstrate Changing The Address Box Headers

Each of these Examples use the Parameters spy='Spider' agency='Registered' sender='StarRider' with only the to Parameter being changed.
In addition to specifying if the Address Box will be displayed (to='TRUE') - the to Parameter can change the Default Headers used in the Address Box. The Default Headers are: "To the Spy:" / "To the Agency:" / "From Your Source:"
This is accomplished by providing replacement strings separated with the | Character.
Note 1: The Address Box is available at any time no matter what other parameters are supplied.
Note 2: For further information on the to Parameter - see the Plugin's Help (above).

Example 8 - Changing All Of The Headers


Example 9 - Changing A Single Header


Hidden Examples

All of the Hidden Examples use the Parameters spy='Spider' agency='Registered' sender='StarRider' to='TRUE'
SpyText Messages can be hidden on a page. That is - the SpyText Message Data is placed in a Contracted Expandable Box that uses either the Title or an Icon as the link to Expand/Contract it.
Note: A Hidden Message cause an Alert Box to be generated for the Administrator even if the Alert Parameter has not set - so please see the Heading about Abusing SpyText.

Example 10 - A Hidden Message


Example 11 - With A Title Bar


Example 12 - Changing the Title Bars Title & Width


Example 13 - The Default Icon


Example 14 - The Default Icon In A Title Bar


Example 15 - Using Content Id Numbers


Example 16 - Using A URL


Example 17 - Using Alerts


Final Thoughts

How to end this? For me - SpyText was one of those projects that make it all worth while. It started as something simple that grew and then just continued growing. At times it was a royal pain in the - Ahh-Hummmm! Most of that was my fault - nobody forced (or even asked) me to try to make everything that popped into my head work. I laughed my - Ahh-Hummmm! - off about it and thoroughly enjoyed myself.
I hope that each of you will find a similar project.

StarRider (s-r on IRC)
Lee L. Bell Jr.


There seems to be a little problem with SpyText

by Anton Hummel, 31 Jul 2005 (06:58 UTC)
Hi StarRider

good work.
There is a little bug in - i allways got this little message on the top!
Warning: Cannot modify header information - headers already sent by (output started at /home/bitweaver/R1/liberty/plugins/data.spytext.php:320) in /home/bitweaver/R1/kernel/BitSystem.php on line 316
  Page 1 of 1  1