[geeklog-devel] Geeklog Topics and Blocks
Vincent Furia
vfuria at gmail.com
Fri Sep 9 03:56:45 EDT 2011
I believe the use case I was thinking of is when viewing a single
story/article that is a member of several topics.
On Thu, Sep 8, 2011 at 19:27, Tom <websitemaster at cogeco.net> wrote:
>
> 1. COM_showBlocks will have to be modified to handle a topic array as
> well as a single topic. Most calling functions to COM_showBlocks functions
> will also need to be modified to handle multiple topics.****
>
> Hey Vinny,****
>
> ** **
>
> Why are you saying here that most calling functions to COM_showBlocks needs
> to handle multiple topics? The user will still be only viewing one topic at
> a time so only one topic will still need to be passed into the function. I
> will just have to update the function to take into account the new
> topic_assiginments table and the fact that blocks can appear in 1 or more
> topics.****
>
> ** **
>
> Tom****
>
> ** **
>
> ** **
>
> *From:* geeklog-devel-bounces at lists.geeklog.net [mailto:
> geeklog-devel-bounces at lists.geeklog.net] *On Behalf Of *Tom
> *Sent:* August-22-11 8:41 PM
>
> *To:* 'Geeklog Development'
> *Subject:* Re: [geeklog-devel] Geeklog Topics and Blocks****
>
> ** **
>
> You covered most of my points but I hadn’t thought of 5, 6 and 9.****
>
> ** **
>
> 5. I would probably leave this as a feed for articles only and not other
> types since clicking on a topic itself would still only display articles.
> ****
>
> 6. Handling of featured topic articles… I guess the first question would be
> is should an article be allowed to be featured for only one topic or many
> topics. If it is many then either we will need a new table or I will have to
> add a column to topic_assignments****
>
> ** **
>
> Tom****
>
> ** **
>
> *From:* geeklog-devel-bounces at lists.geeklog.net
> [mailto:geeklog-devel-bounces at lists.geeklog.net] *On Behalf Of *Vincent
> Furia
> *Sent:* August-22-11 5:06 PM
> *To:* Geeklog Development
> *Subject:* Re: [geeklog-devel] Geeklog Topics and Blocks****
>
> ** **
>
> First the easy part. Defining the tables:****
>
> 1. Remove 'tid' from the story table.****
> 2. Create a new table "topic_assignments". It should have columns
> "type" varchar(30), "sid" varchar(40), and "tid" varchar(20). It's primary
> key should be on "tid" and with a INDEX on "type" and "sid" (this key could
> also just be on sid).****
> 3. The topics table is sufficient as is, though that depends on the
> full set of features you want to change.****
>
> The underlying code changes get complicated. Here is what I recall looking
> at originally, though I'm sure there is more that will have to be modified
> to incorporate the changes. Since you're implementation allows a single
> article (or other item) to be belong to multiple topics, you're changes are
> going to be more extensive than what I had looked at. At a minimum you're
> going to want to look at lib-common.php, article.php, and lib-security.php.
> ****
>
> 1. COM_siteHeader may need some mods to recognize when you are looking
> at plugin/block/etc that is associated with a specific topic. Also,
> COM_siteFooter.****
> 2. COM_showBlocks will have to be modified to handle a topic array as
> well as a single topic. Most calling functions to COM_showBlocks functions
> will also need to be modified to handle multiple topics.****
> 3. COM_topicArray will have to understand the new underlying database
> structure.****
> 4. SEC_hasTopicAccess probably doesn't need to change, but keep an eye
> on it.****
> 5. COM_rdfUpToDateCheck will need to be expanded to handle topic feed
> updates for non-article types.****
> 6. COM_featuredCheck assumes tid will be in the article table. You'll
> also have to figure out how you want to handle featured article flag on
> stories with multiple topics, this could get really confusing if not taken
> into account at the start.****
> 7. COM_adminMenu will need to handle topic assignments. Again, it
> assumes tid in the article table.****
> 8. Everywhere COM_getTopicSQL is called will need to be rethought (and
> the function itself will probably go away). That code currently generates an
> "IN" clause against the tid in the article table. All queries that use it
> will have to do a double join to the topics table and topic_assignments
> table. I imagine this is where A LOT of the work for this project will be
> invested.****
> 9. COM_emailUserTopics will need some mods since you don't want the
> informational email to repeat articles. Also, you might want to add a plugin
> API for plugin items be included in topic emails.****
> 10. Obviously a new interface will be required to submit/administer
> articles with multiple topics. Some generic functions here will make it easy
> to add topic support to other plugins.****
> 11. Webservices may be impacted, though I haven't looked at that code
> at all to even make an educated guess as to how much (or even if they would
> be impacted).****
> 12. I think story.class.php will require extensive modifications,
> though it didn't exist when I first looked into modifying topics. I'm sure
> my notes on article.php are useless for the same reason...****
>
> That should get you started. It's a pretty big undertaking. You might want
> to reconsider implementing subtopics, with all the work needed already the
> extra cost wouldn't be great (though I do understand your desire to limit
> the scope at least a little bit).
>
> It's a shame we didn't do GSOC this year, this probably would have made a
> great project for a summer intern...
>
> -Vinny****
>
> On Mon, Aug 22, 2011 at 07:28, Tom <websitemaster at cogeco.net> wrote:****
>
> >Any change that modified the database would require quite a bit of work
> (as my suggestion in the first paragraph would). If you end up going with
> any of these ideas, I had >thought out quite a bit more detail if you want
> it.****
>
> ****
>
> Sure. J****
>
> ****
>
> ****
>
> *From:* geeklog-devel-bounces at lists.geeklog.net [mailto:
> geeklog-devel-bounces at lists.geeklog.net] *On Behalf Of *Vincent Furia
> *Sent:* August-21-11 7:20 PM
> *To:* Geeklog Development
> *Subject:* Re: [geeklog-devel] Geeklog Topics and Blocks****
>
> ****
>
> I had done some thinking on this several years ago. The most flexible
> design I came up with is using "tag" style backend. Instead of having tid's
> associated with stories, there would be topic_assignments (or some better
> named...) table allowing a many-to-many relationship between stories (or
> blocks, or plugins, etc) and topics.****
>
> ****
>
> I went so far as to also consider how to handle sub-topics. Easy way: you
> could define topic relationships by having a topic separator (e.g. "-" or
> "/") in the topic name. Hard way: create a hierarchal data structure in the
> database (parent child relationship, or tree representation similar to how
> comments are not handled). The latter design would allow more flexibility,
> though the former would be significantly less work to implement.****
>
> ****
>
> Any change that modified the database would require quite a bit of work (as
> my suggestion in the first paragraph would). If you end up going with any of
> these ideas, I had thought out quite a bit more detail if you want it.****
>
> ****
>
> -Vinny****
>
> ****
>
> On Sun, Aug 21, 2011 at 14:31, Tom <websitemaster at cogeco.net> wrote:****
>
> I have started to do a bit of research/work on my feature request about
> allowing topics to be associated with other objects like staticpages, etc.
>
> http://project.geeklog.net/tracking/view.php?id=1155
>
> I was also thinking about (I haven't decided to tackle it yet):
>
> - Allowing blocks to be assigned to one or more topics and not just one or
> all.
> - Allowing stories (and other objects) to be assigned to one or more
> topics.
>
> Does anyone have any thoughts or opinions...
>
> Tom
>
> _______________________________________________
> geeklog-devel mailing list
> geeklog-devel at lists.geeklog.net
> http://eight.pairlist.net/mailman/listinfo/geeklog-devel****
>
> ****
>
>
> _______________________________________________
> geeklog-devel mailing list
> geeklog-devel at lists.geeklog.net
> http://eight.pairlist.net/mailman/listinfo/geeklog-devel****
>
> ** **
>
> _______________________________________________
> geeklog-devel mailing list
> geeklog-devel at lists.geeklog.net
> http://eight.pairlist.net/mailman/listinfo/geeklog-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist8.pair.net/pipermail/geeklog-devel/attachments/20110909/e7774177/attachment.html>
More information about the geeklog-devel
mailing list