RSS update single item - rss

Is there a way to update an old RSS feed item and get it as "unread" in a feed reader?
My feed has been created from a liferay portlet by liferay itself, and it shows just 1 item because I can update only that one, I cannot create new items/portlet.
if I edit my old feed, in google reader or Firefox live bookmarks it's not shown as unread, and even if I refresh and I see the new content, still the date is the old one.
I'd need a way to inform the readers that the old feed has been updated... is that possible using one single item?

Well, the only think I think worth trying is to change the GUID element of the item everytime you change it. Then try how will the RSS readers react.
Or use Atom instead, if you can. With Atom you should be able of doing so, because it allows you to set time of last update (as <updated> XML element). If I'm right, RSS has no means of notifying that a feed item has changed. It only has <lastBuildDate> on the whole feed.

Simply add a guid element to your item and change it to a new guid if you have updated your item. A guid can be any unique string.
<item>
<title>...</title>
<link>Link to your item</link>
...
<guid isPermaLink="false">A unique string</guid>
</item>
Note that you should add the attribute isPermaLink="false", else it is assumed that the guid is an url.
From the RSS 2.0 Specification:
<guid> sub-element of <item>
<guid> is an optional sub-element of <item>.
guid stands for globally unique identifier. It's a string that
uniquely identifies the item. When present, an aggregator may choose
to use this string to determine if an item is new.
<guid>http://some.server.com/weblogItem3207 </guid>
There are no rules for the syntax of a guid. Aggregators must view
them as a string. It's up to the source of the feed to establish the
uniqueness of the string.
If the guid element has an attribute named "isPermaLink" with a value
of true, the reader may assume that it is a permalink to the item,
that is, a url that can be opened in a Web browser, that points to the
full item described by the <item> element. An example:
<guid
isPermaLink="true">http://inessential.com/2002/09/01.php#a2 </guid>
isPermaLink is optional, its default value is true. If its value is
false, the guid may not be assumed to be a url, or a url to anything
in particular.

Related

Plone - How can I setDefaultPage in an event subscriber?

I have a folderish dexterity content type and I have an event subscriber. When the content type is created, I create a Collection, which shows the children in the container according to several parameters. After the collection is created, I try to set the default page of the container to the collection.
def myContainerAdded(my_container, event):
#get container
#set advanced query for collection
#create collection with api.create
my_container.setDefaultPage(new_collection.id)
The subscriber in configure.zcml
<subscriber
for="my.product.my_container.IMyContainer
zope.lifecycleevent.interfaces.IObjectAddedEvent"
handler=".events.myContainerAdded" />
Unfortunately, the default page is not being fully set. It just shows the container page, but the Collection is selected under the 'Display' drop down.
If I click "Change content item as default view" and select the collection, it does change the default page to the collection.
Earlier, I was using a "setuphandler" to setup a folder structure (as opposed to an add event), and setDefaultPage was working. Am I forgetting a step since I'm attempting this through an event?
I am using plone.4.3.
Edit: I also tried:
my_container.default_page = new_collection.id
Edit:
I found something interesting. I temporarily commented out the code related to the collection in the event subscriber. I manually added the collection to the container object and then set the default page of the container to the collection. The container's default page was the collection.
Maybe something isn't getting indexed right?
In fact everything went well, it's just that after creating a Dexterity-based content-type, one will land on the default-view's URL, meaning '/view' is appended to the item's URL, which is an alias to the default-view-method and here resolves to the 'folder_listing'-template.
To overcome this quickly, you can add a redirect to the object's URL in the subscriber's method, without any view-name appended to the URL:
event.REQUEST.RESPONSE.redirect(my_container.absolute_url())

adding new menu in Select (All,Inverted Selection) in Alfresco Share

I am newbie to the Alfresco.Now my requirement is how to add new menu[All(All pages)] in Select. wherever user perform search function lets say 250 results have found & user selects All in page 1 & its selecting only current page results and not selecting entire 250 records & then user goes page by page can edit the properties for the entire 250 records.in the new functionality if user selects [All(All pages)] then all records should be selected & edit the properties for 250 records at one go.So I want to add new menu with All(All pages) & change the existing menu current labels as All(Current Page).How to achieve this functionality and what files need to changed.How should i know that which files are currently used?Is there any debugger can be used to know the files?
Alfresco Version
4.2.e
My guess, is that if you go through this previous version of Jeff Potts' Tutorial you will be able to figure this out by yourself.
Simplest option is to edit label of that particular action in out of box property file.
You can find it under
<ALF_HOME>\tomcat\webapps\share\WEB-INF\classes\alfresco\messages\slingshot.properties
This entry
menu.select.all=All
Change label here and it will be reflected.
NOTE: It is not best way to implement this. Ideally you need to override property file and change label
The issue here is that only the items shown on the page have been loaded. This means that the metadata for the items not shown on the page won't be available. The metadata of each node is used to evaluate it's applicability to any action. If the node is locked or has had its permissions changed then it won't be possible to edit it. This is why "all" only means all items on the current page of data.

Sitecore 6.5 change user control dynamically

I have a collection of some items. Using * symbol I set user control (ascx) in presentation details for all of them. Now I have a problem because on of this items has to be display in another control. Is there some trick that allow me to change used control dynamically, for example checking url segment?
I'm guessing you're using wildcard item called * with some presentation details defined on it. And now you want to display different components for one you the urls?
If you want to have completely different presentation, you can add another item as a sibling of the * item and put new presentation detail there. This item will be matched before the wildcard item, if the url segment is equal to this item name.
If you want to change only one or few components, you can use personalization for this component and where the item name compares to ... rule.
Marek's answer is preferable, but for completeness I will provide another potential option.
It depends on how you are handling the wildcards. I don't think it will work if you are using the wildcard item module from the Marketplace and it might not play well with some of your existing code, but here goes...
You could place the required presentation details on the target items themselves. Then when you resolve the wildcard, you would need to change the context item to be selected target item. When the page loads, it will use the presentation of the newly set context item.
One way to achieve this would be to create a custom item resolver
class WildCardItemResolver : ItemResolver
{
public override Process(HttpRequestArgsargs args)
{
base.Process(args);
// if Context.Item is as wildcard
// look up the target item
Context.Item = targetItem
}
}

How to show wordpress setting api validation error message?

I have created a setting api for my new plugin. It has four <input> field and one <select> option. In that field , user can change value according to their requirement. But it must be valid value. Suppose , one <input> field support only integer value. so when user will fill that <input> field by string or by other things, it will show an error message. Please tell me how can i do that? Can you suggest any tutorial ?
When using add_setting you can pass a sanitize_callback option as part of the array, this can contain the name of a function that is run which can contain your validation.
A similar method exists for JavaScript too, which you could use to validate the fields as well.
You asked for a tutorial too, here is one that outlines the method I've described: http://themeshaper.com/2013/04/29/validation-sanitization-in-customizer/

How to create a read more link in Drupal views?

I am facing a problem in drupal views, i want to show the node body 400 character and add a read more link on after trimming. So I have trimmed the node body 400 character and put the "More link: Yes" on views. I can see the ellipsis(... after words) but not showing the link. What is the procedure to add a read more link? I am using drupal 6.22 version
Thanks in advance
A More link set to yes will send a user to a page view of that view. My typical approach to the more link is to add a field to the view for path. Then I set the path to be rewritten as More ยป.
Having the path field a the end of the view (Or at least after your body field) will give you the results you're looking for.
This is how I had done it.
In the edit of my view, I added a field node:link.
Then I removed the Label and left it empty and added "Read more" in Text to display
I checked the checkbox Trim this field to a maximum length, entered my maximum length in the textfield and checked the Add an ellipsis and Trim only on a word boundary options.
Click on Update button and save the changes. You are done!

Resources