Victor_winner

Добавление новой формы "Контакты"

Recommended Posts

Друзья, добавляю на страницу Контакты

1. Виджет карты 2Gis

2. Адрес и часы работы

 

Шёл 2-мя способами

1. Добавлял в шаблон main.tpl  - строчку типа

{if $smarty.server.REQUEST_URI == '/contactus/'}		{include file="twogis_map.tpl"}{/if} 

А в файле twogis_map.tpl прописывал саму форму добавления карты

<html><a id="firmsonmap_biglink"    href="http://maps.2gis.ru/#/?history=project/komsomolsk/center/137.0653127678,50.583260205531/zoom/18/state/widget/id/13229852186378595/firms/13229852186378595">	Перейти к большой карте</a><script charset="utf-8" type="text/javascript" src="http://firmsonmap.api.2gis.ru/js/DGWidgetLoader.js"></script><script charset="utf-8" type="text/javascript">new DGWidgetLoader({"borderColor":"#a3a3a3","width":"900","height":"600","wid":"6c7bbd3d081d6538bf5f5fc0c70fa4b7","pos":{"lon":"137.0653127678","lat":"50.583260205531","zoom":"18"},"opt":{"ref":"inside","card":["name","contacts","schedule","payings"],"city":"komsomolsk"},"org":[{"id":"13229852186378595","hash":"4eeiqa3488A7CH1Jd553uvgc8822G3I29166352B893A250864B869G4H3G23A41G87"}]});</script>	<noscript style="color:#c00;font-size:16px;font-weight:bold;">Виджет карты использует JavaScript. Включите его в настройках вашего браузера.</noscript></html> 

Шаблон не подключается. Наверное его перекрывает форма contactus.php, которая отвечает за форму контактов. 

 

Тогда я поместил форму в contactus.php, а именно создал функцию вывода модуля карты и включил эту функцию в main()

 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();				$this->get2GISMap_echo(); //подключение карты		switch( $this->getRequestValue('do') )		{		...                ...                ...		        }						default : 			{			    $rs .= $this->get_form($form_data[$this->table_name], 'new', 0, Multilanguage::_('L_TEXT_SEND'));			}		}				return $rs;	}			function get2GISMap_echo() 	{	echo <<<_END	<a id="firmsonmap_biglink"    href="http://maps.2gis.ru/#/?history=project/komsomolsk/center/137.0653127678,50.583260205531/zoom/18/state/widget/id/13229852186378595/firms/13229852186378595">	Перейти к большой карте	</a><script charset="utf-8" type="text/javascript" src="http://firmsonmap.api.2gis.ru/js/DGWidgetLoader.js"></script><script charset="utf-8" type="text/javascript">new DGWidgetLoader({"borderColor":"#a3a3a3","width":"900","height":"600","wid":"6c7bbd3d081d6538bf5f5fc0c70fa4b7","pos":{"lon":"137.0653127678","lat":"50.583260205531","zoom":"18"},"opt":{"ref":"inside","card":["name","contacts","schedule","payings"],"city":"komsomolsk"},"org":[{"id":"13229852186378595","hash":"4eeiqa3488A7CH1Jd553uvgc8822G3I29166352B893A250864B869G4H3G23A41G87"}]});</script><noscript style="color:#c00;font-size:16px;font-weight:bold;">Виджет карты использует JavaScript. Включите его в настройках вашего браузера.</noscript>_END;	}	 

Получается неформатированный по размерам и области вывод карты - post-1749-0-70058300-1394261388_thumb.pn

 

 

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


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

по тому что вы  не много не правильно это сделали

 

1. Нужно скопировать и подключить contactus.php локально из шаблона (через main.php) иначе после обновления все затрется. от в нем и добавляем свои изменения.

if ( !$has_result && preg_match('/^contactus\//', $REQUESTURIPATH) ) {
require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/object_manager.php');
require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/form/contactus.php');
$contactus_form = new contactus_Form();
 
$this->template->assert('main', $contactus_form->main());
 
$work_subcontroller='contactus';
$has_result=true;
 
Теперь на вашем примере:
подключаем 
$this->get2GISMap_echo();
 
сам шаблон

function get2GISMap_echo() {

   $rs = '';
   $rs .= '<script charset="utf-8" type="text/javascript" src="http://firmsonmap.api.2gis.ru/js/DGWidgetLoader.js"></script>';
    ...
    ...
    ...
   return $rs;
}
 
В идеале скрипты нужно отдельно выносить.

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


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

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

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

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

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

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

Войти

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

Войти сейчас