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' :)
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' :)