ACC SHELL
<?php
class novinky{
var $msg;
function add($title,$memo,$datum,$url){
$title = addslashes($title);
$memo = addslashes($memo);
$url = addslashes($url);
$seo_url = $this->getSeoUrl($title);
$seo_url = $this->verifySeo($seo_url);
if(!empty($title) && !empty($memo)){
if(!empty($datum) && !$this->isDate($datum)){//je-li spatne vylnene datum, naplni vlastnosti msg a opusti tuto funkci
return FALSE;
}
elseif (empty($datum)) {//neni-li vyplnene datum
$datum = date("Y-m-d");//napleneni promenou aktualnim datem ve spravnem formatu
}
$query = "INSERT INTO ".DBPREFIX."novinky (title,memo,date,url, seo_url) VALUES('$title','$memo','$datum','$url', '$seo_url')";
if(mysql_query($query)){//pridani novinky do databaze bylo uspesne
$this->msg = ACTUALITY_ADDED;
return TRUE;
}
else{//chyba pri naplnovani databaze
$this->msg = SQL_ERR0R;
return FALSE;
}
}
else{
$this->msg = FORM_EMPTY;
}
}
//zkontroluje spravnost formatu zadaneho data a jeho existenci
//pokud jedna z kontrol neprojde, tak neplni privatni vlastost msg zpravou o spatnem datumu a vrati false
//jinak vraci true
public function isDate($datum){
if(!ereg("^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$",$datum)){//neni-li format data zadan tak jak ho vyzaduje sql
$this->msg = WRONG_DATE_FORMAT;
return FALSE;
}
$date_array = explode("-",$datum);//rozlozi datum do pole([0]=>rok,[1]=>mesic,[2]=>den)
if (!checkdate($date_array[1], $date_array[2], $date_array[0])){//jestlize se jedna o neeexistujici datum
$this->msg = NO_EXIST_DATE;
return FALSE;
}
return TRUE;
}
var $id, $title, $memo, $dat, $url;
function select_all(){
$query = " SELECT id, title, url, DATE_FORMAT(date,'%d.%m.%y') AS datum
FROM ".DBPREFIX."novinky
ORDER BY date DESC, id DESC";
$sent = mysql_query($query);
while($data = mysql_fetch_array($sent)){
$this->id[] = $data['id'];
$this->title[] = stripslashes($data['title']);
$this->dat[] = $data['datum'];
$this->url[] = $data['url'];
}
}
var $str_leght;
function edit($id,$title,$memo,$datum,$url){
$title = addslashes($title);
$memo = addslashes($memo);
$seo_url = $this->getSeoUrl($title);
$seo_url = $this->verifySeo($seo_url, $id);
if(!empty($datum) && !$this->isDate($datum)){//je-li spatne vyplnene datum, naplni vlastnosti msg a opusti tuto funkci
return FALSE;
}
elseif (empty($datum)) {//neni-li vyplnene datum
$datum = date("Y-m-d");//napleneni promenou aktualnim datem ve spravnem formatu
}
$query = "UPDATE ".DBPREFIX."novinky SET seo_url = '$seo_url', title = '$title', memo = '$memo', date = '$datum', url='$url' WHERE id = '$id'";
if(mysql_query($query)){
$this->msg = EDIT_COMPLETED;
return TRUE;
}
else{
$this->msg = mysql_error();
return FALSE;
}
}
function select_one($id){
$query = "SELECT id, title, memo, url, date FROM ".DBPREFIX."novinky WHERE id = $id";
$sent = mysql_query($query);
$data = mysql_fetch_array($sent);
$this->id = $data['id'];
$this->title = stripslashes($data['title']);
$this->memo = stripslashes($data['memo']);
//$this->memo = $data['memo'];
$this->dat = $data['date'];
$this->url = $data['url'];
}
function delete($id){
$query = "DELETE FROM ".DBPREFIX."novinky WHERE id = $id";
if(mysql_query($query)){
$this->msg = ACTUALITY_DELETED;
}
else{
$this->msg = SQL_ERROR.mysql_error();
}
}
function getSeoUrl ($url) {
$url = $this->cs_utf2ascii($url);
$url = preg_replace('~[^\\w]+~u', '-', $url);
$url = strtolower($url);
$url = preg_replace('~[^-a-z0-9]+~', '', $url);
$url = trim($url, "-");
return $url;
}
function cs_utf2ascii($s) {
static $tbl = array("\xc3\xa1"=>"a","\xc3\xa4"=>"a","\xc4\x8d"=>"c","\xc4\x8f"=>"d","\xc3\xa9"=>"e","\xc4\x9b"=>"e","\xc3\xad"=>"i","\xc4\xbe"=>"l","\xc4\xba"=>"l","\xc5\x88"=>"n","\xc3\xb3"=>"o","\xc3\xb6"=>"o","\xc5\x91"=>"o","\xc3\xb4"=>"o","\xc5\x99"=>"r","\xc5\x95"=>"r","\xc5\xa1"=>"s","\xc5\xa5"=>"t","\xc3\xba"=>"u","\xc5\xaf"=>"u","\xc3\xbc"=>"u","\xc5\xb1"=>"u","\xc3\xbd"=>"y","\xc5\xbe"=>"z","\xc3\x81"=>"A","\xc3\x84"=>"A","\xc4\x8c"=>"C","\xc4\x8e"=>"D","\xc3\x89"=>"E","\xc4\x9a"=>"E","\xc3\x8d"=>"I","\xc4\xbd"=>"L","\xc4\xb9"=>"L","\xc5\x87"=>"N","\xc3\x93"=>"O","\xc3\x96"=>"O","\xc5\x90"=>"O","\xc3\x94"=>"O","\xc5\x98"=>"R","\xc5\x94"=>"R","\xc5\xa0"=>"S","\xc5\xa4"=>"T","\xc3\x9a"=>"U","\xc5\xae"=>"U","\xc3\x9c"=>"U","\xc5\xb0"=>"U","\xc3\x9d"=>"Y","\xc5\xbd"=>"Z");
return strtr($s, $tbl);
}
function verifySeo($seo_url, $id=0) {
$bonus = "";
if($id > 0) {
$bonus = " AND id != '$id'";
}
$query = "SELECT seo_url FROM ".DBPREFIX."novinky WHERE seo_url REGEXP '^".$seo_url."[0-9]?$'" . $bonus;
$result = mysql_query($query);
$count = mysql_num_rows($result);
if($count > 0) {
$seo_url .= "-" . $count;
}
return $seo_url;
}
}
?>
ACC SHELL 2018