public function suggestionsForPrograms()
 {
     $current_user = \Yii::$app->user->identity->getId();
     $programsFollowedByCurrentUser = FollowerProgram::find()->where(['user_id' => $current_user])->all();
     if (empty($programsFollowedByCurrentUser)) {
         $programs = ProgramRecord::find()->all();
         $scoresOfEachProgram = [];
         $models = [];
         foreach ($programs as $program) {
             $follows = $program->noOfFollowers;
             $likes = $program->noOLikes;
             $dislikes = $program->noOfDislikes;
             $score = 2 * $follows + $likes - 0.5 * $dislikes;
             $scoresOfEachProgram[$program->id] = $score;
         }
         arsort($scoresOfEachProgram);
         foreach (array_keys($scoresOfEachProgram) as $id) {
             $program = ProgramRecord::findOne($id);
             array_push($models, $program);
         }
         return $models;
     } else {
         $targetPrograms = [];
         foreach ($programsFollowedByCurrentUser as $followedProgram) {
             $allFollowersOfFollowedProgram = FollowerProgram::find()->where(['program_id' => $followedProgram->program_id])->all();
             foreach ($allFollowersOfFollowedProgram as $singleFollowerOfFollowee) {
                 $followeesOfFollowerOfFolloweesOfCurrentUser = FollowerProgram::find()->where(['user_id' => $singleFollowerOfFollowee->user_id])->all();
                 foreach ($followeesOfFollowerOfFolloweesOfCurrentUser as $targetProgram) {
                     array_push($targetPrograms, $targetProgram);
                 }
             }
         }
         $followingProgramsIds = ArrayHelper::getColumn($programsFollowedByCurrentUser, 'program_id');
         $targetProgramsIds = ArrayHelper::getColumn($targetPrograms, 'program_id');
         $resultProgramsIds = array_diff($targetProgramsIds, $followingProgramsIds);
         $countOfPrograms = array_count_values($resultProgramsIds);
         $scoresOfEachProgram = [];
         foreach (array_unique($resultProgramsIds) as $programId) {
             $followersOfProgram = FollowerProgram::find()->where(['program_id' => $programId])->all();
             $firstWeight = count($followersOfProgram);
             $secondWeight = $countOfPrograms[$programId];
             $scoresOfEachProgram[$programId] = ($firstWeight + $secondWeight) / 2;
         }
         $models = [];
         arsort($scoresOfEachProgram);
         foreach (array_keys($scoresOfEachProgram) as $id) {
             $program = ProgramRecord::findOne($id);
             array_push($models, $program);
         }
         return $models;
     }
 }
 public function actionRemoveoraddfollow()
 {
     if (Yii::$app->request->isAjax) {
         $data = Yii::$app->request->post();
         $program_id = $data['program_id'];
         $follow_status = $data['follow_status'];
         $program = ProgramRecord::findOne($program_id);
         if ($follow_status == 'Follow') {
             $follow_program = new FollowerProgram();
             $follow_program->program_id = $program_id;
             $follow_program->user_id = \Yii::$app->user->identity->getId();
             if ($follow_program->save()) {
                 $program->noOfFollowers += 1;
                 $program->save();
                 $return_message = 0;
             }
         } else {
             $follow_program = FollowerProgram::findOne(['program_id' => $program_id, 'user_id' => \Yii::$app->user->identity->getId()]);
             if ($follow_program->delete()) {
                 $program->noOfFollowers -= 1;
                 $program->save();
                 $return_message = 1;
             }
         }
         return $return_message;
     }
 }
                                                <?php 
    $facultyRecord = \common\models\faculty\FacultyRecord::findOne($model->faculty_id);
    $faculty = $facultyRecord->name;
    $university = \common\models\university\UniversityRecord::findOne($facultyRecord->university_id)->name;
    $link_program = '<h5 class="title" style="font-size: 20px;
                                                                    margin-left: -37%;
                                                                    margin-top: 10%;">' . $model->name . '</h5>';
    echo Html::a($link_program, ['/course/index', 'program_id' => $model->id, 'faculty' => $faculty, 'university' => $university]);
    ?>
                                            </div>
                                            <div class="col-md-4">
                                                <?php 
    $follow_status = 'Unfollow';
    $btn_follow = '<i class="fa fa-minus-circle"></i>';
    $follow_btn_class = '';
    if (count(\common\models\FollowerProgram::find()->where(['user_id' => \Yii::$app->user->identity->getId(), 'program_id' => $model->id])->all()) == 0) {
        $follow_status = 'Follow';
        $btn_follow = '<i class="fa fa-user-plus"></i>';
    }
    ?>
                                                <button type="button" style="" class="btn btn-border-success btn-block btn-follow-program <?php 
    echo $follow_btn_class;
    ?>
" id="program-<?php 
    echo $model->id;
    ?>
" data-id="<?php 
    echo $model->id;
    ?>
" data-follow-status="<?php 
    echo $follow_status;