By default, if you just follow the previous guide to integrate feed service. There will be the simple layout as below:

And if you want your feed to become more detail and visual, let's follow these below step

  1. Create file Feed.php under Block directory, then simply put a few lines:
namespace Apps\TodoList\Block;

class Feed extends \Phpfox_Component
    public function process()
        return "block";

Register that block in start.php:

$module->addComponentNames('block', [
    'todo.feed' => Block\Feed::class
  1. Open Service/Callback.php then edit function getActivityFeed() where we assigned value for $aReturn, we also need to assign Todo item information to the block template file as well.
$aReturn = array_merge([
    'feed_title'        => $aItem['name'],
    'privacy'           => $aItem['privacy'],
    'feed_info'         => _p('post_new_to_do'),
    'feed_link'         => Phpfox::permalink('to-do-list.view',
        $aItem['task_id'], $aItem['name']),
    'feed_content'      => $aItem['name'],
    'total_comment'     => $aItem['total_comment'],
    'feed_total_like'   => $aItem['total_like'],
    'feed_is_liked'     => $isLiked,
    'feed_icon'         => '',
    'time_stamp'        => $aRow['time_stamp'],
    'enable_like'       => true,
    'comment_type_id'   => 'todo',
    'like_type_id'      => 'todo',
    'custom_data_cache' => $aRow,
    'load_block'        => 'todo.feed', //add this line
], $aRow);

//Assign todo information to template file:
    'aItem' => $aItem

return $aReturn;
  1. Finally, we create template file feed.html.php under view/block directory to show needed information:
<div class="feed-share-content" style="display: table">
    <a href="{permalink module='todo.view' id=$aItem.task_id title=$}"><h3>{$}</h3></a>
    <p>{$aItem.description|clean|shorten:'100':'View More':true|split:30}</p>

If anything will be working correctly, you will see this super-cool feed with more information after reloading page:

Next Chapter