Просмотр поста

.
BoGdAn
I'm the Cult of Personality...

Что-то я давненько ничего не пейсал.
Клас голосовань, ну там лайков дизлайков и прочей хрени. Пример в следующем посте.

<?php
/*
  * Клас голосовань
  * Автор: BoGdAn/ARMYbodya <armybodya@gmail.com>
  * Дата: 29 вересня 2014р
  * Написаний за допомогою мобільного телефону. Вибачте, без табуляції.
  */
class Vote {

var $col_vote_in_string;

function __construct($col_vote = 1) {
 $this->col_vote_in_string = $col_vote;
}

function add($id, $str, $cheng = 1) {
$arr = $this->string_to_array($str);
if($this->col_vote_in_string == 1) {
if(in_array($id, $arr)) { 
$arr_flip = array_flip($arr);
unset($arr_flip[$id]);
$arr = array_flip($arr_flip);
}
else 
$arr[] = $id;

return $this->array_to_string($arr);
}
 
$arr_p = array();
foreach($arr as $mas) 
if(in_array($id, $mas)) {
$noadd = 1;
$mas_flip = array_flip($mas);
unset($mas_flip[$id]);
$mas = array_flip($mas_flip);
$arr_p[] = $mas; 
}
else  
$arr_p[] = $mas;
if(!isset($noadd))
$arr_p[$cheng] = empty($arr_p[$cheng]) ? array($id) : $id;
return $this->array_to_string($arr_p);
}

function view($str) { 
$arr = $this->string_to_array($str);
if($this->col_vote_in_string == 1)
return count($arr);

$r_arr = array();
foreach($arr as $mas)
$r_arr[] = count($mas);
return $r_arr;
}

function in_vote($id, $str) { 
$arr = $this->string_to_array($str);
if($this->col_vote_in_string == 1)
if(in_array($id, $arr))
return 1;
else 
return 0;
$r_arr = array();
foreach($arr as $mas)
if(in_array($id, $mas))
$r_arr[] = 1;
else 
$r_arr[] = 0;
return $r_arr;
}

function uslist($str, $cheng = 1) {
$arr = $this->string_to_array($str);
if($this->col_vote_in_string == 1)
return $arr;
else 
return $arr[$cheng];
}

function array_to_string($arr) { 
if($this->col_vote_in_string == 1)
return implode(',', $arr);
$str = '';
$count = count($arr);
$i = 0;
foreach($arr as $v) {
$str .= implode(',' ,$v);
if(++$i != $count)
$str .= '|';
}
return $this->string($str);
}

function string_to_array($string) {
$string = $this->string($string);
if($this->col_vote_in_string === 1) {
if(empty($string)) return array();
return explode(',', $string); 
}
$arr = array();
$v = $string ? explode('|', $string) : array(); 
for($i = 0; $i <= ($this->col_vote_in_string-1); ++$i)
$arr[] = !empty($v[$i]) ? explode(',', $v[$i]) : array();
return $arr;
}

function string($string) {
$arr = array(',,' => '', ' ' => '', "\n" => '', "\r" => '');
if($this->col_vote_in_string == 1)
$arr['|'] = '';
return strtr($string, $arr);
}

}