Ответы пользователя по тегу JavaScript
  • Разделение прав API?

    DeusModus
    @DeusModus
    ru.wikipedia.org/wiki/OAuth скорее всего вам подойдет.
    Также можете посмотреть www.myintervals.com/blog/2009/06/19/api-authentication-methodologies/.

    У нас лично применяется подход на основе сигнатур. Что-то вроде: www.infoq.com/news/2010/01/rest-api-authentication-schemes
    Ответ написан
    Комментировать
  • Ember.js + i18n: как организовать смену языка без перезагрузки страницы?

    DeusModus
    @DeusModus Автор вопроса
    В итоге получилось как-то так…

    TranslationsPrototype.
    Прототип для работы с локализациями. Если в переводе нет строки, возьмется значение из дефолтной локали. Таким образом если что-то не переведено в других языках, но есть в исходниках у нас не будет алиаса или пустого места — будет оригинал. Для меня это английский.
    /**
     * Прототип обьекта, содержащего локализации
     * Назначение просто - вернуть обьект с переведенными строками
     * @type {*}
     */
    var translationsPrototype = Em.Object.extend({
        defaultLocale:'en',
        currentTranslation:{},
        locales:_locales,
        getLocale:function (localeName) {
            this.currentTranslation = this.locales[localeName];
            for (prop in this.locales[this.defaultLocale]) {
                if (typeof this.currentTranslation[prop] == 'undefined') {
                    this.currentTranslation[prop] = this.locales[this.defaultLocale][prop];
                }
            }
            return this.currentTranslation;
        }
    });
    


    _locales.
    Простой обьект для хранения переводов. Может генерироваться на сервер-сайде, может быть включен в предыдущий прототип. Мне было удобнее вынести его.
    /**
     * Перевод программы
     * @type {Object}
     * @private
     */
    _locales = {
        en:{
            'str_one':'Hello',
        },
        ru:{
            'str_one':'Привет',
        },
    }
    


    Application.
    Простой пример инициализации приложения. Переопределяем конструктор, чтобы получить активный язык. На практике language:'en' может выглядеть как language:Common.getActiveLanguage() и приложение уже запустится с нужным языком.
    var Translation = translationsPrototype.create();
    var App= Em.Application.create({
        version:'1.0b',
        language:'en',
        debug:0,
        init:function () { //constructor overwrite
            Ember.Namespace.NAMESPACES.push(this);
            Ember.Namespace.PROCESSED = false;
            // вся эта мутня с переводами нужна для живой смены языка в рамках подходов ember
            var translation = Em.Object.extend();
            this.T = translation.create();
            this._setLocale(this.get('language'));
        },
        _setLocale:function (localeName) {
            this.T.setProperties(Translation.getLocale(localeName));
            return this;
        }
    });
    
    T = App.T;  // алиас для глобального контекста
    


    Observer
    Слушаем изменения языка через App.set('language','XX') и изменяем локаль.
    App.addObserver('language', function (object, property) {
        object._setLocale(object.language);
    });
    


    Template.
    Пример перевода строки.
    <script type="text/x-handlebars">
        {{T.str_one}}!
    </script>
    


    При изменении языка приложения, все строки разом будут обновлены.
    Здесь не включен код, отвечающий за обработку ошибок — придумать обработку ситуаций с некорректным языком можете сами.
    Ответ написан
  • VK+wall.post (не получается отправить картинку из группы)

    DeusModus
    @DeusModus Автор вопроса
    Оказалось, что для группы необходимо указывать отрицательный идентификатор и владелец получается именно группа. Решено.
    Ответ написан
    Комментировать
  • Перевожу книгу по backbone.js. Публиковать статьи или просто ссылку?

    DeusModus
    @DeusModus
    Я бы и то и то почитал. Статьи приятнее своим обсуждением, книга тем что может быть под рукой.
    Было бы классно начать переводить статьями и закончить хэндбуком.
    Ответ написан
    Комментировать
  • Генерация AJAX форм на PHP?

    DeusModus
    @DeusModus
    framework.zend.com/manual/ru/zend.form.html?
    Вполне себе приятная штука. Вычленяете и работаете.
    А ajax оно или нет- какая разница? Только в отдаваемом представлении или формате, ну так требуемый формат легко определить по заголовкам.
    Ответ написан
    1 комментарий