Sphinx

Sphinx

С нами с 12 января 2015; Место в рейтинге пользователей: #351
but1head
23 января 2017, 23:25
5
+5
Мини пост про node.js, не много оффтоп.
Есть у меня один проект, где планировалось вывести на карте 50к точек, много всяких карт перебрал и тд, все было долговато (около 2х секунд, т.к. файл точек весит около 10мб). Потом подумал зачем отдавать все это дело клиенту, решил написать сервер на ноде для «порционной» выгрузки в пределах видимости. Вот что получилось:
s8276.h7.modhost.pro/demo/ на карте размещен кластер на 1.000.000 точек (вес файла 135мб), даже с телефона отрабатывает моментально. Выложил все исходники на github.com/but1head/supercluster-nodejs, может кому-нибудь пригодится.
Кудашев Сергей
24 ноября 2016, 00:41
2
+2
После данного обновления в Управлении Пакетами при Просмотре деталей перестала отображаться «Загруженная версия». В error.log пишется ошибка «You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ASC, modTransportPackage.release_index DESC LIMIT 20' at line 1».

Проблема в том, что в данном обновлении в методе sortby из xpdoquery.class.php стал обязательным второй аргумент и старый код обрабатывающий пакеты перестал работать. Если кому-то нужно, чтобы эта опция заработала до нового релиза, то необходимые исправления можно посмотреть тут. Всего одна строчка :)
Sphinx
27 февраля 2015, 12:51
1
0
Слона то я и не заметил. Главное смотрел же на этот пример)
Спасибо, вроде все заработало, только пришлось чуть изменить:
$query->sortby('FIELD(modResource.id, '.implode(',', $massiv).' )');
С массивом не захотел работать, а со строкой из ресурсов без проблем)
Cyrax_02
11 ноября 2014, 13:15
1
+1
Вот функция для определения текущего URL:
[correctMode = true] url формируется на основе текущего ресурса по правилам modx — «устойчивый» вариант
[correctMode = false] url формируется из строки запроса

function func_getCurrentURL($correctMode = false) {
        global $modx; $url = '';

        if($correctMode) {
            static $urlCorrectMode; if(!isset($urlCorrectMode)) {
                
                $resourceId = $modx->resource->get('id');
                $context = $modx->resource->get('context_key');
                $parameters = $modx->request->getParameters();
                $urlCorrectMode = $modx->makeUrl($resourceId, $context, $parameters, 'full');
                $urlCorrectMode = htmlspecialchars_decode($urlCorrectMode);
            }            
            $url = $urlCorrectMode;
            
        } else {
            static $urlFast; if(!isset($urlFast)) {
            
                $defaultPort = 80;  // порт по-умолчанию
                $schemeDelimiter = '://';
            
                // Схема
                if(((string)func_getArrayValue($_SERVER, 'HTTPS', '')) === 'on') {  // защищённый режим
                    $urlFast .= 'https'.$schemeDelimiter;
                    $defaultPort = 443;
                } else {
                    $urlFast .= 'http'.$schemeDelimiter;
                }
                // Имя сервера
                $urlFast .= $_SERVER['SERVER_NAME'];
            
                // Порт
                if((int)func_getArrayValue($_SERVER, 'SERVER_PORT', -1) !== $defaultPort) {
                    $urlFast .= ':'.$_SERVER['SERVER_PORT'];
                }
                // Путь и параметры
                if(array_key_exists('REQUEST_URI', $_SERVER)) {
                    $urlFast .= $_SERVER['REQUEST_URI'];
                } else {
                    if (array_key_exists('QUERY_STRING', $_SERVER)) {
                        $urlFast .= $_SERVER['SCRIPT_NAME'].'?'.$_SERVER['QUERY_STRING'];
                    } elseif(array_key_exists('SCRIPT_NAME', $_SERVER)) {
                        $urlFast .= $_SERVER['SCRIPT_NAME'];
                    } else {
                        $urlFast .= $_SERVER['PHP_SELF'];
                    }
                }
            }
            $url = $urlFast;
        }
        return $url;
    }
А дальше добавить параметры — элементарно.
Василий Наумкин
04 февраля 2013, 12:25
1
0
Нужно обновлять конфиг класса, ибо MODX его кэширует
$pdoFetch->config = array_merge($pdoFetch->config, $scriptProperties);

Смотри как сделано вот тут.
Василий Наумкин
29 декабря 2012, 19:06
1
0
Крайне полезно делать
$c->prepare();
echo $c->toSql();
die;
Будет дамп SQL запроса, который можно загонять для проверки в phpmyadmin.
Василий Наумкин
29 декабря 2012, 18:40
1
0
Попробуй еще
$c->select($this->modx->getSelectColumns('TdTypes','TdTypes'));