Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [smarty] Przekazywanie obiektów itp.
scanner
post
Post #1





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Jak skorzystać z AdoDB w Smarty wykorzystując modułowość Smartiego?

Mam następujące pliki:
[php:1:fc665c0fa4]
<?php
// --- index.php ---
// (...)
$objDBConn = &ADONewConnection($dbms);
$objDBConn->Connect($dbhost, $dbuser, $dbpasswd, $dbname);
// (..)
$objSmarty->assign( 'objDBConn', $objDBConn );
$output = $objSmarty->fetch( 'index.tpl' );
echo $output;
?>
[/php:1:fc665c0fa4]
Kod
{* Smarty *}

{* --- index.tpl --- *}

{include file="show_news.tpl"}

Kod
{* Smarty *}

{* --- show_news.tpl --- *}

{include_php file="_includes/show_news.php"}

{section name="news" loop=$newsData}

{* (...) *}

{/section}

[php:1:fc665c0fa4]
<?php
// --- show_news.php ---
// (...)
$objNewsRecordset = $this->objDBConn->Execute($strSqlQuery);
?>
[/php:1:fc665c0fa4]

Dostaję w wyniku:
Cytat
Fatal error: Call to a member function Execute() on a non-object in D:...show_news.php on line...

I teraz mam pytanie - co robię źle, że nie mam dostępu do obiektu AdoDB z pliku show_news.php??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




1. zamiast:
$output = $objSmarty->fetch( 'index.tpl' );
echo $output;

$objSmarty->display( 'index.tpl' );


2. Po co przerzucać na smarty zabawę z rekordami? Czy nie wymagamy wtedy zbyt dużo od designera?
Ja robię to tak:
[php:1:c5b1163dd4]<?php
$arrData = $this->objDBConn->GetAll( $strSqlQuery );
$objSmarty->assign_by_ref( "arrData", $arrData);
//lub $objSmarty->assign( "arrData", &$arrData); (daje to chyba ten sam efekt)
?>[/php:1:c5b1163dd4]
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.09.2025 - 10:52