I would like to have a quote and time for launch regarding “Auto-linking”. This is for the NON-vBulletin part of the site, code is PHP, database is PostGre. What is autolinking?
Autolinking is extremely straightforward; it's about going thru a text and change certain words to hyperlinks.
For example; if the word "Yoga" is in a list (database) of words that should be converted to autolinks, the text yoga will be changed to the html-code as below
Replace strings:
• :Alternative 1, conventional hyperlink:
o <a target="_blank" href="http://www.experiencefestival.com/yoga">yoga</a>
• Alternative 2, built in "auto-link" logic as it is in GO:
o "Yoga" = of <a href="/yoga" class="auto-link">yoga</a>
How to do it
There are a number of ways to do autolinking but I would like to have a quote for an autolinker written in any language of your choice - as long as it meets the criteria below (I have long experience in using auto-linkers and I would say that C++ and Java works well, PHP has not worked well for the kind of large word-database I want to have).
The criteria is:
• the autolinker should be capable of handling a word-database of approx 100.000 + words without being too slow.
• Autolinking is done “off-line”, I e it is used when an article/topic-page is published/re-published, and at that moment a static HTML-page including the hyperlink is created. The original text in the database is not altered.
• Implement the auto-linker in existing code so it's is enabled where it should be (obvious of course, I know!!)
o There are two instances when autolinking should be used
• When publishing/republishing an article
• When publishing/republishing a topic-page
• An admin interface of words in the database with below features exist already:
o Stats: number of times a word has been autolinked
o Delete word
o Edit words status• Active (should be hyperlinked)
• Inactive (should not be hyperlinked)
o Change default destination
• Default is that “word” links to website.com/word
• Can be override to for example website.com/another_word
• New addition to the admin interface
o Possibility to upload a text-file with comma-separated words.
o Possibility to when uploading a file choose between:
• Add all words with status dependently • If word exist – status is not changed
• If word don’t exist – status is active
• Add all words with status Active • If word exist – status is changed to active
• If word don’t exist – status is active
• Add all words with status Inactive • If word exist – status is changed to inactive
• If word don’t exist – status is inactive
o Possibility to download all words in database to a textfile
• Word, path, status, frequency
The critera is also:
• It should only hyperlink a word “standing alone”, example “Hyper”
o Should be hyperlinked
• I was hyper about it!
• Hyper should be hyperlinked when it comes first in a sentence.
• Also when it comes before colon, semi-colon or comma, hyper, or last; hyper.
o Should not be hyperlinked
• Should not be hyperlinked
• Should not be hyper-linked
• It should also handle phrases, example:
o Yoga Position
o Mayan Calendar
o The United States of America
• The system should always create a hyperlink for the longest possible string.
o If all these words are in the word-database:
• Mayan, Calendar
o The occurrence Mayan Calendar should be treated as one phrase rather than two separate words.
• Preferably it should treat hyphen as blank when it is separating two words
o The occurrence Mayan-Calendar should be treated as if hyphen was a blank
• Note: If difficult to do with good performance – skip it.
• It should not be case-sensitive or care about italic, bold etc.
It would be nice but not necessary
• To collect stats for how often a certain string is clicked on.
• To collect stats for how often a certain string is clicked on and on which page(s) the clicks occur.
• Note: Nice but not need to have. Depends on cost and time for development.
Please come back with a quote and date for when implementation can take pace.
Jonas