soctell

Добавление динамической страницы

Recommended Posts

Подскажите, есть ли в админ панели возможность добавить динамической страницы с php, если нет то как это возможно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите, есть ли в админ панели возможность добавить динамической страницы с php, если нет то как это возможно?

Из соображений безопасности в админке нельзя создавать страницы с PHP-кодом.

Если вам нужен исполняемый код, то добавьте его в метод main() в файле /template/frontend/agency/main/main.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Например за основу взял один из файлов например contactus.php и хочу выполнить в нем два запроса, первый выполняется, а второй не выполняется в функции  function getAccountValue($em)

 

<?php/** * contactus form * @author Kondin Dmitriy <kondin@etown.ru> http://www.sitebill.ru */class contactus_Form extends Object_Manager {    /**     * Constructor     */    function __construct() {        $this->SiteBill();        $this->table_name = 'contactus';        $this->action = 'contactus';        $this->primary_key = 'contactus_id';           $this->data_model = $this->get_contactus_model();    }        /**     * Main     * @param void     * @return string     */    function main () {   require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php');   $data_model = new Data_Model();   $form_data = $this->data_model;   $rs = $this->getTopMenu();$rs .= $this->getImage();$rs .= $this->getAccountValue($em);switch( $this->getRequestValue('do') ){case 'new_done' : {                    $form_data[$this->table_name] = $data_model->init_model_data_from_request($form_data[$this->table_name]);           //echo '<pre>';           //print_r($form_data['data']);      if ( !$this->check_data( $form_data[$this->table_name] ) ) {       $rs .= $this->get_form($form_data[$this->table_name], 'new', 0, Multilanguage::_('L_TEXT_SEND'));          } else {       $order_table = $this->add_data($form_data[$this->table_name]);                    require_once (SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/mailer/mailer.php');                    $mailer = new Mailer();                    $subject = $_SERVER['SERVER_NAME'].': '.Multilanguage::_('NEW_MESSAGE_FROM_SITE','system');                    $to = $this->getConfigValue('order_email_acceptor');                    $from = $this->getConfigValue('order_email_acceptor');                                        if ( $this->getConfigValue('use_smtp') ) {                        $mailer->send_smtp($to, $from, $subject, $order_table, 1);                    } else {                        $mailer->send_simple($to, $from, $subject, $order_table, 1);                    }                                        $rs = '<h1>'.Multilanguage::_('MESSAGE_SENT','system').'</h1>';                    $rs .= $order_table;          }break;}default : {  }}return $rs;}/*** Get top menu* @param void * @return string*/function getTopMenu () {  $query = "select * from results_score order by yscore, mscore LIMIT 1";  mysql_query ('SET CHARSET cp1251');        $this->db->exec($query);        $this->db->fetch_assoc();$img = $row2['imgfile'];   $rs .= '<p style="text-align:center;">Победитель текущего месяца</p><table id="searchtb" style="text-align:center; font-size:16px;" width="100%"><tr><td style="font-size:16px;">'.$img.' '.$this->db->row['name'].'</td><td style="font-size:16px;">'.$this->db->row['yscore'].' г. '.$this->db->row['mscore'].' м. </td></tr></table>';   return $rs;}   function getAccountValue($em) {        $query = "select * from re_user where email='$em'";        $this->db->exec($query);        $this->db->fetch_assoc();$rs = $this->db->row['imgfile'];        return $rs;    }       function getImage() {$img = $this->getAccountValue($em);        $rs .=''.$img.'<br><div id="flashContent"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="480" id="sion_impossible2" align="middle"><param name="movie" value="sion_impossible2.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="play" value="true" /><param name="loop" value="true" /><param name="wmode" value="window" /><param name="scale" value="showall" /><param name="menu" value="true" /><param name="devicefont" value="false" /><param name="salign" value="" /><param name="allowScriptAccess" value="sameDomain" /><!--[if !IE]>--><object type="application/x-shockwave-flash" data="/game/sion_impossible2.swf" width="640" height="480"><param name="movie" value="sion_impossible2.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><param name="play" value="true" /><param name="loop" value="true" /><param name="wmode" value="window" /><param name="scale" value="showall" /><param name="menu" value="true" /><param name="devicefont" value="false" /><param name="salign" value="" /><param name="allowScriptAccess" value="sameDomain" /><!--<![endif]--><a href="http://www.adobe.com/go/getflash"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Загрузить Adobe Flash Player" /></a><!--[if !IE]>--></object><!--<![endif]--></object></div>';return $rs;    }/*** Add data* @param array $form_data form data* @return boolean*/function add_data ( $form_data ) {   require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php');   $data_model = new Data_Model();      require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/view/view.php');   $table_view = new Table_View();        $rs .= '<table border="1" cellpadding="2" cellspacing="2" style="border: 1px solid gray;">';   $rs .= $table_view->compile_view($form_data);   $rs .= '</table>';      /*   $query = $data_model->get_insert_query(DB_PREFIX.'_'.$this->table_name, $form_data);   //echo $query.'<br>';      $this->db->exec($query);   $new_record_id = $this->db->last_insert_id();   //echo "new_record_id = $new_record_id<br>";   //echo $query;    */   return $rs;}    /**     * Get contactus model     * @param boolean $ajax mode     * @return array     */    function get_contactus_model ( $ajax = false ) {$form_data = array();$form_data['contactus']['id']['name'] = 'id';$form_data['contactus']['id']['title'] = Multilanguage::_('L_ID');$form_data['contactus']['id']['value'] = 0;$form_data['contactus']['id']['length'] = 40;$form_data['contactus']['id']['type'] = 'primary_key';$form_data['contactus']['id']['required'] = 'off';$form_data['contactus']['id']['unique'] = 'off';$form_data['contactus']['fio']['name'] = 'fio';$form_data['contactus']['fio']['title'] = Multilanguage::_('NAME_OR_COMPANY_NAME','system');$form_data['contactus']['fio']['value'] = '';$form_data['contactus']['fio']['length'] = 40;$form_data['contactus']['fio']['type'] = 'safe_string';$form_data['contactus']['fio']['required'] = 'on';$form_data['contactus']['fio']['unique'] = 'off';$form_data['contactus']['phone']['name'] = 'phone';$form_data['contactus']['phone']['title'] = Multilanguage::_('L_PHONE');$form_data['contactus']['phone']['value'] = '';$form_data['contactus']['phone']['length'] = 40;$form_data['contactus']['phone']['type'] = 'safe_string';$form_data['contactus']['phone']['required'] = 'on';$form_data['contactus']['phone']['unique'] = 'off';$form_data['contactus']['email']['name'] = 'email';$form_data['contactus']['email']['title'] = Multilanguage::_('L_EMAIL');$form_data['contactus']['email']['value'] = '';$form_data['contactus']['email']['length'] = 40;$form_data['contactus']['email']['type'] = 'safe_string';$form_data['contactus']['email']['required'] = 'on';$form_data['contactus']['email']['unique'] = 'off';$form_data['contactus']['text']['name'] = 'text';$form_data['contactus']['text']['title'] = Multilanguage::_('L_TEXT');$form_data['contactus']['text']['value'] = '';$form_data['contactus']['text']['length'] = 40;$form_data['contactus']['text']['type'] = 'textarea';$form_data['contactus']['text']['required'] = 'on';$form_data['contactus']['text']['unique'] = 'off';$form_data['contactus']['text']['rows'] = '10';$form_data['contactus']['text']['cols'] = '40';$form_data['contactus']['captcha']['name'] = 'captcha';$form_data['contactus']['captcha']['title'] = Multilanguage::_('L_CAPTCHA');$form_data['contactus']['captcha']['value'] = '';$form_data['contactus']['captcha']['length'] = 40;$form_data['contactus']['captcha']['type'] = 'captcha';$form_data['contactus']['captcha']['required'] = 'on';$form_data['contactus']['captcha']['unique'] = 'off';        //$item_array['action'], $item_array['table_name'], $item_array['primary_key'], $item_array['primary_key_value'];return $form_data;    }}?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
$rs = $this->getTopMenu();$rs .= $this->getImage();$rs .= $this->getAccountValue($em);

Во второй строке внутри getImage выполняется, а отдельно в getAccountValue нет?

А где присвоение значения для $em ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В связи с переходом на другую библиотеку для доступа к БД лучше пользоваться методами библиотеки DBC

И вместо этого

function getAccountValue($em) {        $query = "select * from re_user where email='$em'";        $this->db->exec($query);        $this->db->fetch_assoc();$rs = $this->db->row['imgfile'];        return $rs;    }

это

function getAccountValue($em) {    $rs='';    if($em==''){        return $rs;    }    $DBC=DBC::getInstance();    $query = "select * from ".DB_PREFIX."_user where email=? LIMIT 1";    $stmt=$DBC->query($query, array($em));    if($stmt){        $ar=$DBC->fetch($stmt);        if($ar['imgfile']!=''){            $rs=$ar['imgfile'];        }    }    return $rs;}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот полный код страницы ну все равно не получается вывести значение

<?php/** * contactus form * @author Kondin Dmitriy <kondin@etown.ru> http://www.sitebill.ru */class contactus_Form extends Object_Manager {    /**     * Constructor     */    function __construct() {        $this->SiteBill();        $this->table_name = 'contactus';        $this->action = 'contactus';        $this->primary_key = 'contactus_id';	            $this->data_model = $this->get_contactus_model();    }        /**     * Main     * @param void     * @return string     */    function main () {	    require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php');	    $data_model = new Data_Model();	    $form_data = $this->data_model;	    		$rs = $this->getTopMenu();		$rs .= $this->getImage();	$rs .= $this->getAccountValue($em);			switch( $this->getRequestValue('do') ){			case 'new_done' : {        			            $form_data[$this->table_name] = $data_model->init_model_data_from_request($form_data[$this->table_name]);	            //echo '<pre>';	            //print_r($form_data['data']);			    			    if ( !$this->check_data( $form_data[$this->table_name] ) ) {			        $rs .= $this->get_form($form_data[$this->table_name], 'new', 0, Multilanguage::_('L_TEXT_SEND'));			        			    } else {			        $order_table = $this->add_data($form_data[$this->table_name]);                    require_once (SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/mailer/mailer.php');                    $mailer = new Mailer();                    $subject = $_SERVER['SERVER_NAME'].': '.Multilanguage::_('NEW_MESSAGE_FROM_SITE','system');                    $to = $this->getConfigValue('order_email_acceptor');                    $from = $this->getConfigValue('order_email_acceptor');                                        if ( $this->getConfigValue('use_smtp') ) {                        $mailer->send_smtp($to, $from, $subject, $order_table, 1);                    } else {                        $mailer->send_simple($to, $from, $subject, $order_table, 1);                    }                                        $rs = '<h1>'.Multilanguage::_('MESSAGE_SENT','system').'</h1>';                    $rs .= $order_table;			        			    }				break;			}						default : {			   			}		}		return $rs;	}		/**	 * Get top menu	 * @param void 	 * @return string	 */	function getTopMenu () {	   $query = "select * from results_score order by yscore, mscore LIMIT 1";	   mysql_query ('SET CHARSET cp1251');        $this->db->exec($query);        $this->db->fetch_assoc();		$em = $this->db->row['email'];			    $rs .= '<p style="text-align:center;">Победитель текущего месяца</p>		<table id="searchtb" style="text-align:center; font-size:16px;" width="100%">				<tr>		<td style="font-size:16px;"> '.$this->db->row['name'].'		</td>		<td style="font-size:16px;">'.$this->db->row['yscore'].' г. '.$this->db->row['mscore'].' м. 		</td>		</tr>				</table>		';	    return $rs;	}		function getAccountValue($em) {    $rs='';    if($em==''){        return $rs;    }    $DBC=DBC::getInstance();    $query = "select * from ".DB_PREFIX."_user where email='$em' LIMIT 1";    $stmt=$DBC->query($query, array($em));    if($stmt){        $ar=$DBC->fetch($stmt);        if($ar['imgfile']!=''){            $rs=$ar['imgfile'];        }    }    return $rs;}		    function getImage() {				$query = "select * from results_score order by yscore, mscore LIMIT 1";        $this->db->exec($query);        $this->db->fetch_assoc();        $em = $this->db->row['email'];				$img = $this->getAccountValue($em);		        $rs .=''.$img.'<br>		<div id="flashContent">			<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="480" id="sion_impossible2" align="middle">				<param name="movie" value="sion_impossible2.swf" />				<param name="quality" value="high" />				<param name="bgcolor" value="#ffffff" />				<param name="play" value="true" />				<param name="loop" value="true" />				<param name="wmode" value="window" />				<param name="scale" value="showall" />				<param name="menu" value="true" />				<param name="devicefont" value="false" />				<param name="salign" value="" />				<param name="allowScriptAccess" value="sameDomain" />				<!--[if !IE]>-->				<object type="application/x-shockwave-flash" data="/game/sion_impossible2.swf" width="640" height="480">					<param name="movie" value="sion_impossible2.swf" />					<param name="quality" value="high" />					<param name="bgcolor" value="#ffffff" />					<param name="play" value="true" />					<param name="loop" value="true" />					<param name="wmode" value="window" />					<param name="scale" value="showall" />					<param name="menu" value="true" />					<param name="devicefont" value="false" />					<param name="salign" value="" />					<param name="allowScriptAccess" value="sameDomain" />				<!--<![endif]-->					<a href="http://www.adobe.com/go/getflash">						<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Загрузить Adobe Flash Player" />					</a>				<!--[if !IE]>-->				</object>				<!--<![endif]-->			</object>		</div>';				return $rs;    }			/**	 * Add data	 * @param array $form_data form data	 * @return boolean	 */	function add_data ( $form_data ) {	    require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php');	    $data_model = new Data_Model();	    	    require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/view/view.php');	    $table_view = new Table_View();        $rs .= '<table border="1" cellpadding="2" cellspacing="2" style="border: 1px solid gray;">';	    $rs .= $table_view->compile_view($form_data);	    $rs .= '</table>';	    	    /*	    $query = $data_model->get_insert_query(DB_PREFIX.'_'.$this->table_name, $form_data);	    //echo $query.'<br>';	    	    $this->db->exec($query);	    $new_record_id = $this->db->last_insert_id();	    //echo "new_record_id = $new_record_id<br>";	    //echo $query;	     */	    return $rs;	}	    /**     * Get contactus model     * @param boolean $ajax mode     * @return array     */    function get_contactus_model ( $ajax = false ) {		$form_data = array();				$form_data['contactus']['id']['name'] = 'id';		$form_data['contactus']['id']['title'] = Multilanguage::_('L_ID');		$form_data['contactus']['id']['value'] = 0;		$form_data['contactus']['id']['length'] = 40;		$form_data['contactus']['id']['type'] = 'primary_key';		$form_data['contactus']['id']['required'] = 'off';		$form_data['contactus']['id']['unique'] = 'off';				$form_data['contactus']['fio']['name'] = 'fio';		$form_data['contactus']['fio']['title'] = Multilanguage::_('NAME_OR_COMPANY_NAME','system');		$form_data['contactus']['fio']['value'] = '';		$form_data['contactus']['fio']['length'] = 40;		$form_data['contactus']['fio']['type'] = 'safe_string';		$form_data['contactus']['fio']['required'] = 'on';		$form_data['contactus']['fio']['unique'] = 'off';				$form_data['contactus']['phone']['name'] = 'phone';		$form_data['contactus']['phone']['title'] = Multilanguage::_('L_PHONE');		$form_data['contactus']['phone']['value'] = '';		$form_data['contactus']['phone']['length'] = 40;		$form_data['contactus']['phone']['type'] = 'safe_string';		$form_data['contactus']['phone']['required'] = 'on';		$form_data['contactus']['phone']['unique'] = 'off';		$form_data['contactus']['email']['name'] = 'email';		$form_data['contactus']['email']['title'] = Multilanguage::_('L_EMAIL');		$form_data['contactus']['email']['value'] = '';		$form_data['contactus']['email']['length'] = 40;		$form_data['contactus']['email']['type'] = 'safe_string';		$form_data['contactus']['email']['required'] = 'on';		$form_data['contactus']['email']['unique'] = 'off';				$form_data['contactus']['text']['name'] = 'text';		$form_data['contactus']['text']['title'] = Multilanguage::_('L_TEXT');		$form_data['contactus']['text']['value'] = '';		$form_data['contactus']['text']['length'] = 40;		$form_data['contactus']['text']['type'] = 'textarea';		$form_data['contactus']['text']['required'] = 'on';		$form_data['contactus']['text']['unique'] = 'off';		$form_data['contactus']['text']['rows'] = '10';		$form_data['contactus']['text']['cols'] = '40';				$form_data['contactus']['captcha']['name'] = 'captcha';		$form_data['contactus']['captcha']['title'] = Multilanguage::_('L_CAPTCHA');		$form_data['contactus']['captcha']['value'] = '';		$form_data['contactus']['captcha']['length'] = 40;		$form_data['contactus']['captcha']['type'] = 'captcha';		$form_data['contactus']['captcha']['required'] = 'on';		$form_data['contactus']['captcha']['unique'] = 'off';		        //$item_array['action'], $item_array['table_name'], $item_array['primary_key'], $item_array['primary_key_value'];				return $form_data;    }}?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Мне не принципиально чтобы это работало через функции. Главное чтобы была страница с выводом двух запросов

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проверяйте, что возвращает запрос к вашей таблицы. У меня такой нет, поэтому я просто инициализировал $em в getImage заведомо правильным значением почтового ящика и вывод прошел. Есть ли в той таблице вообще поле email и если есть, то не пустое ли оно у первой записи в выборке?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 с выводом двух запросов

 

Если два запроса это вызовы в следующих функциях в начале main()

$rs .= $this->getImage();$rs .= $this->getAccountValue($em);

то второй точно никогда не отработает. В него не передается значимый аргумент, а только необъявленная переменная, которая приведется к пустому значению.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проверил поле есть и оно не пустое. Я даже пробавал конкретные значенния вводить тоже не получается

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Строку 

//error_reporting(E_ALL);

в файле index.php раскомментировывали?

Если нет, снимите коммент или допишите ее после error_reporting(E_ERROR | E_WARNING); и посмотрите, нет ли варнингов.

 

Проверьте, есть ли в корне вашей установки файл log_000.txt.

Если есть, очистите его и после запуска кода проверьте содержиоме - туда складывает ошибки модуль DBC

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Undefined variable: rs нас строке 95

Undefined variable: rs нас строке 157

Undefined variable: em нас строке 31

<?php/** * contactus form * @author Kondin Dmitriy <kondin@etown.ru> http://www.sitebill.ru */class contactus_Form extends Object_Manager {    /**     * Constructor     */    function __construct() {        $this->SiteBill();        $this->table_name = 'contactus';        $this->action = 'contactus';        $this->primary_key = 'contactus_id';	            $this->data_model = $this->get_contactus_model();    }        /**     * Main     * @param void     * @return string     */    function main () {	    require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php');	    $data_model = new Data_Model();	    $form_data = $this->data_model;	    		$rs = $this->getTopMenu();		$rs .= $this->getImage();	$rs .= $this->getAccountValue($em);			switch( $this->getRequestValue('do') ){			case 'new_done' : {        			            $form_data[$this->table_name] = $data_model->init_model_data_from_request($form_data[$this->table_name]);	            //echo '<pre>';	            //print_r($form_data['data']);			    			    if ( !$this->check_data( $form_data[$this->table_name] ) ) {			        $rs .= $this->get_form($form_data[$this->table_name], 'new', 0, Multilanguage::_('L_TEXT_SEND'));			        			    } else {			        $order_table = $this->add_data($form_data[$this->table_name]);                    require_once (SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/mailer/mailer.php');                    $mailer = new Mailer();                    $subject = $_SERVER['SERVER_NAME'].': '.Multilanguage::_('NEW_MESSAGE_FROM_SITE','system');                    $to = $this->getConfigValue('order_email_acceptor');                    $from = $this->getConfigValue('order_email_acceptor');                                        if ( $this->getConfigValue('use_smtp') ) {                        $mailer->send_smtp($to, $from, $subject, $order_table, 1);                    } else {                        $mailer->send_simple($to, $from, $subject, $order_table, 1);                    }                                        $rs = '<h1>'.Multilanguage::_('MESSAGE_SENT','system').'</h1>';                    $rs .= $order_table;			        			    }				break;			}						default : {			   			}		}		return $rs;	}		/**	 * Get top menu	 * @param void 	 * @return string	 */	function getTopMenu () {	   $query = "select * from results_score order by yscore, mscore LIMIT 1";	   mysql_query ('SET CHARSET cp1251');        $this->db->exec($query);        $this->db->fetch_assoc();			    $rs .= '<p style="text-align:center;">Победитель текущего месяца</p>		<table id="searchtb" style="text-align:center; font-size:16px;" width="100%">				<tr>		<td style="font-size:16px;"> '.$this->db->row['name'].'		</td>		<td style="font-size:16px;">'.$this->db->row['yscore'].' г. '.$this->db->row['mscore'].' м. 		</td>		</tr>				</table>		';	    return $rs;	}				 					function getAccountValue($em) {$query = "select * from ".DB_PREFIX."_user where email='savvvv_sd@mail.ru' LIMIT 1";        $this->db->exec($query);        $this->db->fetch_assoc();        return $this->db->row['imgfile'];}		    function getImage() {				$query = "select * from results_score order by yscore, mscore LIMIT 1";        $this->db->exec($query);        $this->db->fetch_assoc();        $em = $this->db->row['email'];				$img = $this->getAccountValue($em);		        $rs .=''.$img.'<br>		<div id="flashContent">			<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="480" id="sion_impossible2" align="middle">				<param name="movie" value="sion_impossible2.swf" />				<param name="quality" value="high" />				<param name="bgcolor" value="#ffffff" />				<param name="play" value="true" />				<param name="loop" value="true" />				<param name="wmode" value="window" />				<param name="scale" value="showall" />				<param name="menu" value="true" />				<param name="devicefont" value="false" />				<param name="salign" value="" />				<param name="allowScriptAccess" value="sameDomain" />				<!--[if !IE]>-->				<object type="application/x-shockwave-flash" data="/game/sion_impossible2.swf" width="640" height="480">					<param name="movie" value="sion_impossible2.swf" />					<param name="quality" value="high" />					<param name="bgcolor" value="#ffffff" />					<param name="play" value="true" />					<param name="loop" value="true" />					<param name="wmode" value="window" />					<param name="scale" value="showall" />					<param name="menu" value="true" />					<param name="devicefont" value="false" />					<param name="salign" value="" />					<param name="allowScriptAccess" value="sameDomain" />				<!--<![endif]-->					<a href="http://www.adobe.com/go/getflash">						<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Загрузить Adobe Flash Player" />					</a>				<!--[if !IE]>-->				</object>				<!--<![endif]-->			</object>		</div>';				return $rs;    }			/**	 * Add data	 * @param array $form_data form data	 * @return boolean	 */	function add_data ( $form_data ) {	    require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/model/model.php');	    $data_model = new Data_Model();	    	    require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/view/view.php');	    $table_view = new Table_View();        $rs .= '<table border="1" cellpadding="2" cellspacing="2" style="border: 1px solid gray;">';	    $rs .= $table_view->compile_view($form_data);	    $rs .= '</table>';	    	    /*	    $query = $data_model->get_insert_query(DB_PREFIX.'_'.$this->table_name, $form_data);	    //echo $query.'<br>';	    	    $this->db->exec($query);	    $new_record_id = $this->db->last_insert_id();	    //echo "new_record_id = $new_record_id<br>";	    //echo $query;	     */	    return $rs;	}	    /**     * Get contactus model     * @param boolean $ajax mode     * @return array     */    function get_contactus_model ( $ajax = false ) {		$form_data = array();				$form_data['contactus']['id']['name'] = 'id';		$form_data['contactus']['id']['title'] = Multilanguage::_('L_ID');		$form_data['contactus']['id']['value'] = 0;		$form_data['contactus']['id']['length'] = 40;		$form_data['contactus']['id']['type'] = 'primary_key';		$form_data['contactus']['id']['required'] = 'off';		$form_data['contactus']['id']['unique'] = 'off';				$form_data['contactus']['fio']['name'] = 'fio';		$form_data['contactus']['fio']['title'] = Multilanguage::_('NAME_OR_COMPANY_NAME','system');		$form_data['contactus']['fio']['value'] = '';		$form_data['contactus']['fio']['length'] = 40;		$form_data['contactus']['fio']['type'] = 'safe_string';		$form_data['contactus']['fio']['required'] = 'on';		$form_data['contactus']['fio']['unique'] = 'off';				$form_data['contactus']['phone']['name'] = 'phone';		$form_data['contactus']['phone']['title'] = Multilanguage::_('L_PHONE');		$form_data['contactus']['phone']['value'] = '';		$form_data['contactus']['phone']['length'] = 40;		$form_data['contactus']['phone']['type'] = 'safe_string';		$form_data['contactus']['phone']['required'] = 'on';		$form_data['contactus']['phone']['unique'] = 'off';		$form_data['contactus']['email']['name'] = 'email';		$form_data['contactus']['email']['title'] = Multilanguage::_('L_EMAIL');		$form_data['contactus']['email']['value'] = '';		$form_data['contactus']['email']['length'] = 40;		$form_data['contactus']['email']['type'] = 'safe_string';		$form_data['contactus']['email']['required'] = 'on';		$form_data['contactus']['email']['unique'] = 'off';				$form_data['contactus']['text']['name'] = 'text';		$form_data['contactus']['text']['title'] = Multilanguage::_('L_TEXT');		$form_data['contactus']['text']['value'] = '';		$form_data['contactus']['text']['length'] = 40;		$form_data['contactus']['text']['type'] = 'textarea';		$form_data['contactus']['text']['required'] = 'on';		$form_data['contactus']['text']['unique'] = 'off';		$form_data['contactus']['text']['rows'] = '10';		$form_data['contactus']['text']['cols'] = '40';				$form_data['contactus']['captcha']['name'] = 'captcha';		$form_data['contactus']['captcha']['title'] = Multilanguage::_('L_CAPTCHA');		$form_data['contactus']['captcha']['value'] = '';		$form_data['contactus']['captcha']['length'] = 40;		$form_data['contactus']['captcha']['type'] = 'captcha';		$form_data['contactus']['captcha']['required'] = 'on';		$form_data['contactus']['captcha']['unique'] = 'off';		        //$item_array['action'], $item_array['table_name'], $item_array['primary_key'], $item_array['primary_key_value'];				return $form_data;    }}?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Эти ошибки естественны.

Замените вашу функцию на 

 

function getAccountValue($em) {echo 'ARGS: '.$em.'<br />';$query = "select * from ".DB_PREFIX."_user where email='savvvv_sd@mail.ru' LIMIT 1";echo 'QUERY: '.$query.'<br />';$this->db->exec($query);if(!$this->db->success){echo 'Error in statement<br />';}$this->db->fetch_assoc();echo '<pre>';print_r($this->db->row);echo '</pre>';return $this->db->row['imgfile'];}

и запустите. посмотрим, что отладка скажет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите а как сделать если не выполняется запрос т.е. email первого запроса нету во втором запросе (в таблице) , то выводит другой код. Типа этого

	if(empty($img)){	$rs ='<img width="50" border="0" style="  margin-left: 84px;    margin-top: -72px;    position: absolute; border: 1px solid #CFCFCF;    border-radius: 5px 5px 5px 5px;    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);" src="/template/frontend/agency/img/no_photo.png">';}else{$rs ='<img width="50" border="0" style="  margin-left: 84px;    margin-top: -72px;    position: absolute; border: 1px solid #CFCFCF;    border-radius: 5px 5px 5px 5px;    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);" src="/img/data/user/'.$img.'">';}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Собственно именно так, как вы и написали в примере. Делаете проверку через empty или сравнивая с пустой строкой, принимаете решение какую разметку вывести.

 

Что вы имеете в виду "т.е. email первого запроса нету во втором запросе "?

 

Если смотреть сюда 

 

$rs = $this->getTopMenu();
$rs .= $this->getImage();
$rs .= $this->getAccountValue($em);
 
то первый запрос у вас, я так понимаю, в getImage(); а второй в getAccountValue(). И вы имеете в виду, что после срабатывания getImage не срабатывает удачно getAccountValue после него, так как в нем нет названия ящика почты?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В смысле типа этого, но условие !empty($img) не работает

 function getImage() {                $query = "select * from results_score order by yscore, mscore LIMIT 1";        $this->db->exec($query);        $this->db->fetch_assoc();        $em = $this->db->row['email'];                $img = $this->getAccountValue($em);        if ( !empty($img)) {        $rs ='<img width="50" border="0" style="  margin-left: 84px;    margin-top: -72px;    position: absolute; border: 1px solid #CFCFCF;    border-radius: 5px 5px 5px 5px;    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);" src="/img/data/user/'.$img.'">';    }    else        {    $rs ='<img width="50" border="0" style="  margin-left: 84px;    margin-top: -72px;    position: absolute; border: 1px solid #CFCFCF;    border-radius: 5px 5px 5px 5px;    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);" src="/template/frontend/agency/img/no_photo.png">';        }    $rs.='<br>        <div id="flashContent">

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проверьте, точно ли не пуста переменная на момент вызова !empty(). Посмотрите, что возвращает $this->getAccountValue($em);

через var_dump($img);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

итак, мы имеем пустую переменную и вполне логично, что условие !empty не выполняется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я ошибался вот этот код работает при конкретном значении email, т.е. не передается $em

	function getAccountValue($em) {	$query = "select * from ".DB_PREFIX."_user where email='$em' LIMIT 1";        $this->db->exec($query);        $this->db->fetch_assoc();        return $this->db->row['imgfile'];}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы не программист?

В вызове внутри getImage $em должен передаться, вы его там ловите из БД.

Но откуда же $em передастся в getAccountValue($em), которая вызывается в main() после getImage(), если единственное место, где вы ее определили - это внутри функции getImage(). Но само значение не может "выскочить" из getImage наружу, что бы попасть в getAccountValue, которая аботает не внутри нее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Функция getAccountValue - получает значение поля с картинкой из ьаблицы пользователей по мылу.

Функция getImage - строит кусок разметки используя результат работы getAccountValue . В ней же и проверяется, если getAccountValue вернула пустоту, значит строится заглушечная разметка, если нет, значит красивая картинка с лицом пользователя.

 

И напрямую вызывать вы будете только getImage а она уже вызовет сама getAccountValue , когда определится с имейлом нужного пользователя (тут я не знаю откуда вы его будете брать).

 

Результат getImage прицепить к переменной, которая возвращается функций, которая вызовет getImage .

 

Вот по этому алгоритму и стройте код.

 

Можете даже для определения имейла ввести отдельную функцию. Чм проще функция и чем более "узкоспециализированна" она есть, тем проще и в поддержке, и в изменении, и в ловле ошибок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас