KrISS feed

KrISS feed is a simple and smart (or stupid) feed reader.

To see an online example: http://tontof.net/feed

Feel free to contribute: https://github.com/tontof/kriss_feed

Table of Contents

1 Features

  • KISS philosophy (Keep It Simple and Smart)
  • Fast (the fastest RSS reader ?)
  • Easy to install (if you find an easier solution, I'm all ears)
  • Easy to personnalize (default style is ugly ? Just go and see Style)
  • Easy to share with Shaarli but also others sharing tools using GET parameters of URL
  • Mobile support using responsive web design
  • Customize everything such as menu, paging to keep only what you need
  • Auto mark as read when going to next item
  • Add favicon to feeds
  • Public/protected/private visibility
  • Update manually/using javascript/using cron
  • Keep items as starred
  • List or expanded view
  • Order by newer or older items
  • Show unread or all items
  • Keyboard shorcuts
  • OPML import/export

2 Requirements

  • php 5.2
  • your server should be able to download external content
  • DOMDocument + libxml2 (install php-xml)
  • mbstring (install php-mbstring)
  • recommanded: curl (install php5-curl)

3 Installation

  • Download index.php file:
  • Copy the index.php file on your web server
  • Access this file in your browser
  • Choose a login and a password and that's it !
  • Now you can sign in, import your opml file and enjoy.

4 Style

4.1 How to customize KrISS feed

That's easy you just have to create a user.css file into inc directory:

  • index.php
  • inc
    • user.css

That's it !

4.2 How to colorize odd and even feeds/items

Inspired from Xinfe style

4.2.1 For feeds

    background: rgba(0, 255, 0, 0.06);
    background: rgba(0, 0, 255, 0.06);

4.2.2 For items

    background: rgba(0, 255, 0, 0.06);
    background: rgba(0, 0, 255, 0.06);

4.3 Screenshots

To install a style, just download the corresponding css file and place into inc directory (rename into user.css if necessary). Some styles need other files as font.

ali0uneali0une_white_thumb.jpgcss (other files)
ali0une_black_thumb.jpgcss (other files)


6 FAQ (Frequently Ask Question)

6.1 Why did I create KrISS feed ?

I was using Google Reader and when Google decided to integrate Google+ it was for me the end (before the official one on July 1, 2013): "As a result of these changes, we also think it's important to clean things up a bit. Many of Reader's social features will soon be available via Google+, so in a week's time we'll be retiring things like friending, following and shared link blogs inside of Reader."

I have looked at existing solutions (rssLounge, tiny tiny RSS, …) but I was not happy so I've coded mine (as we say: "if you want something done right, do it yourself").

6.2 What is KISS philosophy ?

The KISS principle has many definitions and everyone lets define KISS as he wants. For me, KrISS feed should be as accessible as possible for everyone. That's why, there is for example, no SQL database to configure and a single file to copy for end users. But it should also be smart and that's why source code is easy to understand and well structured.

I'm not satisfied yet because there still a lot of work to do, but hey, there are just 24 hours per day :-)

6.3 Why I can not add or update my feeds properly ?

First of all check your feed validity: http://validator.w3.org/feed/

KrISS feed uses libxml2 and if the feed is not well formated, it will fail. Contact the feed owner to tell him to correct his feed.

6.4 Does it work on free.fr ?

No, external accesses are disabled since December 1, 2008.

6.5 How to reset KrISS feed password ?

You can not reset KrISS feed password, if you forgot your password simply delete the data/config.php file and display the page again. You will be asked for a new login/password.

6.6 How to stay signed in ?

For KrISS feed version 8. If it does not exist, create plugins and sessions directories. Create a file session.php inside plugins directory and add these lines :

ini_set("session.gc_maxlifetime", '86400');
ini_set('session.save_path', $_SERVER['DOCUMENT_ROOT'].'/sessions');

It will create php session files into sessions directory. You will then be connected for 1 day : 86400 = 24*60*60. Think to delete session files into sessions directory from time to time. This is not compatible if memcache is activated.

7 For developpers

7.1 How KrISS feed is organized ?

7.1.1 If you want to look at the code of KrISS feed, you have to look at src directory:

  • src
    • class: directory for php classes
      • tpl: directory for templates
        • add_feed.tpl.php
        • change_password.tpl.php
        • config.tpl.php
        • edit_all.tpl.php
        • edit_feed.tpl.php
        • edit_folder.tpl.php
        • header.tpl.php
        • help.tpl.php
        • import.tpl.php
        • includes.tpl.php
        • index.tpl.php
        • install.tpl.php
        • list_feeds.tpl.php
        • list_items.tpl.php
        • login.tpl.php
        • nav.tpl.php
        • paging.tpl.php
        • status.tpl.php
        • update.tpl.php
      • Feed.php: model
      • FeedConf.php: kriss feed configuration management
      • FeedPage.php: view
      • MyTool.php: common tools
      • Opml.php: import/export opml
      • PageBuilder.php: template management
      • Session.php: session management
      • Star.php: starred items management
    • inc: directory for includes
      • style.css
      • script.js
      • favicon.ico
    • kriss_feed.php: controller
    • generateIndex: bash script to compile index.php file
    • index.php: developpement version

7.1.2 To modify KrISS feed you should not modify index.php as it is automatically compiled using generateIndex script

7.1.3 When modifying KrISS feed you can see modifications without compiling using kriss_feed.php

Date: 2014-01-10 14:06:25 CET

Validate XHTML 1.0