PDA

Zobacz pełną wersję : Sobi2 +płatna galeria



Jola
03-11-2009, 21:53
Witam,
podaję poprawione (rozwinięte) rozwiązanie ze strony forum sigsiu.net (http://www.sigsiu.net/forum/index.php/topic,2733.msg37551.html#msg37551) powodujące, że korzystanie z galerii jest płatne.
1. Instalujemy plugin Gallery
2. Konfiguracja-> Menadżer pól->Dodaj nowe:
Nazwa pola: field_gallery_paid
Typ pola: inputbox
Bezpłatne: nie
Opłata: 30 (np.)
Wyświetl dane w: Ukryty
2.Szablony i CSS->Szablon formularza edycji->Użyj szablonu zamiast standardowej funkcji: tak
Jeśli używasz innego szablonu Sobi2 niż default i nie zawiera on pliku sobi2.form.tmpl.php - skopiuj ten plik z katalogu default i zapisz w do katalogu Twojego szablonu.
3. Wszystkie modyfikacje przeprowadzane są w jednym pliku szablonu: sobi2.form.tmpl.php.
W edytorze do szablonu sobi2.form.tmpl.php u góry dodać kod:

<style type="text/css">
<!--
.imggallery {
visibility: visible;
position: relative;
display:none;
}
-->
</style>
<script language="JavaScript" type="text/javascript">
<!--
function toggleLayer( whichLayer )
{
var elem, vis;
if( document.getElementById ) // this is the way the standards work
elem = document.getElementById( whichLayer );
else if( document.all ) // this is the way old msie versions work
elem = document.all[whichLayer];
else if( document.layers ) // this is the way nn4 works
elem = document.layers[whichLayer];
vis = elem.style;
// if the style.display value is blank we try to figure it out here
if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
vis.display = (vis.display==''||vis.display=='block')?'none':'bl ock';
}
// -->
</script>W wybranym miejscu - tam gdzie chcesz wyświetlić galerię dodaj:

<table>
<tr>
<td colspan="2"><strong>Galeria zdjęć</strong> <br/>
</td>
</tr>
<?php
$komunikat = $fields['field_gallery_paid']['payment']['explanation'];
if($komunikat){
?>
<tr>
<td colspan="2"><input name="field_gallery_paid_on" id="field_gallery_paid_on" value="" onMouseUp="javascript:toggleLayer('gallerypaid');"
onClick="if(this.checked) {
field_gallery_paid.value = 1;
}
else {
field_gallery_paid.value = '';
}" type="checkbox">
<label class="field_gallery_paid" for="field_gallery_paid_on" >Dodaj zdjęcia</label>
</td>
</tr>
<tr>
<td><?php echo $fields['field_gallery_paid']['payment']['explanation']; ?></td>
</tr>
<?php }
?>
<tr>
<td colspan="2">
<div class="<?php if ($komunikat) echo 'imggallery'; ?>" id="<?php if ($komunikat) echo 'gallerypaid';?>">
<table>
<tr>
<td>
<?php echo $fields['sobi_gallery_plugin']['field']; ?>
<input type="hidden" id="field_gallery_paid" name="field_gallery_paid" value="">
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>Pole dodane w konfiguracji Sobi2: field_gallery_paid jest polem ukrytym.
Po zapłaceniu i publikacji, jeśli użytkownik ma możliwość edycji nie widzi już przycisku do wyboru opcji płatnej tylko samą galerię.
Dla większej jasności dołączam przykładowy plik szablonu:

tix
03-11-2009, 22:09
Dziekuję jestes genialna!! :D

pecet9
02-12-2009, 00:29
Dzieki skarbie jesteś Boska:)