Minishop2 не любит таблицы?

Здравствуйте.
Натягиваю верстку на MODX. Есть таблица Wishlist — таблица это конечно плохо, но мне какая разница, если сказали сделать так как в верстке.
Сделал все по аналогии с предыдущими проектами, но только с таблицей, примерно так:

<!doctype html>
<html lang="ru">
    <head>
        [[$head]]
	</head>
    <body>
		[[$header]]
		[[$crumbs]]

        <div class="cart-main-area pt-70 pb-75">
            <div class="container">
                <h1 class="page-title">Список желаемого</h1>
                <div class="row">
                    <div class="col-lg-12 col-md-12 col-sm-12 col-12">
                            <div class="table-content table-responsive wishlist">
                                <table>
                                    <thead>
                                        <tr>
                                            <th></th>
                                            <th>Наименование</th>
                                            <th>Цена</th>
                                            <th>Кол-во</th>
                                            <th>Сумма</th>
                                            <th>В корзину</th>
										</tr>
				</thead>
                                    <tbody>
										[[!pdoPage:default=`<tr><strong>Ваш список избранного пока пуст</strong></tr>`?
										&parents=`0`
										&element=`msProducts`
										&resources=`[[!msFavorites.ids]]`
										&tpl=`msProductTable`
										&ajax=`1`
										]]									
				 </tbody>
				</table>
							</div>
					</div>
				</div>
			</div>
		</div>
		[[$footer]]
		[[$modals]]	
	</body>
</html>
… и не работает кнопка «Добавить в корзину» в чанке msProductTable… день тупил, потом убрал теги , , — заработало почему-то… но мне то сказали таблица нужна… как это понимать?
Игорь
15 мая 2020, 12:53
modx.pro
535
0

Комментарии: 18

Евгений Webinmd
15 мая 2020, 13:28
0
в чанке товара обязательно должны быть следующие теги
<form method="post" class="ms2_form">
    <input type="hidden" name="id" value="[[+id]]">
    <input type="hidden" name="count" value="1">
    <input type="hidden" name="options" value="[]"> 
    <butto type="submit" name="ms2_action" value="cart/add">
        В корзину
    </button> 
</form>
Остальное никак не влияет на работоспособность минишопа
    Игорь
    15 мая 2020, 13:49
    0
    да, но ведь не работает, почему-то
    <tr>
        <form method="post" class="ms2_form">
    		<td class="product-thumbnail">
    			{if $thumb?}
    			<img src="{$thumb}" alt="{$pagetitle}" />
    			{else}
    			<img src="{'assets_url' | option}images/product-empty.png" alt="Нет фото" />
    			{/if}	
    		</td>
    		<td class="product-name">
    			<a href="{$id | url}">{$pagetitle}</a>
    			<div class="small">
    				{if $product.options?}
    				{foreach $product.options as $key => $option}
    				{* exclude the option key *}
    				{if $key in ['modification','modifications','msal']}{continue}{/if}
    				
    				{set $caption = ('ms2_product_' ~ $key)|lexicon}
    				{if $option is array}
    				{$caption} - {$option | join : '; '}
    				{else}
    				{$caption} - {$option}
    				{/if}
    				
    				{/foreach}
    				{/if}
    				
    				<div>
    					{$_modx->runSnippet('msAddLinked.info', ['option' => $product.options.msal])}	
    				</div> 	
    			</div>
    		</td>
    		<td class="product-price-cart">
    			<p class="product-price">
    				<span class="price">
    					<span class="msoptionsprice-cost msoptionsprice-[[+id]]" id="price">
    						[[+price]]
    					</span>
    					
    					[[%ms2_frontend_currency]]
    				</span>
    				
    				[[+old_price
    				:ne=`0`
    				:then=`<span class="old-price strike gray weight100 f16">
    					<span class="msoptionsprice-old-cost msoptionsprice-[[+id]]">
    						[[+old_price]]
    					</span>
    					[[%ms2_frontend_currency]]
    				</span>`]]
    			</p>
    		</td>
    		<td class="product-quantity">
    			<input type="number" name="count" id="count-{$id}" class="form-control input-number" value="1" min="1" max="100">	
    		</td>
    		<td class="product-subtotal total_price">
    			<span>{$product.cost}</span> {'ms2_frontend_currency' | lexicon}
    		</td>
    		<td class="product-wishlist-cart">
    			<button class="order-iteme" type="submit" name="ms2_action" value="cart/add">В корзину</button>	
    		</td>
    	</form>
    </tr>
      Евгений Webinmd
      15 мая 2020, 13:51
      0
      <input type="hidden" name="id" value="[[+id]]">

      для фенома

      <input type="hidden" name="id" value="{$id}">
        Александр Мельник
        15 мая 2020, 13:54
        0
        Где в вашем коде инпут name=id?
          Игорь
          15 мая 2020, 14:00
          0
          не поверите, вот только что вставил по вашему совету в начало формы:
          <input type="hidden" name="id" value="{$id}">
          но, не заработало пока (
            Евгений Webinmd
            15 мая 2020, 14:09
            0
            мини корзина вызвана?
            jquery подключен?
            какие ошибки в консоле?
              Игорь
              15 мая 2020, 14:13
              0
              в консоли ошибок нет, если я меняю чанк на тот что без таблицы (я его за пример брал) и удаляю теги таблицы из шаблона, то все работает
                Игорь
                15 мая 2020, 14:15
                0
                может правда туплю и где-то тег не закрытый оставил… но ведь второй день уже смотрю на это чудо ((
                  Евгений Webinmd
                  15 мая 2020, 14:17
                  0
                  у минишопа проблем с таблицами никогда не замечал, ищите что не так в вашем чанке, удаляйте построчно код
                    Игорь
                    15 мая 2020, 15:46
                    0
                    может это проблема pdoPage? потому что я заметил, что эта строка
                    default=`<tr><strong>Ваш список избранного пока пуст</strong></tr>`?
                    вылазиет выше таблицы, когда нет товаров, но, опять же так ничего и не понял (
                    … а в самом чанке со строчкой таблицы уже все перепробовал удалять и менять
      Артем
      15 мая 2020, 16:40
      +1
      потому что я заметил, что эта строка вылазиет выше таблицы
      ну так потому что нельзя мешать form и теги таблицы — это запрещено, поэтому браузер выкидывает неуместный tr за пределы таблицы
      stackoverflow.com/a/5967613
        Артур Шевченко
        16 мая 2020, 00:30
        0
        А js вам совсем чужд? Сделайте форму отдельно от таблицы и по клику передавайте в неё нужные данные и отправляйте. Или просто отправляйте нужные данные по клику без формы, обязательно нужно передавать ключ ms2_action=cart/add, id и count, по необходимости можно массив опций передать.
          Игорь
          16 мая 2020, 13:50
          0
          да я могу конечно и вообще без таблицы все это дело сверстать… Просто в этом-то и был мой вопрос: minishop не дружит с таблицами? pdopage не дружит с таблицами? или я просто затупил и не вижу своей очевидной ошибки?
          … оказывается нельзя мешать form и теги таблицы — хотя опять ни хрена не понял почему, везде можно а в modx нельзя )))
            Евгений Webinmd
            16 мая 2020, 15:16
            0
            прогоните свою верстку через валидатор
              Артур Шевченко
              16 мая 2020, 18:12
              0
              Боюсь, что мешать теги нигде нельзя, если конечно вы хотите сделать хороший сайт.
            Артем
            16 мая 2020, 14:48
            0
            хотя опять ни хрена не понял почему, везде можно а в modx нельзя )))
            давно у нас к modx применяются какие-то особенные стандарты?
            для начала, наверное, стоит поближе познакомиться с версткой и стандартами, а потом уже винить modx и pdoPage
              Игорь
              16 мая 2020, 21:45
              0
              ну так я же и спросил «от чистого сердца» что я мог сделать не так, и всю вёрстку выложил… а вы все ругаетесь, что я MODX не люблю — люблю я MODX, просто помощи просил
                Артем
                16 мая 2020, 23:16
                0
                ну так я еще вчера описал проблему и подкрепил ссылкой для ознакомления, этого мало?
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              18