• Как передать информацию об Ajax подгруженных товарах?

    CartmanGui
    @CartmanGui Автор вопроса
    там же есть всякие екоммерс , т.е. можно смоделировать передачу параметра
    ну так в доках екоммерс и написано, что инфу о показе товаров нужно отправлять вместе с хитом просмотра страницы то бишь через ga('send', 'pageview');
    Ответ написан
    Комментировать
  • Как работать с большим csv файлом?

    CartmanGui
    @CartmanGui Автор вопроса
    вот надыбал решение parsing-and-i.blogspot.com/2010/05/php-csv.html по принципам того что предложил xmoonlight
    Ответ написан
    Комментировать
  • Как отсортировать по полю array object?

    CartmanGui
    @CartmanGui Автор вопроса
    Для этого в топике нужно хранить дату последнего сообщения.

    Дело в том, что нужно для каждого пользователя сортировать топики по сообщению именно для него, а в вашем случаи сортировка будет просто по последнему сообщению не важно для кого.
    Пока пришел к беседующему решению
    schema.statics.getTopicList = function (userId, offset, callback) {
        var Topic = this;
            ,q = [
            {$unwind: "$messages"},
            {$match: {$or: [{"messages.to": userId}, {"messages.from": userId}]}},
            {$sort: {"messages.date_created": -1}},
            {$group: {
                        _id: "$_id",
                        "title":{$first: "$title"},
                        "date_last_message":{$first: "$messages.date_created"},
                        "date_created":{$first: "$date_created"},
                    }
            },
            {$sort: {"date_last_message": -1}},
        ];
        if(offset != undefined) {
            q.push({$skip: (config.get('topic:limit') * offset)});
            q.push({$limit: config.get('topic:limit')});
        }
    
        this.aggregate(q,function(err, topics) {
            if(err) return callback(err);
            callback(null,topics);
        });
    
    };
    Ответ написан
    Комментировать
  • Как в mongoose получить данные из поля массив?

    CartmanGui
    @CartmanGui Автор вопроса
    В общим как оказалось нужно преобразовать было topic в ObjectID
    {$match: {_id: mongoose.mongo.ObjectID(topic)}}
    Ответ написан
    Комментировать
  • Как в MODX Revolution для админки выставить доступ к меню?

    CartmanGui
    @CartmanGui Автор вопроса
    Вопрос решен, нужно было в AdministratorTemplate добавить название из поля Permission для меню после чего отметить его в моей Access Policy и что бы изменения применились нужно обязательно перезагрузить права доступа
    Ответ написан
    Комментировать
  • Как получиться доступ к Atlassian STASH в локальной сети?

    CartmanGui
    @CartmanGui Автор вопроса
    что ни один из вариантов не помог.
    мой конфиг для Apache:

    <VirtualHost *:80>
            ServerName stash.test.com
            ServerAlias www.stash.test.com
    	ProxyRequests Off
            ProxyPreserveHost On
            ProxyPass           /   http://localhost:7990/ connectiontimeout=5 timeout=300
            ProxyPassReverse    /   http://localhost:7990/
    
            <Proxy *>
                Order Deny,Allow
                Allow from all
            </Proxy>
    
            <Location />
                 Order allow,deny
                 Allow from all
            </Location>
     </VirtualHost>
    Ответ написан
  • Node.js + socket.io и mysql как организовать соединение?

    CartmanGui
    @CartmanGui Автор вопроса
    Тимур Шемсединов, у меня тут вопрос по поводу пула соединений с БД.
    Вот к примеру в основном файле приложения я создаю глобальный пул
    app.js
    global.appChat = {};
    appChat.pool = mysql.createPool(config.get('mysql'));

    Потом в модуле user создаю методы для работы с БД

    user.js
    module.exports.getUserById = function(userId, callback){
        $sql = 'SELECT * users WHERE id = ?';
        appChat.pool.getConnection(function(err, connection) {
            if (err) throw err;
            connection.query($sql, [userId], function(err, rows, fields) {
                if (err) throw err;
                connection.release();
                callback(null, rows.length ? rows[0] : null);
            });
        });
    };
    
    module.exports.getUsers = function(callback){
        $sql = 'SELECT * FROM users';
        appChat.pool.getConnection(function(err, connection) {
            if (err) throw err;
            connection.query($sql,function(err, rows, fields) {
                if (err) throw err;
                connection.release();
                callback(null, rows);
            });
        });
    };


    Теперь когда я буду вызывать где либо методы модуля user то каждый раз будет создаваться новое соединение с БД и как я понял вызов connection.release(); не закрывает соединение (т.к в доках для node-mysql написано что все соединения пула закрываются вызовом pool.end) то они будет постоянно открыты и накапливаться?
    Ответ написан