[dev] Horde_Share_Base::listShares()

Michael Rubinsky mrubinsk at horde.org
Mon Jan 17 20:57:16 UTC 2011


Quoting Michael Rubinsky <mrubinsk at horde.org>:

> Quoting Michael Rubinsky <mrubinsk at horde.org>:
>
>> Quoting Gunnar Wrobel <wrobel at horde.org>:
>>
>>>
>>> Zitat von Jan Schneider <jan at horde.org>:
>>>
>>>> Zitat von Michael Rubinsky <mrubinsk at horde.org>:
>>>>
>>>>> Quoting Jan Schneider <jan at horde.org>:
>>>>>
>>>>>> Zitat von Gunnar Wrobel <wrobel at horde.org>:
>>>>>>
>>>>>>> Hi!
>>>>>>>
>>>>>>> The function mentioned above does support several  
>>>>>>> sorting/paging features ('from', 'count', 'sort_by',  
>>>>>>> 'direction'). As far as I can tell none of these parameters  
>>>>>>> are actively used within our code base (with the exception of  
>>>>>>> 'sort_by' but 'name' seems to be the only setting used here).  
>>>>>>> Currently only the Sql-Drivers supports these features and I  
>>>>>>> wonder if we really need them.
>>>>>
>>>>> Huh. That's embarrasing. I'm pretty sure it worked at one point,  
>>>>> but maybe that was back in the DT days. I never realised that  
>>>>> the paging parameters were ignored by the SQL share drivers.
>>>
>>> They don't. As mentioned in my original mail the SQL drivers are  
>>> the only ones that actually support it. It does not work within  
>>> the Horde_Share_Base::listShares() but that only applies to the  
>>> Datatree and Kolab drivers.
>>
>> Ah. Ok. I apologize, I misunderstood what you were saying, and I  
>> don't have access to the code at the moment to look. At least now I  
>> don't think I'm losing my mind :)
>>
>>
>>> Two additional questions though:
>>>
>>> 1) Why do we have a separate Sql and Sql_Hierarchical driver?  
>>> Wouldn't it make sense to collapse the two and always be  
>>> hierarchical? I'd have no problems supporting a tree structure  
>>> with the Kolab driver. In fact I'd like to do that.
>>
>> Originally, when hierarchical support was removed from DT for  
>> performance reasons, Ansel had kept it's own share driver, then  
>> when Duck started work on the SQL share driver, we kept the  
>> hierarchical driver seperate both for performance, and to keep the  
>> SQL driver as simple as possible, since none of the other apps need  
>> hierarchical support.
>>
>> There are some other differences, there are no share_names in the  
>> hierarchical driver; share_ids are used for everything. There is no  
>> need for the names, and causes confusion (though that's probably  
>> just my feeling based on bad experiences with this while adding  
>> initial share support to Turba - the code has significantly  
>> improved since then). I also don't want Ansel's galleries to have  
>> to be identified by these string hashes, it would break existing  
>> permalinks, makes for long ugly urls, and would probably require  
>> some refactoring in Ansel...not that refactoring is "bad", just  
>> sayin'...
>>
>> If it's possible to combine them without complicating things too  
>> much, degrading performance, and keeping the above mentioned points  
>> about share_name vs share_id intact, that's fine with me.
>
> Ok. Now that I've spend some more time with the code, the only  
> remaining reason (beside any potential performance issues related to  
> the longer share_parent fields) to really keep them separate would  
> be to maintain using share_ids as identifiers in Ansel. If we  
> combine the drivers, we'd need to use the share_names to identify  
> the galleries, which would lead to existing links to galleries being  
> broken.  We'd also obviously need to run some data conversions on  
> all the ansel tables - and the gallery key image code would need  
> some refactoring (since it uses negative gallery-ids to indicate  
> they are key images).

...and to contradict myself again, I actually think it would be  
possible to keep using the gallery ids. I'll try to work this out on a  
separate branch and see where it goes.

mike

The Horde Project (www.horde.org)
mrubinsk at horde.org


More information about the dev mailing list