
Originally Posted by
conor
Hi,
As I said, I could have the code for checking PHP_SELF wrong but from everything I've read the .php of the index.php should be matchable. When it's not, my code attempts to build the value from DOCUMENT_ROOT or SCRIPT_NAME etc.
Thanks, hopefully it does. As I said though, with the corrupt value returned by your die statement, the "correct" value should have been bult. If you send me FTP and admin details for your site I can check to see why the correct value wasn't subsequently built when Ceon URI Mapping would have identified a problem with the supplied value.
I don't think any login is needed, it would be a waste of your time at this point since I have it working and it's so rare anyway. BUT, I don't think the code does what you say, so, here's something to look at.
In class.CeonURIMappingHandlerBase, the code says:
Code:
// Ceon URI Mapping should only run when Zen Cart itself is responsible for runtime
// execution. If this code is running because some other software has called the Zen Cart
// initsystem then don't attempt to map the URI
if ($PHP_SELF != (DIR_WS_CATALOG . 'index.php')) {
return;
}
So, it's the return there that bypasses the code, apparently, on purpose. For what it's worth.
I do hope you get well. I have numerous medical challenges myself.

Originally Posted by
conor
Try it and see. :) The software was tested with 24,000 products when being built and I know people have used it with many more. The primary focus of the software is not speed but flexibility so it is not optimised for sites as large as that, but you do have options..
The other is that the software was specifically written to allow the use of subclasses optimised for speed..
The idea is that you can simply override the appropriate database lookup and storage methods to reorganise the way the URIs are stored and matched, for example putting all historical URIs in their own table (or yearly tables if there are loads), as they are "less likely" to ever be used as time goe on, so you could optimise the size of the "current" URIs database without having to optimise lookup code etc.
This override system is how the UMM supports templates for URI mappings.. I never got round to writing subclasses for speed, no-one's ever complained about the speed enough that they wanted me to bother! Which is good I suppose. :)
Conor
So, given that, do you see any issue with adding a primary key of the uri? Not, you, me. (Side effect is MySQL workbench allows one to edit the table data, it does not when there is no primary key). I don't think there should be any duplicates, after all, those would be bad anyway.
Bookmarks