コード例 #1
0
ファイル: content.php プロジェクト: kapai69/fl-ru-damp
 // Средняя посещаемость из платного места в общем каталоге и на главной за 30 дней:
 // 1) Получаем общую посещаемость с платных мест за последние 30 дней (A).
 // 2) Получаем количество дней из этих 30-ти, когда юзер имел платные места:
 //    - в каталоге (Dc);
 //    - на главной (Df).
 // 3) Имеем формулу: A = Dc*C + Df*F,
 //    где F -- средняя посещаемость с главной, C -- средняя посещаемость из каталога в рассматриваемом
 //    периоде (30 дней), т.е. то, что нужно найти.
 // 4) Находим отношение посещаемости из каталога к главной: К = C / F
 //    K находим через отношение посещаемости из 1-го места каталога к 1-му месту на главной за
 //    какой-нибудь значительный период (30 дней, например).
 // 5) Из 3 и 4 получаем:
 //    C = F * K,
 //    F = A / (Dc*K + Df).
 // * Кругом могут быть нули, не забывать.
 if (($u_psDays = promotion::GetUserPsDayCount($uid, date('Y-m-d', strtotime($YESTERDAY) - 30 * 24 * 3600), $YESTERDAY)) && $u_psDays['fp_days'] + $u_psDays['ctg_days'] > 0) {
     if ($fp_pos_30d_summary[1]['by_e'] && ($K_psCF_by_e = $fp_pos_30d_summary[0]['by_e'] / $fp_pos_30d_summary[1]['by_e'])) {
         $t_fp_e = $u_summary['by_e_from_p_30d'] / ($u_psDays['ctg_days'] * $K_psCF_by_e + $u_psDays['fp_days']);
     }
     if ($fp_pos_30d_summary[1]['by_f'] && ($K_psCF_by_f = $fp_pos_30d_summary[0]['by_f'] / $fp_pos_30d_summary[1]['by_f'])) {
         $t_fp_f = $u_summary['by_f_from_p_30d'] / ($u_psDays['ctg_days'] * $K_psCF_by_f + $u_psDays['fp_days']);
     }
     if ($fp_pos_30d_summary[1]['by_u'] && ($K_psCF_by_u = $fp_pos_30d_summary[0]['by_u'] / $fp_pos_30d_summary[1]['by_u'])) {
         $t_fp_u = $u_summary['by_u_from_p_30d'] / ($u_psDays['ctg_days'] * $K_psCF_by_u + $u_psDays['fp_days']);
     }
     if ($u_psDays['fp_days']) {
         $avg30['by_e_from_p_fp'] = $t_fp_e ? $t_fp_e : $u_summary['by_e_from_p_30d'] / $u_psDays['fp_days'];
         $avg30['by_f_from_p_fp'] = $t_fp_f ? $t_fp_f : $u_summary['by_f_from_p_30d'] / $u_psDays['fp_days'];
         $avg30['by_u_from_p_fp'] = $t_fp_u ? $t_fp_u : $u_summary['by_u_from_p_30d'] / $u_psDays['fp_days'];
     }
     if ($u_psDays['ctg_days']) {