pushnov
Участники-
Публикации
113 -
Зарегистрирован
-
Посещение
-
Days Won
10
Все публикации пользователя pushnov
-
В файл ajax.php нужно вставить код <?php/** * Ajax server module * @author Kondin Dmitriy <kondin@etown.ru> http://www.sitebill.ru */error_reporting(0);//error_reporting(E_ALL);//ini_set('display_errors','On');session_start();$settings=parse_ini_file(SITEBILL_DOCUMENT_ROOT.'/settings.ini.php',true);if(isset($settings['Settings']['estate_folder'])AND($settings['Settings']['estate_folder']!='')){$folder='/'.$settings['Settings']['estate_folder'];}else{$folder='';}$estate_folder = $folder;global $home_url;$home_url = '';require_once(SITEBILL_DOCUMENT_ROOT."/inc/db.inc.php");if(!defined('SITE_ENCODING')){ define('SITE_ENCODING', 'windows-1251');}header('Content-Type: text/html; charset='.SITE_ENCODING);$sitebill_document_root = $_SERVER['DOCUMENT_ROOT'].$folder;define('SITEBILL_DOCUMENT_ROOT', $sitebill_document_root);define('SITEBILL_MAIN_URL', $folder);define('DB_PREFIX', $__db_prefix);ini_set("include_path", $include_path );require_once(SITEBILL_DOCUMENT_ROOT.'/third/smarty/Smarty.class.php');require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/init.php');require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/db/MySQL.php');require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/sitebill.php');require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/sitebill_krascap.php');require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/language/russian.php');require_once(SITEBILL_DOCUMENT_ROOT.'/template/frontend/domikus/ajax_server.php');$smarty = new Smarty;$init = new Init();$init->initGlobals();$ETOWN_LANG = new Etown_Lang;if(isset($_REQUEST['_lang'])){ $_SESSION['_lang']=$_REQUEST['_lang'];}else{ if(!isset($_SESSION['_lang'])){ $_SESSION['_lang']='ru'; }}require_once SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/system/multilanguage/multilanguage.class.php';Multilanguage::start('frontend',$_SESSION['_lang']);$sitebill = new SiteBill();$sitebill->writeLog('ajax');$smarty->template_dir = SITEBILL_DOCUMENT_ROOT.'/template/frontend/'.$sitebill->getConfigValue('theme');$smarty->cache_dir = SITEBILL_DOCUMENT_ROOT.'/cache/smarty';$smarty->compile_dir = SITEBILL_DOCUMENT_ROOT.'/cache/compile';$ajax_server = new Ajax_Server();$rs = $ajax_server->main();$sitebill->writeLog($rs);echo $rs;?>Так же нужно создать файл ajax_server.php и в нем вставить код <?php/** * Ajax server class * @author Kondin Dmitriy <kondin@etown.ru> http://www.sitebill.ru */class Ajax_Server extends SiteBill { /** * Construct */ function __construct() { $this->SiteBill(); } /** * Main * @param void * @return string */ function main () { switch ( $this->getRequestValue('action') ) { case 'phone':{ $id=(int)$this->getRequestValue('id'); $DBC=DBC::getInstance(); $query='SELECT phone FROM '.DB_PREFIX.'_data WHERE id='.$id.''; $stmt=$DBC->query($query); $ar=$DBC->fetch($stmt); $result = $ar['phone']; echo $result; exit; break; } } $body = str_replace("\r\n", ' ', $body); $body = str_replace("\n", ' ', $body); $body = addslashes($body); $rs = '{ "response":{ "to":"Tove", "from":"Jani", "body":"'.$body.'" }} '; if ( $_REQUEST['callback'] != '' ) { $rs = $_REQUEST['callback'].'('.$rs.')'; } return $rs; }}?>На работоспособность не проверял, но если я правильно понял принцип вышеупомянутого local ajax, то должно работать. Еще в файле realty_view.tpl в вставленном коде нужно заменить строчку url: estate_folder+'/js/ajax.php', на url: estate_folder+'/template/frontend/domikus/ajax.php',
-
Из вашего описания ничего не понятно. Напомню, я не селен в php, по этому если ошибаюсь, поправьте меня. Если я правильно понимаю, то создание одного только файла ajax.php ничего не даст. Если смотреть как реализован ajax в системных файлах, то нужно еще и файл ajax_server.php, в котором уже и реализуется требуемый функционал.
-
Можно реализовать при помощи ajax подгрузки при клике по кнопке или ссылке "Показать". Я не селен в javascript и php, по этому прошу не пинать. Если уж банально, то можно как то так: В файле realty_view.tpl вставляем <script type="text/javascript"> $(document).on('click', '.open-num-phone', function(event){ event.preventDefault(); var id='{$data.id.value}'; $.ajax({ {literal} url: estate_folder+'/js/ajax.php', data: {action: 'phone', id: id}, type: 'post', dataType: 'text', success: function(phone){ $("#realty_"+id).html("<img src='/template/frontend/default/img/preloader.gif' />"); $("#realty_"+id).fadeOut(500, function(){ $(this).html(phone).fadeIn(500); }); } {/literal} }); }); </script> <div class="open-num-phone" id="realty_{$data.id.value}"> <a href="{$REQUEST_URI}">Показать телефон</a></div> И в файле /apps/system/lib/system/ajax/ajax_server.php, где нибудь в конце функции main(), где то строка 1565, вставить примерно такой код case 'phone':{ $id=(int)$this->getRequestValue('id'); $DBC=DBC::getInstance(); $query='SELECT phone FROM '.DB_PREFIX.'_data WHERE id='.$id.''; $stmt=$DBC->query($query); $ar=$DBC->fetch($stmt); $result = $ar['phone']; echo $result; exit; break;} Код конечно нужно еще доработать, но для начала этого должно хватить. И следует помнить, при обновлении cms, файл /apps/system/lib/system/ajax/ajax_server.php скорее всего перезапишется.
-
Не отобразается дата подачи объявления
topic ответил в pushnov pushnov в Приложения, модули, настройки
Спасибо за ответ. Разработчикам не мешало бы как то указать эту информацию. Получается так, что cms обновляется, появляются какие-то нововведения, а в шаблонах, даже в базовых, никаких изменений и даже никаких упоминаний об этих изменениях, по этому часть шаблона зачастую работает не корректно. Как уже не однократно упоминалось на форуме, данная cms не пригодна для использования "из коробки". Даже программист не сможет создать сайт за 5 минут на данном движке, не говоря уже о простых риэлторах. За 5 минут, которые указанны на сайте Sitebill можно создать только сайт с частично работающим функционалом. -
Для того что бы эта переменная отображалась для всех нужно удалить все выделения, а не выделить их все.
-
Дело в том, что в последних версия cms этой переменной выставлены права доступа только для группы администраторов. Вывод этой переменной у вас работает скорее всего только в том браузере, в котором вы авторизовались как администратор.
-
Не отобразается дата подачи объявления
topic ответил в pushnov pushnov в Приложения, модули, настройки
Разобрался сам. После обновления cms, тип записи данного поля изменяется с hidden на dtdatetime и присваиваются права доступа только администратору, по этому в полном описании это поле могут увидеть только пользователи авторизованные с правами админа. -
После обновления cms в полном описании не отображается дата подачи объявления (date_added). Если авторизоваться с правами админа, тогда все работает нормально. Как это можно исправить?
-
Эту надпись можно изменить Админка > Приложения > Редактор переводов >System
-
А что совместимого в шаблоне Pure? В коде шаблона layout_realtyview.tpl есть переменные для проверки, но они не встречаются в модуле Магазин контактов. Фактически я не нашел там ничего совместимого, приходится все допиливать самому.