How do I display most commented articles in Liferay 7 - liferay

I would love to work with the number of comments within one article in the asset publisher. For example, I would love:
to display the most commented articles
add tags to the articles with most comments
or something similar that enables me to select the most commented articles. What is the easiest way to start working with articles based on number of comments?
Any examples, code, API, and similar is highly welcome!

For the second point the solution is easy: Model Listener
Just implement a model listener of comment (MBMessage should be the real name) and in the method onAfterCreate retrieve the article on which the comment has been posted and the total number of comment for it, then for example if(totalArticleCommentNumber > 99) add your tags.
Then in the configuration of the Asset Publisher you can select just the articles with your specific tag.
But, if you need some different logic (sort the articles by comment number for example) the case is more complex and you'll have to customize the Asset Publisher to add your new logic.
EDIT:
Some guide that may help you for customize the portal:
Overriding App JSP
Liferay 7 Portlet to Empower Your Custom Development: In this article there is a lot of usefull things but I want point you to the paragraph 4.3, to summarize very shortly: If a class is a OSGI Component (so has the OSGI annotation #Component) you can extend that class and through the service.ranking:Integer property of the annotation you can tell to Liferay that your class overrides the original service.

Related

Access to document web parts and widgets in code for a given Kentico TreeNode

I asked this question over on the Kentico devnet but haven't had a definitive answer.
I have a particular requirement for a Kentico 8.2 implementation where in code, given a specific TreeNode, I'd like to find first all the zones on the template being used then, for each zone, get the details of all web parts and widgets used in those zones.
In my case I do not need to worry about template inheritance. None of my pages implement template inheritance.
I found this post on the old Kentico forums which suggested I might be able to do use PageInfoProvider to get a PageInfo object for the relevant TreeNode then use its PageTemplateInfo property to gain access to what I need.
However, I don't see a PageTemplateInfo property of CMS.DocumentEngine.PageInfo. There is DesignPageTemplateInfo and UsedPageTemplateInfo. I thought maybe UsedPageTemplateInfo would be the one, and it does indeed include the correct zones in its WebPartZones collection. But I don't see the web parts (actually, widgets) I'm expecting in the zones' WebParts collections.
I guess what I'm asking is, how can I use API to gain access to the content of the DocumentWebParts column from dbo.CMS_Document as a structured object? I've realised I can get access to the information I need by calling .GetProperty("DocumentWebParts") on TreeNode, but this is unstructured XML. I presume somewhere in the API I can get this information as a structured object.
Does anyone know how I might access the details I need? Thanks.
P.S. My template uses the ASPX+portal model.
As I mentioned in my second answer on the DevNet, you cannot specifically use the cms_document table simply because webparts function within templates and not with a specific page. Widgets on the other hand are specific per page even if the page has the same template as another page. Take a look at the example on the DevNet I provided, it should get you what you're looking for.

ExpressionEngine single entry at segment 4 level

I have developed an ExpressionEngine website which has a news section. There is a news channel with categories, and the main news listing page is powered by a news/index template. The single entry (article) page is powered by a news/article template. You can see this section in action here: http://www.longbridgebirmingham.co.uk/news/. Everything's working great.
What I now need to do is list news in a very similar fashion within a subsection of the website (at segment 3 level). Here, to be exact: http://www.longbridgebirmingham.co.uk/life/community/news/. So far, I have created a new 'Community' category for the news channel and created a new community-news/index and community-news/article template which pulls in only Community news. I have used the 'Pages' facility to force this test page to use the community-news/index template: http://www.longbridgebirmingham.co.uk/life/community/news-new. Not sure if that's the right thing to do, but it seems to be working.
Now, I've been really struggling to find out a way to hook up the community-news/article template so that articles are presented at a segment 4 level: http://www.longbridgebirmingham.co.uk/life/community/news/article/url-title. Any help or advice would be really appreciated!
Thanks a lot in advance.
OK, so this is how I would recommend doing it.
you currently have your news template group which is fine.
Create categories for your news items, such as 'life' and 'community' and using the great Low Seg2Cat addon, you can then just use something like the following to filter based on the categories:
http://site.com/news/
http://site.com/news/category/
http://site.com/news/category2/sub-cat2a
This will allow you to use an unlimited number of categories and using Seg2Cat, you'll be able to filter based on the {segment_2_category_id} and/or {segment_3_category_id}.
Now, all you need to do is to append the article segment at the end if you want to show an actual article.
For example: site.com/news/category/article/url_title_of_entry/
EE, will automatically pull the article.html template from the template group.
Does this help?

Manipulating BlogPost MetaData

After having followed the instructions to "unabridge" blog posts in Orchard, I'd now like to separate the blog post date and comment-count, so that the date appears ahead of the blog post, and the comment-count appears after. How would that be done?
Even better, I'd additionally like to have the comment-count be a hyper link to the blog post detail. How would that be done?
To do this and many other similar things, you should enable shape tracing (it comes as part of the designer tools module). This will show you what template is rendering what, and also where they are positioned. It will also tell you what templates you can create in your theme to override behavior. The Model tab in particular will show you the whole model object graph and will give you the expression to put in your template to include any property into your markup.

How to insert a widget inside forum inself in vbulletin?

You know, the publishing suite offers other content than forum. for example blogs and also some custom content
i know how to add articles/widgets to the page itself, but how do i add such a thing into a forum secion?
for example, on the left column i would have forums and on the right column i would have some news reader widget
could someone help?
Maybe it is enough for you to enable the "forum sidebar" in the admincp.
admincp->Settings->Options->Forum Sidebar and Block Options->Enable Forum Sidebar=YES.
Now you can add custom blocks with HTML and PHP.
For vBulletin 3.x, the solution is to edit the appropriate templates (FORUMDISPLAY, SHOWTHREAD, etc). I can't be much more specific than that, I'm afraid, since the exact details will vary depending on what kind of modifications you've already made to your templates and the exact details of the widgets you wish to insert.

How can commenting be added to news articles in an existing Sharepoint 2007 news site?

A client is asking to incorporate commenting on their news articles. They're using the Sharepoint news site template for their news publishing, etc. They want a simple commenting system, much like what is available on most blog engines, only they want it at the bottom of each news article.
I just thought I would ask around about an out of the box solution before I go quoting a custom dev solution. Thanks in advance!
I struggled with this a while back and the solution we found was to use a discussion borad list (out of the box) and we created a custom web part that we added to the page layout for news.
We had to do som trickery to add support for anonymous comments, but on the whole it works good and wasen't to much code.
The Community Kit for SharePoint does the whole commenting thing for blogs.
you may have to cut out the commenting part of it to get it to work with your news section however.
The commenting section of the Enhanced Blog Edition of CKS does to approval of comments and spam checking.
I had the same request. I didn't find an existing solution, so I did it by copying from the standard Blog site template, plus custom coding.
From the template: Copy the definition for the blog comments list. Remove the lookup fields, and use a feature to create the list on all publishing sites.
Custom code: Add a feature receiver to the comments feature, and use it to add the lookup fields for page id and title, (using the pages list as destination). This needs to be done in code because you can't configure the destination list for lookup fields in XML, (or at least I don't know how).
Write controls for querying the comments list and adding to it, and place on the page layout.
Simpler approach: Don't use the standard blog comments list, just create your own, where the page reference is just a number and not a lookup field. Pro: Less work. Con: You miss out on the views that come with the standard list.

Resources