Zobacz pełną wersję : SOBI V-Card - przeróbka, wyrzucenie linka z tytułu wpisu, PHP if
michalk257
24-01-2010, 12:18
Witam.
W SOBI2 mam dwa pola służące do wpisania opisu. Jedno z nich to "podstawowe", drugie - "rozszerzone". Podstawowe będzie wypełniane zawsze, rozszerzone tylko czasami. Chciałbym tak zmodyfikować VCard, aby:
- gdy pole rozszerzone danego wpisu jest puste, VCard wyświetlał tytuł wpisu, ale bez robienia z niego linka do widoku szczegółowego,
- gdy pole rozszerzone jest wypełnione, tytuł w VCard jest linkiem do widoku szczegółowego.
Nie znam PHP, ale sądziłem, że prosty if nie będzie sprawiał zbyt wielu kłopotów. Okazało się, że zagadnienie jest bardziej skomplikowane niż sądziłem, dlatego proszę o pomoc.
Problemy zaczynają się, gdy wpiszę w VCard template warunek:
<?php if ($fieldsFormatted[field_opis_rozszerzony])=='' {
<!-- i tu dałbym wyświetlanie tytułu bez linka-->
};Po wpisaniu takiego czegoś (a także po zamianie cudzysłowu na aportrofy) na stronie pokazuje się... cały kod PHP VCarda, a CSSy nie są wczytywane :(.
Co więcej, gdyby nawet udało mi się obejść ten problem, zaraz czai się następny:
Jak się zdołałem zorientować, zmienna $title przechowuje w sobie tytuł wpisu, ale już zamieniony na link. Chciałem to ominąć przez usunięcie w kodzie SOBI2 <A href= itd., ale niestety - gmerałem w kilku plikach gdzie taki wpis występuje przy zmiennej $title i nic nie zdziałałem :(
Link do wpisu szczegółowego wstawiłbym sobie już w VCard, jeśli opis szczegółowy byłby niepusty.
Z góry dziękuję za pomoc.
<?php
if( strlen( $fieldsFormatted[ 'field_opis_rozszerzony' ] ) == 0 ) {
$title = $mySobi->title;
}
?>
<h2><?php echo $title; ?></h2>
A kod się pokazuje bo masz błąd w PHP ;-)
Pozdrawiam,
Radek
michalk257
24-01-2010, 14:10
Ło, dzięki wielkie, działa wyśmienicie! :) Plusik poszedł.
Jeśli można podczepić się pod temat bo jest pokrewny z moim problemem.
Otóż chciałbym w liście wpisów zrobić tak aby do szczegółów wpisu można było się dostać po kliknięciu na przygotowany obrazek. Teraz jest tak że do szczegółów można się dostać tylko po kliknięciu na tytuł i ikonę.
Bardzo proszę o pomoc :)
Coś w tym stylu:
$config =& sobi2Config::getInstance();
$catid = intval( sobi2Config::request( $_REQUEST, 'catid', 0 ) );
$href = "index.php?option=com_sobi2&sobi2Task=sobi2Details& catid={$catid}&sobi2Id={$id}&Itemid={$config->sobi2Itemid}";
$href = sobi2Config::sef( $href );
echo
"<a href=\"{$href}\" title=\"Read More\">
<img src=\"sciezka/do/obrazka.jpg\" alt=\"Read More\"/>
</a> ";Pozdrawiam,
Radek
michalk257
24-01-2010, 14:59
Hmm, a jak wyłączyć "klikalność" tytułu w zmiennej $title? Żebym sobie mógł to <a href... dorobić w samym V-Card?
Możesz użyć $mySobi->titlezamiast $title albo strip_tags( $title )
coś nie bardzo mi wychodzi...
Zamiast generować link, wyświetla się "http://strona.pl/{$href}"
Oto co mam w szablonie:
<?php
/**
* @version $Id: sobi2.vc.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 V-Card View
* ------------------------------------------------------------------------------
*/
/* Don't remove this line! */
function sobi2VCview($id, $style, $ico, $img, $title, $fieldsObjects, $fieldsFormatted, $plugins, $editButton = null, $deleteButton = null)
{
// For advanced templating comment in the next line if you need to access other sobi2 object proporties
// $mySobi = new sobi2( $id );
// $config =& sobi2Config::getInstance();
// $catid = intval( sobi2Config::request( $_REQUEST, 'catid', 0 ) );
// $href = "index.php?option=com_sobi2&sobi2Task=sobi2Details& catid={$catid}&sobi2Id={$id}&Itemid={$config->sobi2Itemid}";
// $href = sobi2Config::sef( $href );
// $waySearchLink = HTML_SOBI::createWaySearchUrl( $id );
?>
<td>
<!-- here starts the template -->
<div id="content">
<table cellspacing="0">
<tr>
<td class="typ"><?php echo $fieldsObjects['field_typ']->data; ?></td>
<td class="nazwa_obiektu"><?php echo $title; ?></td>
<td class="miejscowosc"><?php echo $fieldsObjects['field_city']->data; ?></td>
<td class="wojewodztwo"><?php echo $fieldsObjects['field_federal_state']->data; ?></td>
<td class="cena">od <?php echo $fieldsObjects['field_cenaod']->data; ?> zł do <?php echo $fieldsObjects['field_cenado']->data; ?> zł</td>
</tr>
<tr>
<td class="foto"><?php echo $ico; ?></td>
<td class="opis" colspan="3">Opis...</td>
<td class="sprawdz_oferte"><a href="{href}" title="sprawdź oferte"><img src="images/site/buttons/sprawdz_oferte.jpg" alt="sprawdź oferte"/></a></td>
</tr>
</table>
</div>
<!-- here ends the template -->
<!-- Don't remove these lines! -->
</td><?php
}
?>
michalk257
24-01-2010, 15:58
Dziękuję :)
<?php
/**
* @version $Id: sobi2.vc.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 V-Card View
* ------------------------------------------------------------------------------
*/
/* Don't remove this line! */
function sobi2VCview($id, $style, $ico, $img, $title, $fieldsObjects, $fieldsFormatted, $plugins, $editButton = null, $deleteButton = null)
{
// For advanced templating comment in the next line if you need to access other sobi2 object proporties
// $mySobi = new sobi2( $id );
$config =& sobi2Config::getInstance();
$catid = intval( sobi2Config::request( $_REQUEST, 'catid', 0 ) );
$href = "index.php?option=com_sobi2&sobi2Task=sobi2Details& catid={$catid}&sobi2Id={$id}&Itemid={$config->sobi2Itemid}";
$href = sobi2Config::sef( $href );
// $waySearchLink = HTML_SOBI::createWaySearchUrl( $id );
?>
<td>
<!-- here starts the template -->
<div id="content">
<table cellspacing="0">
<tr>
<td class="typ"><?php echo $fieldsObjects['field_typ']->data; ?></td>
<td class="nazwa_obiektu"><?php echo $title; ?></td>
<td class="miejscowosc"><?php echo $fieldsObjects['field_city']->data; ?></td>
<td class="wojewodztwo"><?php echo $fieldsObjects['field_federal_state']->data; ?></td>
<td class="cena">od <?php echo $fieldsObjects['field_cenaod']->data; ?> zł do <?php echo $fieldsObjects['field_cenado']->data; ?> zł</td>
</tr>
<tr>
<td class="foto"><?php echo $ico; ?></td>
<td class="opis" colspan="3">Opis...</td>
<td class="sprawdz_oferte"><a href="<?php echo $href; ?>" title="sprawdź oferte"><img src="images/site/buttons/sprawdz_oferte.jpg" alt="sprawdź oferte"/></a></td>
</tr>
</table>
</div>
<!-- here ends the template -->
<!-- Don't remove these lines! -->
</td><?php
}
?>
Jesteś moim Bogiem...:) dzięki wielkie za pomoc, działa jak trzeba
iearts_C
24-02-2010, 13:21
Cześć Wszystkim mam problem z sobi2 mianowicie w konfiguracji wyświetlania parametr "Goście mogą oglądać szczegóły wpisu" ustawiłem na nie. I po kilknięciu w tytuł wpisu (już na stronie) wyświetla mi się link a w linku podany jest bieżący adres podstrony z dodanym na końcu "#" i po kliknięciu w ten link pojawia się komunikat że osoby niezarejestrowane nie mogą wejść dalej (czy coś w tym stylu) . Stosowałem się do wszystkiego co wyżej jest napisane u mnie to jakoś nie działa ;/ nie wiem czemu
o to kod php moje wizytówki V-card:
<?php
/**
* @version $Id: sobi2.vc.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 V-Card View
* ------------------------------------------------------------------------------
*/
/* Don't remove this line! */
function sobi2VCview($id, $style, $ico, $img, title, $fieldsObjects, $fieldsFormatted, $plugins, $editButton = null, $deleteButton = null)
{
// For advanced templating comment in the next line if you need to access other sobi2 object proporties
// $mySobi = new sobi2( $id );
// $config =& sobi2Config::getInstance();
// $waySearchLink = HTML_SOBI::createWaySearchUrl( $id );
?>
<!-- here starts the template -->
<td class="table2" <?php echo $style; ?>>
<p><?php echo $editButton; ?>
<?php echo $deleteButton; ?>
<?php echo $ico; ?>
<?php echo $ico; ?><?php echo $mySobi->title ?></p>
<p> </p>
<!-- here ends the template -->
<!-- Don't remove these lines! -->
</td><?php
}
?>
Z Góry dzięki za pomoc.
Witam, chciałbym się podłączyć do tematu :) Czy ktoś wie, jak zmienić rodzaj pola "title" tak, żeby przy dodawaniu wpisu, nie wpisywać tytułów tylko wybierać je z listy zdefiniowanych tytułów? Najlepiej by było gdyby te zdefiniowane tytuły były kategoriami.
Z góry dziękuję za pomoc.
pozwólcie że podepnę się, edytuje plik sobi2.vc.tmpl.php ale na stronie nie widzę zmian..
pozdr.
jn
vBulletin® v4.2.5, Prawa przedruku © 2024 vBulletin Solutions, Inc. Wszystkie prawa zastrzeżone.
Tłumaczenie: Polskie Centrum Joomla!