Hello,
The new version of Links Manager for osC (v1.00) is now available for download, here.
This new version is almost entirely written from scratch, to include newer features.
IMPORTANT: This contribution was developed for, and tested on OSC v2.2MS2. I haven't tested it on previous OSC releases, so please take care when you install it in pre-MS2 OSC versions. In any case, please BACKUP your programs!!!
Features include,
* multi-language support
* spider friendly links click count
* links/link category images support
* split page views for links
* link partners contact options
* integrated links checker (thanks to Greame Conkie)
* admin configuration options
* "semi-automated" install ;-)
* notification on link status change and more...
You can see this program in action in my demo store, here.
Thanks to the OSC team and all those wonderful helpful folks at the OSC forums!!!
VJ

Guestbook for OSC(MS2) v1.0 is now available at http://www.oscommerce.com/community/contributions,1349.
This add-on was developed and tested on OSC 2.2MS2. You can find this add-on in action, at http://www.vjdom.com.
VJ

This program enables display and management of a categorized list of links to other websites. You can add/edit/delete/enable/disable links and categories from the admin interface.
It also includes a link submit form, where users can submit links and request you to add them to your list.
http://www.oscommerce.com/community/contributions,1256
Please give it a try and send in your comments and suggestions. This is my first ever contribution for OSC. Hope I've done a fair enough job.
VJ
--
http://www.salehut.com

Hello,
I have this code in place to better handle special characters, and it seems to work fine.
In file admin/easypopulate.php
replace,
// make sure all non-set things are set to '';
// and strip the quotes from the start and end of the stings.
// escape any special chars for the database.
foreach( $filelayout as $key=> $value){
$i = $filelayout[$key];
if (isset($items[$i]) == false) {
$items[$i]='';
} else {
// Check to see if either of the magic_quotes are turned on or off;
// And apply filtering accordingly.
if (function_exists('ini_get')) {
//echo "Getting ready to check magic quotes<br>";
if (ini_get('magic_quotes_runtime') == 1){
// The magic_quotes_runtime are on, so lets account for them
// check if the last character is a quote;
// if it is, chop off the quotes.
if (substr($items[$i],-1) == '"'){
$items[$i] = substr($items[$i],2,strlen($items[$i])-4);
}
// now any remaining doubled double quotes should be converted to one doublequote
$items[$i] = str_replace('\"\"',""",$items[$i]);
if ($replace_quotes){
$items[$i] = str_replace('\"',""",$items[$i]);
$items[$i] = str_replace("\'","'",$items[$i]);
}
} else { // no magic_quotes are on
// check if the last character is a quote;
// if it is, chop off the 1st and last character of the string.
if (substr($items[$i],-1) == '"'){
$items[$i] = substr($items[$i],1,strlen($items[$i])-2);
}
// now any remaining doubled double quotes should be converted to one doublequote
$items[$i] = str_replace('""',""",$items[$i]);
if ($replace_quotes){
$items[$i] = str_replace('"',""",$items[$i]);
$items[$i] = str_replace("'","'",$items[$i]);
}
}
}
}
}
with,
foreach( $filelayout as $key=> $value){
$i = $filelayout[$key];
if (isset($items[$i]) == false) {
$items[$i]='';
} else {
// strip enclosing quotes added by Excel
$items[$i] = preg_replace('/^"(.*)"$/', '$1', $items[$i]);
// doubled double quotes should be converted to one doublequote (for some reason Excel adds them)
$items[$i] = preg_replace('/"{2,}/', '"', $items[$i]);
// standard functions to clean db input
$items[$i] = tep_db_input(tep_db_prepare_input($items[$i]));
}
}
HTH,
VJ

WebSearch for OSC(MS2) v1.0 is now available at http://www.oscommerce.com/community/contributions,1360.
This add-on lets you search the Web from a search infobox. And, it runs on Google API, producing the same matches as when you search Google.
This add-on was developed and tested on OSC 2.2MS2.
You can find this add-on in action, at http://www.vjdom.com.
VJ

Hello,
I use index.php as my home page, and had a little hiccup getting the Linda's Header Tag Controller to work as it should.
Just thought this "tip" could help, if you use Linda's Header Tag Controller contrib... especially for users who use "index.php" instead of the default "default.php" as their home page.
In file /catalog/includes/header_tags.php, replace
(at around line 20)
// DEFAULT.PHP
case (strstr($_SERVER['PHP_SELF'],'default.php') or strstr($PHP_SELF,'default.php') ):
with,
// DEFAULT.PHP
case (strstr($_SERVER['PHP_SELF'],FILENAME_DEFAULT) or strstr($PHP_SELF,FILENAME_DEFAULT) ):
HTH,
VJ

Strange! Did you open/modify this file in a WYSIWYG editor like Dreamweaver? If so, I suspect that might've messed up your paths. You can try replacing it with a fresh new easypopulate.php (don't forget to backup your existing file!).
If you have your store at, say, http://shop.yourdomain.com or http://www.yourdomain.com/shop, you'll most likely have to change the temp directory paths to something like,
--
$tempdir = "/shop/temp/"; /* This is what really matters */
$tempdir2 = "/catalog/temp/"; /* This is a redundant variable, as far as I can see. Maybe you can use it to backup the original path. */
---
HTH,
VJ

Huh, here comes the tricky bit...
1. Copy /catalog/includes/spider.txt (if you haven't done so, earlier), and /catalog/includes/classes/split_page_results.php (rename it to split_page_results_new.php, before copying) from MS2.
2. In split_page_results_new.php, rename all instances of "splitPageResults" to "splitPageResultsNew" (you should find 2).
3. In /includes/modules/link_listing.php:
replace,
$listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'l.links_id');
with,
// split-page-results
require(DIR_WS_CLASSES . 'split_page_results_new.php');
$listing_split = new splitPageResultsNew($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'l.links_id');
That should do it. Happy New Year! :)
I remember going through this routine a couple of times, before. I'd appreciate if you could compile all the changes you'd needed to make (to get this working in MS1), and post it.
VJ

Hmm... not sure what those errors exactly are. Maybe you could copy/paste the lines where they occur, here (if you have a Javascript debugger integrated with your browser).
VJ
P.S. - If you're keen on donating money, please PM/IM/email me. Thank you :).

You have probably tried to create an instance of messageStack class, before including the /includes/classes/boxes.php file (where tableBox class is defined), in your application_top.php.
Try moving the lines you'd added, AFTER the following line, in application_top.php:
// infobox
require(DIR_WS_CLASSES . 'boxes.php');
HTH,
VJ

Hello,
An updated version of Easypopulate (v2.72) is now available for download, here.
This includes an option to turn off product attribute data when downloading the tab-delimited file.
Support for this new version will continue in this thread.
VJ

Good.
This should do the trick,
require(DIR_WS_CLASSES . 'message_stack.php');
$messageStack = new messageStack();
where, "messageStack" is the name of the class (in message_stack.php) and we use "$messageStack" just to be consistent with the variable name in links_submit.php.
VJ

In my links_submit.php, line 227 reads,
if ($messageStack->size('submit_link') > 0) {
You most likely have to copy the messageStack class (/catalog/includes/classes/message_stack.php) from MS2, and create an instance in /catalog/includes/application_top.php.
HTH,
VJ