Re: вопрос по функциям CGPL

От: Samarit <CGatePro_at_mx_ru>
Дата: Tue 22 May 2007 - 16:43:29 MSD

Dmitry Akindinov wrote:
> Hello,
>
> Samarit wrote:
>> Dmitry Akindinov wrote:
>>> Здравствуйте,
>>>
>>> Samarit wrote:
>>>> Samarit wrote:
>>>>> Здравствуйте,
>>>>>
>>>>> подскажите пожалуйста про функцию GetAccountPreferences - что она
>>>>> должна возвращать и в каком формате? пробую ее как написано в
>>>>> хелпе, а она вроде ничего не выдает.
>>>>>
>>>> с GetAccountPreferences понял.
>>>>
>>>>> Нашел еще пару функций GetAccountSettings и GetAccountInfo - про
>>>>> них почему то не написано в документации.
>>>>> Если я правильно понимаю:
>>>>> GetAccountInfo - возвращает параметры из account.info
>>>>> GetAccountSettings - возвращает параметры из account.settings
>>>>> Можно ли GetAccountInfo получить данные из другого аккаунта?
>>>>> Пробовал:
>>>>> GetAccountInfo("~" + address + "/parameter") - не получается.
>>>>
>>>> а вот с GetAccountInfo все-таки можно или нет данные другого
>>>> аккаунта вытащить?
>>>
>>> А какие данные? Поразумевается, что вызова GetaccountPreferences
>>> должно быть достаточно.
>> Пробовал к примеру параметр LastLogin: GetAccountInfo - выдает (для
>> текущего аккаунта), GetAccountPreferences - нет.
>
>> GetAccountPreferences - выдает то,что есть в закладке Preferences для
>> данного аккаунта (как я понял).
>> Задумка была такая: ввести свой собственный параметр в account.info,
>> значение которого можно получить при помощи какой-либо функции в
>> скрипте CGPL.
>
> Get/SetAccountPreferences для этого отлично подходит.
>
>> Значение параметра - переменная типа string в кодировке cp1251.
>
> Все должно бытьв utf-8.
>
>> Сначала подумалось сделать его как системный параметр CGP, но они
>> хранятся в account.settings в utf-8 и при любом update данных
>> аккаунта переписываются в "???".
>
> Поясните? При каком способе обновления данных аккаунта все
> перезаписывается в ???
>
Поясню, что хотелось сделать: нужно во внешнее приложение передать параметр аккаунта, но приложение понимает по-русски только в кодировке cp1251. Первая мысль была ввести свой собственный системный параметр для аккаунтов, приписать ему значение через CLI командой UPDATEACCOUNTSETTINGS в cp1251. Все хорошо, но через административный веб-интерфейс параметр виден как "???" (логично так как CGP ожидает там utf-8) и при любом изменении установок аккаунта через веб эти "???" так и записываются обратно в файл account.settings (так наверно и должно быть). Вторая мысль была хранить параметр в account.info, т.е. так же приписать ему значение через CLI командой UPDATEACCOUNTINFO в cp1251. Так как этот параметр недоступен напрямую через веб, то он и не портится. Вот только непонятно теперь как его можно вытянуть в скрипте CGPL: GetAccountPreferences его не берет, так как имеет доступ "только к той части, которая предусмотрена для хранения настроек интерфейса", a GetAccountInfo похоже действует только для текущего аккаунта (Impersonate не подойдет).
Видимо моя идея изначально было неудачная :).
>> В account.info значение не переделываются, но непонятно какой
>> функцией эту переменную можно было бы получить.
>> А GetAccountPreferences должна иметь доступ ко всем параметрам в
>> account.info?
>
> Нет. Только к той части, которая предусмотрена для хранения настроек
> интерфейса.
>
>>> А вызов GetAccountInfo отсутствует в документации совсем неспроста.
>>> В следующих версиях он может просто исчезнуть или способ его вызова
>>> и смысл параметров могут сильно измениться.
>>>
>>> По сути вопроса - можно сделать Impersonate на интересующий аккаунт
>>> и там уже - GetAccountInfo. Сделать Impersonate обратно в аккаунт с
>>> правами уже не получится.
>
Получено Tue May 22 12:41:26 2007

Этот архив был сгенерирован hypermail 2.1.8 : Tue 22 May 2007 - 17:14:51 MSD