Control Privacy

Editing file add.html.php, add following code

{if Phpfox::isModule('privacy')}
     <div class="table form-group-flow">
            <div class="table_left">
                {_p var='privacy'}:
            </div>
            <div class="table_right">
                {module name='privacy.form' privacy_name='privacy' privacy_info='control_who_can_see_this_todo' default_privacy='todo_default_privacy_setting'}
            </div>
        </div>
{/if}

With:

Back to file Controller/AddController.php, modify it as following code

<?php 
$iItemId  = \Phpfox::getLib('database')->insert(\Phpfox::getT('todolist_task'),[
    'user_id'=> \Phpfox::getUserId(), // get current user id
    'name'=> $vals['name'],
    'description'=>$vals['description'],
    'time_stamp'=>time(),  // creatation time
    'time_update'=>time(), // last modification time
    'privacy'=>$aVals['privacy'], // modify this line
    'task_status'=>0, // mark task is in-complete
]);
if ($vals['privacy'] == '4') {
    Privacy_Service_Process::instance()->add('todo', $iItemId,
 (isset($aVals['privacy_list']) ? $aVals['privacy_list'] : array()));
}

Now your todo list item has privacy. We move to controller view Controller/ViewController.php to check if user have permission.

We add following code, right below get todo list detail

<?php
    $aItem  = $browseService->getForBrowse($id);
    if (\Phpfox::isModule('privacy')) {
        \Privacy_Service_Privacy::instance()->check('todo', $aItem['task_id'], $aItem['user_id'], $aItem['privacy'],
            $aItem['is_friend']);
    }

With:

We have following value for privacy:

 

We have to modify function getForBrowse to get more information if missing.