PDA

Zobacz pełną wersję : SOBI2 - Dostęp do szczegółów dla wybranej grupy.



mr_jacek
07-12-2009, 17:35
Witam! W Sobi2 jest możliwość zablokowania widoku szczegółowego dla gości i umożliwienia tylko zarejestrowanym użytkownikom. Na swojej Joomli! według poradnika http://docs.joomla.org/Custom_user_groups założyłem niestandardowe grupy. Pytanie brzmi: czy mogę udostępnić szczegółowy widok tylko dla wybranej przeze mnie grupy?

Jola
07-12-2009, 17:56
Witam,
plik components/com_sobi2/templates/default/sobi2.details.tmpl

defined( '_SOBI2_' ) || ( trigger_error("Restricted access", E_USER_ERROR) && exit() );

/* ------------------------------------------------------------------------------
* This is the template for the Details View
* ------------------------------------------------------------------------------
*/
if ($my->id){
?>
///tu zawartość pliku
......
......
</table>
<?php
}
else echo JText::_("Musisz się zalogować");
?>

mr_jacek
07-12-2009, 18:18
Chyba nie działa jak powinno, nie wiem czy dobrze zapisałem, oto mój widok szczegółowy:

<?php
/**
* @version $Id: sobi2.details.tmpl.php 4987 2009-04-03 11:05:29Z Radek Suski $
* @package: Sigsiu Online Business Index 2
* ================================================== =
* @author
* Name: Sigrid & Radek Suski, Sigsiu.NET
* Email: sobi@sigsiu.net
* Url: http://www.sigsiu.net
* ================================================== =
* @copyright Copyright (C) 2006 - 2009 Sigsiu.NET (http://www.sigsiu.net). All rights reserved.
* @license see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL.
* You can use, redistribute this file and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation.
*/

/*please do not remove this line */
defined( '_SOBI2_' ) || ( trigger_error("Restricted access", E_USER_ERROR) && exit() );

/* ------------------------------------------------------------------------------
* This is the template for the Details View
* ------------------------------------------------------------------------------
*/
if ($my->37){

?>
<?php HTML_SOBI::renewal( $config,$mySobi ); ?>
<table class="sobi2Details" <?php echo $style; ?> >
<tr>
<td><?php echo $ico; ?><h1><?php echo $mySobi->title; ?></h1></td>
</tr>
<tr>
<td><?php echo $img; ?>
<a href="index.php?option=com_comprofiler&task=userProfile&user=<?php echo $mySobi->owner ?>">Nawiąż kontakt z kandydatem</a></td>
</tr>
<tr>
<td><?php HTML_SOBI::showGoogleMaps($mySobi, $config); ?></td>
</tr>
<tr>
<td>
<div id="sobi2outer">
<?php HTML_SOBI::waySearchUrl( $waySearchLink,$config ); ?>
<?php echo HTML_SOBI::customFieldsData( $fieldsFormatted );?>
<br />
</div>
</td>
</tr>
</table>
<table class="sobi2DetailsFooter" width="100%">
<tr>
<td>
<?php HTML_SOBI::addedDate($config,$mySobi); ?>
&nbsp;&nbsp;
<?php HTML_SOBI::showHits($config,$mySobi);?>
</td>
<td><?php HTML_SOBI::editButtons($config,$mySobi); ?></td>
</tr>
</table>
<?php
}

else echo JText::_("Musisz się zalogować");
?>

id to id grupy z jos_core_acl_aro_groups?

Jola
07-12-2009, 18:23
$my->id zwraca id użytkownika. Każdy niezalogowany użytkownik ma id=0.
Kod, który podałam (if ($my->id)) powoduje, że szczegóły są dostępne dla wszystkich zalogowanych użytkowników.
Twoja radosna twórczość - to nie jest prawidłowy kod. :)

mr_jacek
07-12-2009, 20:06
"radosna twórczość" ładnie określiłaś mój poziom..:)
ale wracając do tematu - to nie rozwiązuje mojego problemu, bo pytałem o dostęp dla wybranej grupy np. kandydaci. Id grupy w jos_core_acl_aro_groups jest 37, czy można jakoś według tego ustawić??

Jola
07-12-2009, 20:15
Potrzebna jest niewielka zmiana zamiast:
if ($my->id)
wstaw
if ($my->gid == 37)

mr_jacek
07-12-2009, 20:29
WIELKIE WIELKIE DZIĘKI!!!:D

mr_jacek
30-12-2009, 11:43
a gdybym chciał dodać warunek, że swój wpis to mogę oglądać??

if ($my->gid == 37 || ??? ){

Jola
30-12-2009, 12:05
Proszę
if ($my->gid == 37 || $my->id == $mySobi->owner){

bogdanbojarski
08-01-2010, 09:52
A czy istnieje możliwość aby konkretne pole było widoczne po zalogowaniu?

mr_jacek
08-01-2010, 10:31
Pierwsza rzecz to w szablonie widoku szczegółowego zamiast
<?php echo HTML_SOBI::customFieldsData( $fieldsFormatted );?> trzeba wypisać po kolei pola np.

<?php echo $fieldsFormatted['field_xxx'] ; ?>
<?php echo $fieldsFormatted['field_yyy'] ; ?>
Teraz trzeba ustalić które pola chcesz widzieć po zalogowaniu i używasz
if ($my->id){
a które bez logowania to else

Jeśli się mylę proszę mnie poprawić.

bogdanbojarski
08-01-2010, 14:38
Wielkie dzięki, popróbuję.

bogdanbojarski
09-01-2010, 11:31
Jeszcze raz witam. Wstawiłem taki kod:
<?php
/**
* @version $Id: sobi2.details.tmpl.php 4987 2009-04-03 11:05:29Z Radek Suski $
* @package: Sigsiu Online Business Index 2
* ================================================== =
* @author
* Name: Sigrid & Radek Suski, Sigsiu.NET
* Email: sobi@sigsiu.net
* Url: http://www.sigsiu.net
* ================================================== =
* @copyright Copyright (C) 2006 - 2009 Sigsiu.NET (http://www.sigsiu.net). All rights reserved.
* @license see http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU/GPL.
* You can use, redistribute this file and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation.
*/

/*please do not remove this line */
defined( '_SOBI2_' ) || ( trigger_error("Restricted access", E_USER_ERROR) && exit() );

/* ------------------------------------------------------------------------------
* This is the template for the Details View
* ------------------------------------------------------------------------------
*/
if ($my->gid >1){

?>
<?php HTML_SOBI::renewal( $config,$mySobi ); ?>
<?php echo $ico; ?><h1><?php echo $mySobi->title; ?></h1>
<DIV id="obrazek"><?php echo $img; ?></DIV>






<div id="sobi2outer">

<?php echo HTML_SOBI::customFieldsData( $fieldsFormatted );?>
<DIV><A href="index.php?option=com_ckforms&view=ckforms&id=1&Itemid=100">Zapytaj o produkt</A></DIV>

<table class="sobi2DetailsFooter" width="100%">
<tr>
<td>
<?php HTML_SOBI::addedDate($config,$mySobi); ?>
&nbsp;&nbsp;
<?php HTML_SOBI::showHits($config,$mySobi);?>
</td>
<td><?php HTML_SOBI::editButtons($config,$mySobi); ?></td>
</tr>
</table>

</div>

<?php echo $plugins["gallery"]; ?>

<?php
}

else
echo $ico; ?><h1><?php echo $mySobi->title; ?></h1>
<DIV id="obrazek"><?php echo $img; ?></DIV>






<div id="sobi2outer">

<?php echo $fieldsFormatted['field_cena'] ; ?>
<DIV><A href="index.php?option=com_ckforms&view=ckforms&id=1&Itemid=100">Zapytaj o produkt</A></DIV>

<table class="sobi2DetailsFooter" width="100%">
<tr>
<td>

</td>
<td><?php HTML_SOBI::editButtons($config,$mySobi); ?></td>
</tr>
</table>

</div>

<?php echo $plugins["gallery"]; ?>



Ale po logowaniu wyświetla mi podwójnie, obie opcje.
Gdzie popełniłem błąd?

Jola
09-01-2010, 14:16
Raczej

if ($my->id){ //wewnątrz to, co ma być pokazane zalogowanym
.......
.......
.......
}
else{ //wewnątrz to, co ma być pokazane niezalogowanym
......
.....
.....
}

bogdanbojarski
09-01-2010, 19:01
Przepraszam, ale ni groma nie wychodzi.
W php jestem bardzo początkujący.

Jola
09-01-2010, 19:37
Nie ma za co przepraszać, tylko i tak nie wiem co ma widzieć zalogowany, a co niezalogowany. Dokładnie.

bogdanbojarski
09-01-2010, 20:07
Już mi wyszło. Wielkie, wielkie dzięki.

bogdanbojarski
14-01-2010, 19:44
A czy można to samo zrobić dla listy wpisów. To znaczy, każda grupa widzi na liście wpisów inne pola. Bo jakoś mi nie wychodzi. Próbuję wstawiać kod, ale to nic nie daje.

Jola
14-01-2010, 19:52
Można ale to wyższa szkoła jazdy. :)

bogdanbojarski
14-01-2010, 19:54
Dzięki, może kiedyś dojadę. :)