Forums / Developer / Help me with this Idea: New Sort Method for objects!

Help me with this Idea: New Sort Method for objects!

Author Message

Jorge estévez

Thursday 14 April 2005 9:34:04 pm

Hello...

Heres the Idea:

Developing a news site for a client I came up with the need of a new sort method in ezpublish (not implemented in current versions)

I would like to sort my items in the Admin site with a priority

parameter. Instead of having the default value (0) as the default value, once I create an item
(class object) I would like to have (by default) a number equal to the year+date+minute+second set as the default priority number.

This method will allow in my News web site to have articles ordered by the number generated (equal to the curent date) witch of course will represent information about the moment it was published

The coded number will look something like this:

2005, 25th, january at 9am will be: 200501250900

Being:

25012005 the date

09 the hour (24 hour system)

00 the seconds

Why all that mess?

Having this kind of settings I will be able to modify an articles number (date or time parameters within the new coded number) so It will get assigned to a new priority order and remain as the top article for a period of time, taking for example an article made the 20th of January if I change the date to the 30th of February I will be active as the most recent article for 10 days since published so the article will not get old and "drop down from the list", as days go by other articles get inserted but as their number will be less that the one modified they will be sorted bellow the one modified.

I am trying to figure out a more "human or understandable" method that does not use the simple number as the priority thus it could be more confuse to arrange articles in the site and cannot be able to set an article as the TOP one for a period of time.

I think using a method like this one will help keep tracking of priority+time on articles (publish date) and be able to keep files sorted (active) by it's published date.

<b>Paul Forsyth pointed out the following:</b> The priority database column only has space for an integer with a length of 11 characters. My priority string has twelve characters so I will have to change the string!

<b>Can someone point out Where to change the value of priority in the ez code (ver 3.5.1), Which templates or other files do I have to change</b>

Thanks,
jorge estevez rams
-*************





 

Diseño Web Cuba
Web Design Cuba
www.elfosdesign.com

Kristian Hole

Friday 15 April 2005 1:30:13 am

I think you can solve this by adding a datatype and sorting on attributes.

Check out example 5 here:
http://ez.no/ez_publish/documentation/reference/data_fetching/content/list

However.. this will probably be slow if you use this for everything..

Kristian

http://ez.no/ez_publish/documenta...tricks/show_which_templates_are_used
http://ez.no/doc/ez_publish/techn...te_operators/miscellaneous/attribute

Jorge estévez

Friday 15 April 2005 2:10:02 pm

Thanks for your reply...

With a dataype it could be rather slow as you mentioned, but also the client will not be able to see the sort information on the admin site just as we now can see the priority info and it will be very difficult to track priority on objects due to the need of editing them... the site I am developing is bieg and will have many articles per day...

What I would like to do is to be able to change the code and use my idea just as we can use the priority box on the admin site..

Could you point out where can I change the code so I can asign (just when the object is created) the date code (taking into consideration the 11 chars available) so instead of asigning 1,2,3,4 as priority it will asume the code generated fron the current date+time...

thanks again

Diseño Web Cuba
Web Design Cuba
www.elfosdesign.com

Jorge estévez

Tuesday 19 April 2005 2:53:52 pm

Can someone point out where to make changes to set up the priority explained?

thanks

Diseño Web Cuba
Web Design Cuba
www.elfosdesign.com

Kristian Hole

Wednesday 20 April 2005 12:17:20 am

The priority is stored in the ezcontentobject_tree table.

mysql> describe ezcontentobject_tree;
+----------------------------+--------------+------+-----+---------+----------------+
| Field                      | Type         | Null | Key | Default | Extra          |
+----------------------------+--------------+------+-----+---------+----------------+
| contentobject_id           | int(11)      | YES  | MUL | NULL    |                |
| contentobject_is_published | int(11)      | YES  |     | NULL    |                |
| contentobject_version      | int(11)      | YES  |     | NULL    |                |
| depth                      | int(11)      |      | MUL | 0       |                |
| is_hidden                  | int(11)      |      |     | 0       |                |
| is_invisible               | int(11)      |      |     | 0       |                |
| main_node_id               | int(11)      | YES  |     | NULL    |                |
| modified_subnode           | int(11)      | YES  | MUL | 0       |                |
| node_id                    | int(11)      |      | PRI | NULL    | auto_increment |
| parent_node_id             | int(11)      |      | MUL | 0       |                |
| path_identification_string | longtext     | YES  | MUL | NULL    |                |
| path_string                | varchar(255) |      | MUL |         |                |
| priority                   | int(11)      |      |     | 0       |                |
| remote_id                  | varchar(100) |      |     |         |                |
| sort_field                 | int(11)      | YES  |     | 1       |                |
| sort_order                 | int(11)      | YES  |     | 1       |                |
+----------------------------+--------------+------+-----+---------+----------------+
16 rows in set (0.00 sec)

If you alter the table, you can get it to store longer integers.

The publishing is done in kernel/content/ezcontentoperationcollection.php
publishNode().

You can probably add some $node->setAttribute('priority'... somewhere there.

Hope this is helpful.

Kristian

http://ez.no/ez_publish/documenta...tricks/show_which_templates_are_used
http://ez.no/doc/ez_publish/techn...te_operators/miscellaneous/attribute