Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Edycja w systemie newsowym, jak edytować... ?
camelx
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) . Nie musi być to konkretny przykład, tylko napiszcie jak coś takiego można zrobić, na jakiej zasadzie to działa...
Go to the top of the page
+Quote Post
mario
post
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

Ostrzeżenie: (0%)
-----


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ą (IMG:http://forum.php.pl/style_emoticons/default/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.
Go to the top of the page
+Quote Post
camelx
post
Post #3





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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ć (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował camelx 1.05.2005, 21:00:06
Go to the top of the page
+Quote Post
mario
post
Post #4





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
camelx
post
Post #5





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Ociu
post
Post #6





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




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. ?>


Ten post edytował Ociu 2.05.2005, 07:43:21
Go to the top of the page
+Quote Post
camelx
post
Post #7





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
Ociu
post
Post #8





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




szablonow ? smarty ?
Go to the top of the page
+Quote Post
camelx
post
Post #9





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Używam szablonów z których korzysta phpBB (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Da się zrobić jakoś to co wcześniej napisałeś w za pomocą amiennej (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Ociu
post
Post #10





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




  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ć

Ten post edytował Ociu 2.05.2005, 14:34:57
Go to the top of the page
+Quote Post
camelx
post
Post #11





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 14.06.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Wszystko już działa!!! Dzięki Ociu, zrobiłem tak jak napisałeś i jest ok (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 00:08