Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Edycja w systemie newsowym
Forum PHP.pl > Forum > Przedszkole
camelx
Czy mogli byscie mi wytłumaczyć, jak mogę zrobić możliwość edycji newsa. Chodzi mi o to, jak zrobic cos takiego, że pojawia sie opcja "edytuj" przy newsie wysłanym przez danego usera questionmark.gif. Nie musi być to konkretny przykład, tylko napiszcie jak coś takiego można zrobić, na jakiej zasadzie to działa...
mario
Najprościej to zastosować własny panel administracji treścią - szybko napiszesz własną procedurę edycji treści. Chyba, że masz coś w rodzaju logowania na stronie, wtedy wystarczy oprzeć to na sesjach, siebie dać jako ADMINa i udostępniasz sobie dzięki temu przycisk edytuj który nie robic nic innego jak właśnie edytujesz treść. W sumie to wychodzi na jedno - napisz własny panel administracji treścią smile.gif

Panel administracji treścią wystarczy oprzeć to na formularzu, polu TEXTAREA. Najpierw wyświetlamy sobie spis news'ów, dajemy przycisk EDYTUJ, pobieramy dane z bazy bądź pliku, edytujemy i zapisujemy do bazy lub pliku.
camelx
Mam system logowania i rejestracji użytkowników, mam też 3-stopniowy system praw użytkowników (admin, mod, user). Admin i moderator mogą edytować wszystkie newsy (to już zrobiłem). Chodzi o to, żeby zalogowany user mógł edytować tylko swojego newsa (link "edytuj" tylko koło newsa zalogowanego usera). Wiecie jak to zrobić questionmark.gif
mario
A to co innego. Sorki za złą odpowiedź. Proponuję zapisywanie w bazie IP, hosta i adres lokalny maszynki usera. Wtedy masz pewność że to ta sama osoba i możesz jej udostępnić funkcję edycji. Gdzieś w necie widziałem funkcję która "wyciągała" adres lokalny maszynki pracującej w sieci lokalnej, inaczej nie da się zidentyfikować danego usera gdyż wszyscy z danej sieci lokalnej widzeni są jako jeden i ten sam user.
camelx
Ale niektórzy mają zmienne ip...
Ja wymyśliłem cos takiego: if($id == $user_id), gdzie "$id" to jest nr ID zalogowanego usera a "$user_id" to id zapisany w bazie w tabeli z newsami. Tabela z newsami wygląda tak: news_id | tresc | user_id. Jeśli user_id=2 to znaczy, że newsa dodał user o id=2.
Myslę, że to było by dobre rozwiązanie, tylko nie wiem co zrobić żeby "edytuj" pojawiało się tylko przy newsie danego usera...
Macie moze jeszcze jakieś pomysły questionmark.gif
Ociu
wrzucasz id newsmana do ciastka, potem:
  1. <?php
  2. $sql = mysql_query(&#092;"SELECT * FROM news\");
  3. while($r = mysql_fetch_array($sql))
  4. {
  5. echo 'news '. ($r['user_id'] == $_COOKIE['user_id']) ? &#092;"edytuj\": \"\";
  6. }
  7. ?>
camelx
Załóżmy, że zrobiłem coś takiego
  1. <?php
  2. if($r['user_id'] == $_COOKIE['user_id']) $edit = 'edytuj';
  3. ?>
Ale coś takiego nie działa. Nie mogę użyć echo bo korzytsam z szablonów... Jak można to zrobić inaczej ?
Ociu
szablonow ? smarty ?
camelx
Używam szablonów z których korzysta phpBB smile.gif
Da się zrobić jakoś to co wcześniej napisałeś w za pomocą amiennej questionmark.gif
Ociu
  1. <?php
  2. if($r['user_id'] == $_COOKIE['user_id']):
  3. $edit = 'edytuj';
  4. elseif:
  5. $edit = '';
  6. endif;
  7. ?>


Musisz Przynajmniej zaznaczyć, że uzywasz, że zmienna jest, bo tak to zmienna nie będzie istnieć
camelx
Wszystko już działa!!! Dzięki Ociu, zrobiłem tak jak napisałeś i jest ok smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.