1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - новый и перспективный форумный движок от бывших создателей vBulletin.

1.1.x Отображение поисковых роботов [RU]

Тема в разделе "Плагины для XenForo", создана пользователем Андрей Х, 19 май 2011.

Загрузка
  1. infis

    infis Местный Команда форума

    Регистрация:
    27.06.11
    Сообщения:
    5.525
    Симпатии:
    3.321
    Версия XF:
    1.5.9
    Из контекста - нам нужно получить либо не пустое значение переменной, либо пустую строку. И функция empty как раз это делает и корректно и в тему. Ведь нас не интересует непосредственно сама переменная, которая может быть и пустая. Так что двух зайцев, как говорится :)
     
    sandis нравится это.
  2. spy

    spy ИнквизитоР

    Регистрация:
    04.03.11
    Сообщения:
    373
    Симпатии:
    188
    во блин, а мне то как опредилится какую :whistling:
     
  3. Pepelac

    Pepelac Продам луц в бутылках Команда форума

    Регистрация:
    28.09.10
    Сообщения:
    1.794
    Симпатии:
    1.349
    Да любую :)
     
    sandis нравится это.
  4. Виталий Смирнов

    Виталий Смирнов Местный

    Регистрация:
    08.04.11
    Сообщения:
    74
    Симпатии:
    8
    Скажите, а точно вставлять именно этот код?
    HTML:
    <dl class="pairsJustified"><dt>{xen:phrase spiders}:</dt> <dd>{xen:number $onlineTotals.spiders}</dd></dl>
    У меня вот так получается:
    HTML:
    <div class="pairsJustified">
                    <dl class="memberCount"><dt>{xen:phrase members_online}:</dt>
                        <dd>{xen:number $onlineTotals.members}</dd></dl>
                    <dl class="guestCount"><dt>{xen:phrase guests_online}:</dt>
                        <dd>{xen:number $onlineTotals.guests}</dd></dl>
                    <dl class="pairsJustified"><dt>{xen:phrase spiders}:</dt>
                        <dd>{xen:number $onlineTotals.spiders}</dd></dl>
                    <dl class="visitorCount"><dt>{xen:phrase total_visitors}:</dt>
                        <dd>{xen:number $onlineTotals.total}</dd></dl>
                </div>
    Но сомнение, что class должен быть другой.
     
  5. Ice

    Ice Местный

    Регистрация:
    13.10.10
    Сообщения:
    205
    Симпатии:
    103
    Версия XF:
    1.1.2
    особого смысла отображать поисковых ботов не вижу ))

    но если уж показывать, то по названиям поисковых систем тогда, а не по "поисковых ботов: 1".....

    довел бы кто-нить этот мод до ума...
     
  6. carliker

    carliker Местный

    Регистрация:
    03.10.11
    Сообщения:
    274
    Симпатии:
    114
    Версия XF:
    1.1.1
    Ну можно же перейти на страницу с подробным описанием пользователей онлайн, и так все подписано - какой робот и сколько их

    Хотя конечно согласен, особого смысла в этом нет. На нормальном сайте роботы постояно пасутся
     
  7. Platoon

    Platoon Активный пользователь

    Регистрация:
    14.04.12
    Сообщения:
    78
    Симпатии:
    5
    Версия XF:
    1.2.4
    Этот плагин потом не будет мешать обновлению движка?
     
  8. Skrimm

    Skrimm Активный пользователь

    Регистрация:
    23.06.12
    Сообщения:
    151
    Симпатии:
    38
    Версия XF:
    1.1.4
    У меня такой код тоже как вставлять
     
  9. Domltd

    Domltd Пользователь

    Регистрация:
    11.08.12
    Сообщения:
    27
    Симпатии:
    3
    Версия XF:
    1.1.3

    нет такой строчки ни в дефолтном стиле не в строннем!
     
  10. faithfull

    faithfull Профи

    Регистрация:
    18.08.12
    Сообщения:
    69
    Симпатии:
    2
    Версия XF:
    1.1.3
    а возможно что бы это отображалось на главной странице в "Статистика форума"
     
  11. spy

    spy ИнквизитоР

    Регистрация:
    04.03.11
    Сообщения:
    373
    Симпатии:
    188
    ....Редактировать шаблон online_list.
    Найти
    HTML:
    <dl class="guestCount"><dt>{xen:phrase guests_online}:</dt>
                        <dd>{xen:number $onlineTotals.guests}</dd></dl>
    Ниже добавить:
    HTML:
    <dl class="guestCount"><dt>{xen:phrase spiders}:</dt> <dd>{xen:number $onlineTotals.spiders}</dd></dl>
    ...

    поправте 1-е сообщение, (правка для xF 1.1.3)
     
    vovik1646 и Romchik® нравится это.
  12. TITAN-UZ

    TITAN-UZ Местный

    Регистрация:
    14.06.11
    Сообщения:
    41
    Симпатии:
    4
    Версия XF:
    1.3.3
    Работает без проблем!
     
  13. spy

    spy ИнквизитоР

    Регистрация:
    04.03.11
    Сообщения:
    373
    Симпатии:
    188
    Прет! Есть ошибка(новая):
    Код:
    Информация об ошибке
    Zend_Db_Statement_Mysqli_Exception: Mysqli statement execute error : Data too long for column 'useragent' at row 6 - library/Zend/Db/Statement/Mysqli.php:214
    Сгенерирована пользователем: Неизвестная учётная запись, Сегодня, в 10:32
    Код:
    Трассировка стэка
    #0 /var/www/library/Zend/Db/Statement.php(297): Zend_Db_Statement_Mysqli->_execute(Array)
    #1 /var/www/library/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
    #2 /var/www/library/Zend/Db/Adapter/Abstract.php(632): Zend_Db_Adapter_Abstract->query('UPDATE `xf_sess...', Array)
    #3 /var/www/library/PiXhousecom/SpidersOnline/Model/User.php(32): Zend_Db_Adapter_Abstract->update('xf_session_acti...', Array, 'unique_key = 35...')
    #4 /var/www/library/XenForo/Controller.php(447): PiXhousecom_SpidersOnline_Model_User->updateSessionActivity(0, '212.203.136.10', 'XenForo_Control...', 'Index', 'valid', Array)
    #5 /var/www/library/XenForo/Controller.php(351): XenForo_Controller->updateSessionActivity(Object(XenForo_ControllerResponse_View), 'XenForo_Control...', 'Index')
    #6 /var/www/library/XenForo/FrontController.php(317): XenForo_Controller->postDispatch(Object(XenForo_ControllerResponse_View), 'XenForo_Control...', 'Index')
    #7 /var/www/library/XenForo/FrontController.php(132): XenForo_FrontController->dispatch(Object(XenForo_RouteMatch))
    #8 /var/www/index.php(13): XenForo_FrontController->run()
    #9 {main}
    
    PHP:
    array(3) {
      [
    "url"] => string(20"http://splanet.info/"
      
    ["_GET"] => array(0) {
      }
      [
    "_POST"] => array(0) {
      }
    }
    есть идеи у каго-нибудь?
    Стала появлятся на днях, сегодня аж 6 раз..
     
  14. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1.921
    Симпатии:
    1.160
    Версия XF:
    1.0.4
    Этим все сказано. Код не смотрел, но похоже в нем нет проверки на длину юзерагента (или хотя бы принудительной обрезки по длине).
    Или править код или увеличивать размер колонки useragent
     
  15. spy

    spy ИнквизитоР

    Регистрация:
    04.03.11
    Сообщения:
    373
    Симпатии:
    188
    так далеко я сообразил сам, вот где эта колонка есть?
     
  16. infis

    infis Местный Команда форума

    Регистрация:
    27.06.11
    Сообщения:
    5.525
    Симпатии:
    3.321
    Версия XF:
    1.5.9
    Имеется ввиду поле таблицы. Судя по трейсу - в таблице xf_session_activity.
    Но вообще проще в коде ограничить длину. В файле PiXhousecom/SpidersOnline/Model/User.php меняем строку:
    PHP:
                array('useragent' => $agent),
    на
    PHP:
                array('useragent' => substr($agent,255)),
     
  17. spy

    spy ИнквизитоР

    Регистрация:
    04.03.11
    Сообщения:
    373
    Симпатии:
    188
    да я уже вчера нашел, там длина значения уже выставлена на 255

    файл править всё равно?
     
  18. infis

    infis Местный Команда форума

    Регистрация:
    27.06.11
    Сообщения:
    5.525
    Симпатии:
    3.321
    Версия XF:
    1.5.9
    Ну так из-за того, что в таблицу пытаются записаться лишние байты, и возникает ошибка. Чтобы этой ошибки избежать можно увеличить длину хранимых данных в поле, а можно в коде просто обрезать лишнее. В первом случае преимущество в том, что будут сохраняться более длинные данные. Но вот полезность такого хранения весьма сомнительна. Тем более, что когда-то может опять появиться более длинная строка юзерагента, что вызовет опять ошибку. Вот поэтому проще и безопаснее обрезать лишнее при сохранении данных в таблице. Тогда вроде как не все сохранится, но навряд ли длинная строка юзерагента будет полезной. Ну и при любой длине юзерагента мы не получим ошибку, так как при записи данных в таблице просто обрежем лишнее.
    Поэтому очевидно, что лучше править не структуру таблицы, а исходник плагина, чтобы избавиться от ошибки и обеспечить безопасный код.
     
  19. spy

    spy ИнквизитоР

    Регистрация:
    04.03.11
    Сообщения:
    373
    Симпатии:
    188
    Ясно, спасибо за пояснение, поправлю код. Думаю нужно поправить уже знакомые касяки и перезалить плагин...

    Отправлено с моего HTC One S через Tapatalk
     
  20. Oleg-2012

    Oleg-2012 Местный

    Регистрация:
    21.04.12
    Сообщения:
    646
    Симпатии:
    267
    При такой замене поисковые боты отображаться и подсчитываться не будут, думаю правильней заменить так:
    Код:
    array('useragent' => substr($agent,0,255)),
    Проверил при такой замене всё нормально работает ! ;)
     
    infis и Mirovinger нравится это.

Поделиться этой страницей