[dev] Agora Code and Idea Donation

Michael Rubinsky mrubinsk at horde.org
Fri Jul 30 15:16:29 UTC 2010



On Jul 30, 2010, at 4:49 AM, Stephan Hohmann <webmaster at dasourcerer.net> wrote:

> Quoting Michael Rubinsky <mrubinsk at horde.org>:
> 
>>>>> o Linkbacks
>>>>> Finding out how a thread is linked is quite interesting but usually requires
>>>>> logfile analysis. We wanted a more active approach and keep track of incoming
>>>>> referrers by the forum software itself. In addition to this, we wanted to
>>>>> allow linkbacks via the pingback XMLRPC call as well (and possibly trackbacks
>>>>> as used by Wordpress). This could be interesting for other modules serving
>>>>> community content as well (mostly Wicked and Ansel).
>>>>> I had some good ideas to eliminate spam and noise. But there's nothing in
>>>>> code yet...
>>>> 
>>>> There is an (old) open ticket http://bugs.horde.org/ticket/6769 for this in Jonah's queue. In H4 this will probably be implemented as part of the Horde/Content system, which means that any applications wanting to take advantage of this will need to make their content available to Horde/Content. This is one reason I haven't done this yet. I'm in the process of rewriting Jonah and this is on my list as well. So, any work towards this goal is welcome.
>>> 
>>> Ah, okay. Have you considered supporting refbacks as well?
>> 
>> I don't see any reason why we shouldn't.
> 
> Well, some people consider refbacks to be too noisy to be of any use.
> A thought of the following procedure to minimize noise (e.g. incoming referrers
> from webmail installations):
> - See if the referrer is reachable via HTTP(S) (e.g. no 4xx or 5xx response
>   code is sent)
> - Check if the referrer is pointing to a (X)HTML document (I really don't know
>   if it's useful to catch incoming links from - let' say - PDF documents)
> - Check if there is actually a link to the current page
> 
> If any of th above steps fails, the referrer won't be logged. An additional step
> might involve extracting the page title of the referrer. I thought of a similar
> approach for ping- and trackbacks. Possibly it were a good idea to let the site
> administrator decide if they want "checked" or unchecked linkbacks for each
> method individually? From what I hear, some people like to accept pingbacks
> openly to allow better linking between content...


This sounds like an awful amount of overhead. I'll have to look into the differences between the different types of referrer tracking. Interested in what the other devs think as well. 


>>>>> o Meaningful URLs
>>>>> Apart from being pretty, we wanted our URLs to express "is-a," "has-a" or
>>>>> subset relations. A nice sideffect: This allows for hackable URLs. I.e.
>>>>> you could take away the last segment of a URL (up to the last "/") and
>>>>> move up in the logical structure. E.g. /help would point to the general help
>>>>> while /help/text would be the help page regarding text formatting.
>>>>> We used a Chain of Responsibility to achieve this. But I'm certain
>>>>> Horde_Routes can do the same.
>>>> 
>>>> Yes, this is a goal for a number of our applications. Some apps already has a sort-of solution via rewrite rules. In H4 the goal is do this where it makes sense via Horde_Routes. There is at least one open ticket on the bug tracker (I think it's for Jonah) related to this. If you want to work on this, we should get input from other core devs before we settle on a specific url scheme.
>>> 
>>> Well, I would want to stop using the CoR-pattern. Don't know if I'd contribute
>>> to Horde_Routes, really...
>> 
>> Not really required to contribute to Horde_Routes, per se. You just need to define the routes you want, and implement some sort of dispatcher to decide what to do with the incoming match.
> 
> Ah okay. For a bit it sounded like routes weren't set for a module but for all
> of Horde at once :) But in general you were content with that URL scheme?

I'm content with the idea, though like I said, any explicit scheme would have to be proposed and then agreed on by a majority of the devs.  


>>>>> I also had some ideas on how to link some existing modules into Agora:
>>>>> o Ansel
>>>>> Ansel could be used to manage forum avatars as well as provide a one-click
>>>>> hosting solution for images.
>>>> 
>>>> What would the advantage of using Ansel to manage the Avatars vs a more general VFS based storage? If it *is* used, it should be done as an application-specific scope in Ansel so the gallery is not visible from within Ansel itself. It should also not be the *only* was of managing this.
>>> 
>>> Okay, maybe I got a little carried away here... The idea was to let a user
>>> select his avatar select via one of the following ways:
>>> - Specify a remote image (if this is allowed by the site admin)
>>> - Use a gravatar
>>> - Select an image out of one's own gallery from within Ansel
>>> 
>>> In that context it didn't really occur to me that Agora could handle this itself
>>> via a VFS.
>> 
>> Having the user being able to pick their Avatar from an existing Ansel-hosted image, along with the other choices you mention is a viable option. The image could then be stored separately in Agora, or managed in a privately scoped Ansel share.
>> 
>> Something else to consider is to have a Horde Avatar service, which could manage the user's avatar and provide it to any Horde application (or an external site for that matter) that requests it. The service could have the same options for selecting an avatar as you previously mentioned.
> 
> To summarize what we've discussed on IRC:
> I'd find it more logical to let the user set his avatar via Folks. But
> architecture wise it makes more sense to implement a Horde-wide service.
> 
> In addition: If we've got Ansel and its services available, it might be an idea
> to select any given image in Ansel and offer a "scale to fit requirements"
> option. I see some problems regarding the file size limit, though. Maybe it
> could be neglected?

Not sure what you mean here by neglecting size limits.  What size limits, in particular are you referring to?

> 
>>>> Ansel can already host images for any arbitrary scope using it's API. Related to this, I'm in the process of writing a plugin/extension to the rich text editor we use for inserting images from Ansel into a post.
>>> 
>>> Sounds great... I thought about a special BBCode tag to insert images right out
>>> of Ansel.
>> 
>> There was a discussion somewhere (can't find the link at the moment) about something similar to this, though I don't remember what the outcome was. This might be a viable option, but we would need to either customize the (very incomplete)BBCode plugin for CKEditor or add an entirely new editor type. IMO, I'm not sure either of these options would be worth it.
> 
> I had a different idea in the meantime: It should be possible to scan a
> submitted post for [img]-tags and offer the user to load the embedded images
> into Ansel and replace the tag accordingly. This could be allowed or denied by
> the site administrator and possibly be automated via a user preference. It
> would surely be convinient. I don't know how CKEditor is dealing with custom
> BBCode, though.

There is still the issue of actually uploading the image though, unless I'm missing your point.  CKeditor doesn't deal at all with custom BBCode, it barely deals with traditional BBCode (via a plugin).  Hence the need to write a custom plugin.  The ansel plugin would have some additional benefits as well. For example,  we could provide the option of simply including an Img tag for the image, or outputting the JavaScript for embedding the mini ansel  views we have in the post. 

> 
> One other thing: Is there anything like a plugin infrastructure in H4?

Not currently, just hooks.


> I'm
> thinking of customizations that are beyond the scope of hooks for forms.
> E.g. I'm planing to eventually migrate one of my forums to Agora that's
> featuring an integrated register for really bad puns. I cannot imagine putting
> this into vanilla Agora...

Not sure exactly what this is, but would having a pre and/or post comment hook do what you need?  For example, in Ansel I have a post upload hook that I currently us to send a post to Twitter and/or Facebook notifying of a new image upload. This will probably be more integrated into Ansel in H4, but you get the idea.

OTOH it should't be too difficult to build a plugin structure around our hook calls. You could write a hook to check a directory for plugin classes then run each one or something similar...


> So long,
>  Stephan
> 
> 
> -- 
> Horde developers mailing list - Join the hunt: http://horde.org/bounties/
> Frequently Asked Questions: http://horde.org/faq/
> To unsubscribe, mail: dev-unsubscribe at lists.horde.org


More information about the dev mailing list