Chernetskiy

Участники
  • Публикации

    3163
  • Зарегистрирован

  • Посещение

  • Days Won

    191

Все публикации пользователя Chernetskiy

  1. Да, каждый файл должен быть уникальным и желательно осмысленным; Описание, это отдельная история, одно другому не мешает.
  2. Дело личное, можно и оставить как есть, поскольку файлы уже записаны и привязаны к объявлению. Со временем, при добавлении новых объявлений, будут добавляться фото с осмысленными названиями, или как вариант - заморочиться с удалением фото в объявлениях, переобозвать и загрузить их по новой в объявления, но при этом контролировать чтобы названия не пересекались, например добавляя к названию ID объявления, типа apartments-123.jpg
  3. Видимо загружено несколько картинок, у некоторых прописан Alt, у некоторых нет. Надо открыть статью к редактированию, кликнуть на фото - свойства и вписать Alt там, где отсутствует.
  4. Если не включать, то файл vasya.jpg закачается нак 012345_67890.jpg, то есть ему будет присвоено уникальное название. Если настройка включена, то так и сохранится vasya.jpg. Но поскольку файлов с одинаковым названием komnata.jpg, kvartira.jpg и т.п. может быть много, то надо это учитывать, чтобы не было проблем с загрузкой и показом фото. Первый вариант по умолчанию организует уникальность и бестолковость названия файла, второй вариант - будет толковым, но его уникальность - ваша проблема.
  5. Да, у меня как-то в карточке агента была ссылка "Показать все объекты агента", работало... Но потом снес в угоду дизайна. Думаю, надо вернуть кнопкой, симпатичнее будет.
  6. Тогда вот дефолтный вариант файла, как есть в поставке шаблона: <script> {literal} $(document).ready(function(){ $(document).on('change', '.property-filter select[name=region_id]', function(){ setTimeout(function(){ $(".property-filter select[name=city_id]").chosen({ disable_search_threshold: 10 }); $(".property-filter select[name=street_id]").chosen({ disable_search_threshold: 10 }); }, 500); }); $(document).on('change', '.property-filter select[name=city_id]', function(){ setTimeout(function(){ $(".property-filter select[name=street_id]").chosen({ disable_search_threshold: 10 }); }, 500); }); }); var max_price={/literal}{if $max_price ne ''}{$max_price}{else}0{/if}{literal}; var price_from=Number({/literal}{if isset($price_min)}{$price_min}{else}0{/if}{literal}); var price_for=Number({/literal}{if (isset($price)) && ($price ne '')}{$price}{else}{$max_price}{/if}{literal}); {/literal} </script> {$ajax_functions} {foreach from=$scripts item=script} {*$script*} {/foreach} <div class="property-filter pull-right"> <div class="content"> {if $mysearch_on==1} {if $mysearch_save_form_file ne ''} {include file=$mysearch_save_form_file} {/if} {/if} <form method="get" action="{$estate_folder}/"> {*$currency_list*} <div class="type control-group"> <label class="control-label" for="inputType"> {$L_TYPE} </label> <div class="controls"> {$structure_box} </div><!-- /.controls --> </div><!-- /.control-group --> {if $country_list != ''} <div class="type control-group"> <label class="control-label" for="inputType"> {$L_COUNTRY} </label> <div class="controls"> {$country_list} </div><!-- /.controls --> </div><!-- /.control-group --> {/if} {if $region_list != ''} <div class="type control-group"> <label class="control-label" for="inputType"> {$L_REGION} </label> <div class="controls"> {$region_list} </div><!-- /.controls --> </div><!-- /.control-group --> {/if} {if $city_list != ''} <div class="type control-group"> <label class="control-label" for="inputType"> {$L_CITY} </label> <div class="controls"> {$city_list} </div><!-- /.controls --> </div><!-- /.control-group --> {/if} {if $district_list != ''} <div class="type control-group"> <label class="control-label" for="inputType"> {$L_DISTRICT} </label> <div class="controls"> {$district_list} </div><!-- /.controls --> </div><!-- /.control-group --> {/if} {if $street_list != ''} <div class="type control-group"> <label class="control-label" for="inputType"> {$L_STREET} </label> <div class="controls"> {$street_list} </div><!-- /.controls --> </div><!-- /.control-group --> {/if} {if $metro_list != ''} <div class="type control-group"> <label class="control-label" for="inputType"> {$L_METRO} </label> <div class="controls"> {$metro_list} </div><!-- /.controls --> </div><!-- /.control-group --> {/if} <!-- <div class="rent control-group"> <div class="controls"> <label class="checkbox" for="inputRent"> <input type="checkbox" name="optype[]" value="1"id="inputRent"> Аренда </label> </div> </div> <div class="sale control-group"> <div class="controls"> <label class="checkbox" for="inputSale"> <input type="checkbox" name="optype[]" value="2" id="inputSale"> Продажа </label> </div> </div> --> <div class="beds control-group"> <div class="controls"> <input type="text" class="price_from price_field" name="price_min" value="{if isset($price_min)}{$price_min|number_format:0:'':' '}{else}0{/if}"/> </div><!-- /.controls --> </div><!-- /.control-group --> <div class="baths control-group"> <div class="controls"> <input type="text" class="price_for price_field" name="price" value="{if isset($price) && $price!=0}{$price|number_format:0:'':' '}{else}{$max_price|number_format:0:'':' '}{/if}"/> </div><!-- /.controls --> </div><!-- /.control-group --> <div class="price-value control-group"> <div class="controls"> <div class="slider"></div> </div><!-- /.controls --> </div> <div class="type control-group"> <label class="control-label" for="inputType"> {$L_ROOMS1} </label> <div class="controls"> {if isset($smarty.request.room_count) && is_array($smarty.request.room_count)} <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="1"{if in_array(1,$smarty.request.room_count)} checked="checked"{/if} /> <label class="ch">1</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="2"{if in_array(2,$smarty.request.room_count)} checked="checked"{/if} /> <label class="ch">2</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="3"{if in_array(3,$smarty.request.room_count)} checked="checked"{/if} /> <label class="ch">3</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="4"{if in_array(4,$smarty.request.room_count)} checked="checked"{/if} /> <label class="ch">4+</label> </div> {else if isset($smarty.request.room_count)} <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="1"{if $smarty.request.room_count==1} checked="checked"{/if} /> <label class="ch">1</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="2"{if $smarty.request.room_count==2} checked="checked"{/if} /> <label class="ch">2</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="3"{if $smarty.request.room_count==3} checked="checked"{/if} /> <label class="ch">3</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="4"{if $smarty.request.room_count>3} checked="checked"{/if} /> <label class="ch">4+</label></div> {else} <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="1" /> <label class="ch">1</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="2" /> <label class="ch">2</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="3" /> <label class="ch">3</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="4" /> <label class="ch">4+</label></div> {/if} </div> </div> <div class="form-actions"> <input type="submit" value="{$L_GOSEARCH}" class="btn btn-primary btn-large"> </div><!-- /.form-actions --> </form> </div><!-- /.content --> </div><!-- /.property-filter -->
  7. Настройки-Общее... ищи, должен быть. Или воспользуйся поиском браузера, фразы настроек соответствуют написанному
  8. Елена... на скриншоте фото, над ним строка "Альтернативный текст", вот туды и пишем.
  9. Вот мой, оп правда дополнен странами, регионами, районами а дальше стандартно <script> {literal} function refresher_linked_global_callback(connected_element){ //console.log(1); connected_element.trigger("liszt:updated"); /*connected_element.chosen({ disable_search_threshold: 10 });*/ //connected_element.trigger('change'); } $(document).ready(function(){ $('.property-filter select').chosen({ disable_search_threshold: 10 }); /*$(document).on('change', '.property-filter select[name=region_id]', function(){ setTimeout(function(){ $(".property-filter select[name=raion_id]").chosen({ disable_search_threshold: 10 }); $(".property-filter select[name=city_id]").chosen({ disable_search_threshold: 10 }); $(".property-filter select[name=street_id]").chosen({ disable_search_threshold: 10 }); }, 500); }); $(document).on('change', '.property-filter select[name=city_id]', function(){ setTimeout(function(){ $(".property-filter select[name=street_id]").chosen({ disable_search_threshold: 10 }); }, 500); });*/ }); var max_price={/literal}{if $max_price ne ''}{$max_price}{else}0{/if}{literal}; var price_from=Number({/literal}{if isset($price_min)}{$price_min}{else}0{/if}{literal}); var price_for=Number({/literal}{if (isset($price)) && ($price ne '')}{$price}{else}{$max_price}{/if}{literal}); {/literal} </script> {$ajax_functions} {foreach from=$scripts item=script} {*$script*} {/foreach} <div class="property-filter pull-right"> <div class="content"> {if $mysearch_on==1} {if $mysearch_save_form_file ne ''} {include file=$mysearch_save_form_file} {/if} {/if} <form method="get" action="{$estate_folder}/"> <div class="type control-group"> <label class="control-label" for="inputType">{$L_TYPE}</label> <div class="controls">{$structure_box}</div> </div> {if $country_list != ''} <div class="type control-group"> <label class="control-label" for="inputType">{$L_COUNTRY}</label> <div class="controls">{$country_list}</div> </div> {/if} {if $region_list != ''} <div class="type control-group"> <label class="control-label" for="inputType">{$L_REGION}</label> <div class="controls">{$region_list}</div> </div> {/if} {if $raion_list != ''} <div class="type control-group"> <label class="control-label" for="inputType">{$L_RAION}</label> <div class="controls">{$raion_list}</div> </div> {/if} {if $city_list != ''} <div class="type control-group"> <label class="control-label" for="inputType">{$L_CITY}</label> <div class="controls">{$city_list}</div> </div> {/if} {if $district_list != ''} <div class="type control-group"> <label class="control-label" for="inputType">{$L_DISTRICT}</label> <div class="controls">{$district_list}</div> </div> {/if} {if $street_list != ''} <div class="type control-group"> <label class="control-label" for="inputType">{$L_STREET}</label> <div class="controls">{$street_list}</div> </div> {/if} {if $metro_list != ''} <div class="type control-group"> <label class="control-label" for="inputType">{$L_METRO}</label> <div class="controls">{$metro_list}</div> </div> {/if} <label class="control-label" for="inputType">{$L_PRICE}</label> <div class="beds control-group"> <div class="controls"> <input type="text" class="price_from price_field" name="price_min" value="{if isset($price_min)}{$price_min|number_format:0:'':' '}{else}0{/if}"/> </div> </div> <div class="baths control-group"> <div class="controls"> <input type="text" class="price_for price_field" name="price" value="{if isset($price) && $price!=0}{$price|number_format:0:'':' '}{else}{$max_price|number_format:0:'':' '}{/if}"/> </div> </div> <div class="price-value control-group"> <div class="controls"> <div class="slider"></div> </div> </div> <div class="type control-group"> <label class="control-label" for="inputType">{$L_ROOMS1}</label> <div class="controls"> {if isset($smarty.request.room_count) && is_array($smarty.request.room_count)} <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="1"{if in_array(1,$smarty.request.room_count)} checked="checked"{/if} /> <label class="ch">1</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="2"{if in_array(2,$smarty.request.room_count)} checked="checked"{/if} /> <label class="ch">2</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="3"{if in_array(3,$smarty.request.room_count)} checked="checked"{/if} /> <label class="ch">3</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="4"{if in_array(4,$smarty.request.room_count)} checked="checked"{/if} /> <label class="ch">4+</label> </div> {else if isset($smarty.request.room_count)} <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="1"{if $smarty.request.room_count==1} checked="checked"{/if} /> <label class="ch">1</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="2"{if $smarty.request.room_count==2} checked="checked"{/if} /> <label class="ch">2</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="3"{if $smarty.request.room_count==3} checked="checked"{/if} /> <label class="ch">3</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="4"{if $smarty.request.room_count>3} checked="checked"{/if} /> <label class="ch">4+</label></div> {else} <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="1" /> <label class="ch">1</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="2" /> <label class="ch">2</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="3" /> <label class="ch">3</label></div> <div class="ch_small"><input class="checkbox" type="checkbox" name="room_count[]" value="4" /> <label class="ch">4+</label></div> {/if} </div> </div> <div class="form-actions"> <input type="submit" value="{$L_GOSEARCH}" class="btn btn-primary btn-large"> </div> </form> </div> </div>
  10. Осмысленная ссылка это одно, Alt и title это другое, желательно, чтобы всё было по Фэншую, поисковиков много и у каждого свой механизм понимания SEO и критерии присвоения рейтингов страницам сайта. Чем больше всё адаптировано, тем лучше.
  11. Похоже, что еще что-то в коде зацепили... Я у себя проверил, Метро из поиска исчезает и проблем с сайтом не возникает. Закомментируйте только вышеуказанный код и ничего больше, и проверьте... <!-- вышеуказанный код --> , всё должно работать, только без метро в поиске. Пример ниже... <!-- {if $metro_list != ''} <div class="type control-group"> <label class="control-label" for="inputType">{$L_METRO}</label> <div class="controls">{$metro_list}</div> </div> {/if} -->
  12. Судя по скриншоту, ваши картинки для статей сохраняются в папке http:// ваш_сайт.ru/ckfinder/userfiles/images/ваш_файл.jpg, уникальность фото в его названии, которое может (варианты): присваиваться автоматически, при записи фото на сервер, сохраняться в исходном варианте - см. настройки - чекбокс "сохранять физические названия загруженных файлов", еще там-же посмотрите чекбокс "Включить SEO-оптимизацию названий изображений" Если вам необходимо изменить путь сохрания фото, чтобы ссылка была короче или выглядела иначе, ковыряйте настройки ckfinder'a, там вроде как в файле config.php по этому поводу есть стока $baseUrl = '/ckfinder/userfiles/'; замените её на / , создайте в корне сайта папку images, возможно и сработает, а путь записи сократится до http:// ваш_сайт.ru/images/ваш_файл.jpg Админы поправьте, если не прав
  13. Думаю, что в PARAMS надо подставлять что-то типа user_id=1 если для выборки по агенту. А вот для отдельных статей, новостей и прочего вряд-ли получится, если только попробовать articles_id=1 (для статей) и т.п., но вряд-ли в этом будет толк, да и в понятии поисковиков получится дубль имеющейся страницы с одинаковым содержимым, что плохо. Вскоре поисковик такие страницы склеит, но осадочек, в виде опустившегося рейтинга страницы у него останется
  14. Елена, это связано с тем, что в PARAMS надо указывать не полную ссылку а параметры к ссылке на сайт, то что после /? в ссылке - fazendabg.com/?topic_id=1&country_id=1. После сохранения формируется полная ссылка на которую будет адресовать твой алиас. В общем, смотри мультик по новой... В твоем случае получается итоговый вариант ссылки https://fazendabg.com/?https://fazendabg.com/user1.html, понятное дело, что так работать не будет.
  15. 1. Что подразумевается под пустыми страницами - на которых вообще нет ничего по критерию поиска? В realty_grid.tpl недалеко от начала есть кусок кода: <div class="row"> <div class="span9"> {if $grid_items|count==0} <h1 class="page-header" align="center">Ничего не удалось найти</h1> <p align="center">Измените условия поиска или вернитесь<a title="на главную" href="/"> на главную</a></p> {else} <h1 class="page-header" align="center">{$title}</h1> Ничего не удалось найти - как раз для такого случая, уловие - показывать это сообщение или заголовок, если объекты найдены. Поправьте его как вам надо. 2. О каких выпадающих списках идет речь? Ели списки выбора в поиске (города, улицы и т.п.), то для этого случая есть автокомплит или лучше связанные элементы... поищите по форуму и Wiki
  16. Картинкам в новостях, которые грузятся автоматически, в качестве alt добавляется заголовок статьи. Картинкам в статьях можно alt изменить, кликнуть на картинку правой кнопкой мыши и в контекстном меню выбрать "Свойства изображения", в новом окне написать то, что надо. Картинкам в объявлениях, после сохранения фото, надо снова открыть объявление к редактированию и кликнуть на названии фото, оно откроется для редактирования, пишите что душе угодно, это и будет ваш alt.
  17. Так на 2-м скриншоте вы уже указали alt - "Фото Сбербанк России", что еще надо?
  18. С позиции SEO оптимальная длина заголовков от 43 до 64 симв., макс. 70. оптимальная длина описания - анонса 112-142 симв. оптимальная длина статьи от 300 слов (текст объявления).
  19. Дима, уже поправили ссылки в header.tpl на https и карты заработали. Елена в панике один вопрос в несколько тем раскидала В header.tpl еще имеются прямые ссылки с http, и при переходе на https их приходится менять, иначе шрифты и API карт Гугла и Яндекса блокируются, что выражается в отсутствии карт и формы обратной связи на сайте + дефолтных шрифтах. По крайней мере на прежних шаблонах Realia так.
  20. Вроде для решения вашего вопроса достаточно будет в Настройках - Дополнительно кликнуть на чекбокс "Открыть доступ к неактивным объектам по прямой ссылке". А в самих неактивных объявлениях написать "Объект продан, вы можете выбрать аналогичный из представленных на сайте", ссылочку прицепить на соответствующий раздел, например Продажа квартир, или адресовать на поиск. При этом не придется городить огород с "Проданными", поскольку смысла в этом нет. Ваш рейтинговый мусор будет доступен на сайте только по прямым ссылкам из тех порталов и соцсетей, где это объявление светится, даже будет индексироваться, поскольку ссылка есть и она не битая, но в выборке из поиска участвовать не будет.
  21. А какой сакральный смысл держать на сайте мертвые страницы, которые никогда не пригодятся, никому не нужны и не доступны, не имеют посещаемости и как следствие их рейтинг - 0 ? Ну пойму еще объявления аренды квартир/офисов, сдал объект - отправил в архив (не публиковать, не выгружать), освободился объект - активировал объявление из архива... но мусор-то зачем на сайте? Это не только бестолковая трата дискового пространства на хранение мусорных фото, но и раздутая база SQL (а у нее зачастую есть ограничение по размеру) и CMS все эти объемы мусора должен перелопатить при каждом запросе посетителя сайта, вычленяя из него нужное.
  22. Ну тогда KLADR-viewer + свежескачанная база КЛАДР в помощь. Поищи на форуме обсуждение, там и ссылки найдутся.
  23. Ну да, в по центру пустая карта Белоруссии и Украины Клиент сходу сообразит... нет, на Украину не хочу и отправится на выход. Еще веселее будет, если добавлю объекты в США или на Карибских островах, там тоже есть. Тогда по центру будет Тихий океан, что точно многих загонет в ступор Нет, с такой картой надо что-то делать и предложенные выше варианты, вроде как оптимальное решение вопроса. У нас-же много любителей копий АВИТО сидит на этой CMS.