In Reply To:
This is not that simple unfortunately. How would you want:
- The total link count (does it include hidden totals?)
- The search results (can you search on hidden categories?)
- The new/cool listing
Let me know what you think,
Alex,
This _is_ a complex issue, and part of the problem, like with file uploads and images, is that everyone wants/needs different features and functionality. A lot of this has to do with the fact that Links is not being used primarily as a "links" directory, but as an expanded/enhanced system of "linking".
We had discussed over a year ago, the "flags" system, using various concepts from alpha numeric, to the built in 'bit' mapping MySQL had at the time.
I think it's about time to re-address this issue.
As you know, I do keep "overhead" issues in the back of my mind at all times, but for now, I'm only going to keep the "big" ones there,and sort of ignore little ones for this discussion. :)
I'm going to also draw on my experience managing forums on various BBS's systems I've run -- pcboard, wildcat, etc and managed Compuserve, GENie, Delphi, etc.
Most "systems" that allow uploads, have a preview or staging area. This is separate from the "validated" system Links uses, but loosely maps over it.
Most systems also allowed the creation of "hidden" directories, based on a numerical (usually) access level. One level was "admin" only, one was "editors" one was "registered users" etc.
The same system was applied to "links" (or files).
The system was adaquate at the time -- barely.
Now we have several more needs and concerns -- not the least of which is filtering material deemed inappropriate for some audiences, language filtering, or such. This is ON TOP OF a search.
To work properly, the search needs to be executed, filtered, and finalized, before any stats are returned. Links can't be removed during processing -- o r the first page of the results will have different "totals" on it than subsequent pages.
"temporary tables" and cached data are a partial solution -- but as indicated they have overhead. The specific implementation is something that needs careful design consideration.
But, what are the "features" that need to be in the system, starting with the "display" or "user" end of the system.
1) Categories need to be able to be reordered for display -- at least the top level categories. This allows non-alpha sequences and "random" ordering based on webmaster needs.
2) Categories need to be able to be hidden from both searches, and certain users. They need to have "access levels" (as such).
3) Links need to be able to be hidden from searches based on flag values -- such as validated, expired, adult,non-english, etc.
4) New/Cool pages need to be generated based on the user level of access. A non-logged in user sees only the "general" rankings page. A logged in user sees either _all_ the various ranking pages, or the ranking page that is associated with his access level -- New_Registered.html, New_Adult.html, etc.
5) BBS systems tended to use "masks" and pre-pends to create file names and access levels.
6) Dynamic sites with user log-on will benefit most from this, while static sites will benefit least. A compromise will have to be struck between what features are available in static sites and which are only available in dynamic sites. Hidden categories and links should be available in both sites, but some things may not be able to be available.
7) In 2+ years of using Links, my biggest desires have been for a "preview" area, separate from the "upload" area (the unvalidated area). My "wish list" would be for a preview area PER CATEGORY, so links could be moved from view but still retain logical organization. This would map out as a "Visible" flag on each link that is recognized by "Links" itself as a criteria for all actions -- search, display, etc. I have tried to put this functionality into the Image Upload system, which is partly why it took so long to get a working version, and why it's still pre-beta at best. I've used the same sort of logic with the logo plugin to allow "expiring" out the image.
While everyone has different needs and desires, the most common implementations of these sort of systems have included certain basic features.
1) a "preview" area (separate or similar to the "new uploads" area),
2) ability to hide/unhide files either by moving them to the preview area, or by setting a "hide" flag
3) "Access levels" to allow certain areas to be visible only to those with those access levels.
Implemenations have varied on how this is done, and the better "access" systems, used a "mask" system, rather than an increasing access system, such that an access level is granted specific access to areas unrelated to the access other access levels may have, rather than the system where "Unregistered" has access to areas 1-4, "Registered" has access to areas 1-8, and "Paid" has access to areas "1-10".
Some systems have allowed the setting and creation of Flags that can be defined to trigger (or mask) certain behaviors in addition to the above.
If a "flags" system is used, then it could be activated as necessary - or ignored. Hidden links and categories could be screened out with a system tag that was "isVisible", the same way "isValidated" is used.
The idea is to create a system that adds the maximum flexibility and functionality for the most people and situations, with the least impact on overhead for them, and for those who don't need this functionality.
PUGDOG� Enterprises, Inc. The best way to contact me is to
NOT use Email.
Please leave a PM here.