Model:
Kod
class usersmodel
{
private $__config;
private $__router;
private $__db;
private $__params;
public function __construct()
{
$this->__config = registry::register("config");
$this->__router = registry::register("router");
$this->__db = registry::register("db");
$this->__params = $this->__router->getParams();
}
public function drawUsersList()
{
$result = "<table class=\"text wideTable\" cellspacing=\"0\">\n
<tbody>
<tr class=\"legend\">
<td style=\"min-width: 30px!important\">ID</td>
<td>Imię i Nazwisko</td>
<td>Nick</td>
<td>E-Mail</td>
<td>Data Urodzenia</td>
<td>Funkcje</td>
</tr>";
$users = $this->__db->execute("SELECT users.id, users.fullname, users.username, users.mail, users.birthdate
FROM users");
if(!empty($users))
{
foreach($users as $user)
{
$result .= "<tr class=\"content\">
<td style=\"min-width: 30px!important\">{$user['id']}</td>
<td>{$user['fullname']}</td>
<td>{$user['username']}</td>
<td>{$user['mail']}</td>
<td>{$user['birthdate']}</td>
<td><a class=\"subtle\" href=\"".SERVER_ADDRESS."administrator/users/view/".$user['id']."\">Edycja użytkownika</a> |
<a class=\"subtle\" href=\"java script:void(0);\" onClick=\"removeUsers('".$user['id']."');\">Usuń użytkownika</a></td>
</tr>";
}
$result .= "</tbody></table>";
}
return $result;
}
}
{
private $__config;
private $__router;
private $__db;
private $__params;
public function __construct()
{
$this->__config = registry::register("config");
$this->__router = registry::register("router");
$this->__db = registry::register("db");
$this->__params = $this->__router->getParams();
}
public function drawUsersList()
{
$result = "<table class=\"text wideTable\" cellspacing=\"0\">\n
<tbody>
<tr class=\"legend\">
<td style=\"min-width: 30px!important\">ID</td>
<td>Imię i Nazwisko</td>
<td>Nick</td>
<td>E-Mail</td>
<td>Data Urodzenia</td>
<td>Funkcje</td>
</tr>";
$users = $this->__db->execute("SELECT users.id, users.fullname, users.username, users.mail, users.birthdate
FROM users");
if(!empty($users))
{
foreach($users as $user)
{
$result .= "<tr class=\"content\">
<td style=\"min-width: 30px!important\">{$user['id']}</td>
<td>{$user['fullname']}</td>
<td>{$user['username']}</td>
<td>{$user['mail']}</td>
<td>{$user['birthdate']}</td>
<td><a class=\"subtle\" href=\"".SERVER_ADDRESS."administrator/users/view/".$user['id']."\">Edycja użytkownika</a> |
<a class=\"subtle\" href=\"java script:void(0);\" onClick=\"removeUsers('".$user['id']."');\">Usuń użytkownika</a></td>
</tr>";
}
$result .= "</tbody></table>";
}
return $result;
}
}
Funkcje:
Kod
function saveUsers(id)
{
var r = "";
var rid = "";
if(id == undefined || id == "")
{
r = "Czy chcesz utworzyć nowego użytkownika ?";
rid = "new";
}
else
{
r = "Czy chcesz zapisać wprowadzone zmiany ?";
rid = id;
}
var ask = confirm(r);
if(ask)
{
var fullname = $("#userFullname").val();
var username = $("#userUsername").val();
var password = $("#userPassword").val();
var mail = $("#userMail").val();
var birthdate = $("#userBirthdate").val();
$.ajax({
type: "POST",
url: "application/media/_external/administrator.php",
processdata: true,
data: "saveUsers=" + rid + "&fullname=" + fullname + "&username=" + username + "&password=" + password + "&mail=" + mail + "&birthdate=" + birthdate,
dataType: 'html',
success: function(data)
{
if(data == "true")
{
window.location.replace("administrator/users");
}
else
{
alert(data);
}
}
});
}
}
function removeUsers(id)
{
var ask = confirm("Czy na pewno chcesz usunąć tego użytkownika ?");
if(ask)
{
$.ajax({
type: "POST",
url: "application/media/_external/administrator.php",
processdata: true,
data: "removeUsers=true&id=" + id,
dataType: 'html',
success: function(data)
{
if(data == "true")
{
window.location.reload();
}
else
{
alert(data);
}
}
});
}
}
{
var r = "";
var rid = "";
if(id == undefined || id == "")
{
r = "Czy chcesz utworzyć nowego użytkownika ?";
rid = "new";
}
else
{
r = "Czy chcesz zapisać wprowadzone zmiany ?";
rid = id;
}
var ask = confirm(r);
if(ask)
{
var fullname = $("#userFullname").val();
var username = $("#userUsername").val();
var password = $("#userPassword").val();
var mail = $("#userMail").val();
var birthdate = $("#userBirthdate").val();
$.ajax({
type: "POST",
url: "application/media/_external/administrator.php",
processdata: true,
data: "saveUsers=" + rid + "&fullname=" + fullname + "&username=" + username + "&password=" + password + "&mail=" + mail + "&birthdate=" + birthdate,
dataType: 'html',
success: function(data)
{
if(data == "true")
{
window.location.replace("administrator/users");
}
else
{
alert(data);
}
}
});
}
}
function removeUsers(id)
{
var ask = confirm("Czy na pewno chcesz usunąć tego użytkownika ?");
if(ask)
{
$.ajax({
type: "POST",
url: "application/media/_external/administrator.php",
processdata: true,
data: "removeUsers=true&id=" + id,
dataType: 'html',
success: function(data)
{
if(data == "true")
{
window.location.reload();
}
else
{
alert(data);
}
}
});
}
}
application/media/_external/administrator.php
Kod
elseif(isset($_POST['saveUsers']))
{
if($_POST['saveUsers'] == "new")
{
$r = $db->execute("INSERT INTO users VALUES (NULL, '{$_POST['fullname']}', '{$_POST['username']}', '{$_POST['password']}', '{$_POST['mail']}', '{$_POST['birthdate']}')");
}
else
{
$r = $db->execute("UPDATE users SET fullname = '{$_POST['fullname']}', username = '{$_POST['username']}', password = '{$_POST['password']}', mail = '{$_POST['mail']}', birthdate = '{$_POST['birthdate']}'
WHERE id = '{$_POST['saveUsers']}'");
}
if(!$r)
{
echo "Wystąpił błąd podczas aktualizacji użytkowników!";
}
else
{
echo "true";
}
}
elseif(isset($_POST['removeUsers']))
{
$r1 = $db->execute("DELETE FROM users WHERE id = '{$_POST['id']}'");
echo ($r1) ? "true" : "Wystąpił błąd podczas usuwania użytkownika!";
}
else
{
die("Dostęp do tej strony został zablokowany przez administratora!");
}
{
if($_POST['saveUsers'] == "new")
{
$r = $db->execute("INSERT INTO users VALUES (NULL, '{$_POST['fullname']}', '{$_POST['username']}', '{$_POST['password']}', '{$_POST['mail']}', '{$_POST['birthdate']}')");
}
else
{
$r = $db->execute("UPDATE users SET fullname = '{$_POST['fullname']}', username = '{$_POST['username']}', password = '{$_POST['password']}', mail = '{$_POST['mail']}', birthdate = '{$_POST['birthdate']}'
WHERE id = '{$_POST['saveUsers']}'");
}
if(!$r)
{
echo "Wystąpił błąd podczas aktualizacji użytkowników!";
}
else
{
echo "true";
}
}
elseif(isset($_POST['removeUsers']))
{
$r1 = $db->execute("DELETE FROM users WHERE id = '{$_POST['id']}'");
echo ($r1) ? "true" : "Wystąpił błąd podczas usuwania użytkownika!";
}
else
{
die("Dostęp do tej strony został zablokowany przez administratora!");
}
Dla porównania załączam opcję pisania artykułów, która o dziwo działa:
Kod
<?php
class articlesmodel
{
private $__config;
private $__router;
private $__db;
private $__params;
public function __construct()
{
$this->__config = registry::register("config");
$this->__router = registry::register("router");
$this->__db = registry::register("db");
$this->__params = $this->__router->getParams();
}
public function drawArticlesList()
{
$result = "<table class=\"text wideTable\" cellspacing=\"0\">\n
<tbody>
<tr class=\"legend\">
<td style=\"min-width: 30px!important\">ID</td>
<td>Tytuł artykułu</td>
<td style=\"max-width: 600px!important\">Skrócona treść</td>
<td>Data dodania</td>
<td>Autor</td>
<td>Ocena</td>
<td>Funkcje</td>
</tr>";
$articles = $this->__db->execute("SELECT articles.id, articles.title, articles.text, articles.date, articles.author, SUM(ocena) as ocena
FROM articles
LEFT JOIN votes on articles.id = votes.id_artykul
GROUP BY votes.id_artykul");
if(!empty($articles))
{
foreach($articles as $article)
{
$result .= "<tr class=\"content\">
<td style=\"min-width: 30px!important\">{$article['id']}</td>
<td>{$article['title']}</td>
<td style=\"max-width: 600px!important\">".substr($article['text'], 0, 497)."...</td>
<td>{$article['date']}</td>
<td>{$article['author']}</td>
<td>{$article['ocena']}</td>
<td><a class=\"subtle\" href=\"".SERVER_ADDRESS."administrator/articles/view/".$article['id']."\">Edycja artykułu</a> | <a class=\"subtle\" href=\"java script:void(0);\" onClick=\"removeArticle('".$article['id']."');\">Usuń artykuł</a></td>
</tr>";
}
$result .= "</tbody></table>";
}
return $result;
}
}
class articlesmodel
{
private $__config;
private $__router;
private $__db;
private $__params;
public function __construct()
{
$this->__config = registry::register("config");
$this->__router = registry::register("router");
$this->__db = registry::register("db");
$this->__params = $this->__router->getParams();
}
public function drawArticlesList()
{
$result = "<table class=\"text wideTable\" cellspacing=\"0\">\n
<tbody>
<tr class=\"legend\">
<td style=\"min-width: 30px!important\">ID</td>
<td>Tytuł artykułu</td>
<td style=\"max-width: 600px!important\">Skrócona treść</td>
<td>Data dodania</td>
<td>Autor</td>
<td>Ocena</td>
<td>Funkcje</td>
</tr>";
$articles = $this->__db->execute("SELECT articles.id, articles.title, articles.text, articles.date, articles.author, SUM(ocena) as ocena
FROM articles
LEFT JOIN votes on articles.id = votes.id_artykul
GROUP BY votes.id_artykul");
if(!empty($articles))
{
foreach($articles as $article)
{
$result .= "<tr class=\"content\">
<td style=\"min-width: 30px!important\">{$article['id']}</td>
<td>{$article['title']}</td>
<td style=\"max-width: 600px!important\">".substr($article['text'], 0, 497)."...</td>
<td>{$article['date']}</td>
<td>{$article['author']}</td>
<td>{$article['ocena']}</td>
<td><a class=\"subtle\" href=\"".SERVER_ADDRESS."administrator/articles/view/".$article['id']."\">Edycja artykułu</a> | <a class=\"subtle\" href=\"java script:void(0);\" onClick=\"removeArticle('".$article['id']."');\">Usuń artykuł</a></td>
</tr>";
}
$result .= "</tbody></table>";
}
return $result;
}
}
Kod
function saveArticle(id)
{
var q = "";
var uid = "";
if(id == undefined || id == "")
{
q = "Czy chcesz utworzyć nowy artykuł o podanej treści ?";
uid = "new";
}
else
{
q = "Czy chcesz zapisać wprowadzone zmiany w artykule ?";
uid = id;
}
var ask = confirm(q);
if(ask)
{
CKEDITOR.instances['editor1'].updateElement();
var content = CKEDITOR.instances['editor1'].getData();
content = htmlspecialchars_decode(content);
content = content.replace(" ", " ");
var title = $("#artTitle").val();
var date = $("#artDate").val();
var author = $("#artAuthor").val();
$.ajax({
type: "POST",
url: "application/media/_external/administrator.php",
processdata: true,
data: "saveArticle=" + uid + "&title=" + title + "&date=" + date + "&author=" + author + "&text=" + escape(content),
dataType: 'html',
success: function(data)
{
if(data == "true")
{
window.location.replace("administrator/articles");
}
else
{
alert(data);
}
}
});
}
}
function removeArticle(id)
{
var ask = confirm("Czy na pewno chcesz usunąć ten artykuł ?");
if(ask)
{
$.ajax({
type: "POST",
url: "application/media/_external/administrator.php",
processdata: true,
data: "removeArticle=true&id=" + id,
dataType: 'html',
success: function(data)
{
if(data == "true")
{
window.location.reload();
}
else
{
alert(data);
}
}
});
}
}
{
var q = "";
var uid = "";
if(id == undefined || id == "")
{
q = "Czy chcesz utworzyć nowy artykuł o podanej treści ?";
uid = "new";
}
else
{
q = "Czy chcesz zapisać wprowadzone zmiany w artykule ?";
uid = id;
}
var ask = confirm(q);
if(ask)
{
CKEDITOR.instances['editor1'].updateElement();
var content = CKEDITOR.instances['editor1'].getData();
content = htmlspecialchars_decode(content);
content = content.replace(" ", " ");
var title = $("#artTitle").val();
var date = $("#artDate").val();
var author = $("#artAuthor").val();
$.ajax({
type: "POST",
url: "application/media/_external/administrator.php",
processdata: true,
data: "saveArticle=" + uid + "&title=" + title + "&date=" + date + "&author=" + author + "&text=" + escape(content),
dataType: 'html',
success: function(data)
{
if(data == "true")
{
window.location.replace("administrator/articles");
}
else
{
alert(data);
}
}
});
}
}
function removeArticle(id)
{
var ask = confirm("Czy na pewno chcesz usunąć ten artykuł ?");
if(ask)
{
$.ajax({
type: "POST",
url: "application/media/_external/administrator.php",
processdata: true,
data: "removeArticle=true&id=" + id,
dataType: 'html',
success: function(data)
{
if(data == "true")
{
window.location.reload();
}
else
{
alert(data);
}
}
});
}
}
Kod
elseif(isset($_POST['saveArticle']))
{
if($_POST['saveArticle'] == "new")
{
$q = $db->execute("INSERT INTO articles VALUES (NULL, '{$_POST['title']}', '{$_POST['text']}', '{$_POST['date']}', '{$_POST['author']}')");
}
else
{
$q = $db->execute("UPDATE articles SET title = '{$_POST['title']}', text = '{$_POST['text']}', date = '{$_POST['date']}', author = '{$_POST['author']}' WHERE id = '{$_POST['saveArticle']}'");
}
if(!$q)
{
echo "Wystąpił błąd podczas aktualizacji artykułów!";
}
else
{
echo "true";
}
}
elseif(isset($_POST['removeArticle']))
{
$q1 = $db->execute("DELETE FROM articles WHERE id = '{$_POST['id']}'");
$q2 = $db->execute("DELETE FROM votes WHERE id_artykul = '{$_POST['id']}'");
echo ($q1 && $q2) ? "true" : "Wystąpił błąd podczas usuwania artykułu!";
}
{
if($_POST['saveArticle'] == "new")
{
$q = $db->execute("INSERT INTO articles VALUES (NULL, '{$_POST['title']}', '{$_POST['text']}', '{$_POST['date']}', '{$_POST['author']}')");
}
else
{
$q = $db->execute("UPDATE articles SET title = '{$_POST['title']}', text = '{$_POST['text']}', date = '{$_POST['date']}', author = '{$_POST['author']}' WHERE id = '{$_POST['saveArticle']}'");
}
if(!$q)
{
echo "Wystąpił błąd podczas aktualizacji artykułów!";
}
else
{
echo "true";
}
}
elseif(isset($_POST['removeArticle']))
{
$q1 = $db->execute("DELETE FROM articles WHERE id = '{$_POST['id']}'");
$q2 = $db->execute("DELETE FROM votes WHERE id_artykul = '{$_POST['id']}'");
echo ($q1 && $q2) ? "true" : "Wystąpił błąd podczas usuwania artykułu!";
}
Może jestem ślepy, ale naprawdę nie widzę gdzie popełniłem błąd. Jeśli ktoś z bardziej doświadczonych userów jest wstanie mi pomóc to będę wdzięczny.