PhocaGallery jak dodać możliwość głosowania przez niezalogowanych?
Wyniki 1 do 4 z 4

Temat: PhocaGallery jak dodać możliwość głosowania przez niezalogowanych?

Widok drzewa

Poprzednia wiadomość Poprzednia wiadomość   Następna wiadomość Następna wiadomość
  1. #1
    Wyga Jola awatar
    Dołączył
    08-01-2008
    Skąd
    Wrocław
    Wpisy
    3 239
    Punkty
    386

    Domyślny PhocaGallery jak dodać możliwość głosowania przez niezalogowanych?

    Phoca Gallery nie pozwala na głosowanie na kategorie i na zdjęcia bez zalogowania się użytkownika. Oddane głosy i autorów zapisuje w tabelach a administrator ma możliwość wglądu w takie statystyki.
    Pokażę jak można skłonić komponent żeby pozwalał głosować niezalogowanym - Gościom. Po modyfikacji w bazie będzie zapisywane IP Gościa (jeśli użytkownik się nie logował), dlatego powtórne głosowanie na kategorię lub zdjęcie z tego samego IP nie będzie możliwe.
    W panelu administratora w podglądzie głosowań nazwa Gościa została zastąpiona jego IP.
    Wszystkie standardowe działania PhocaGallery dotyczące użytkowników zalogowanych nie ulegną zmianie.
    Opis zmian i podane linie kodu dotyczą wersji 2.5.8, w nawiasie linia kodu dla wersji 2.6.0.Beta.
    Ocenianie kategorii
    Front
    plik components/com_phocagallery/views/category/view.html.php linia 1180 (1363) jest:
    Kod PHP:
    $tmpl['notregistered']     = true
    zmienić na:
    Kod PHP:
    if($user->aid == 0)
    $tmpl['notregistered']     = false
    ten sam plik linia 1217 (1399) jest:
    Kod PHP:
    // Already rated?
    $tmpl['alreadyrated']    = PhocaGalleryRateCategory::checkUserVote( (int)$id, (int)$user->id ); 
    zmienić na:
    Kod PHP:
    // Already rated?
    ////dodane
    if(!$user->id$user->id = (int)str_replace('.','',$_SERVER['REMOTE_ADDR']);  
    /////koniec dodane
    $tmpl['alreadyrated']    = PhocaGalleryRateCategory::checkUserVote( (int)$id, (int)$user->id ); 
    components/com_phocagallery/controllers/category.php linia 512 (462) jest:
    Kod PHP:
    $model $this->getModel('category'); 
    zmienić na:
    Kod PHP:
    $model $this->getModel('category');
    /////dodane
    if(!$post['userid']){
          
    $post['userid'] = (int)str_replace('.','',$_SERVER['REMOTE_ADDR']);    
    }
    //////koniec dodane 
    ten sam plik linia 476 (525) jest:
    Kod PHP:
    if ($user->aid && $user->id 0) { 
    zmienić na:
    Kod PHP:
    if (($user->aid && $user->id 0) || $user->aid == 0) { //zmiana 
    Administrator
    plik administrator/components/com_phocagallery/models/phocagalleryra.php linia 69 (69) jest:
    Kod PHP:
    $query ' SELECT a.*, cc.title AS category, ua.name AS editor, u.id AS ratinguserid, u.username AS ratingusername ' 
    zmienić na:
    Kod PHP:
    $query ' SELECT a.*, cc.title AS category, ua.name AS editor, ifnull(u.id,a.userid) AS ratinguserid, ifnull(u.username, a.userid) AS ratingusername ' 
    ten sam plik linia 107 jest:
    Kod PHP:
    $where[] = 'a.userid = u.id'
    zmienić na:
    Kod PHP:
    $where[] = '(a.userid = u.id OR a.userid>0)'
    Ocenianie zdjęć
    front

    plik
    components/com_phocagallery/views/detail/view.html.php linia 186 (199) jest:
    Kod PHP:
    $tmpl['notregisteredimg']     = true
    zmienić na:
    Kod PHP:
    if($user->aid == 0)
    $tmpl['notregisteredimg']     = false
    plik components/com_phocagallery/controllers/detail.php linia 54 (54) jest:
    Kod PHP:
    $model $this->getModel('detail'); 
    zmienić na:
    Kod PHP:
    $model $this->getModel('detail');
    /////dodane
    if(!$post['userid']){
        
    $post['userid'] = (int)str_replace('.','',$_SERVER['REMOTE_ADDR']);    
    }
    //////    koniec dodane 
    ten sam plik linia 71 jest
    Kod PHP:
    if ($user->aid && $user->id 0) { 
    zamienić na
    Kod PHP:
    if (($user->aid && $user->id 0) || $user->aid == 0) { 


    Administrator

    plik administrator/components/com_phocagallery/models/phocagalleryraimg.php linia 63 (63) jest:
    Kod PHP:
    $query ' SELECT a.*, cc.title AS categorytitle, cc.id AS categoryid, i.title AS imagetitle, i.id AS imageid, ua.name AS editor, u.id AS ratinguserid, u.username AS ratingusername ' 
    zamienić na:
    Kod PHP:
    $query ' SELECT a.*, cc.title AS categorytitle, cc.id AS categoryid, i.title AS imagetitle, i.id AS imageid, ifnull(ua.name, a.userid) AS editor, ifnull(u.id, a.userid) AS ratinguserid, ifnull(u.username, a.userid) AS ratingusername ' 
    ten sam plik linia 98 (98)
    Kod PHP:
    $where[] = 'a.userid = u.id'
    zamienić na:
    Kod PHP:
    $where[] = '(a.userid = u.id OR a.userid>0)'
    Obie modyfikacje dla kategorii i zdjęć funkcjonują niezależnie od siebie, jeśli nie chcemy pozwalać na ocenianie kategorii to opuszczamy tą część modyfikacji.
    Powodzenia.

Reguły pisania

  • Nie możesz zakładać nowych tematów
  • Nie możesz dodawać wypowiedzi
  • Nie możesz dodawać załączników
  • Nie możesz poprawiać swoich postów
  •