• Как сделать сумму прописью в Таблицах?

    krimtsev
    @krimtsev Автор вопроса
    Нашел. Необходимо самому открыть "Инструменты -> Редактор скриптов" и добавить скрипт.
    Дальше в необходимом нам месте указацить функцию =number_to_string(номер ячейки).

    Рабочий код так же прикрепляю под спойлером.

    spoiler
    function number_to_string(_number) {
            var _arr_numbers = new Array();
            _arr_numbers[1] = new Array('', 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять', 'десять', 'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать');
            _arr_numbers[2] = new Array('', '', 'двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто');
            _arr_numbers[3] = new Array('', 'сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот');
            function number_parser(_num, _desc) {
                    var _string = '';
                    var _num_hundred = '';
                    if (_num.length == 3) {
                            _num_hundred = _num.substr(0, 1);
                            _num = _num.substr(1, 3);
                            _string = _arr_numbers[3][_num_hundred] + ' ';
                    }
                    if (_num < 20) _string += _arr_numbers[1][parseFloat(_num)] + ' ';
                    else {
                            var _first_num = _num.substr(0, 1);
                            var _second_num = _num.substr(1, 2);
                            _string += _arr_numbers[2][_first_num] + ' ' + _arr_numbers[1][_second_num] + ' ';
                    }              
                    switch (_desc){
                            case 0:
                                    var _last_num = parseFloat(_num.substr(-1));
                                    if (_last_num == 1) _string += 'рубль';
                                    else if (_last_num > 1 && _last_num < 5) _string += 'рубля';
                                    else _string += 'рублей';
                                    break;
                            case 1:
                                    var _last_num = parseFloat(_num.substr(-1));
                                    if (_last_num == 1) _string += 'тысяча ';
                                    else if (_last_num > 1 && _last_num < 5) _string += 'тысячи ';
                                    else _string += 'тысяч ';
                                    _string = _string.replace('один ', 'одна ');
                                    _string = _string.replace('два ', 'две ');
                                    break;
                            case 2:
                                    var _last_num = parseFloat(_num.substr(-1));
                                    if (_last_num == 1) _string += 'миллион ';
                                    else if (_last_num > 1 && _last_num < 5) _string += 'миллиона ';
                                    else _string += 'миллионов ';
                                    break;
                            case 3:
                                    var _last_num = parseFloat(_num.substr(-1));
                                    if (_last_num == 1) _string += 'миллиард ';
                                    else if (_last_num > 1 && _last_num < 5) _string += 'миллиарда ';
                                    else _string += 'миллиардов ';
                                    break;
                    }
                    _string = _string.replace('  ', ' ');
                    return _string;
            }
            function decimals_parser(_num) {
                    var _first_num = _num.substr(0, 1);
                    var _second_num = parseFloat(_num.substr(1, 2));
                    var _string = ' ' + _first_num + _second_num;
                    if (_second_num == 1) _string += ' копейка';
                    else if (_second_num > 1 && _second_num < 5) _string += ' копейки';
                    else _string += ' копеек';
                    return _string;
            }
            if (!_number || _number == 0) return false;
            if (typeof _number !== 'number') {
                    _number = _number.replace(',', '.');
                    _number = parseFloat(_number);
                    if (isNaN(_number)) return false;
            }
            _number = _number.toFixed(2);
            if(_number.indexOf('.') != -1) {
                    var _number_arr = _number.split('.');
                    var _number = _number_arr[0];
                    var _number_decimals = _number_arr[1];
            }
            var _number_length = _number.length;
            var _string = '';
            var _num_parser = '';
            var _count = 0;
            for (var _p = (_number_length - 1); _p >= 0; _p--) {
                    var _num_digit = _number.substr(_p, 1);
                    _num_parser = _num_digit +  _num_parser;
                    if ((_num_parser.length == 3 || _p == 0) && !isNaN(parseFloat(_num_parser))) {
                            _string = number_parser(_num_parser, _count) + _string;
                            _num_parser = '';
                            _count++;
                    }
            }
            if (_number_decimals) _string += decimals_parser(_number_decimals);
            return _string;
    }
    Ответ написан
    8 комментариев
  • Как узнать где хостится сайт, если из переданных данных http://адрес сайта:1500?

    vlad7rpk
    @vlad7rpk
    Linux-админ. Стаж 5 лет
    Есть много способов: https://habrahabr.ru/post/91278/
    Ответ написан
    Комментировать
  • Как узнать где хостится сайт, если из переданных данных http://адрес сайта:1500?

    plin2s
    @plin2s
    IT, инженер
    В добавление к имеющемуся ответу:
    Чтобы понять (хотя бы примерно) где хостится сайт, нужно смотреть принадлежность к сети при помощи сервиса/утилиты whois. В выводе увидите данные провайдера, которому принадлежит блок адресов.
    Ответ написан
    Комментировать
  • Какие могут быть последствия в результате копирования вёрстки?

    @lasmaster
    Вся сила в самообразовании
    Для индексации и продвижения главное, чтобы верстка была семантичная и проходила без ошибок w3c валидацию. Ну и понятно, что не копипастим текста и изображения (презентационные). Но с юридической стороны можно нарваться на нарушение авторских прав, особенно если это прописано на сайте.
    Ответ написан
    2 комментария
  • Выбор города на сайте?

    @egorinsk
    Вы делаете неправильно. Во-первых, идеология Web подразумевает, что у разного контента разные адреса, а показывать людям по одному УРЛ разные вещи в зависимости от города — неверно. У каждой страницу должен быть свой, уникальный, адрес.

    Теперь представьте себе пользователя. Он зашел в Qooqle, набрал «купить мопед москва» и видит: «Продам мопед, недорого, Москва», кликает по ссылке — а вы ему вместо мопеда показываете объявления из его города Замкадовска (где максимум можно купить подержанный велосипед). Это неправильно. Мы же делаем сайт для людей, а не для СЕО, верно?

    По этой же причине нельзя показывать разный контент ботам и людям. Потому что человек, который попадает на сайт из поиска, рассчитывает увидеть то же самое, что он видел в поиске. За нарушение этого правила поисковики могут понижать рейтинг сайта и убирать страницы из выдачи, и это правильно.

    Надо сделать отдельные папки или домены для разных городов: saint-peterburg.objava.ru/list например. Или objava.ru/saint-peterburg/list. Если юзер из одного города зашел на домен другого города — можно показать ему в шапке предложение перейти на домен его города, но не навязывать и не заставлять переходить. Может, я еду в какой-то город и хочу посмотреть объявления оттуда.

    Что же касается главного домена — objava.ru — то можно показать на нем карту России или список городов (нормальными ссылками, без яваскрипта и прочей дряни), и например, ярко выделить в нем город пользователя и предложить перейти. Например, как это сделано на главной сайта avito.ru. Человек перейдет в свой город, а робот обойдет все.

    А вот за показ разного контента для разных IP по одному УРЛ и за редирект, не спрашивая желания пользователя, я считаю, сайты надо банить (что иногда и происходит). Нам не нужен колхозный интернет. Давайте все делать в соответствии со стандартами, руководствами по юзабилити и лучшими практиками, а не пытаться обхитрить поисковые системы и пользователей.
    Ответ написан
    6 комментариев