For a complete list of the new features in v0.6, click here.
MTTrackbackEntry is a Movable Type plugin and hack that enables you to create new entries from the Trackbacks that you receive. In other words, it enables other people to post new entries in your blog, simply by pinging an entry or category on your blog. The title of this plugin/hack could just as easily be called TrackbackCrosspost, since it can act as a trackback-based cross-posting tool.
Currently, entries are created AND pings are received and recorded by default. In v0.6, actual ping entries can be optionally turned off. So if you turn off pings, TrackbackEntry will only record a new entry. Personally, I can't think of many practical cases for record the ping as well - it just clutters up your database.
TrackbackEntry is especially useful when used to ping Categories rather than entries. When a category is pinged, the new entry is added to that category. This provides more control over the display of Trackback-Entries (display in sidebar, sub-page, etc.)
New: Category Creation
In v0.6, you can enable a new category creation feature. This powerful feature enables people to create entries in categories that don't yet exist on your blog. For example, ping the following:
...mt-tbentry.cgi/books
would create a new category in your blog called "books" and add the entry to that category. If your blog already has a category called "books", the entry is simply added to that category. One of the benefits of this approach is that people don't need to remember the trackback id of the category.
MT-Blacklist Support
Version 0.6 includes optional support for MT-Blacklist. I have only tested this with v 1.63rc2 with MT 2.661. When this option is turned on, incoming pings are scanned against your blacklist just like a real trackback. This option is off by default.
Template Tags
There are only two new tags provided (because most of functionality lies in the scripts, not in the plugin itself). The following tags enable you to output the TrackbackEntry URLs for entries and categories:
<MTEntryTrackbackEntryLink> - Similar to <MTEntryTrackbackLink>, this tag will display the TrackbackEntry URL for a particular entry. Others can use this URL to to send a TrackbackEntry ping, which will create a Trackback record for the entry and create a new entry in the blog.
<MTCategoryTrackbackEntryLink> - Similar to <MTCategoryTrackbackLink>, this tag will display the TrackbackEntry URL for a particular category. Others can use this URL to to send a TrackbackEntry ping, which will create a Trackback record for the category and create a new entry in the category.
Requirements
Net::Blogger - Sorry, I neglected to mention this is the first release.
Installation
1. Download Now:
MTTrackbackEntry.zip and extract the files.
2. Place "mt-tbentry.cgi" in your MT directory (same directory as mt.cgi). Then CHMOD to 755.
3. Place "TrackbackEntry.pl" in your "plugins" directory within your MT directory.
4. Create a new user to be be used for Trackback-Entries. Make note of the username and password. Give the user permisions to post and rebuild files on each of the blogs that you want to enable TrackbackEntry.
5. Open "TrackbackEntry.pm" and find the line that reads:
my $mt_username = 'tbentriesusername';
Replace 'tbentriesusername' with the user name chosen in Step 4 (the username should be enclosed in single quotes). (remember that MT usernames are case-sensitive)
6. Just below this line, you should find the following line:
my $mt_password = 'tbentriespassword';
Replace 'tbentriespassword' with the password chosen in Step 4 (the password should be enclosed in single quotes).
7. Search for "OPTIONS" and choose the options that you want by setting them to 1 or 0. Options include: create new category, default blog, default category, use MT-Blacklist, and create trackback.
8. Save the file and upload to '/lib/MT/App/' within your MT directory (same directory as "Trackback.pm")
9. Begin using the tags described above to inform your visitors of the TrackbackEntry URLs for your entries and categories.
10. Test it out be asking someone to send you a TrackbackEntry ping. (If you want me to send you a test ping, let me know)
Displaying TrackbackEntries
For displaying TrackbackEntries, it is important to understand what data gets stored in which entry fields:
-the Ping Excerpt gets stored in the Entry Body field.
-the Ping Blog Name gets stored in the Extended Entry field.
-the Ping Source URL gets stored in the Excerpt field.
-the Ping Remote IP gets stored in the Keyworda field.
As such you can use the associated MT template tags to display the entries. If you want to display a list of entries that are mixed between your own entries and TrackbackEntries, you may want to make use of the Compare plugin like this:
<MTIfNotEqual a="[MTEntryAuthor]" b="tbentriesusername">
<a href="<$MTEntryAuthorURL$>"><$MTEntryAuthor$></a>
</MTIfNotEqual>
<MTIfEqual a="[MTEntryAuthor]" b="tbentriesusername">
<MTIfEqual a="[MTEntryExcerpt no_generate='1']" b="">
<$MTEntryMore convert_breaks="0"$>
</MTIfEqual>
<MTIfNotEqual a="[MTEntryExcerpt no_generate='1']" b="">
<a href="<$MTEntryExcerpt no_generate="1"$>"><$MTEntryMore convert_breaks="0"$></a>
</MTIfNotEqual>
</MTIfEqual>
The above template snippet displays a linked version of the author's. In the case of TrackbackEntries, the blog name is used as the author name and the source URL is used as the author URL.
Please let me know what you think.
Version History
0.5
-Initial release
0.6
-recording of trackback is now optional
-category creation
-MT-Blacklist support

Comments (11)
Hi Mark, I just tested beta 0.6 having some problem. I tried Category Creation feature. A new category is created, but no new entry. So it happens if I ping an entry. I installed Net::Blogger in /mt-path/extlib/Net/. Maybe is this wrong? What can I do? Thanks a lot. Here is the URL of the weblog I'm testing on:
http:///www.zeromedia.it/mttest/
Posted by Cesare | April 22, 2004 6:43 AM
Posted on April 22, 2004 06:43
Hi Cesare,
I can't access that page now (even the root).
It sounds like Net::Blogger might be the reason. Inside your "Net" folder you should have 2 things (apart from the HTTP libs already there from the MT install):
-Blogger.pm (file)
-Blogger (folder)
Inside the blogger folder, there should be two sub-folders, "API" and "Engine", etc.
If can provide more details, I can try to help further.
One error that I often make whenn doing this with new blogs, is that the username that I forgot to give the correct permissions to post to that blog (I assign "post" and "rebuild")...
Posted by Mark Carey | April 22, 2004 7:27 AM
Posted on April 22, 2004 07:27
Mark, in my Net folder I have blogger.pm and another folder wich contains all the engines and API.
In TrackbackEntry.pm I used the follwing settings:
my $create_new_cat = 1;
my $blog_id = 1;
my $cat_id = 0;
In MT I created a new user with post & rebuild permission associated to blog with id 1, but, I repeat, no new entry recorded and no rebuild. Thanks again;-)
Posted by Cesare | April 22, 2004 8:07 AM
Posted on April 22, 2004 08:07
I've just seen you made a test: category 'marktest' created but non entry.
Posted by Cesare | April 22, 2004 8:12 AM
Posted on April 22, 2004 08:12
I can access you site now. Doing this test, I get the following error:
Can't call method "Proxy" on an undefined value at D:\www\zeromedia.it\mt\lib/MT/App/TrackbackEntry.pm line 412.
This just after the beginning of the Net::Blogger code. Can you search for the following line (line 410):
my $blog = Net::Blogger->new(engine => 'movabletype', debug => 0);
And set debug to 1:
my $blog = Net::Blogger->new(engine => 'movabletype', debug => 1);
Maybe that will give some better clues.
Posted by Mark Carey | April 22, 2004 8:15 AM
Posted on April 22, 2004 08:15
Ok, Mark I have just set debug=> to 1
Posted by Cesare | April 22, 2004 8:28 AM
Posted on April 22, 2004 08:28
It seems like there may be a problem with the path variable. To test, can you insert the following line immeidately after the "my $blog=..." line discussed above:
$path = 'http://www.zeromedia.it/mt/mt-xmlrpc.cgi';
I want to see if hardcoding this path will help...
Posted by Mark Carey | April 22, 2004 8:51 AM
Posted on April 22, 2004 08:51
Just added, mark
Posted by Cesare | April 22, 2004 9:41 AM
Posted on April 22, 2004 09:41
Mark, it seems to work now!!!! Don't ask me how I did it:-) Thans, thanks, a lot.
Posted by Cesare | April 22, 2004 10:57 AM
Posted on April 22, 2004 10:57
Great to hear! (rememebr to turn off debugging now)
Enjoy!
Posted by Mark Carey | April 22, 2004 12:18 PM
Posted on April 22, 2004 12:18
Hi Mark, I'm having a devil of a time getting this plugin to work. Would you swing over to http://tandoku.com/2004/June/seablogs.php to see what it is I am doing wrong. I sure would appreciate your help with this.
Thanks.
Posted by Tom Harpel | June 19, 2004 12:33 PM
Posted on June 19, 2004 12:33