• Как сделать чтобы окно командной строки не закрывалось после выполнения скрипта, чтобы отловить ошибку?

    @blayloock012018
    чтоб не париться вставками, есть у питона какая-то команда, требующая диалога, как у яваскипта inpit_question . На stackoverflow есть где-то. Или вообще time.sleep(10) поставитью

    Если постоянно работать с окно командной строки, тогда надо чего-то такое управляемое окно сделать. Сам будешь решать, будет закрываться или ожидать закрытия. Для этого лучше subprocess

    #~ import subprocess
    #~ runcmd='telnet /?'
    #~ p = subprocess.Popen(runcmd, bufsize=2048, shell=True,
        #~ stdin=subprocess.PIPE, stdout=subprocess.PIPE)
    Ответ написан
    Комментировать
  • Как преобразовать строки из символов '\u0434\u0438…' в переменной в Питоне 2.7(Windows 7)?

    @blayloock012018
    Сейчас можно подправить так
    a = u'1a'
    a = a.decode('utf-8').encode('cp1251') 
    print a
    
    a = u'1\u0430'
    a = a.encode('UTF-8').decode('UTF-8').encode('cp1251')
    print a
    
    #~ Не нужно путать юникод и UTF-8 !!! utf-8, как и cp1251 с точки зрения питона2.* - массив байт.


    Подробнее тут py-my.ru/post/4bfb3c6a1d41c846bc00009b

    На будущее, пригодится определение кодировки. Например, если почтовый ящик читать питоном. В навалку всевозможные кодировки. Может пригодиться функция определения уодировки

    msg=u'1\u0430'
    
    if len(str(msg))!==0
        if isinstance(msg, unicode):
            #~ print type(msg)
            #~ print encodings(get_codepage(msg))
            print msg.encode('UTF-8').decode('UTF-8').encode('cp1251')
        else:
            if get_codepage(msg)=='UTF-8':
                print msg.decode('UTF-8').encode('cp1251')
            else:
                print msg
    
    
    
    
    encodings = {
        'UTF-8':      'utf-8',
        'CP1251':     'windows-1251',
        'KOI8-R':     'koi8-r',
        'IBM866':     'ibm866',
        'ISO-8859-5': 'iso-8859-5',
        'MAC':        'mac',
    }
    
    def get_codepage(str = None):
        uppercase = 1
        lowercase = 3
        utfupper = 5
        utflower = 7
        codepages = {}
        for enc in encodings.keys():
            codepages[enc] = 0
        if str is not None and len(str) > 0:
            last_simb = 0
            for simb in str:
                simb_ord = ord(simb)
    
                """non-russian characters"""
                if simb_ord < 128 or simb_ord > 256:
                    continue
    
                """UTF-8"""
                if last_simb == 208 and (143 < simb_ord < 176 or simb_ord == 129):
                    codepages['UTF-8'] += (utfupper * 2)
                if (last_simb == 208 and (simb_ord == 145 or 175 < simb_ord < 192)) \
                    or (last_simb == 209 and (127 < simb_ord < 144)):
                    codepages['UTF-8'] += (utflower * 2)
    
                """CP1251"""
                if 223 < simb_ord < 256 or simb_ord == 184:
                    codepages['CP1251'] += lowercase
                if 191 < simb_ord < 224 or simb_ord == 168:
                    codepages['CP1251'] += uppercase
    
                """KOI8-R"""
                if 191 < simb_ord < 224 or simb_ord == 163:
                    codepages['KOI8-R'] += lowercase
                if 222 < simb_ord < 256 or simb_ord == 179:
                    codepages['KOI8-R'] += uppercase
    
                """IBM866"""
                if 159 < simb_ord < 176 or 223 < simb_ord < 241:
                    codepages['IBM866'] += lowercase
                if 127 < simb_ord < 160 or simb_ord == 241:
                    codepages['IBM866'] += uppercase
    
                """ISO-8859-5"""
                if 207 < simb_ord < 240 or simb_ord == 161:
                    codepages['ISO-8859-5'] += lowercase
                if 175 < simb_ord < 208 or simb_ord == 241:
                    codepages['ISO-8859-5'] += uppercase
    
                """MAC"""
                if 221 < simb_ord < 255:
                    codepages['MAC'] += lowercase
                if 127 < simb_ord < 160:
                    codepages['MAC'] += uppercase
    
                last_simb = simb_ord
    
            idx = ''
            max = 0
            for item in codepages:
                if codepages[item] > max:
                    max = codepages[item]
                    idx = item
    return idx
    Ответ написан
    5 комментариев
  • Как отдельно выдернуть поля из формы, типа обратной связи на сайте Bitrix?

    @blayloock012018
    Надо с чего-то начинать)

    function sendevent() {
    	var a = {
    		phone: $("#PHONE").val(),
    		info: "-"
    	};
    	$.ajax({
    		type: "POST",
    		data: a,
    		url: "/services/eventsend.php",
    		dataType: "html",
    		success: function (b) {
    			console.log(b)
    			// подгружаем изменяем контент
    		},
    		error: function (b) {
    			console.log("Произошла неожиданная ошибка..")
    		}
    	})
    };


    А кстати на главной странице очень хороший пример , уже есть сериализация и передача данных с формы
    bxajaxid	8a6c8732dc2496264a2f0003084257
    AJAX_CALL	Y
    sessid	b0cd9905f99901000589e0f0ebed9db
    NAME	тест
    PHONE	+7 (999) 999-12-34
    DATEEX	тест
    form_submit	Отправить


    Можно подправить html формы и куда угодно копировать)

    Далее, по вкусу, воспользоваться BX.ajax({ или $.ajax({

    Например чтобы вместо текста по середине "закажите экскурсию" (на главной странице) стояло бы поле с возможностью ввода телефона


    Похоже на то, что на главной странице простецкая функция проверки корректности телефона как-то замаскирована. В этом трудность?)

    Итак, что делать, чтобы отдельно выдернуть поля из формы? Скопировать вместо текста по середине "закажите экскурсию" поле с вводом телефона и в функции sendevent() вызывать код проверки корректности заполнения телефона, если потребуется.

    Вопрос решен?)
    Ответ написан
    Комментировать
  • Как сделать обмен между Битриксом и Управлением торговлей?

    @blayloock012018
    Скачай дамп сайта к себе на комп. Установи , как вариант https://ospanel.io/download/ . Разверни Дамп, не удаляя его. Сохрани архив, дамп. Пригодится)
    Вот по фото варианты начала работ по обмену данными с Битрикс из 1с 5ab940ac2a750171660302.jpeg1 путь. "Подстраиваешся под то, что есть на сайте" Перейди "Экспорт XML" /bitrix/admin/iblock_xml_export.php?lang=ru Проанализируй структуру XML и подкоректируй в 1с "Обработки-ОбменССайтом-МодульОбъекта"

    2 путь. Внес реквизиты сайта в 1с (Справочники-НастройкаОбменаССайтом) , выгрузил, посмотрел, что не так, внес изменения. Сначала начнешь читать https://dev.1c-bitrix.ru/learning/course/index.php... или после - неважно) Потому что сначала надо понять возможности 1с, создать партионный учет, определиться, по какой схеме "товар-несколько ценников" или "один товар-одна цена(самый простой)".

    В любом случае, самое ответсвенное - настроить инфоблок. ЭТО ОЧЕНЬ много вариантов.

    По скайпу, голосом, легче обьяснить)
    Ответ написан
    Комментировать
  • Как запустить python скрипт из html?

    @blayloock012018
    1. запустить python скрипт из html на OpenServer
    -----------------index.py
    #!D:\Python27\python.exe
    # -*- coding: UTF-8 -*-
    # //coding: utf-8
    # coding=utf-8
    # vim: set fileencoding=utf-8 :
    print "Content-Type: text/html\r\n"
    print "hello world"
    print "вместо #! python2 можно d:/Python27/python.exe"

    -------------.htaccess
    DirectoryIndex index.py
    Options +FollowSymLinks +ExecCGI

    -------------.httpd.conf: (найти строку AddHandler )
    AddHandler cgi-script .cgi .pl .py

    2. запустить python скрипт из html на хостинге для python , например timeweb
    -----------------index.py
    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    # //coding: utf-8
    # coding=utf-8
    # vim: set fileencoding=utf-8 :
    print "Content-Type: text/html\r\n"
    print "hello world"

    -------------.htaccess
    DirectoryIndex index.py
    Options +FollowSymLinks +ExecCGI

    права доступа rwx------ (700) для py , иначе error500
    Ответ написан