Last updated on 16 Aralık 2020
class.Article.php Tüm Kodlar
<?php
require_once 'database.php';
class Article
{
private $conn;
public function __construct() {
$conn= new Database();
$this->conn = $conn->connect();
}
function getAll()
{
$statement = $this->conn->prepare("SELECT * FROM article");
$statement->execute();
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
$json = json_encode($results);
return $json;
}
function getId($id = '')
{
$results = [
"error" => "Not Found"
];
if (is_numeric($id)) {
$statement = $this->conn->prepare("SELECT * FROM article WHERE id=:id");
$statement->execute(array(
"id" => $id
));
$count = $statement->rowCount();
if ($count > 0)
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
}
$json = json_encode($results);
return $json;
}
function getSlag($slag = '')
{
$results = [
"error" => "Not Found"
];
if (strlen($slag) > 0) {
$statement = $this->conn->prepare("SELECT * FROM article WHERE slag=:slag");
$statement->execute(array(
"slag" => $slag
));
$count = $statement->rowCount();
if ($count > 0)
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
}
$json = json_encode($results);
return $json;
}
function setArticle($title = '', $text = '')
{
$results = [
"error" => "Missing Parameter"
];
if (strlen($title) > 0 && strlen($text) > 0) {
$title = htmlspecialchars($title);
$text = htmlspecialchars($text);
$slag = $this->permalink($title);
$sql = "INSERT INTO article (title, slag, text) VALUES (:title,:slag, :text)";
$query = $this->conn->prepare($sql);
$status = $query->execute(array(
"title" => $title,
"slag" => $slag,
"text" => $text
));
if ($status == true)
$results = [
"success" => "Article Added"
];
else
$status = [
"error" => "Something went wrong."
];
}
$json = json_encode($results);
return $json;
}
function editArticle($id = '', $title = '', $text = '')
{
$title = htmlspecialchars($title);
$text = htmlspecialchars($text) ;
$results = [
"error" => "Missing Parameter"
];
$editStatus = false;
if (is_numeric($id)) {
$statement = $this->conn->prepare("SELECT * FROM article WHERE id=:id");
$statement->execute(array(
"id" => $id
));
$count = $statement->rowCount();
$editStatus = ($count > 0) ? true : false;
}
if ($editStatus == false) {
$results = [
"error" => "Not Found"
];
}
if (strlen($title) > 0 && strlen($text) > 0 && $editStatus == true) {
$title = htmlspecialchars($title);
$text = htmlspecialchars($text);
$slag = $this->permalink($title);
$sql = "UPDATE article SET title=:title,slag=:slag, text=:text WHERE id =:id";
$query = $this->conn->prepare($sql);
$status = $query->execute(array(
"title" => $title,
"slag" => $slag,
"text" => $text,
"id" => $id
));
if ($status == true)
$results = [
"success" => "Article Edit"
];
else
$results = [
"error" => "Something went wrong."
];
}
$json = json_encode($results);
return $json;
}
function deleteArticle($id = '')
{
$results = [
"error" => "Missing Parameter"
];
$deleteStatus = false;
if (is_numeric($id)) {
$statement = $this->conn->prepare("SELECT * FROM article WHERE id=:id");
$statement->execute(array(
"id" => $id
));
$count = $statement->rowCount();
$deleteStatus = ($count > 0) ? true : false;
}
if ($deleteStatus == false) {
$results = [
"error" => "Not Found"
];
}
if ($deleteStatus == true) {
$sql = "DELETE FROM article WHERE id=:id";
$delete = $this->conn->prepare($sql);
$status = $delete->execute(array(
"id" => $id
));
if ($status == true)
$results = [
"success" => "Article Deleted"
];
else
$results = [
"error" => "Something went wrong."
];
}
$json = json_encode($results);
return $json;
}
function permalink($str, $options = array())
{
$str = mb_convert_encoding((string)$str, 'UTF-8', mb_list_encodings());
$defaults = array(
'delimiter' => '-',
'limit' => null,
'lowercase' => true,
'replacements' => array(),
'transliterate' => true
);
$options = array_merge($defaults, $options);
$char_map = array(
// Latin
'À' => 'A', 'Á' => 'A', 'Â' => 'A', 'Ã' => 'A', 'Ä' => 'A', 'Å' => 'A', 'Æ' => 'AE', 'Ç' => 'C',
'È' => 'E', 'É' => 'E', 'Ê' => 'E', 'Ë' => 'E', 'Ì' => 'I', 'Í' => 'I', 'Î' => 'I', 'Ï' => 'I',
'Ð' => 'D', 'Ñ' => 'N', 'Ò' => 'O', 'Ó' => 'O', 'Ô' => 'O', 'Õ' => 'O', 'Ö' => 'O', 'Ő' => 'O',
'Ø' => 'O', 'Ù' => 'U', 'Ú' => 'U', 'Û' => 'U', 'Ü' => 'U', 'Ű' => 'U', 'Ý' => 'Y', 'Þ' => 'TH',
'ß' => 'ss',
'à' => 'a', 'á' => 'a', 'â' => 'a', 'ã' => 'a', 'ä' => 'a', 'å' => 'a', 'æ' => 'ae', 'ç' => 'c',
'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i',
'ð' => 'd', 'ñ' => 'n', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'õ' => 'o', 'ö' => 'o', 'ő' => 'o',
'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ű' => 'u', 'ý' => 'y', 'þ' => 'th',
'ÿ' => 'y',
// Latin symbols
'©' => '(c)',
// Greek
'Α' => 'A', 'Β' => 'B', 'Γ' => 'G', 'Δ' => 'D', 'Ε' => 'E', 'Ζ' => 'Z', 'Η' => 'H', 'Θ' => '8',
'Ι' => 'I', 'Κ' => 'K', 'Λ' => 'L', 'Μ' => 'M', 'Ν' => 'N', 'Ξ' => '3', 'Ο' => 'O', 'Π' => 'P',
'Ρ' => 'R', 'Σ' => 'S', 'Τ' => 'T', 'Υ' => 'Y', 'Φ' => 'F', 'Χ' => 'X', 'Ψ' => 'PS', 'Ω' => 'W',
'Ά' => 'A', 'Έ' => 'E', 'Ί' => 'I', 'Ό' => 'O', 'Ύ' => 'Y', 'Ή' => 'H', 'Ώ' => 'W', 'Ϊ' => 'I',
'Ϋ' => 'Y',
'α' => 'a', 'β' => 'b', 'γ' => 'g', 'δ' => 'd', 'ε' => 'e', 'ζ' => 'z', 'η' => 'h', 'θ' => '8',
'ι' => 'i', 'κ' => 'k', 'λ' => 'l', 'μ' => 'm', 'ν' => 'n', 'ξ' => '3', 'ο' => 'o', 'π' => 'p',
'ρ' => 'r', 'σ' => 's', 'τ' => 't', 'υ' => 'y', 'φ' => 'f', 'χ' => 'x', 'ψ' => 'ps', 'ω' => 'w',
'ά' => 'a', 'έ' => 'e', 'ί' => 'i', 'ό' => 'o', 'ύ' => 'y', 'ή' => 'h', 'ώ' => 'w', 'ς' => 's',
'ϊ' => 'i', 'ΰ' => 'y', 'ϋ' => 'y', 'ΐ' => 'i',
// Turkish
'Ş' => 'S', 'İ' => 'I', 'Ç' => 'C', 'Ü' => 'U', 'Ö' => 'O', 'Ğ' => 'G',
'ş' => 's', 'ı' => 'i', 'ç' => 'c', 'ü' => 'u', 'ö' => 'o', 'ğ' => 'g',
// Russian
'А' => 'A', 'Б' => 'B', 'В' => 'V', 'Г' => 'G', 'Д' => 'D', 'Е' => 'E', 'Ё' => 'Yo', 'Ж' => 'Zh',
'З' => 'Z', 'И' => 'I', 'Й' => 'J', 'К' => 'K', 'Л' => 'L', 'М' => 'M', 'Н' => 'N', 'О' => 'O',
'П' => 'P', 'Р' => 'R', 'С' => 'S', 'Т' => 'T', 'У' => 'U', 'Ф' => 'F', 'Х' => 'H', 'Ц' => 'C',
'Ч' => 'Ch', 'Ш' => 'Sh', 'Щ' => 'Sh', 'Ъ' => '', 'Ы' => 'Y', 'Ь' => '', 'Э' => 'E', 'Ю' => 'Yu',
'Я' => 'Ya',
'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'yo', 'ж' => 'zh',
'з' => 'z', 'и' => 'i', 'й' => 'j', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o',
'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c',
'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sh', 'ъ' => '', 'ы' => 'y', 'ь' => '', 'э' => 'e', 'ю' => 'yu',
'я' => 'ya',
// Ukrainian
'Є' => 'Ye', 'І' => 'I', 'Ї' => 'Yi', 'Ґ' => 'G',
'є' => 'ye', 'і' => 'i', 'ї' => 'yi', 'ґ' => 'g',
// Czech
'Č' => 'C', 'Ď' => 'D', 'Ě' => 'E', 'Ň' => 'N', 'Ř' => 'R', 'Š' => 'S', 'Ť' => 'T', 'Ů' => 'U',
'Ž' => 'Z',
'č' => 'c', 'ď' => 'd', 'ě' => 'e', 'ň' => 'n', 'ř' => 'r', 'š' => 's', 'ť' => 't', 'ů' => 'u',
'ž' => 'z',
// Polish
'Ą' => 'A', 'Ć' => 'C', 'Ę' => 'e', 'Ł' => 'L', 'Ń' => 'N', 'Ó' => 'o', 'Ś' => 'S', 'Ź' => 'Z',
'Ż' => 'Z',
'ą' => 'a', 'ć' => 'c', 'ę' => 'e', 'ł' => 'l', 'ń' => 'n', 'ó' => 'o', 'ś' => 's', 'ź' => 'z',
'ż' => 'z',
// Latvian
'Ā' => 'A', 'Č' => 'C', 'Ē' => 'E', 'Ģ' => 'G', 'Ī' => 'i', 'Ķ' => 'k', 'Ļ' => 'L', 'Ņ' => 'N',
'Š' => 'S', 'Ū' => 'u', 'Ž' => 'Z',
'ā' => 'a', 'č' => 'c', 'ē' => 'e', 'ģ' => 'g', 'ī' => 'i', 'ķ' => 'k', 'ļ' => 'l', 'ņ' => 'n',
'š' => 's', 'ū' => 'u', 'ž' => 'z'
);
$str = preg_replace(array_keys($options['replacements']), $options['replacements'], $str);
if ($options['transliterate']) {
$str = str_replace(array_keys($char_map), $char_map, $str);
}
$str = preg_replace('/[^\p{L}\p{Nd}]+/u', $options['delimiter'], $str);
$str = preg_replace('/(' . preg_quote($options['delimiter'], '/') . '){2,}/', '$1', $str);
$str = mb_substr($str, 0, ($options['limit'] ? $options['limit'] : mb_strlen($str, 'UTF-8')), 'UTF-8');
$str = trim($str, $options['delimiter']);
return $options['lowercase'] ? mb_strtolower($str, 'UTF-8') : $str;
}
}
Kodları alt alta birleştirebilirsiniz. Belirli bir sınır olduğu için tamamını bir kerede ekleyemiyorum.
.htaccess
.htaccess Apache başta olmak üzere çoğu ağ sunucusu tarafından kullanılan web alanı üzerinde ayar değişimleri yapılmasını sağlayan dosyadır. Biz bu dosya sayesinde apimiz için uygun linkler üretebileceğiz.
URL kısmına gelen parametremiz dosya veya klasör değilse index.php üzerinden GET parametre olarak göndermesini istiyoruz. Artık GET metotlarını daha düzgün görüntüleyebileceğiz.
.htaccess den önce
……./index.php?slag=deneme-yazi
.htaccess den sonra
……./slag/deneme-yazi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
Devamını okuma için lütfen diğer sayfaya geçiniz..
Eksiklerimi giderdiğim güzel bir içerik teşekkürler
Oldukça orijinal ve kaliteli bir içerik olmuş tebrikler
Görsel destekli olması şahane olmuş sonunda yapabildim
github linki ölmüş sanırım yenileyebilirmisiniz?
En kısa sürede linki güncelliyor olacağım