Headlines Plugin

Show headline news in TWiki pages based on RSS and ATOM news feeds from external sites

Description

This plugin displays RSS and ATOM feeds from news sites. Use it to build news portals that show headline news.

Note: Syndic8.com ( http://www.syndic8.com/ ) lists many RSS feeds.

Syntax Rules

%HEADLINES{"..."}%

Parameter Explanation Default
"..." source of RSS feed; this can be an url (starting with http) or a web.topic location for internal feeds None; is required
href="..." (Alternative to above) N/A
refresh="60" Refresh rate in minutes for caching feed; "0" for no caching Global REFRESH setting
limit="12" Maximum number of items shown Global LIMIT setting
touch="..." Touch (edit/save) topics if the feed has updates. Specify a comma-space delimited list of TopicNames or Web.TopicNames, such as "%TOPIC%, NewsLetter". Useful to send out newsletter using MailerContrib, showing new feeds since last newsletter. To update feeds, visit topics with feeds in regular intervals (using cron with wget or the like). N/A
header Header. Can include these variables: - $channeltitle, $title: title of channel (channel.title)
- $channellink, $link: link of channel (channel.link)
- $channeldescription, $description: description (channel.description)
- $channeldate, $date: publication date of the channel (channel.pubDate)
- $rights: copyrights of the channel (channel.copyright)
- $imagetitle: title text for site (image.title)
- $imagelink: link for site (image.link)
- $imageurl: URL of image (image.url)
- $imagedescription: description of image (image.description)
Global HEADER setting
format Format of one item. Can include these variables:
- $title: news item title (item.title)
- $link: news item link (item.link)
- $description: news item description (item.description)
- $date: the publication date (item.pubDate, item.date)
- $category: the article category (item.category)
Global FORMAT setting

The header and format parameters might also use variables rendering the dc, image and content namespace information. Note, that only bits of interest have been implemented so far and those namespaces might not be implemented fully yet.

Rendering the dc namespace

The following variables are extracting the dc namespace info, that could be used in header and format. Nnote, that some of the variables are already used above. This is done by purpose to use different feeds with the same formating parameters. If there's a conflict the non-dc tags have higher precedence, i.e. a <title> content </title> is prefered over <dc:title> content </dc:title> .

  • $title: channel/article title (dc:title)
  • $creator: channel creator (dc:creator)
  • $subject: subject text; this will also add an image according to the subject hash list, see above (dc:subject)
  • $description: ... (dc:description)
  • $publisher: the channel/article publisher (dc:publisher)
  • $contributor: ... (dc:contributor)
  • $date: ... (dc:date)
  • $type: ... (dc:type)
  • $format: ... (dc:format)
  • $identifier: ... (dc:identifier)
  • $source: ... (dc:source)
  • $language: ... (dc:language)
  • $relation: ... (dc:relation)
  • $coverage: ... (dc: coverage)
  • $rights: ... (dc: rights)

Rendering the image namespace

An image:item is converted into an <img> tag using the following mappings:

  • src: image url (rdf:about attribute of the image.item tag)
  • alt: image title (title)
  • width: image width (image:width)
  • height: image height image:height)

Rendering the content namespace

The variable $content is refering to the <content:encoding> content </content:encoding>.

Examples

Slashdot News

Write

%HEADLINES{ "http://slashdot.org/slashdot.rdf" 
  header="*[[$link][$title]]:* $description" 
  format="$t* [[$link][$title]]"
  limit="4"
}%
to get the latest Slashdot news as a bullet list format:

Business Opportunities Weblog

Write

%HEADLINES{ "http://www.business-opportunities.biz/feed" limit="2" }%

to get the latest postings on the "Business Opportunities" weblog:

Tue, 26 Jul 2016 01:49:47 +0000
The original blog about business opportunities and business ideas for small business entrepreneurs
Tue, 26 Jul 2016 01:49:47 +0000 Laurie B

With a new-store opening cost between $1,000,000 to $2,000,000, Rebounderz Indoor Trampoline Arena Franchise is not for the faint of heart. Still, Franchisee Chris Bouma from Grand Rapids, Michigan is happy with his franchise choice and tells us, ''It takes an incredible amount of time and quite a bit of business savvy. You will work harder than you ever have, but it is also exciting and rewarding at the same time. Be prepared to answer about a thousand questions every day. You're the boss and you need to be able to make decisions quickly and move on.''

Rebounderz 2

In a recent Business Opportunities Interview, here is more of what franchisee Chris had to say:

How long have you owned a franchise?

My co-owner, Rich Van Dyke, and I purchased the rights for a Rebounderz Indoor Trampoline Arena franchise in October 2015 and officially opened in early February 2016.

 

What were you doing before becoming a franchise owner?

I worked at a Fortune 500 company in supply chain optimization. I also flipped homes.

 

Why did you choose your franchise?

They had the right business model that I thought was positioned for the greatest amount of growth and stability in the entertainment industry. They also had top-notch support in training, supplier selection and equipment.

 

What were some of the challenges you faced when starting your franchise?

Sometimes you don't know what you don't know. My franchise shielded me from the big obstacles, but there were many little surprises along the way.

 

Where did you research or get advice about starting a franchise?

We did a great amount of reading from resources online. We researched lots of articles and trade publications, but ultimately it was the conversations with the franchise business development folks that really helped.

 

How much did you spend before your doors were officially opened?

We went with a large facility of 54,000 square feet and put about $2 million into the franchise prior to startup.

 

What does a typical day look like for you?

It really starts with planning in the morning on what needs to be accomplished for the day. Developing a good time line and to-do list in key. You become a project manager and have to keep on top of everything. Communication with your team, the franchise, the contractors and all the suppliers via email, phone or in person is what the majority of the day brings.

 

What is your secret to success?

Organization is key; you can't run a business like a fire drill.  Understanding the priorities and timeline and then putting good people around you to help you succeed is critical. No one person can handle a task of this size alone, so finding the right management team and experts to help drive decisions and progress is an absolute must.

 

What would you do differently if you had to do it all over?

Our startup went extremely smoothly. Two changes I would make would be to bring my management team on a couple of weeks earlier to help in the process and allow 10 to 15 percent in the budget for ''unallocated surprises.'' I had allowed five percent, but the project came in closer to 10 percent. Costs will always be unexpectedly higher (rarely lower), especially when you are building out a space and preparing Rebounderz to come in.

Rebounderz

Where do you see your business in five years?

I see us as a full-destination family entertainment center anchored by trampolines, but also Ninja Warrior, human foosball, arcade and other attractions. We plan to run summer camps and maybe bring in outside entertainment in the summer months.

 

What is one trend that really excites you?

Providing more entertainment options than simply trampoline jumpers. We can expand into other areas that fill the needs for teenagers and adults even more than we do today. Having fun with an exercise element is attractive to everyone.

 

What are your favorite online tools or resources and what do you love about them?

I think Facebook is amazing for many reasons - the connectivity and ability to reach friends/customers is great. Chat rooms are also an interesting way to get feedback on the industry. You can never keep everyone happy, but the minute you stop listening to your customer base and stop improving is the day your business will decline.

 

Do you (or did you ever) have a mentor?

Mentors are extremely important. My father owned a couple of his own businesses and has been a solid foundation for me to bounce ideas and thoughts off of. I've also had several uplines and peers over the years that have been very influential. Don't be afraid to ask the hard questions. You will never improve if you don't open your mind and heart to receiving real feedback.

 

What advice do you have for others looking to own a franchise?

It takes an incredible amount of time and quite a bit of business savvy. You will work harder than you ever have, but it is also exciting and rewarding at the same time. Be prepared to answer about a thousand questions every day. You're the boss and you need to be able to make decisions quickly and move on.

 

Would you recommend others be franchisees? Why?

Absolutely. Having a strong franchisor at your back can make or break your business. The business world is complex and having a franchise will provide you with expertise and resources that in the end will save you time and money. Branding is also super-important and having strong brand recognition is very advantageous.

 

Is there anything else you want our readers to know?

I have learned more about marketing, networking, IT systems, equipment and vendors than I ever thought I would. Starting a business can be taxing, but getting to meet really interesting people that are experts in their fields has really been a highlight for me. The experience of building something for yourself, your family and your team of employees is one of the most gratifying things I have ever done.

 

To learn more about Rebounderz Indoor Trampoline Franchise  CLICK HERE

Mon, 25 Jul 2016 22:01:10 +0000 Laurie B

Need to Ramp Up Your Business’ Growth?

Whether your business is just a dream or something you’re already deeply involved with, if you need to start or grow your business, a professional loan can provide the boost your company needs. For operations of all sizes, credit can be an integral part of expansion, growth and success, and rather than seeing credit as a liability, it’s important to recognize its role as an investment into the future of your business. To illustrate, here’s a look at a few of the ways a professional loan can help ramp up your business’s growth.

Facilitate Opening Your Doors

If you are still someone else’s employee but are eager to hang your own shingle, a professional loan can help facilitate the transition. With a professional loan in hand, you will have the capital you need to pay a deposit on office space, start your marketing campaign, invest in office supplies and equipment, hire staff and cover other startup costs. Many professionals facilitate the jump from employee to business owner using credit cards or personal savings, but the first jump can be extremely costly.

When calculating the cost of using a loan to cover startup costs, it’s important to note that the IRS allows new businesses to write off a significant portion of their costs in their first year of business, rather than depreciating them slowly over a period of years. As a result, the tax savings have the potential to counteract the interest and fees on the loan, making the cost of a loan for startup capital negligent in many cases.

 

Expand Existing Operations

Kabbage

Kabbage get funds

In other cases, you may have started your business, but you may need funds to expand it. If you need a larger office for your law or accounting firm, more floor space for your retail establishment, more lab equipment for your medical practice or better computers for your dental clinic, it may be time to investigate professional loans. Regardless of what you need, if you believe that a certain purchase has the power to help your business grow, you need to treat the expense like an investment into your company, and a professional loan can foster that growth and make it possible.

Boost Working Capital

While loans are often a tool for growth, they can be critical for sustaining existing operations as well. If revenues are slow, but you anticipate a jump in revenue in the near future, a professional loan can provide the boost you need to get through the slow period. In particular, you can use a professional loan to cover payroll costs, utility bills, inventory expenses, debt repayments, and other current or even long-term expenses.

In most cases, accessing an online professional loan to cover working capital, in particular, is easier than applying for a traditional business loan at a bank. Traditional loans often require lengthy business plans and personal guarantees ranging from high credit scores to collateral such as homes or cars. In contrast, online professional loans use a proprietary application process that leverages a range of data points to create a clear picture of the borrower’s creditworthiness and the business’s likelihood of success. This new model makes it easier for borrowers to access working capital, and the reliability of the data points encourages underwriters to offer relatively low interest rates to business owners. Additionally, because the application and funding process is faster with online loans, business owners don’t have to worry about missing a step in their march toward success.

Address Gaps in Cash Flow

Many professionals, whether they are doctors, lawyers, accountants or in a completely different industry, offer their clients the ability to pay their bills a month or even 90 days after receiving services. This is especially common for professionals who work in a business-to-business environment and, if offering net-30 or net-90 financing is the norm in your industry, your business has to do it to remain competitive. Unfortunately, the downside of this is that you may have gaps in your cash flow as you wait for clients to pay.

A professional line of credit can help you address these gaps. If you take out a line of credit in particular, rather than a loan delivered in a lump sum payment, you can simply spend a little from the line as you wait for your clients to pay. Upon receiving their payment, you can pay back the line of credit and then draw it down again as needed. By turning to a line of credit, you only have to pay interest and fees on the funds you actually use.

Alternatively, if you have unpaid invoices and your business cannot get approved for a professional loan, you may want to consider factoring. Factoring gives you an advance on your unpaid invoices. When the invoices are paid, you receive the remainder of the money minus a small factor fee, usually between 1 to 3% of the invoices’ balance.

 

When you own a business, access to affordable credit can be a critical part of your business’s ability to grow and succeed. When used wisely, professional loans can help you cover startup costs or expansion costs, and they can also help you stay afloat when you need extra working capital due to slow sales or delayed revenue. Although businesses should always be cautious about getting too deep in debt or taking out loans that they might not be able to repay, it’s also critical for business owners to be able to identify when a loan is a solid investment into their company so they can grow quickly and easily.

Plugin Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, for example, %HEADLINESPLUGIN_SHORTDESCRIPTION%. Note: Don't modify the settings here; copy and customize the settings in Main.TWikiPreferences. For example, to customize the USERAGENTNAME setting, create a HEADLINESPLUGIN_USERAGENTNAME setting in Main.TWikiPreferences.

  • One line description, shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Show headline news in TWiki pages based on RSS and ATOM news feeds from external sites

  • Refresh rate in minutes for cached feeds. Disable caching: 0, default: 60
    • Set REFRESH = 60

  • Maximum number of items shown. Default: 100
    • Set LIMIT = 100

  • Use LWP::UserAgent, or fallback to TWiki's internal getUrl() method. Default: yes
    • Set USELWPUSERAGENT = yes

  • Timeout fetching a feed using the LWP::UserAgent. Default: 20
    • Set USERAGENTTIMEOUT = 20

  • Name of user agent. Default: TWikiHeadlinesPlugin/2.21
      * Set USERAGENTNAME = TWikiHeadlinesPlugin/2.21

  • Default header: (variables are explained in the syntax rules)
      * Set HEADER = <div class="headlinesChannel"><div class="headlinesLogo"><img src="$imageurl" alt="$imagetitle" border="0" />%BR%</div><div class="headlinesTitle">$n---+!! <a href="$link">$title</a></div><div class="headlinesDate">$date</div><div class="headlinesDescription">$description</div><div class="headlinesRight">$rights</div></div>

  • Default format of one item: (variables are explained in the syntax rules)
      * Set FORMAT = <div class="headlinesArticle"><div class="headlinesTitle"><a href="$link">$title</a></div>$n<span class="headlinesDate">$date</span> <span class="headlinesCreator"> $creator</span> <span class="headlinesSubject"> $subject </span>$n<div class="headlinesText"> $description</div></div>

  • Values taken from configure: (only supported if CPAN:LWP is installed)
    • $TWiki::cfg{PROXY}{HOST} - proxy host, such as "proxy.example.com";
    • $TWiki::cfg{PROXY}{PORT} - proxy port, such as "8080";
    • $TWiki::cfg{PROXY}{SkipProxyForDomains} - domains excluded from proxy, such as "intra.example.com, bugs.example.com";

Style Sheets

The default HEADER and FORMAT settings use the following styles. See the style.css file defining the default CSS properties (indentation illustrates enclosure).

  • headlinesRss: output of the HeadlinesPlugin (div)
    • headlinesChannel: channel header (div)
      • headlinesLogo: channel logo (div)
      • headlinesTitle: channel title (div)
      • headlinesDate: channel date (div)
      • headlinesDescription: channel description (div)
      • headlinesRight: channel copyright (div)
    • headlinesArticle: one news item (div)
      • headlinesTitle: article title (div)
      • headlinesDate: article date (span)
      • headlinesCreator: author of article (span)
      • headlinesSubject: subect category of the article (span)
      • headlinesText: article text (div)

Plugin Installation Instructions

  • Download the ZIP file.
  • Unzip it in your twiki installation directory. Content:
    File: Description:
    data/TWiki/HeadlinesPlugin.txt plugin topic
    pub/TWiki/HeadlinesPlugin/style.css default css
    lib/TWiki/HeadlinesPlugin.pm plugin perl module
    lib/TWiki/HeadlinesPlugin/Core.pm plugin core
    Check if above examples show a news feed instead of variable.
  • Optionally, run HeadlinesPlugin_installer.pl to automatically check and install other TWiki modules that this module depends on. You can also do this step manually.
  • Alternatively, manually make sure the dependencies listed in the table below are resolved.
    NameVersionDescription
    Digest::MD5>=2.33Required. Download from CPAN:Digest::MD5
    LWP::UserAgent>=5.803Optional. Download from CPAN:LWP::UserAgent

Plugin Info

Plugin Author: TWiki:Main.PeterThoeny, TWiki:Main.MichaelDaum
Copyright: © 2002-2010, Peter Thoeny, Twiki, Inc.; 2005-2007, Michael Daum http://wikiring.de
License: GPL (GNU General Public License)
Plugin Version: v2.6 - 2010-05-16
Change History:  
2010-05-16: TWikibug:Item6433 - more doc improvements
2010-04-25: TWikibug:Item6433 - doc fix: Changing TWIKIWEB to SYSTEMWEB
2010-02-27: TWikibug:Item6313 - fixed bug in ATOM feed with <link ...></link> instead of <link ... /> -- Peter Thoeny
2009-09-30: fixed bug in lastBuildDate of feeds affecting touch parameter functionality -- Peter Thoeny
2009-08-29: added touch parameter -- Peter Thoeny
12 Feb 2009: {PROXY}{HOST} supports domain with and without protocol -- Peter Thoeny
06 Feb 2009: added {PROXY}{SkipProxyForDomains} configure setting, added USERAGENTNAME plugin setting -- Peter Thoeny
11 Dec 2008: added {PROXY}{HOST} and {PROXY}{PORT} configure settings -- Peter Thoeny
13 Sep 2007: fixed parsing of content:encoded
23 Jul 2006: improved atom parser; if a posting has no title default to 'Untitled'
26 Apr 2006: added lazy compilation
10 Feb 2006: packaged using the TWiki:Plugins/BuildContrib; minor fixes
03 Feb 2006: off-by-one: limit="n" returned n+1 articles; make FORMAT and HEADER format strings more robust
23 Jan 2006: released v2.00
05 Dec 2005: internal feed urls must be absolute
02 Dec 2005: added web.topic shorthand for internal feeds
29 Nov 2005: fixed CDATA handling
21 Nov 2005: added ATOM support; extended RSS support; added dublin core support; added content support; optionally using LWP to fetch feeds to follow redirections; corrected CPAN dependencies ; recoding special chars from html integer to entity encoding to increase browser compatibility; added css support; use getWorkArea() if available
11 May 2005: TWiki:Main.WillNorris: added DevelopBranch compatability
31 Oct 2004: Fixed taint issue by TWiki:Main.AdrianWeiler; small performance improvement
29 Oct 2004: Fixed issue of external caching if mod_perl or SpeedyCGI is used
02 Aug 2002: Implemented caching of feeds, thanks to TWiki:Main/RobDuarte
11 Jun 2002: Initial version (V1.000)
Perl Version: 5.8
TWiki:Plugins/Benchmark: GoodStyle 100%, FormattedSearch 99.5%, HeadlinesPlugin 94%
Plugin Home: http://TWiki.org/cgi-bin/view/Plugins/HeadlinesPlugin
Feedback: http://TWiki.org/cgi-bin/view/Plugins/HeadlinesPluginDev
Appraisal: http://TWiki.org/cgi-bin/view/Plugins/HeadlinesPluginAppraisal

Related Topics: TWikiPlugins, AdminDocumentationCategory, TWikiPreferences

Topic revision: r1 - 2010-05-17 - TWikiContributor
 
This site is powered by the TWiki collaboration platformCopyright © 1999-2016 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Note: Please contribute updates to this topic on TWiki.org at TWiki:TWiki.HeadlinesPlugin.