Chciałem na mojej stronce zrobić przy newsach w miejscu gdzie pisze " dodany godzina i autor" żeby przed tym zdaniem była ikonka. Jeśli w danym newsie będzie dodany komentarz to wtedy ta ikonka będzie koloru pomarańczowego. Natomiast jeśli w newsie nie będzie żadnego komentarza to wtedy ta ikonka będzie koloru białego.
Udało mi się takie coś zrobić tylko wewnątrz newsa:
a) Ikonka pomarańczowa gdy jest komentarz: http://www.history.is.net.pl/news/22
b) ikonka biała gdy nie ma komentarza: http://www.history.is.net.pl/news/20
Natomiast nie umie tego zrobić tak, żeby te ikonki odpowiednio też wyświetlały się na stronie głównej mojej strony http://www.history.is.net.pl/
Może ktoś mi pomóc w tym ? bardzo Was proszę o pomoc w tej sprawie.
Tak wyglądają moje pliki:
index.php
<?php
error_reporting(E_ALL | E_STRICT);
require_once('Slim/Slim.php');
define('IN_APP', true);
$app = new Slim(array(
'templates.path' => 'templates'
));
require 'helpers.php';
require 'db.php';
require 'walidacja.php';
$db = new DB('darom.sqlite');
$zalogowany = false;
function waliduj ($kategoria, $dane) {
global $app;
$filtry = $app->config('walidacja');
$filtry = $filtry[$kategoria];
$komunikaty = $app->config('komunikaty');
$bledy = array();
foreach ($filtry as $pole => $filtr) {
$dana = isset($dane[$pole]) ? $dane[$pole] : null;
$obowiazkowe = false;
$wypelnione = $dana !== null && trim($dana) !== '';
$komunikaty = $filtr[1];
foreach ($filtr[0] as $nazwa => $argumenty) {
if ($argumenty === '*') {
$obowiazkowe = true;
if (!$wypelnione) {
$bledy[$pole] = $komunikaty['*'];
break;
}
} else if (!call_user_func_array($nazwa, array_merge(array($dana), $argumenty))) {
$bledy[$pole] = $komunikaty[$nazwa];
break;
}
}
if (!$obowiazkowe && !$wypelnione) {
unset($bledy[$pole]);
}
}
return $bledy;
}
/* Logika aplikacji */
$app->config(array(
'adminEmail' => 'history@is.net.pl',
'cookies.secret_key' => 'supertajnehaslodoszyfrowaniaciasteczek',
'newsowNaStrone' => 3,
'wpisowNaStrone' => 4,
'walidacja' => array(
'komentarze' => array(
'komentarz' => array(
array('*', 'minlength' => array(3)),
array('*' => 'Treść komentarza jest obowiązkowa', 'minlength' => 'Musisz wpisać conajmniej 3 znaki komentarza')
),
'autor' => array(
array('*', 'minlength' => array(3)),
array('*' => 'Musisz podać swoje imię lub ksywkę', 'minlength' => 'Twój podpis musi składać się z conajmniej 3 znaków')
)
),
'ksiega' => array(
'podpis' => array(
array('*', 'minlength' => array(3)),
array('*' => 'Musisz podać swoje imię lub ksywkę', 'minlength' => 'Twój podpis musi składać się z conajmniej 3 znaków')
),
'email' => array(
array('is_email' => array()),
array('is_email' => 'Niepoprawny adres email')
),
'www' => array(
array('is_url' => array()),
array('is_url' => 'Niepoprawny adres WWW')
),
'wpis' => array(
array('*', 'minlength' => array(3)),
array('*' => 'Wpis nie może być pusty', 'minlength' => 'Wpis musi składać się z conajmniej 3 znaków')
)
),
'kontakt' => array(
'temat' => array(
array('*', 'minlength' => array(3), 'maxlength' => array(256)),
array('*' => 'Podaj temat wiadomości', 'minlength' => 'Temat wiadomości powinien zawierać się w przedziale od 3 do 256 znaków', 'maxlength' => 'Temat wiadomości powinien zawierać się w przedziale od 3 do 256 znaków')
),
'email' => array(
array('*', 'is_email' => array()),
array('*' => 'Podaj swój adres e-mail', 'is_email' => 'Podaj poprawny adres e-mail')
),
'imie' => array(
array('*', 'minlength' => array(1)),
array('*' => 'Podaj swoje imię', 'minlength' => 'Podaj swoje imię')
),
'wiadomosc' => array(
array('*', 'minlength' => array(3)),
array('*' => 'Wpisz treść wiadomości', 'minlength' => 'Wpisz conajmniej 3 znaki wiadomości')
)
),
'rejestracja' => array(
'login' => array(
array('*', 'minlength' => array(3), 'maxlength' => array(20)),
array('*' => 'Podaj nazwę użytkownika', 'minlength' => 'Nazwa użytkownika powinna składać się od 3 do 20 znaków', 'maxlength' => 'Nazwa użytkownika powinna składać się od 3 do 20 znaków')
),
'email' => array(
array('*', 'is_email' => array()),
array('*' => 'Podaj swój adres e-mail', 'is_email' => 'Podaj poprawny adres e-mail')
),
'haslo' => array(
array('*', 'minlength' => array(6), 'maxlength' => array(100)),
array('*' => 'Wpisz hasło', 'minlength' => 'Hasło powinno składać się z conajmniej 6 znaków', 'maxlength' => 'Maksymalna długość hasła to 100 znaków')
),
'gg' => array(
array('*', 'is_gg' => array()),
array('*' => 'Podaj swój numer Gadu-Gadu', 'is_gg' => 'Podałeś niepoprawny numer Gadu-Gadu')
),
'skad' => array(
array('minlength' => array(3)),
array('minlength' => 'Nazwa miejscowości powinna mieć conajmniej 3 znaki')
)
),
'profil' => array(
'gg' => array(
array('*', 'is_gg' => array()),
array('*' => 'Numer Gadu-Gadu jest wymagany', 'is_gg' => 'Podałeś niepoprawny numer Gadu-Gadu')
),
'skad' => array(
array('minlength' => array(3)),
array('minlength' => 'Nazwa miejscowości powinna mieć conajmniej 3 znaki')
)
)
),
'dane_sesyjne' => array(
'userid' => 'id',
'username' => 'login',
'useremail' => 'email'
)
));
$app->hook('slim.before.router', 'autologin_hook');
$app->get('/(:strona)', 'strona_glowna')->conditions(array('strona'=>'[1-9]\d*'));
$app->get('/news/:news', 'wybrany_news')->name('news')->conditions(array('news'=>'\d+'));
$app->post('/news/:news', 'nowy_komentarz')->conditions(array('news'=>'\d+'));
$app->get('/download', 'download_kategorie');
$app->get('/download/:kategoria', 'download_kategoria')->conditions(array('kategoria'=>'\d+'));
$app->get('/download/:kategoria/:plik', 'download_plik')->name('download_plik')->conditions(array('kategoria'=>'\d+', 'plik' => '\d+'));
$app->post('/download/:kategoria/:plik', 'komentarz_do_pliku')->conditions(array('kategoria'=>'\d+', 'plik' => '\d+'));
$app->get('/download/:kategoria/:plik/pobierz', 'tylko_dla_zalogowanych', 'pobieranie_pliku')->conditions(array('kategoria'=>'\d+', 'plik' => '\d+'));
$app->get('/faq', 'faq_kategorie');
$app->get('/faq/:kategoria', 'faq_kategoria')->conditions(array('kategoria'=>'\d+'));
$app->get('/faq/:kategoria/:pytanie', 'faq_pytanie')->conditions(array('kategoria'=>'\d+', 'pytanie' => '\d+'));
$app->get('/czat', 'tylko_dla_zalogowanych', 'czat');
$app->get('/ksiega(/:strona)', 'ksiega_gosci')->conditions(array('strona' => '[1-9]\d*'));
$app->get('/ksiega/dodaj', 'ksiega_dodaj_wpis');
$app->post('/ksiega/dodaj', 'ksiega_dodawanie_wpisu');
$app->get('/kontakt', 'formularz_kontaktowy');
$app->post('/kontakt', 'wysylanie_wiadomosci');
$app->get('/uzytkownicy(/:strona)', 'lista_uzytkownikow')->conditions(array('strona'=>'[1-9]\d*'));
$app->get('/rejestracja', 'formularz_rejestracyjny');
$app->post('/rejestracja', 'rejestracja_uzytkownika');
$app->get('/logowanie', 'strona_logowania');
$app->post('/logowanie', 'logowanie_uzytkownika');
$app->get('/wyloguj', 'wylogowywanie_uzytkownika');
$app->get('/profil', 'profil_uzytkownika');
$app->post('/profil', 'aktualizacja_profilu');
$app->post('/profil/haslo', 'zmiana_hasla');
$app->get('/status', 'update_status');
function autologin_hook () {
global $app;
global $db;
if (!isset($_SESSION['userid'])) {
$cookie = $app->getEncryptedCookie('remember_me');
if ($cookie) {
$data = array();
parse_str($cookie, $data);
if (!empty($data['user']) && !empty($data['hash'])) {
$user = $db->select('SELECT * FROM uzytkownicy WHERE login = :user', array(':user' => $data['user']));
if ($user) {
if ($user['login'] == $data['user'] && md5($user['id'] . '' . $user['haslo']) == $data['hash']) {
$sesja_uzytkownika = $app->config('dane_sesyjne');
foreach ($sesja_uzytkownika as $zmienna => $dana) {
$_SESSION[$zmienna] = $user[$dana];
}
}
}
}
}
}
}
function tylko_dla_zalogowanych () {
global $app;
if (!zalogowany()) {
$app->status(403);
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('403.php');
$app->render('stopka.php');
$app->stop();
}
}
function strona_glowna ($strona = 1) {
global $app;
global $db;
$maxNewsow = $app->config('newsowNaStrone');
$newsy = $db->selectAll('SELECT n.*, u.login, u.uprawnienia FROM newsy n LEFT JOIN uzytkownicy u ON (u.id = n.autor) ORDER BY data_dodania DESC LIMIT :index,:limit', array(
':index' => ($strona - 1) * $maxNewsow, ':limit' => $maxNewsow
));
$ilosc = $db->select('SELECT COUNT(1) as ilosc FROM newsy');
$ilosc = $ilosc['ilosc'];
$stron = ceil($ilosc / $maxNewsow);
if (empty($newsy)) {
$app->notFound();
} else {
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('newsy.php', array('root' => '/', 'newsroot' => '/news', 'strona' => $strona, 'stron' => $stron, 'newsy' => $newsy));
$app->render('stopka.php');
}
}
function wybrany_news ($news) {
global $app;
global $db;
$dane = $db->select('SELECT n.*, u.login, u.uprawnienia FROM newsy n LEFT JOIN uzytkownicy u ON (u.id = n.autor) WHERE n.id = :news', array (
':news' => $news
));
$komentarze = $db->selectAll('SELECT * FROM komentarze WHERE news = :news ORDER BY data_dodania DESC', array(':news' => $news));
if ($dane && !empty($dane)) {
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data(), 'dzial' => 'news', 'skrypty' => array('http://code.jquery.com/jquery-1.7.1.min.js', '/skrypty/news.js')));
$app->render('news.php', array(
'root' => '/news',
'url' => $app->urlFor('news', array('news' => $news)),
'news' => $dane,
'komentarze' => $komentarze
));
$app->render('stopka.php');
} else {
$app->notFound();
}
}
function nowy_komentarz ($news) {
global $app;
global $db;
$req = $app->request();
$autor = trim($req->post('autor'));
$komentarz = $req->post('komentarz');
$news_istnieje = $db->select('SELECT id FROM newsy WHERE id = :news', array(':news' => $news));
if ($news_istnieje) {
if ($autor && $komentarz && strlen($komentarz) >= 3) {
$db->query('INSERT INTO komentarze (news, autor, data_dodania, tresc) VALUES (:news, :autor, :data_dodania, :tresc)', array(
':news' => $news,
':autor' => $autor,
':data_dodania' => time(),
':tresc' => $komentarz
));
} else {
$app->flash('walidacja.msg', 'Wypełnij wszystkie pola formularza');
if ($autor) {
$app->flash('walidacja.autor', $autor);
}
if ($komentarz) {
$app->flash('walidacja.komentarz', $komentarz);
}
}
$app->redirect($app->urlFor('news', array('news' => $news)));
} else {
$app->notFound();
}
}
function download_kategorie () {
global $db;
global $app;
$kategorie = $db->selectAll('SELECT dk.*, IFNULL(p.ilosc, 0) ilosc FROM download_kategorie dk LEFT JOIN (SELECT kategoria, count(1) ilosc FROM download GROUP BY kategoria) p ON (p.kategoria = dk.id)');
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data(), 'dzial' => 'download_kategorie'));
$app->render('download_kategorie.php', array ('root' => '/download', 'kategorie' => $kategorie));
$app->render('stopka.php');
}
function download_kategoria ($kategoria) {
global $app;
global $db;
$pliki = $db->selectAll('SELECT * FROM download WHERE kategoria = :kategoria', array (':kategoria' => intval($kategoria)));
$pobran_wszystkich = $db->select("SELECT SUM(pobran) as licznik FROM download");
$pobran_wszystkich = empty($pobran_wszystkich) ? '0' : $pobran_wszystkich['licznik'];
$pobran_z_kategorii = $db->select("SELECT SUM(pobran) as licznik FROM download WHERE kategoria = :kategoria", array (':kategoria' => intval($kategoria)));
$pobran_z_kategorii = empty($pobran_z_kategorii) ? '0' : $pobran_z_kategorii['licznik'];
$nazwa_kategorii = $db->select("SELECT nazwa FROM download_kategorie WHERE id = :id", array (':id' => intval($kategoria)));
$nazwa_kategorii = empty($nazwa_kategorii) ? '' : $nazwa_kategorii['nazwa'];
$komentarze=array();
foreach ($pliki as $index => $plik)
{
$licznik = $db->select("SELECT COUNT(1) as licznik FROM download_komentarze WHERE plik = :plik", array (':plik' => intval($plik["id"])));
$komentarze[$index] = $licznik['licznik'];
}
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('download_pliki.php', array(
'root' => '/download/' . $kategoria,
'pliki' => $pliki,
'pobran_wszystkich' => $pobran_wszystkich,
'pobran_z_kategorii' => $pobran_z_kategorii,
'nazwa_kategorii' => $nazwa_kategorii,
'id_kategorii' => $kategoria,
'komentarze' => $komentarze
));
$app->render('stopka.php');
}
function download_plik ($kategoria, $plik) {
global $app;
global $db;
$dane = $db->select('SELECT * FROM download WHERE id = :plik AND kategoria = :kategoria', array (':plik' => intval($plik), ':kategoria' => intval($kategoria)));
$nazwa_kategorii = $db->select("SELECT nazwa FROM download_kategorie WHERE id = :id", array (':id' => intval($kategoria)));
$nazwa_kategorii = empty($nazwa_kategorii) ? '' : $nazwa_kategorii['nazwa'];
$komentarze = $db->selectAll('SELECT * FROM download_komentarze WHERE plik = :plik ORDER BY data_dodania DESC', array(':plik' => $plik));
$uzytkownicy = $db->selectAll('SELECT * FROM uzytkownicy ORDER BY data_rejestracji ASC');
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('download_plik.php', array('root' => '/download/' . $kategoria . '/' . $plik, 'plik' => $dane, 'nazwa_kategorii' => $nazwa_kategorii, 'id_kategorii' => $kategoria, 'komentarze' => $komentarze));
$app->render('stopka.php');
}
function komentarz_do_pliku ($kategoria, $plik) {
global $app;
global $db;
$plik_istnieje = $db->select('SELECT id FROM download WHERE id = :plik AND kategoria = :kategoria', array(':plik' => $plik, ':kategoria' => $kategoria));
if ($plik_istnieje) {
require_once('Browser.php');
$br = new Browser($_SERVER['HTTP_USER_AGENT']);
$req = $app->request();
$autor = trim($req->post('autor'));
$komentarz = $req->post('komentarz');
$antyspam = $req->post('antyspam');
$spam = false;
if ($antyspam != md5($plik)) {
$spam = true;
} else {
include_once 'sblamtest.php';
$antyspam = sblamtestpost(array('komentarz', 'autor', null, null), 'GLeNVDd680CL1n1e0T');
if ($antyspam > 0) {
$spam = true;
}
}
if (!$spam && $komentarz && strlen($komentarz) >= 3) {
$db->query('INSERT INTO download_komentarze (plik, autor, data_dodania, tresc, browser, system, ua) VALUES (:plik, :autor, :data_dodania, :tresc, :browser, :system, :ua)', array(
':plik' => $plik,
':autor' => empty($autor) ? '~Anonimowy' : isset($_SESSION['userid']) ? _e($_SESSION['username']) : '~'. $autor,
':data_dodania' => time(),
':tresc' => $komentarz,
':browser' => $br->getBrowser(),
':system' => $br->getPlatform(),
':ua' => $_SERVER['HTTP_USER_AGENT']
));
} else if ($spam) {
$app->flash('walidacja.msg', 'System uznał twój komentarz za spam. Jeśli to pomyłka, zgłoś autorowi strony');
} else {
$app->flash('walidacja.msg', 'Wypełnij wszystkie pola formularza');
if ($autor) {
$app->flash('walidacja.autor', $autor);
}
if ($komentarz) {
$app->flash('walidacja.komentarz', $komentarz);
}
}
$app->redirect($app->urlFor('download_plik', array('kategoria' => $kategoria, 'plik' => $plik)));
} else {
$app->notFound();
}
}
function pobieranie_pliku ($kategoria, $plik) {
global $app;
global $db;
$dane = $db->select('SELECT * FROM download WHERE id = :plik AND kategoria = :kategoria', array(':plik' => intval($plik), ':kategoria' => intval($kategoria)));
if ($dane) {
$db->query('UPDATE download SET pobran = pobran + 1 WHERE id = :plik AND kategoria = :kategoria', array (':plik' => intval($plik), ':kategoria' => intval($kategoria)));
$app->redirect($dane['plik']);
} else {
$app->notFound();
}
}
function faq_kategorie () {
global $db;
global $app;
$kategorie = $db->selectAll('SELECT * FROM faq_kategorie');
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data(), 'dzial' => 'faq_kategorie'));
$app->render('faq_kategorie.php', array ('root' => '/faq', 'kategorie' => $kategorie));
$app->render('stopka.php');
}
function faq_kategoria ($kategoria) {
global $app;
global $db;
$pytania = $db->selectAll('SELECT * FROM faq WHERE kategoria = :kategoria', array (':kategoria' => intval($kategoria)));
$nazwa_kategorii = $db->select('SELECT nazwa FROM faq_kategorie WHERE id = :id', array (':id' => intval($kategoria)));
$nazwa_kategorii = empty($nazwa_kategorii) ? '' : $nazwa_kategorii['nazwa'];
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('faq_pytania.php', array('root' => '/faq/' . $kategoria, 'pytania' => $pytania, 'nazwa_kategorii' => $nazwa_kategorii, 'id_kategorii' => $kategoria));
$app->render('stopka.php');
}
function faq_pytanie ($kategoria, $pytanie) {
global $app;
global $db;
$odpowiedz = $db->select('SELECT * FROM faq WHERE id = :pytanie AND kategoria = :kategoria', array (':pytanie' => intval($pytanie), ':kategoria' => intval($kategoria)));
$nazwa_kategorii = $db->select('SELECT nazwa FROM faq_kategorie WHERE id = :id', array (':id' => intval($kategoria)));
$nazwa_kategorii = empty($nazwa_kategorii) ? '' : $nazwa_kategorii['nazwa'];
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('faq_pytanie.php', array('root' => '/faq/' . $kategoria, 'pytanie' => $odpowiedz, 'nazwa_kategorii' => $nazwa_kategorii, 'id_kategorii' => $kategoria));
$app->render('stopka.php');
}
function czat () {
global $app;
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('czat.php');
$app->render('stopka.php');
}
function ksiega_gosci ($strona = 1) {
global $app;
global $db;
$maxWpisow = $app->config('wpisowNaStrone');
$wpisy = $db->selectAll('SELECT * FROM ksiega ORDER BY data_dodania DESC LIMIT :index,:limit', array(
':index' => ($strona - 1) * $maxWpisow, ':limit' => $maxWpisow
));
$ilosc = $db->select('SELECT COUNT(1) as ilosc FROM ksiega');
$ilosc = $ilosc['ilosc'];
$stron = ceil($ilosc / $maxWpisow);
if (empty($wpisy) && $strona != 1) {
$app->notFound();
} else {
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('ksiega.php', array('wpisy' => $wpisy, 'strona' => $strona, 'stron' => $stron, 'wpisow' => $ilosc, 'limit' => $maxWpisow, 'url' => '/ksiega'));
$app->render('stopka.php');
}
}
function ksiega_dodaj_wpis () {
global $app;
global $db;
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('ksiega_dodaj.php', array('url' => '/ksiega/dodaj'));
$app->render('stopka.php');
}
function ksiega_dodawanie_wpisu () {
global $app;
global $db;
$req = $app->request();
$podpis = $req->post('podpis');
$email = $req->post('email');
$www = $req->post('www');
$wpis = $req->post('wpis');
$bledy = waliduj('ksiega', $req->post());
if (isset($_SESSION['userid']))
{
$podpis = _e($_SESSION['username']);
$email = _e($_SESSION['useremail']);
}
if (empty($bledy)) {
$db->query('INSERT INTO ksiega (autor, www, email, wpis, data_dodania) VALUES (:autor, :www, :email, :wpis, :data_dodania)', array(
':autor' => isset($_SESSION['userid']) ? $podpis : '~'. $podpis,
':email' => empty($email) ? '' : $email,
':www' => empty($www) ? '' : $www,
':wpis' => $wpis,
':data_dodania' => time()
));
$app->redirect('/ksiega');
} else {
$app->flash('walidacja', $bledy);
$app->redirect('/ksiega/dodaj');
}
}
function formularz_kontaktowy () {
global $app;
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('kontakt.php');
$app->render('stopka.php');
}
function wysylanie_wiadomosci () {
global $app;
$req = $app->request();
$post = $req->post();
$bledy = waliduj('kontakt', $post);
if (empty($bledy)) {
require_once("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->PluginDir = "phpmailer/";
$mail->Mailer = "smtp";
$mail->Host = "ssl://smtp.gmail.com";
$mail->Port = 465;
$mail->SMTPKeepAlive = true;
$mail->SMTPAuth = true;
$mail->Username = "";
$mail->Password = "";
$mail->SetLanguage("pl", "phpmailer/language/");
$mail->CharSet = "utf-8";
$mail->ContentType = "text/html";
$mail->FromName = $post['imie'];
$mail->Subject = $post['temat'];
$message = 'Witaj,
Otrzymujesz ten email ponieważ został wysłany przez formularz ze strony: www.history.is.net.pl
Wiadomość została wysłana przez użytkownika ' . $post['imie'] . ', który posiada adres email: ' . $post['email'] . '
Treść wiadomości:
' . $post['wiadomosc'];
$mail->Body = $message;
$mail->AddAddress($app->config('adminEmail'));
$wyslano = $mail->Send();
$app->flash('kontakt_wyslano', $wyslano);
if (!$wyslano) {
$app->flash('kontakt_wartosci', $post);
}
$mail->SmtpClose();
} else {
$app->flash('kontakt_walidacja', $bledy);
$app->flash('kontakt_wartosci', $post);
}
$app->redirect('/kontakt');
}
function lista_uzytkownikow ($strona = 1) {
global $app;
global $db;
$uzytkownicy = $db->selectAll('SELECT * FROM uzytkownicy ORDER BY data_rejestracji ASC');
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data(), 'dzial' => 'users'));
$app->render('uzytkownicy.php', array('uzytkownicy' => $uzytkownicy, 'strona' => $strona));
$app->render('stopka.php');
}
function update_status () {
global $app;
global $db;
$app->render('status.php');
}
function formularz_rejestracyjny () {
global $app;
if (zalogowany()) {
$app->redirect('/profil');
} else {
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('rejestracja.php');
$app->render('stopka.php');
}
}
function rejestracja_uzytkownika () {
global $app;
global $db;
if (zalogowany()) {
$app->redirect('/profil');
} else {
$req = $app->request();
$dane = $req->post();
$bledy = waliduj('rejestracja', $dane);
if (empty($bledy)) {
$uzytkownik_istnieje = $db->select('SELECT id FROM uzytkownicy WHERE login = :login', array(':login' => $dane['login']));
if ($uzytkownik_istnieje) {
$app->flash('komunikat_typ', 'blad');
$app->flash('komunikat', 'Wybrana przez Ciebie nazwa użytkownika jest już zajęta');
$app->flash('formularz', $dane);
$app->redirect('/rejestracja');
} else if ($db->query('INSERT INTO uzytkownicy (login, haslo, email, gg, skad, data_rejestracji) VALUES (:login, :haslo, :email, :gg, :skad, :data_rejestracji)', array (
':login' => $dane['login'],
':haslo' => md5($dane['haslo']),
':email' => $dane['email'],
':gg' => $dane['gg'],
':skad' => isset($dane['skad']) ? $dane['skad'] : '',
':data_rejestracji' => time()))) {
$uzytkownik = $db->select('SELECT id, login, email FROM uzytkownicy WHERE login = :login', array(':login' => $dane['login']));
$sesja_uzytkownika = $app->config('dane_sesyjne');
foreach ($sesja_uzytkownika as $zmienna => $dana) {
$_SESSION[$zmienna] = $uzytkownik[$dana];
}
$app->redirect('/');
} else {
$app->flash('komunikat_typ', 'blad');
$app->flash('komunikat', 'Wystąpił błąd podczas tworzenia konta. Proszę spróbować jeszcze raz');
$app->flash('formularz', $dane);
}
} else {
$app->flash('walidacja', $bledy);
$app->redirect('/rejestracja');
}
}
}
function strona_logowania () {
global $app;
$app->render('naglowek.php', array('logowanie' => false, 'imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('logowanie.php');
$app->render('stopka.php');
}
function logowanie_uzytkownika () {
global $app;
global $db;
if (!zalogowany()) {
$req = $app->request();
$login = $req->post('login');
$haslo = $req->post('haslo');
$zapamietaj_mnie = $req->post('remember_me');
if ($login && $haslo) {
$uzytkownik = $db->select('SELECT * FROM uzytkownicy WHERE login = :login AND haslo = :haslo', array(
':login' => $login,
':haslo' => md5($haslo)
));
if ($uzytkownik) {
$sesja_uzytkownika = $app->config('dane_sesyjne');
foreach ($sesja_uzytkownika as $zmienna => $dana) {
$_SESSION[$zmienna] = $uzytkownik[$dana];
}
if ($zapamietaj_mnie) {
$app->setEncryptedCookie('remember_me', build_http_query(array('user' => $uzytkownik['login'], 'hash' => md5($uzytkownik['id'] . '' . $uzytkownik['haslo']))), '1 month');
}
} else {
$app->flash('komunikat', 'Niepoprawny login lub hasło');
}
} else {
$app->flash('komunikat', 'Podaj login i hasło');
}
}
$app->redirect('/logowanie');
}
function wylogowywanie_uzytkownika () {
global $app;
global $db;
$db->query('UPDATE uzytkownicy SET status_uzytkownika = 0 WHERE id = :id', array(':id' => $_SESSION['userid']));
unset($_SESSION['userid'], $_SESSION['username'], $_SESSION['useremail']);
if ($app->getEncryptedCookie('remember_me')) {
$app->setEncryptedCookie('remember_me', '', -1);
}
$app->redirect('/');
}
function profil_uzytkownika () {
global $app;
global $db;
if (zalogowany()) {
$uzytkownik = $db->select('SELECT * FROM uzytkownicy WHERE id = :id', array(':id' => intval($_SESSION['userid'])));
$app->render('naglowek.php', array('imieniny' => imieniny(), 'aktualna_data' => aktualna_data()));
$app->render('profil.php', array('uzytkownik' => $uzytkownik));
$app->render('stopka.php');
} else {
$app->redirect('/logowanie');
}
}
function aktualizacja_profilu () {
global $app;
global $db;
if (zalogowany()) {
$req = $app->request();
$dane = $req->post();
$bledy = waliduj('profil', $dane);
if (empty($bledy)) {
$zmienne = array(
':id' => $_SESSION['userid']
);
$pola = array();
$email = $req->post('email');
$gg = $req->post('gg');
$skad = $req->post('skad');
if ($email) {
$zmienne[':email'] = $email;
$pola []= 'email = :email';
}
if ($gg) {
$zmienne[':gg'] = $gg;
$pola []= 'gg = :gg';
}
$zmienne[':skad'] = $skad == null ? '' : $skad;
$pola []= 'skad = :skad';
if ($db->query('UPDATE uzytkownicy SET ' . implode(', ', $pola) . ' WHERE id = :id', $zmienne)) {
$app->flash('komunikat', 'Profil został zaktualizowany');
$app->flash('komunikat.typ', 'info');
} else {
$app->flash('komunikat', 'Wystąpił błąd podczas aktualizacji profilu');
$app->flash('komunikat.typ', 'error');
}
} else {
$app->flash('komunikaty', $bledy);
}
}
$app->redirect('/profil');
}
function zmiana_hasla () {
global $app;
global $db;
if (zalogowany()) {
$req = $app->request();
$aktualne_haslo = $req->post('aktualne_haslo');
$nowe_haslo = $req->post('nowe_haslo');
$powtorzone_haslo = $req->post('powtorzone_haslo');
$app->flash('zmiana_hasla.typ', 'error');
if ($aktualne_haslo && $nowe_haslo && $powtorzone_haslo && trim($nowe_haslo) && trim($powtorzone_haslo)) {
if ($nowe_haslo === $powtorzone_haslo) {
$haslo_poprawne = $db->select('SELECT id FROM uzytkownicy WHERE id = :id AND haslo = :haslo', array(
':id' => $_SESSION['userid'],
':haslo' => md5($aktualne_haslo)
));
if ($haslo_poprawne) {
if ($db->query('UPDATE uzytkownicy SET haslo = :haslo WHERE id = :id', array(
':haslo' => md5($nowe_haslo),
':id' => $_SESSION['userid']
))) {
$app->flash('zmiana_hasla', 'Hasło zostało zmienione');
$app->flash('zmiana_hasla.typ', 'info');
} else {
$app->flash('zmiana_hasla', 'Wystąpił błąd podczas zmiany hasła');
}
} else {
$app->flash('zmiana_hasla', 'Podałeś niepoprawne aktualne hasło');
}
} else {
$app->flash('zmiana_hasla', 'Powtórzone hasło różni się od podanego nowego hasła');
}
} else {
$app->flash('zmiana_hasla', 'Wypełnij wszystkie pola zmiany hasła');
}
}
$app->redirect('/profil');
}
$app->run();
?>[/code]
[b]news.php[/b]
[code]
<?php echo $news[‘tytul’]; ?>
newsy.php
- ?php function str_cut ($str, $d=‘…’) { $pos = strpos($str, ‘’); if ($pos !== false) { return substr($str, 0, $pos) . $d; } return $str; } foreach ($newsy as $news) { ?
?php echo $news[‘tytul’]; ?
?php $miesiace = array(„”, „stycznia”, „lutego”, „marca”, „kwietnia”, „maja”, „czerwca”, „lipca”, „sierpnia”, „września”, „października”, „listopada”, „grudnia”); $is_admin = $news[‘uprawnienia’] == 1; printf(‘dodany %s %s %sr., o godz. %s przez %s’, date(‘d’, $news[‘data_dodania’]), $miesiace[date(‘n’, $news[‘data_dodania’])], date(‘Y’, $news[‘data_dodania’]), date(‘H:i’, $news[‘data_dodania’]), ($is_admin ? ‘’ : ‘’) . $news[‘login’] . ($is_admin ? ‘’ : ‘’)); ?
?php echo str_cut($news[‘tresc’], ‘Czytaj całość…’); ?
?php } ?
?php if ($stron 1) { ?
- ?php for($i = 1; $i = $stron; $i++) { ?
-
?php if ($i == $strona) { ??php } ??php echo $i; ??php if ($i == $strona) { ??php } ??php } ?
?php } ?[/code]