We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 16240
    • 64 Posts
    Andchir , Вы так ответили, как будто я претензии предъявлял - я наоборот помощи прощу, и понимаю что все не предусмотришь.
    Может подскажете, как убрать <small> и( не уивдел сразу) запятую? или хотя бы - в том же файле "рыть"? это ведь где-то в коде прописано, а я в php полный ноль и найти для меня это не реально...
    Спасибо за оперативный ответ.

    Найдено:

    <small> убирается в строке
        return !empty($output) ? "<small>".trim($output,", ")."</small>" : $output;


    запятая убирается 2-мя строками выше
    $output .= $price!=0 ? "$name ($price), " : "$name, ";
      • 31726
      • 24 Posts
      Здравствуйте!
      При регистрации использую

      [!WebLogin? &tpl=`weblogin`&loginhomeid=`47`&logouthomeid=`1`!]
      [!WebSignup? &tpl=`FormSignup`&groups=`Customers`&useCaptcha=`1`!]

      приходит подтверждение на email посетителя и идет информация в модуль, а как сделать, чтобы подтверждение дублировалось еще и на e-mail админа сайта?
        • 18573
        • 30 Posts
        а кто-то проверял на прочность данное решение, сколько выдержит такой магазин посетителей, сколько товаров нормально будет работать?
          • 1477
          • 515 Posts
          Quote from: Masterkey_SCR at Feb 18, 2010, 04:59 AM

          а кто-то проверял на прочность данное решение, сколько выдержит такой магазин посетителей, сколько товаров нормально будет работать?
          Столько же сколько не магазин.
            Shopkeeper - сниппет и модуль для создания интернет-магазина.
            TVimageResizer - плагин для изменения размеров (а также наложения водяных знаков и скругления углов) картинок TV при создании документа.
            PickDocsInTree - плагин для выбора документов из дерева.
            Paykeeper 1.5 - Сниппет для онлайн-оплаты в интернет-магазине MODx + Shopkeeper (Webmoney и Robokassa).
            • 1477
            • 515 Posts
            Quote from: koshara at Feb 18, 2010, 03:30 PM

            3) Как добавить в отчет о заказе данные зарегистрированного пользователя?
            В модуле есть ссылка на данные пользователя. Зачем дублировать эту информацию в отчете? Можно попробовать в shopOrderFormWebUser вставить скрытые поля, в которых выводить данные пользователя с помощью PHx. Будет как-то так:
            <input type="hidden" name="email" value="[+phx:userinfo=`email`+]" />

            Не проверял. Есть сниппеты для вывода данных пользователя. Отпишитесь, если получится пожалуйста.
              Shopkeeper - сниппет и модуль для создания интернет-магазина.
              TVimageResizer - плагин для изменения размеров (а также наложения водяных знаков и скругления углов) картинок TV при создании документа.
              PickDocsInTree - плагин для выбора документов из дерева.
              Paykeeper 1.5 - Сниппет для онлайн-оплаты в интернет-магазине MODx + Shopkeeper (Webmoney и Robokassa).
              • 8199
              • 24 Posts
              добрый день. установил shopkeeper, настроил, корзина работает, товары добавляются, письма уходят и приходят. но в модуле, в управлении заказами, почему-то краткая информация о заказе показывается обрезаной, а в подробностях о заказе не пишет вообще ничего. в чем может быть проблема?
                • 12710
                • 132 Posts
                Quote from: Masterkey_SCR at Feb 18, 2010, 04:59 AM

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

                У меня есть несколько магазинов по несколько тысяч товаров + куча доп параметров.

                Вывод через дитто и никаких багов.

                На одном форуме была статья по оптимизации и быстродействию. Там тестовый сайт с 30000 документов и все норм
                  Человек может все, главное захотеть
                  http://vigmarket.com
                  • 1477
                  • 515 Posts
                  Quote from: Andchir at Feb 19, 2010, 12:26 AM

                  Quote from: koshara at Feb 18, 2010, 03:30 PM

                  3) Как добавить в отчет о заказе данные зарегистрированного пользователя?
                  Можно попробовать в shopOrderFormWebUser вставить скрытые поля, в которых выводить данные пользователя с помощью PHx. Будет как-то так:
                  <input type="hidden" name="email" value="[+phx:userinfo=`email`+]" />

                  Не проверял. Есть сниппеты для вывода данных пользователя. Отпишитесь, если получится пожалуйста.
                  Quote from: koshara at Feb 19, 2010, 04:26 AM

                  Отписываю - данная конструкция не заработала.

                  Выяснил, что eForm можно подружить с PHx вот такой хитрой конструкцией:
                  <input type="hidden" name="email" value="[*phx:input=`&_PHX_INTERNAL_&`:userinfo=`email`*]" eform="::::" />


                  Т.е. чтобы данные зарегистрированного пользователя писались в краткую информацию модуля, достаточно в чанк shopOrderFormWebUser добавить такие скрытые поля:
                  <input type="hidden" name="address" value="[*phx:input=`&_PHX_INTERNAL_&`:userinfo=`zip`*] [*phx:input=`&_PHX_INTERNAL_&`:userinfo=`state`*]" eform="::::" />
                  <input type="hidden" name="name" value="[*phx:input=`&_PHX_INTERNAL_&`:userinfo=`fullname`*]" eform="::::" />
                  <input type="hidden" name="email" value="[*phx:input=`&_PHX_INTERNAL_&`:userinfo=`email`*]" eform="::::" />
                  <input type="hidden" name="phone" value="[*phx:input=`&_PHX_INTERNAL_&`:userinfo=`phone`*] [*phx:input=`&_PHX_INTERNAL_&`:userinfo=`mobilephone`*]" eform="::::" />
                  

                  До этого, конечно, нужно установить PHx.
                    Shopkeeper - сниппет и модуль для создания интернет-магазина.
                    TVimageResizer - плагин для изменения размеров (а также наложения водяных знаков и скругления углов) картинок TV при создании документа.
                    PickDocsInTree - плагин для выбора документов из дерева.
                    Paykeeper 1.5 - Сниппет для онлайн-оплаты в интернет-магазине MODx + Shopkeeper (Webmoney и Robokassa).
                    • 16240
                    • 64 Posts
                    Есть альтернативный способ, о котором я обещал написать. Для него не надо ставить phx. В моем случае ставить его все равно пришлось, но для других целей, поэтому это помогает "сэкономить" на вызовах phx, что тоже не плохо в принципе =)
                    + Вашу конструкцию я не проверял, но врядли она заработает с дополнительными полями, которые указаны при регистрации в &customFields, хотя кто знает...
                    и так:

                    Как заставить eForm отправлять данные зарегистрированного пользователя вместе с письмом, включая данные из дополнительных полей (&customFields)?

                    1. Все делаем по инструкции, создаем 2 чанка: shopOrderFormWebUser и shopOrderReportWebUser.

                    2. Создаем чанк userTemplate, следующего содержания:
                    <input type="hidden" name="fullname" value="[+user.fullname+]" />
                    <input type="hidden" name="email" value="[+user.email+]" />
                    <input type="hidden" name="dopparametr1" value="[+user.dopparametr1+]" />
                    <input type='hidden' name='dopparametr2' value='[+user.dopparametr2+]' />
                    .....
                    

                    Этот чанк будет использоваться в вызове сниппета webloginPE. Количество полей зависит от количества и названий дополнительных параметров, которые Вы внесли при регистрации в &customFields. Как видите, в вызове есть и стандартные параметры (fullname, email) и дополнительные (dopparametr1,dopparametr2).
                    Хочу обратить внимание, если заметите, то в последней строке, вместо двойных кавычек, используются одинарные. Это сделано потому, что поле может содержать информацию, которую пишут в кавычках (для тех кто работает с юр. лицами, это может быть название компании - ООО "Ромашка", или так обычно пишут банк - ООО КБ "Экспобанк"). Такая конструкция (с одинарными кавычками) позволяет избежать глюков. Перестраховывайтесь, где нужно.

                    3. В чанке shopOrderFormWebUser (или который у вас отвечает за вид формы) вставляем вызов webloginpe. В &type ставим значение `profile`, чтобы выводилась информация из профайла пользователя, и не забываем добавить в вызов &customFields с дополнительными параметрами, которые Вы устанавливали в форме регистрации нового пользователя, если они конечно у Вас используются (в нашем случае их 2 - `dopparametr1,dopparametr2`).
                    <form method="post" action="[~[*id*]~]" id="shopOrderForm" name="shopOrderForm">
                    	<input type="hidden" name="formid" value="shopOrderForm" />
                    	[[webloginpe? &type=`profile` &profileTpl=`userTemplate` &customFields=`dopparametr1,dopparametr2`]] <- Вот вызов
                    	<input type="hidden" name="reportTpl" value="shopOrderReportWebUser" />
                    ...
                    </form>
                    

                    Хочу обратить внимание, работает только кэшируемый вызов веблогина (покрайне мере у меня). Если вызывать через [!!], то просто выводит сам вызов.
                    Еще обращу внимание! у меня в вызове webloginpe вызывается весь маленькими буквами - так он установлен у меня. Пишите правильное название, как у вас сниппет установлен: [[WebloginPE...]] или [[webloginPE...]] или как он там по дефолту называется - не помню. А то потом будете париться искать ошибку, которая в названии.

                    4. Ну и теперь добавляем в чанк отчета shopOrderReportWebUser (или какой там у вас отвечает за отчет) эти самые дополнительные параметры, через всем понятную и известную конструкцию, соответствующую значениям поля name которые мы использовали в userTemplate

                    [+fullname+]
                    [+email+]
                    [+dopparametr1+]
                    [+dopparametr2+]
                    


                    Вуаля...
                      • 16240
                      • 64 Posts
                      Проблема возникла следующего характера:
                      Вывод альтернативной формы для веб-пользователей, если групп пользователей не одна, а несколько

                      Решение для одной группы пользователей - простое, и оно описано в ФАКе. Устанавливаем phx и в шаблон вставляем следующее:
                      [+phx:mo=`Имя группы пользователей`:then=`[!вызов еформа для зарегистрированных!]`:else=`[!вызов еформа для НЕзарегистрированных!]`+]
                      


                      У меня групп ВЕБ пользователей - несколько, Group1, Group2 и Group3, поэтому, если в phx вставлять mo=`Group1`, то пользователи из Group2 и Group3 видят форму для НЕзарегистрированных пользователей (что, собственно, и логично, т.к. phx проверяет состоят ли они в группе Group1, а они в ней не состоят).



                      Рекомендую начать читать с конца, т.к. второе решение более удобное, просто и гибкое + не требует установки phx



                      "Костыль" для решения и сипользованием phx

                      1. Во-первых, чтобы не лопнул мозг, я вынес вызовы eForm в отдельные чанки (так просто удобнее и нагляднее):
                      Чанк ShowForm - отвечает за вывод формы НЕзарегистрированным:
                      [!eForm? &formid=`shopOrderForm` &tpl=`shopOrderForm` &gotoid=`23` &report=`shopOrderReport` &vericode=`0` &ccsender=`0` &subject=`Новый заказ`&eFormOnBeforeMailSent=`populateOrderData` &eFormOnMailSent=`sendOrderToManager` &to=`{{contactEmail}}`!]
                      
                      Чанк ShowFormUser - отвечает за вывод формы зарегистрированным:
                      [!eForm? &formid=`shopOrderForm` &tpl=`shopOrderFormWebUser` &gotoid=`23` &report=`shopOrderReportWebUser` &vericode=`0` &ccsender=`0` &subject=`Новый заказ` &eFormOnBeforeMailSent=`populateOrderData` &eFormOnMailSent=`sendOrderToManager` &to=`{{contactEmail}}`!]
                      


                      2. Теперь будем строить кривую логику для phx.
                      Создаем 3 Чанка
                      testGroup1
                      [+phx:mo=`Group1`:then=`{{ShowFormUser}}`:else=`{{testGroup2}}`+]


                      testGroup2
                      [+phx:mo=`Group2`:then=`{{ShowFormUser}}`:else=`{{testGroup3}}`+]


                      testGroup3
                      [+phx:mo=`Group3`:then=`{{ShowFormUser}}`:else=`{{ShowForm}}`+]


                      В моем случае, группы 3, чанка соответственно тоже 3.
                      Что же делают эти чанки? В теле шаблона, где нам нужен eform вставляем чанк testGroup1. По нему видно, что он проверяет на соответствие пользователя к группе Group1, и если соответствует - выдает форму для зарегистрированных, а если не соответствует - "отправляет" нас к чанку testGroup2. Этот, в свою очередь, проверяет на принадлежность пользователя к группе Group2, и выдает либо форму для зарегистрированных, если принадлежит, либо "отправляет" в чанк testGroup3. Последний чанк выполняет проверку на соответствие Group3, и если и к ней мы не принадлежим, он, как последний выдает нам чанк {{ShowForm}}, где лежит форма вызова для НЕзарегистрированных пользователей.

                      Вуаля



                      Второе решение
                      Кстати, довольно неплохое, и найдено совершенно случайно. По крайней мере, оно имеет право жить, т.к., во-первых, не требует установки phx, во-вторых, подойдет и для решения подмены формы для зарегистрированных пользователей, даже если группа всего одна, т.е. проще конструкции, которая есть в ФАК и озвучена в начале этого поста.

                      Итак,
                      В чем различие вызовов eform для зарегистрированных, от незарегистрированных пользователей? Только в чанках формы и отчета. А в чем разница в названиях чанков? только во фразе WebUser в конце shopOrderReport и shopOrderReportWebUser, shopOrderForm и shopOrderFormWebUser.

                      Как этим воспользоваться? Решение простое, как 2 рубля.
                      В стандартной оставке MODx есть сниппет MemberCheck. Он проверяет, относится ли пользователь определенным группам пользователей
                      ВАЖНО! причем, он распознает и менеджеров, а не только веб-пользователей (насколько я понял из доков), в отличии от mo=`` в phx, это тоже может кому-то пригодиться

                      Создаем чанк FuckEform. В него пишем злополучную фразу, которая различает 2 вызова сниппета:
                      WebUser


                      В шаблоне вызываем MemberCheck ДО вызова eForm
                      [[MemberCheck? &groups=`Group1, Group2, Group3` &chunk=`FuckEform` &ph=`wtf`]]
                      Теперь MemberCheck вставит содержимое Чанка FuckEform в плейсхолдер wtf, либо не вставит ничего, поэтому нам осталось добавить нужный плейсхолдер в один вызов eform.
                      Конструкция вызова целиком будет выглядеть в шаблоне так:
                      [[MemberCheck? &groups=`Group1, Group2, Group3` &chunk=`FuckEform` &ph=`wtf`]]
                      [!eForm? &formid=`shopOrderForm` &tpl=`shopOrderForm[+wtf+]` &gotoid=`23` &report=`shopOrderReport[+wtf+]` &vericode=`0` &ccsender=`0` &subject=`Новый заказ`&eFormOnBeforeMailSent=`populateOrderData` &eFormOnMailSent=`sendOrderToManager` &to=`{{contactEmail}}`!]
                      

                      Вуаля...



                      Третий способ, но он на практике не проверен мной Проверено. Работает. Вызов eForm в чанках только надо кэшируемый сделать - [[...]]
                      Опять же - стандартный сниппет Personalize, входящий в дефолтную поставку.
                      Тут вообще все очень просто (но чисто на теории).
                      Вызываем сниппет:
                      [!Personalize? &yesChunk=`ShowFormUser` &noChunk=`ShowForm`!]
                      


                      ShowFormUser - чанк с вызовом для зарегистрированных
                      ShowForm - чанк с вызовом еформа для незарестрированных

                      Вуаля...