vihr

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

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

  • Посещение

  • Days Won

    1

Изменения репутации

  1. Like
    vihr изменил репутацию abushyk в Организовать на своём сайте выгрузку со сторонних сайтов   
    Заморачиваться стоит если:
    1. реально получить профит - арендные платежи, процент с реализаций, еще какие-то меркантильные бонусы. Ну это наверное самое главное)
    2. вы уже лидер и вам просто нужно расширить базу предложений, что бы еще более увеличился клиентооборот
    3. вам по приколу и вы хотите понять каково это управляться и упорядочивать несколькими тысячами чужих объяв заливаемых из разных источников, в том числе и с офигительным дублированием и с самой разнообразной географией. в общем если хочется перчинки))
    4. если вы не ограничитель только простой заливкой к себе, а начнете предлагать и разрабатывать какие-то программы как поощряющие так и ограничивающие для заливальщиков.
     
    Заморачиваться не стоит если:
    1. вы на начальной стадии раскрутки. Выгрузчики надают вам неуникальных текстовых описаний, которые они параллельно выдают еще на другие коллекторы и которые, вполне часто, сами получают со сторонних коллекторов или других людей, которые сами копипастят одно и то же описание всюду. грубо говоря если вы не закроете все объявки или хотя бы их описания от индекса, то кубок копипастера скорее вас найдет.
    2. если ваш сервер слабоват. парсинг ресурсоемкий. хранение графматериала требует физдиска. база тоже. не дай бог еще клиенты повалят)))
    3. если у вас нет времени ежедневно ковыряться в этом шлаке, который будут вам сливать. два дня без контроля и эти авгиевы конюшни уже будет не разгрести.
  2. Like
    vihr получил репутацию от Chernetskiy в Переход на https://   
    используй вместо http:// или https://  просто //
    тогда подгрузка внешних скриптов будет по текущему протоколу.
    тогда можно будет пользоваться и http:// и https://
  3. Like
    vihr изменил репутацию bogdanoff в Импотрт/Экспорт объектов из одного формата в другой   
    Добавился к вам, не нашел раздела Краснодарский край, Краснодар. Где будут отображаться объекты из этого региона?
  4. Like
    vihr изменил репутацию Chernetskiy в Импотрт/Экспорт объектов из одного формата в другой   
    Прописался к вам, вроде всё правильно загружается.
  5. Like
    vihr изменил репутацию itmama в Сколко будет стоить сделать парсер объявлений в sitebill c авито?   
    Написали такой парсер c аvito на сайт. Уже работает, можете проверить на сайте go05.ru . Продаю за 4000 рублей.
    Настрою любой фильтр для выборки недвижимости с авито.
    Почта:media@daglab.ru
    +79894574040
    itmama.ru
  6. Like
    vihr получил репутацию от Лина в аналог модуля новости   
    Не так сложно переделать ньюсы под блоги и статьи - http://www.eest.ru/blog пример. Отельным модулем аналог ньюс
  7. Like
    vihr получил репутацию от abushyk в Robokassa   
    Решили с Костей проблемму надо поле добавить в re_bill 
     `payment_sum_robokassa` decimal(10,2) NOT NULL,
  8. Like
    vihr получил репутацию от domprim.ru в Бесконечный скролинг, идеи предложения   
    Оптимальный вариант - условно бесконечный вывод
    первые 3 страницы
    потом кнопка "показать еще"
  9. Like
    vihr изменил репутацию abushyk в Cтраница с объектами агента /userХХ.html   
    Базовое решение.
     
    На примере шаблона agency
     
    1. /template/frontend/agency/main/main.php
    ищем строку
    if(!$has_result && preg_match('/user(\d+).html/', $_SERVER['REQUEST_URI'], $matches)){ которая открывает блок, где у нас рисуется сетка объявлений пользователя.
    После 
    $this->setRequestValue('user_id', (int)$matches[1]); делаем дополнение
    $DBC=DBC::getInstance();$query='SELECT fio, phone FROM '.DB_PREFIX.'_user WHERE user_id=?';$stmt=$DBC->query($query, array((int)$matches[1]));if($stmt){$ar=$DBC->fetch($stmt);$this->template->assert('grid_user_info', $ar);} Этот блок выбирает данные из таблицы юзеров. Список fio, phone можно расширить нужными вам именами из модели user. Не делаете 'SELECT * ', что бы не выхватывать пароли-явки. Только нужные поля.
     
    Теперь в переменной {$grid_user_info} шаблона у нас есть данные.
     
    2. /template/frontend/agency/realty_grid.tpl
    В этом шаблоне, в месте где должен быть вывод данных юзера, делаем проверку
    {if isset($grid_user_info)}...{/if} так как этот файл выводит все сетки, поэтому удостоверяемся, что данные есть.
    А внутри этогой проверки делаем нужный нам формат вывода. Например {if isset($grid_user_info)}<b>имя</b> {$grid_user_info.fio}{/if} В итоге, и в систему не влезли, и данные получили.
  10. Like
    vihr получил репутацию от Дмитрий Кондин в Доработка модуля яндекс.выгрузка   
    тока что 1000 ушла в сторону Димы
  11. Like
    vihr изменил репутацию XTRO в Memory Usage Information   
    в начало index.php
    $time_start = microtime(true);require('memdbg.php');$m = new MemoryUsageInformation(true); сам класс:
    <?php/* спасибо автору скрипта, к сожадению мне не известному*/class MemoryUsageInformation { private $real_usage; private $statistics = array(); public function __construct($real_usage = false) { $this->real_usage = $real_usage; } public function getCurrentMemoryUsage($with_style = true) { $mem = memory_get_usage($this->real_usage); return ($with_style) ? $this->byteFormat($mem) : $mem; } public function getPeakMemoryUsage($with_style = true) { $mem = memory_get_peak_usage($this->real_usage); return ($with_style) ? $this->byteFormat($mem) : $mem; } public function setMemoryUsage($info = '') { $this->statistics[] = array('time' => time(), 'info' => $info, 'memory_usage' => $this->getCurrentMemoryUsage()); } public function printMemoryUsageInformation() { foreach ($this->statistics as $satistic) { $str = "Time: " . $satistic['time'] . " | Memory Usage: " . $satistic['memory_usage'] . " | Info: " . $satistic['info']; $str .= "\n"; } $str.= "\n\n<br />"; $str.= "Peak of memory usage: " . $this->getPeakMemoryUsage(); $str.= "\n\n<br />"; return $str; } public function setStart($info = 'Initial Memory Usage') { $this->setMemoryUsage($info); } public function setEnd($info = 'Memory Usage at the End') { $this->setMemoryUsage($info); } private function byteFormat($bytes, $unit = "", $decimals = 2) { $units = array('B' => 0, 'KB' => 1, 'MB' => 2, 'GB' => 3, 'TB' => 4, 'PB' => 5, 'EB' => 6, 'ZB' => 7, 'YB' => 8); $value = 0; if ($bytes > 0) { if (!array_key_exists($unit, $units)) { $pow = floor(log($bytes)/log(1024)); $unit = array_search($pow, $units); } $value = ($bytes/pow(1024,floor($units[$unit]))); } if (!is_numeric($decimals) || $decimals < 0) { $decimals = 2; } return sprintf('%.' . $decimals . 'f '.$unit, $value); }} для независимости добавил в main.php перед render шаблона , но по правильному надо в выход:
    // ************************************************// global $time_start, $m; $time_end = microtime(true); $precision = 2; $tr= 'Build time : '. intval(($time_end - $time_start)*pow(10,$precision))/pow(10,$precision).' sec'; $smarty->assign('timerender',$tr); unset($tr); $usemem= memory_get_peak_usage(); $usemem = 'Memory: '. round($usemem/1024/1024,2) . ' Mb'; $smarty->assign('usemem',$usemem); unset($usemem); $smarty->assign('pr_m',$m->printMemoryUsageInformation());// ************************************************// ну и в самом main.tpl перед </body>:
    <div class="dbg">{$timerender} - {$usemem} - {$pr_m}</div>
    можно использовать, как вариант, для замера цикла:
    $m = new MemoryUsageInformation(true);$m->setStart();$a = array();$m->setMemoryUsage("до цикла");for($i = 0; $i < 100000; $i++) { $a[$i] = uniqid();}$m->setMemoryUsage("после цикла");unset($a);$m->setMemoryUsage("после unset()");$m->setEnd();$m->printMemoryUsageInformation(); Осталось притулить sql вывод и получится debug панелька. Хотя лучше всё организовать на уровне хелпера.