favorite.php

<?php
$___notjson = 1;

header('Content-Type: text/html; charset=utf-8');


$uid = ucoz_getinfo("SITEUSERID");

$rdata_name = 'favorite.dat';
$rdata = file($rdata_name);


$max_col_fav = 25;//Максимальное количество закладок (если нужно нелимитированное - пишем 0).
$cache = 1;/* Запись заголовков материала в базу, 0(нет) или 1(да):
0 - если малое количество API запросов на сервер, при каждой загрузке избранного - количество

запросов = количиству закладок.
1 - при большом количестве запросов заголовок записывается в базу (без API) (Недостаток данного

значения - возможная неактуальность данных).
*/

$max_tlen = 28;//Максимальная длинна заголовка материала (список закладок, персональная страница).
$user_like = 1;//Функция лайков

$api_key = r75v0LtKJoJsJJ6E; // API-ключ


if($uid!=0){

### ДОБАВЛЕНИЕ В ИЗБРАННОЕ:
if($_POST['type']=='add' & isset($_POST['addr']) & isset($_POST['mid'])){

function clear_request($req){return str_replace(array("|", "#", ","), array(""), $req);}

$mid = clear_request($_POST['mid']);
$addr = clear_request($_POST['addr']);


$api_addr = ereg_replace('http://'.$_SERVER["HTTP_HOST"].'', '', $addr);
$api_response = xmlrpc_decode(file_get_contents('http://' . $_SERVER["HTTP_HOST"] . '/api' .

$api_addr . '?apikey=' . $api_key), 'utf8');
$name = clear_request($api_response['TITLE']);


$dopusk = false;
foreach($rdata as $rdata_line_num => $rdata_line){
trim($rdata_line, "\n");
list($uid_data, $data) = explode("|",$rdata_line);
if(current(explode(",", $uid_data))==$uid){
if((substr_count($data, ",")+1)<$max_col_fav || $max_col_fav==0){

if(substr_count($data, $addr)<=0){
unset($rdata[$rdata_line_num]);
$dopusk = true;
break;
}
else
{
exit('2');//Уже есть в избранном!
}

}
else
{
exit('3');//Память для избранного переполнена!
}

}
}


$user_data = xmlrpc_decode(file_get_contents('http://' . $_SERVER["HTTP_HOST"] .

'/api/index/8-' . $uid . '?apikey=' . $api_key), 'utf8');

if($dopusk==true){//Дописываем
$str_to_arr = $uid.",".$user_data['USER_USERNAME'].",".$user_data

['USER_AVATAR']."|".$mid."#".$addr."#".$name.",".str_replace("\n", "", $data)."\n";
}
else
{//Новая запись
$str_to_arr = $uid.",".$user_data['USER_USERNAME'].",".$user_data

['USER_AVATAR']."|".$mid."#".$addr."#".$name."\n";
}

array_unshift($rdata, $str_to_arr);
file_put_contents($rdata_name, $rdata);

echo '1';//Добавлено в избранное
}


### УДАЛЕНИЕ ВСЕХ ИЗБРАННЫХ МАТЕРИАЛОВ:
if($_POST['type']=='delete_all'){
foreach($rdata as $rdata_line_num => $rdata_line){
trim($rdata_line);
list($uid_data, $data) = explode("|",$rdata_line);
if(current(explode(",", $uid_data))==$uid){
unset($rdata[$rdata_line_num]);
file_put_contents($rdata_name, $rdata);
exit('1');
break;
}
}
echo '2';
}


### УДАЛЕНИЕ ОДНОГО ИЗБРАННОГО:
if($_POST['type']=='delete_one' & isset($_POST['mid'])){
foreach($rdata as $rdata_line_num => $rdata_line){
trim($rdata_line);
list($uid_data, $data) = explode("|",$rdata_line);
$count = substr_count($data, ',');
if(current(explode(",", $uid_data))==$uid){
$arr = explode(',',$data);
$index = 0;
foreach($arr as $item){
$index++;
$mid = explode('#',$item);
if($mid[0]==$_POST['mid']){
unset($rdata[$rdata_line_num]);
file_put_contents($rdata_name, $rdata);
if($count>0){
if($index==1){$rep = $item.',';}else{$rep = ','.$item;}
$data = str_replace(array($rep, "\n"), "", $data);
$user_data = xmlrpc_decode(file_get_contents('http://' . $_SERVER

["HTTP_HOST"] . '/api/index/8-' . $uid . '?apikey=' . $api_key), 'utf8');
file_put_contents($rdata_name, $uid.",".$user_data

['USER_USERNAME'].",".$user_data['USER_AVATAR']."|".$data."\n", FILE_APPEND);
}
echo '1';
}
}
break;
}
}
}


### ПРОСМОТР ИЗБРАННЫХ (Персональная):
if($_GET['type']=='view' & isset($_GET['suid']) & $_GET['suid']==$uid){
$base_result = false;
foreach($rdata as $rdata_line_num => $rdata_line){
trim($rdata_line);
list($uid_data, $data) = explode("|",$rdata_line);
if(current(explode(",", $uid_data))==$_GET['suid']){
$arr = explode(',',$data);
foreach($arr as $item){
if($cache==0){list($mid, $addr) = explode('#',$item);}
if($cache==1){list($mid, $addr, $name) = explode('#',$item);$real_addr =

$addr;}
$addr = ereg_replace('http://'.$_SERVER["HTTP_HOST"].'', '', $addr);

//Получаем материал (cache = 0):
if($cache==0){
$api_response = xmlrpc_decode(file_get_contents('http://' . $_SERVER

["HTTP_HOST"] . '/api' . $api_addr . '?apikey=' . $api_key), 'utf8');
}

$type = explode('/', $addr);

switch($type[1]){
case 'load':
$type_d = 'Файл';
break;
case 'news':
$type_d = 'Новость';
break;
case 'publ':
$type_d = 'Статья';
break;
case 'photo':
$type_d = 'Фото';
break;
case 'board':
$type_d = 'Объявление';
break;
case 'blog':
$type_d = 'Блог';
break;
case 'dir':
$type_d = 'Сайт';
break;
case 'stuff':
$type_d = 'Игра';
break;
}

if($cache==0){$mat_url = $api_response['ENTRY_URL'];$mat_title =

$api_response['TITLE'];}
if($cache==1){$mat_url = $real_addr;$mat_title = $name;}

if($mat_url){
if(mb_strlen($mat_title, 'UTF-8')>$max_tlen){$points = '...';}else{$points =

'';}
$title = mb_substr(strip_tags($mat_title), 0, $max_tlen, 'UTF-

8');//strip_tags - для модулей без фильтрации тегов в названии
echo '<div><img src="http://'.$_SERVER["HTTP_HOST"].'/img/delete.png"

class="favorite_delete" mid="'.$mid.'" style="float:left;cursor:pointer;"> '.$type_d.'
<a href="'.$mat_url.'" target="_blank">'.$title.$points.'</a></div>';
}
else
{
echo '<div><img src="http://'.$_SERVER["HTTP_HOST"].'/img/delete.png"

class="favorite_delete" mid="'.$mid.'" style="float:left;cursor:pointer;"> Данной страницы нет, или

ошибка API!</div>';
}
$count++;
}
echo '
<div style="margin-top:9px;">
Записей: <span id="favorite_count">'.$count.'</span>';
if($max_col_fav!=0){echo ' из '.$max_col_fav.'.';}
echo '
<input type="button" id="favorite_delete_all" value="Удалить все">
</div>
';
$base_result = true;
break;
}
}
if($base_result==false){
echo 'Нет избранного.';
}
}
}




#КОЛИЧЕСТВО ДОБАВЛЕНИЙ (Материал):
if($_GET['type']=='count' & isset($_GET['mid'])){
$base_open = fopen($rdata_name, "r");
$base_text = fread($base_open, filesize($rdata_name));

$col_add = substr_count($base_text, $_GET['mid'].'#');
$col_add_l = substr($col_add, -1);

if($col_add_l==0 || $col_add_l>1){$col_name = 'пользователей';}
if($col_add_l==1){$col_name = 'пользователя';}

echo '<div class="alert alert-info" id="favorite_favor">В избранном у <span id="favorite_count">'.

$col_add.'</span> '.$col_name.'.</div>';
if($col_add>0 & $user_like==1){echo '<input type="button" id="favorite_list" value="Список кто

добавил">';}
}



#ВЫВОД ЛАЙКОВ (Тех кто нажал добавить):
if($_GET['type']=='userlist' & isset($_GET['mid']) & $user_like==1){
if(substr_count(implode($rdata), $_GET['mid'])>0){
foreach($rdata as $rdata_line_num => $rdata_line){
trim($rdata_line);
list($uid_data, $data) = explode("|",$rdata_line);
if(substr_count($data, $_GET['mid'])>0){
list($buid, $bname, $bava) = explode(",",$uid_data);
echo '<tr><td><a href="/index/8-'.$buid.'" target="_blank">';
if($bava!=''){echo '<img src="'.$bava.'" width="35" border="0">';}else{echo

'<img src="/img/fav_noava.png" width="35" border="0">';}
echo '</a></td><td><a href="/index/8-'.$buid.'" target="_blank">'.

$bname.'</a></td></tr>';
}
}
}
else
{
echo '<tr><td>Данный файл никто не добавил!</td></tr>';
}
}




?>
Теги:
rdata, explode, count, break, substr, contents, favorite, cache, delete, index, foreach, isset, title, SERVER, replace, else , response, current, xmlrpc, clear, request, array, apikey, decode, unset, class, style, target, blank, points, result, false, USERNAME, AVATAR, dopusk
Добавлено: 11 Января 2017 19:54:32 Добавил: Владислав Демченко Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...