PDA

Zobacz pełną wersję : Tab komentarzy profilu CB z użyciem komponentu Jcomments



KejeN
20-11-2010, 12:57
Witam,
Jeśli ktoś używa na swojej stronie Community Builder-a oraz komponentu komentarzy Jcomments i chce dać swoim użytkownikom możliwość komentowania profili to mam rozwiązanie.
Oto paczka z niezbędnymi plugin-ami:
POBIERZ (http://static.iswift.eu/Komentarze_profilu_CB_Jcomments.zip)

Szybka instrukcja (jest też w paczce):


1. Plik 'com_comprofiler.plugin.php' znajdujący się w folderze 'Jcomments plugin' wklejamy do folderu \components\com_jcomments\plugins - trzeba to zrobić przez FTP gdyż komponent Jcomments nie ma jeszcze swojego instalatora wtyczek.

2. Plugin CB (CB_koment-tab_by_Jcomments.zip) znajdujący się w folderze 'CB plugin' instalujemy przez instalator pluginów CB.

3. Aby uzyskać funkcjonalność kasowania dowolnych komentarzy profilu przez jego właściciela musimy edytować plik 'jcomments.class.php',który znajdziemy w głównym katalogu frontowej części komponentu Jcommens czyli \components\com_jcomments. Odnajdujemy w pliku w okolicach lini 256 funkcję 'canDelete' , która wygląda tak:


function canDelete($obj)
{
return (($this->canDelete || ($this->canDeleteOwn && ($obj->userid == $this->userID)))
&& (!$this->isLocked($obj))) ? 1 : 0;
}

Edytujemy(oczywiście nie MS notatnikiem tylko np Notepad++) ją do poniższej postaci:


function canDelete($obj)
{
return (($this->canDelete || ($obj->object_id == $this->userID && $obj->object_group == 'com_comprofiler') || ($this->canDeleteOwn && ($obj->userid == $this->userID)))
&& (!$this->isLocked($obj))) ? 1 : 0;
}

4. Włączamy zainstalowany w punkcie drugim plugin CB i publikujemy utworzoną przez niego zakładkę.

I gotowe mamy komentarze profilu bez zbędnych dodatków a komentarzami całej witryny administrujemy w jednym miejscu:)

Wypada pamiętać o zrobieniu kopii zapasowej pliku 'jcomments.class.php' przed edycją jak i o kwestii pojawienia się konieczności ponownej edycji po każdej aktualizacji komponentu.

Nie polecam jednak tego rozwiązania nowicjuszom, którzy nigdy nie edytowali kodów php itd.
Jcomments jest zrobiony w MVC, więc prawdopodobnie można by uniknąć edycji źródłowego kodu komponentu używając nadpisywania szablonem. Niestety nie jestem na tyle bystry by mi się udało to zrobić, ale jeśli jakiś spec od kodu rzuciłby okiem i podał rozwiązanie byłoby bardzo miło. Szczególnie, że to tylko jedno małe 'lub' :)

alex51
20-11-2010, 17:34
Cześć @KejeN, dziękuję skromnym "repem" w imieniu wszystkich i zapraszam do opisania powyższego sposobu na wiki i wstawienia paczuszki do plikowni.

KejeN
20-11-2010, 18:32
Wstrzymam się z tym ,bo może faktycznie da się użyć nadpisywania szablonem zamiast modyfikacji klasy.

alex51
21-11-2010, 07:47
Sprawdziłem jak będzie działać rozwiązanie zaproponowane przez @KejeNa i ograniczyłem się tylko do tego fragmentu instrukcji:

(...)
2. Plugin CB (CB_koment-tab_by_Jcomments.zip) znajdujący się w folderze 'CB plugin' instalujemy przez instalator pluginów CB.
(...)
4. Włączamy zainstalowany w punkcie drugim plugin CB i publikujemy utworzoną przez niego zakładkę.
(...)
O dziwo, po zainstalowaniu i opublikowaniu samego pluginu do CB w profilu użytkownika CB pokazuje sie zakładka o nazwie "Komentarze", w której jest możliwość dopisywania komentarzy, a właściciel konta posiada już dostępne i aktywne ikonki do zmiany, usunięcia i odpublikowania wpisanych komentarzy.
Czyżby w mojej wersji komponentu JComments 2.2.0.0. nie trzeba przeprowadzać pełnej, proponowanej wyżej procedury? Jeśli nie zrobiłem jakiegoś błędu, to znaczyłoby, że pełną funkcjonalność uzyskuje się po samym zainstalowaniu i opublikowaniu pluginu cbkommenttab.
Proszę o sprawdzenie i wskazanie nieprawidłowości w toku mojego niefachowego rozumowania. :)

KejeN
21-11-2010, 11:33
Cześć @alex51!
Tak z samym CB pluginem będzie zakładka komentarzy, ale nie ma mowy o kasowaniu dowolnych (wszystkich nie tylko swoich) komentarzy.
Ja też to rozwiązanie opracowywałem na Jcomments 2.2.0.0 i nie ma mowy raczej o żadnych czarach w przypadku tego pluginu bo to kilka linijek do wyświetlania komentarzy wstawione w "formułkę" zakładki CB.
Z samą instalacją plugina CB my komentarze profilu owszem owszem ale w zarządzaniu komentarzami na zapleczu nie ma linka do komentarza itp. do tego potrzebny jest plugin jcomments a do kasowania dowolnych komentarzy na swoim profilu przez właściciela jest konieczna edycja jcomments.class.php

Może po prostu testowałeś użytkownikiem z nadanymi uprawnieniami do kasowania dowolnych komentarzy?

alex51
21-11-2010, 13:28
(...)
Może po prostu testowałeś użytkownikiem z nadanymi uprawnieniami do kasowania dowolnych komentarzy?
I tu masz rację, bo właśnie testowałem na kontach administratora i operatora, a te uprawnione są u mnie w głównych ustawieniach JCOmments do edycji i usuwania komentarzy. Użytkownik zarejestrowany w moich ustawieniach nie ma takich uprawnień.