[dev] Horde_Share_Base::listShares()

Jan Schneider jan at horde.org
Mon Jan 17 23:35:01 UTC 2011


Zitat von Michael Rubinsky <mrubinsk at horde.org>:

>
> Quoting Jan Schneider <jan at horde.org>:
>
>> Zitat von Michael Rubinsky <mrubinsk at horde.org>:
>>
>>>
>>> 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.
>>
>> I buy the argument for shorter URLs, but non-guessable URLs for  
>> direct guest access have their merits too.
>
> True. Though, the only time this would truly protect the gallery is  
> if it's a child of a private gallery, since the user could find the  
> gallery via Ansel's UI anyway.

Not if the SHOW permission is unset.

> That being said, my biggest concern is maintaining existing gallery  
> links that may be out in the wild. This would break all links, and  
> galleries embedded on other sites/blogs.  If we're willing to say  
> it's ok to break this with the 2.0 release, then ok, let's do it.

Yes, that's a good point. I don't have a strong opinion on that.

Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/



More information about the dev mailing list