За последние 24 часа нас посетили 22894 программиста и 1262 робота. Сейчас ищут 763 программиста ...

smarty вывод переменных в шаблон

Тема в разделе "PHP для новичков", создана пользователем wolf777, 11 дек 2015.

  1. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    ребят пытаюсь передать переменные php в шаблон smarty

    прописываю в php

    Код (PHP):
    1. <?php
    2.  
    3. define("CLIENTAREA",true);
    4. //define("FORCESSL",true); // Uncomment to force the page to use https://
    5.  
    6. require_once("init.php");
    7.  
    8.     $whmcs = App::getinstance();
    9.     $whmcs->load_function('client');
    10. $ca = new WHMCS_ClientArea();
    11.  
    12. $result=mysql_query("SELECT url,text,colors_s,colors_op FROM tb_ads_100x100 ORDER BY rand() LIMIT 15");
    13. $data=mysql_fetch_array($result);
    14. $text=$data['text'];
    15. $url=$data['url'];
    16. $colors_s=$data['colors_s'];
    17. $colors_op=$data['colors_op'];
    18.  
    19.  
    20. $ca->assign('text', $text);
    21. $ca->assign('url', $url);
    22. $ca->assign('colors_s', $colors_s);
    23. $ca->assign('colors_op', $colors_op);
    24.  
    25. $ca->setTemplate('header');
    26.  
    27. $ca->output();
    28.  
    29.  ?>
    затем в шаблон прописываю

    Код (PHP):
    1. {include_php file="ads_header.php"}
    2.  
    3. <div class="curved-hz-1">
    4. <div class="viz b-blockWithTab__title_text" >
    5. <p><font color="{$colors_op}"><b>{$text}</b></font></p><br>
    6. <p style="margin-top:-50px; padding-left:15px">
    7. <a href="{$url}" target="_blank">
    8. <font color="{$colors_s}"><b>{$url}</b></font></a></p>
    9. </div></div> 
    получаю такую ошибку
    как исправить?
     
  2. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Он тебе указывает конкретную строку конкретного файла где ты переменную для шаблона определяешь, в чем проблема?
    Дамп объекта выводить не умеешь?
     
  3. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    Zuldek проблема в том что везде работает assign, а создал новый модуль, прописал в нем все верно решил проверить тупо вывести в шаблон так

    Код (PHP):
    1. {php}
    2. $result=mysql_query("SELECT url,text,colors_s,colors_op FROM tb_ads_100x100 ORDER BY rand() LIMIT 15");
    3. $data=mysql_fetch_array($result);
    4. $text=$data['text'];
    5. $url=$data['url'];
    6. $colors_s=$data['colors_s'];
    7. $colors_op=$data['colors_op'];
    8.  
    9. var_dump($text);
    10. {/php} 
    все выводит все норм, а вот через вывод из smarty в шаблонизатор не выводит, он указывает мне ошибку так
    Fatal error: Call to a member function assign() on a non-object in W:\domains\net.su\includes\classes\WHMCS\ClientArea.php on line 0

    ну файл ClientArea.php зашифрован.... просто не оч понятно почему не работает, например я писал такой код

    Код (PHP):
    1. define('CLIENTAREA', true);
    2. require("init.php");
    3. if(isset($_SESSION['uid'])){
    4.     $whmcs = App::getinstance();
    5.     $whmcs->load_function('client');
    6.     $smarty = new Smarty();
    7.     $smarty->assign('template', $CONFIG['Template']);
    8.     $smarty->assign('LANG', $_LANG);
    9. //  $smarty->assign('logo', $CONFIG['LogoURL']);
    10. //  $smarty->assign('companyname', $CONFIG['CompanyName']);
    11. //  $smarty->assign('Email', $CONFIG['Email']);
    12.     $logo = $CONFIG['LogoURL'];
    13.     $CompanyName = $CONFIG['CompanyName'];
    14.     $Email = $CONFIG['Email'];
    15.     $smarty->assign('pagetitle', $_LANG['clientareaemails']);
    16.     checkContactPermission('emails');
    17.     $id = (int) $whmcs->get_req_var('id');
    18.     $result = select_query('tblemails', '', array( 'id' => $id, 'userid' => (int) $_SESSION['uid'] ));
    19.     $data = mysql_fetch_array($result);
    20.     $date = $data['date'];
    21.     $subject = $data['subject'];
    22.     $message = $data['message'];
    23.     $date = fromMySQLDate($date, 'time');
    24.  //   $smarty->assign('date', WHMCS_Input_Sanitize::makesafeforoutput($date));
    25.  //   $smarty->assign('subject', WHMCS_Input_Sanitize::makesafeforoutput($subject));
    26.  //   $smarty->assign('message', $message);
    27.  //   $template_output = $smarty->fetch($whmcs->getClientAreaTplName() . "/mail.tpl");
    28.  //   echo $template_output;
    29. $arr['msg'] = $message;
    30. $arr['sbj'] = $subject;
    31. $arr['comp'] = $CompanyName;
    32. $arr['logourl'] = $logo_url;
    33. $arr['email'] = $Email;
    34. echo json_encode($arr);
    35.  }else{
    36.     redir("index.php");
    37. }
    он все выводит и все работает, так почему тогда выше указанный не работает?
     
  4. Zuldek

    Zuldek Старожил

    С нами с:
    13 май 2014
    Сообщения:
    2.381
    Симпатии:
    344
    Адрес:
    Лондон, Тисовая улица, дом 4, чулан под лестницей
    Здесь у вас есть инициализация smarty и шаблона и далее вызовы асигнов.
    А в первом случае у вас всё идёт через объект другого класса. Поэтому нужно смотреть использование этой обвязки в проекте если у вас по каким-то причинам нет возможности посмотреть исходники используемого класса.
     
  5. wolf777

    wolf777 Новичок

    С нами с:
    26 авг 2014
    Сообщения:
    207
    Симпатии:
    0
    Zuldek получается надо так?

    Код (PHP):
    1. define('CLIENTAREA', true);
    2. require_once("init.php");
    3.  
    4. $whmcs = App::getinstance();
    5. $whmcs->load_function('client');
    6. $smarty = new Smarty();
    7.  
    8. $result=mysql_query("SELECT url,text,colors_s,colors_op FROM tb_ads_100x100 ORDER BY rand() LIMIT 15");
    9. $data=mysql_fetch_array($result);
    10. $text=$data['text'];
    11. $url=$data['url'];
    12. $colors_s=$data['colors_s'];
    13. $colors_op=$data['colors_op'];
    14. $smarty->assign('text', $text);
    15. $smarty->assign('url', $url);
    16. $smarty->assign('colors_s', $colors_s);
    17. $smarty->assign('colors_op', $colors_op);
    18.  
    19. $smarty->setTemplate('header');
    20.  
    21. $smarty->output();