[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Again - Perl: DB.PHP.Cache




cool.  thanks.



On Tue, 16 Nov 1999, Jason Pincin wrote:

> On Tue, Nov 16, 1999 at 09:46:03AM -0800, Aaron Turner wrote:
> > Maybe I need another cup o' joe.  To make sure we're on the same page, can
> > you maybe do a few example lines of output of the script based on the
> > actual values of the DB?  Just so I can see what you want you want me to
> > take and how to output it.  I think I get it, but I'd hate to find out
> > that I'm doing it all wrong. :-)
> 
> 
> Sure.  Lets take $OBJECT_TYPES and $TYPE_PROPERTIES
> 
> 1) select * from ObjectTypes;
> This returns a few records, lets take 2 of them:
> 
> ObjectTypeId | ObjectTypeName | ObjectTypeDesc | ValidChildren | etc...
>              |                |                |               |
>      1       |	KB Root       |  Root Cont ... |       3       | ...
>      2       |  User Root     |  Root Cont ... |       4       | ...
> 
> 2) Next step - create $OBJECT_TYPES which is just an array of valid Type
> ID's:
> 
> $OBJECT_TYPES[0] = 1;
> $OBJECT_TYPES[1] = 2;
> ...
> 
> 3) Create $TYPE_PROPERTIES which will define everything else about an
> ObjectType, and the key of the array will be equal to the ObjectTypeID:
> 
> $TYPE_PROPERTIES[1]["Name"] = "KB Root";
> $TYPE_PROPERTIES[1]["Desc"] = "Root Cont...";
> $TYPE_PROPERTIES[1]["ValidChildren"] = "3";
> ... etc for all properties of a type ...
> 
> $TYPE_PROPERTIES[2]["Name"] = "User Root";
> $TYPE_PROPERTIES[2]["Desc"] = "Root Cont...";
> $TYPE_PROPERTIES[2]["ValidChildren"] = "4";
> ... etc for all properties of a type ...
> 
> 
> Now... lets do an example for $OBJECT_ACTIONS and $ACTION_PROPERTIES...
> 
> 1) select * from ObjectActions; yields:
> 
> ActionID | ObjectType | ActionName    | ActionDesc | RenderFile         |
>          |            |               |            |                    |
>    6     |     1      | AdvancedSearch| ...        | kb/search.php3     |
>    5     |     1      | SimpleSearch  | ...        | kb/search.php3     | 
>    1     |     3      | SimpleSearch  | ...        | kb/search.php3     | 
>    7     |     3      | SubmitArticle | ...        | kb/doc/submit.php3 |
> 
> 2) build $OBJECT_ACTIONS
> 
> $OBJECT_ACTIONS[1][0] = 6;
> $OBJECT_ACTIONS[1][1] = 5;
> $OBJECT_ACTIONS[3][0] = 1;
> $OBJECT_ACTIONS[3][1] = 7;
> 
> ... etc ...
> 
> 3) Build $ACTION_PROPERTIES
> 
> $ACTION_PROPERTIES[6]["Name"] = "AdvancedSearch";
> $ACTION_PROPERTIES[6]["RenderFile"] = "kb/search.php3";
> ... etc for all properties ...
> $ACTION_PROPERTIES[5]["Name"] = "SimpleSearch";
> $ACTION_PROPERTIES[5]["RenderFile"] = "kb/search.php3";
> ...
> $ACTION_PROPERTIES[1]["Name"] = "SimpleSearch";
> $ACTION_PROPERTIES[1]["RenderFile"] = "kb/search.php3";
> ...
> $ACTION_PROPERTIES[7]["Name"] = "SubmitArticle";
> $ACTION_PROPERTIES[7]["RenderFile"] = "/kb/doc/submit.php3";
> ...
> 
> 
> Is this a good enough example?  Let me know if you have any other
> questions or are hazy on anything... 
> 
> J
> 
> 
> 
> 
> 
> > > $OBJECT_TYPES[0 -?] = Array of valid Object Type ID's
> > > 
> > > $TYPE_PROPERTIES[ $OBJECT_TYPE[x] ]["Name"] =
> > > $TYPE_PROPERTIES[ $OBJECT_TYPE[x] ]["Desc"] =
> > > $TYPE_PROPERTIES[ $OBJECT_TYPE[x] ]["ValidChildren"] =
> > > $TYPE_PROPERTIES[ $OBJECT_TYPE[x] ]["Class"] = 
> > > $TYPE_PROPERTIES[ $OBJECT_TYPE[x] ]["DefaultActionID"] = 
> > > $TYPE_PROPERTIES[ $OBJECT_TYPE[x] ]["ExtensionTable"] =
> > > $TYPE_PROPERTIES[ $OBJECT_TYPE[x] ]["RenderPath"] =
> > > 
> > > $OBJECT_ACTIONS[ $OBJECT_TYPE[x] ] = Array of actions ID's for Object x
> > > 
> > > $ACTION_PROPERTIES[ ActionID ]["RenderFile"] =
> > > $ACTION_PROPERTIES[ ActionID ]["Name"] =
> > > $ACTION_PROPERTIES[ ActionID ]["Desc"] = 
> > > $ACTION_PROPERTIES[ ActionID ]["Image"] =
> > > 
> > > $OBJECT_PROPERTIES[ $OBJECT_TYPE[x] ] = Array of Property IDs for Object x
> > > 
> > > $PROPERTY_PROPERTIES[ PropertyID ]["Name"] =
> > > $PROPERTY_PROPERTIES[ PropertyID ]["FieldMap"] =
> > > $PROPERTY_PROPERTIES[ PropertyID ]["Type"] =
> > > 
> > > The SQL commands will be pretty easy.  I assume the difficult part is to
> > > get Perl to build the file *shrug*?
> > > 
> > > OK - the query to build $OBJECT_TYPES and $TYPE_PROPERTIES would be:
> > > select * from ObjectTypes;
> > > 
> > > Then just go through what's returned... 
> > > 
> > > To build $OBJECT_ACTIONS and $ACTION_PROPERTIES just do:
> > > select * from ObjectActions;
> > > 
> > > You'll build $OBJECT_ACTIONS by referencing ActionID and ObjectType in the
> > > records returned...
> > > 
> > > And you'll do the same for $OBJECT_PROPERTIES and $PROPERTY_PROPERTIES:
> > > select * from ObjectProperties;
> > > 
> > > and do it just like the actions...
> > > 
> > > If this isn't clear in anyway - especially the variable structure... lets
> > > talk...
> > > 
> > > This script would make my like SO much easier... and it would speed up the
> > > system incredibly.  This one script will eliminate 3 to 5 DB queries on
> > > EVERY page load.  Thats an incredible amount.  
> > > 
> > > So what are your thoughts on this?  Easy enough?  Comments and thoughts
> > > welcome and urged!
> > > 
> > > 
> > > 
> > > -- 
> > > Jason
> > > http://vodka.linuxkb.org/~chardros
> > > 
> > 
> > --
> > Aaron Turner, Core Developer       http://vodka.linuxkb.org/~aturner/
> > Linux Knowledge Base Organization  http://linuxkb.org/
> > Because world domination requires quality open documentation.
> 
> -- 
> Jason
> http://vodka.linuxkb.org/~chardros
> 

--
Aaron Turner, Core Developer       http://vodka.linuxkb.org/~aturner/
Linux Knowledge Base Organization  http://linuxkb.org/
Because world domination requires quality open documentation.