Clean

Clean

Был в сети 14 января 2023, 20:11
Заказы не принимаю
Спасибо за наводку, все сделал, все ОК.

Тем кто только собирается, у Киви есть одна бага-у них SOAP схема 1.2 а в описании 1.1
Это разные вещи, поэтому если в ходе выполнения Xml вернуло вот такую херню:

SOAP-ERROR: Parsing WSDL: Could not find any usable binding services in WSDL.
то нужно в IShopClientWS.wsdl
поменять
<soap12:binding style="document" transport="http://www.w3.org/2003/05/soap/bindings/HTTP/"/>
на
<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
Да честно говоря про комбинированный метод я только заметил в ЛК кошелька.
Да интересный подход, притом для конечного пользователя очень удобный…

Сегодня попробую начать писать модуль для обработки по soap, если конечно ты не желаешь поделиться своим+)
Оффтоп:
Кстати Василий, хотел у тебя узнать-я как посмотрел, ты у себя(bezumkin.ru) qiwi кошелек написал без всяких замудрений, используя обычную http форму, ну и обработчик qiwi.php который судя по всему делает инсерт в базу, после чего в интерфейсе получается сформированный счет (когда по факту я его мог не сформировать)?

После как я полагаю все же должен быть либо SOAP который дергается cronом, либо xml обменник, либо как вариант парсер почты, в общем что-то что у тебя проверяет баланс и меняет статус платежа…

Вопрос — почему выбрал именно такой метод, а не сразу SOAP обмен со всем его функционалом (счет, оплата, проверка итп)?

==========
Какая-то ерунда.Robots ты генерируешь ручками, в чем проблема поправить xml?
+если ты генеришь xml через getResourece и ему подобный сниппет ты явно можешь указать в параметре какие ресурсы не надо индексировать… И они просто не появятся в схеме
Поддерживаю, как по мне, так проще в системе вести 2 разных записи, но на странице пользователя выводить их как одно целое, в зависимости от выбранного параметра(цвет, размер итп).
Связать их связью и все. Нет задачи такое написать, но мне кажется все нативно…

К примеру самый простой вариант который приходит в голову — если вести свою таблицу с товарами, то привязвать разные товары по свойствам можно к ID ресурса, ну а вывод описания и картинок дело простое…
Я плотно не знаком с MS2, но посмотрев не вдаваясь в подробности, СRC в нем заточены именно на товары для магазина=)
Поэтому как не крути, придется допиливать, и тебе выбирать-@eval твшки или CRC страницы)

в любом случае и то и то можно довести до желаемого, да и вообще можно что-то свое с нуля написать=)
Этим в общем сейчас и сам пытаюсь заняться, знакомясь с архитектурой MODx
Насчет кластеризации я бы поспорил.
Какая разница прикладу как работает БД?
Не знаю конечно тонкостей Mysql/MSSQL т.к сам разработчик на Oracle — так вот, в рамках конекта из Java через JDBC -абсолютно все равно как настроен оракловый инстанс — у тебя есть коннект, ты посылаешь запросы, как ездиет база не имеет роли.
Если ты про многопоточность — то тут другое, разумеется.

MODx можно настроить на работу с oracle или db2 при желании, поэтому в целом работать может =)))
Если цель сделать подобие вконтакта то нужно писать все с нуля, используя методологии EE проектов.
MODx вряд ли подойдет, здесь все заточено несколько под другие цели да и нет в этом смысла если Вы затеяли серьездный энтерпрайз проект.

Хотя можно и на MODx- это ведь CMF =)можно сделать все что угодно.+)

iframe это вообще колхоз.
popup тоже плохо, т.к у многих стоят блокираторы.
Я мог реализовать любым способом, но решил самым простым-посредством jquery по кнопке раскрывать список вниз, при этом этот чанк используется только в том случае если пользователь не авторизирован на сайте, посредством Personilize идет проверка.Если юзер авторизирован то открывается другой…

А этот, в случае ошибок сам раскрывается и показывает на ошибку (ловится строчка из location.hash)

<script type="text/javascript">
function openBox (objName) {


  if ( $(objName).css('display') == 'none' ) {
    $(objName).animate({height: 'show'}, 400);
  } else {
    $(objName).animate({height: 'hide'}, 200);
  }
}
  $(function() {
     var re = /\#fast_reg/;
    var matches = re.exec(window.location.hash);
    if (matches) {
     openBox('#register'); return false;
    }
  });
   $(function() {
     var re = /\#fast_enter/;
    var matches = re.exec(window.location.hash);
    if (matches) {
     openBox('#enter'); return false;
    }
  });
  
  
</script>
<a href="#" onclick="openBox('#register'); return false">[Быстрая регистрация]</a>
<a href="#" onclick="openBox('#enter'); return false">[Быстрый вход]</a>

<!--register -->
<div id="register" style="display: none">

[[!Register?
    &submitVar=`registerbtn`
    &activationEmailTpl=`lgnActivationEmailTpl`
    &activationEmailSubject=`Спасибо за регистрацию!`
    &submittedResourceId=`[[*id]]`
    &usernameField=`email`
    &usergroups=`Покупатели`
    &activation=`0`
    &validate=`nospam:blank,     
      password:required,
      password_confirm:password_confirm=^password^,
      fullname:required,
      email:required:email`
    &placeholderPrefix=`reg.`
    &postHooks=`auto-login`
]]

<div class="registerMessage">[[!+reg.error.message]]</div>
     
<form class="form" action="[[~[[*id]]]]#fast_reg" method="post">
<input type="hidden" name="nospam" value="[[!+reg.nospam]]" />

<table cellpadding="5">
  <tr>
        <td>Адрес эл. почты*:</td>
        <td>
            <input type="text" name="email" id="email" value="[[!+reg.email]]" />
            <div class="error">[[!+reg.error.email]]</div>
        </td>
    </tr>
    
    <tr>
        <td>Пароль*:</td>
        <td>
            <input type="password" name="password" id="password" value="[[!+reg.password]]" />
            <div class="error">[[!+reg.error.password]]</div>
        </td>
    </tr>
    <tr>
        <td>Повторите пароль*:</td>
        <td>
            <input type="password" name="password_confirm" id="password_confirm" value="[[!+reg.password_confirm]]" />
            <div class="error">[[!+reg.error.password_confirm]]</div>
        </td>
    </tr>
    <tr>
        <td>Ф.И.О.*:</td>
        <td>
            <input type="text" name="fullname" id="fullname" value="[[!+reg.fullname]]" />
            <div class="error">[[!+reg.error.fullname]]</div>
        </td>
    </tr>
  
    <tr>
        <td>Телефон:</td>
        <td>
            <input type="text" name="phone" id="phone" value="[[!+reg.phone]]" />
            <div class="error">[[!+reg.error.phone]]</div>
        </td>
    </tr>
    <tr>
        <td>Адрес доставки:</td>
        <td>
            <textarea name="address" id="address">[[!+reg.address]]</textarea>
            <div class="error">[[!+reg.error.address]]</div>
        </td>
    </tr>
    <tr>
        <td><input type="submit" name="registerbtn" value="Зарегистрироваться" /></td>
        <td></td>
    </tr>
</table>

</form>

</div>
<!--/register -->
<!-- enter -->
<div id="enter" style="display: none">

[[!Login?
    &loginTpl=`tpl.orderLoginTpl`
    &logoutTpl=`tpl.loginLogoutTpl`
    &errTpl=`lgnErrTpl` 
    &loginResourceId=`[[*id]]`
    &logoutResourceId=`24` 
    &contexts=`web,catalog` ]]


</div>

<!--/enter -->