msOptions не отрабатывает с первого раза
        Добрый день, не могу понять, почему
    
    
                                                                                
            [[!msOptions? name=`using` &tpl=`msOptionTpl` &product=`[[*id]]`]] в шаблоне с чанком msOptionTpl{foreach $options as $name => $values}
    <label for="option_{$name}">{('ms2_product_' ~ $name) | lexicon}:</label>
    <div name="options[{$name}]" id="option_{$name}" class="value">
        {foreach $values as $value}
            <span value="{$value}">{$value}</span>
        {/foreach}
    </div>
{/foreach}на сайте отрабатывает не с первой загрузки страницы, а только после повторного обновления страницы (F5). Есть соображения? Спасибо.    Комментарии: 20
                Такой вывод тоже со второго раза срабатывает
                    [[!msOptions? &options=`using` &tpl=`msOptionTpl`]]            
                Некэшируемый вывод вообще не работает(            
                    
                Мне кажется, что проблема банальна:
                    {foreach $values as $value}
	<span value="{$value}">{$value}</span>
{/foreach}Тут перебор массива идет, но в результатах работы сниппета msOptions учавствуют обычные одиночные опции и все слетает, т.к. их не перебрать.            
                Странно, но ведь дефолтный чанк tpl.msOptions также выглядит
                    {foreach $options as $name => $values}
    <div class="form-group">
        <label class="col-md-2 control-label" for="option_{$name}">{('ms2_product_' ~ $name) | lexicon}:</label>
        <div class="col-md-10">
            <select name="options[{$name}]" class="input-sm form-control" id="option_{$name}">
                {foreach $values as $value}
                    <option value="{$value}">{$value}</option>
                {/foreach}
            </select>
        </div>
    </div>
{/foreach}Вопрос для чего?            
                Кстати еще вариант есть: банально $values = null и его не перебрать…            
                    
                Как это правильно написать? Помоги пжл.            
                    {foreach $options as $key => $value}
<div class="form-group">
    <label class="col-md-2 control-label" for="option_{$name}">
        {('ms2_product_' ~ $key) | lexicon}:
    </label>
    <div class="col-md-10">
        {if $array | iterable}
            <select name="options[{$key}]" class="input-sm form-control" id="option_{$key}">
                {foreach $values as $value}
                    <option value="{$value}">{$value}</option>
                {/foreach}
            </select>
        {else}
            <input id="option_{$key}" type="text" class="input-sm form-control" name="options[{$key}]" value="{$value}" />
        {/if}
    </div>
</div>
{/foreach}Я указал, чтобы в случаях, когда не массив, то вместо выпадающего списка обычный text            
                Все также со второго раза(            
                    
                Через плагины или т.п. модель расширяли?            
                    
                Нет, это стандартные опции minishop2.            
                    
                Так надо использовать сниппет msProductOptions :-)            
                    
                пробовал :) этот вообще ни чего не выводит.            
                    
                msOptions получает опции как $product->get($name)
github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/elements/snippets/snippet.ms_options.php#L22
который в свою очередь дергает loadOptions github.com/bezumkin/miniShop2/blob/4b00c666d7fc0b9db8ce911636013e7bbcb7a6c3/core/components/minishop2/model/minishop2/msproduct.class.php#L194
msProductOptions сразу пользует loadOptions github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/elements/snippets/snippet.ms_product_options.php#L29
так что это скорее всего не решит никак проблему.
Проверить конечно я это никак не могу…
                    github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/elements/snippets/snippet.ms_options.php#L22
который в свою очередь дергает loadOptions github.com/bezumkin/miniShop2/blob/4b00c666d7fc0b9db8ce911636013e7bbcb7a6c3/core/components/minishop2/model/minishop2/msproduct.class.php#L194
msProductOptions сразу пользует loadOptions github.com/bezumkin/miniShop2/blob/master/core/components/minishop2/elements/snippets/snippet.ms_product_options.php#L29
так что это скорее всего не решит никак проблему.
Проверить конечно я это никак не могу…
msOptions не отрабатывает с первого раза
то есть со второго раза он все таки успешно их перебирает?
По моему дело вовсе не в этом.
                да, при обновлении страницы.            
                    
                это не вам вопрос был. А по поводу этого 
                    Тут перебор массива идет, но в результатах работы сниппета msOptions учавствуют обычные одиночные опции и все слетает, т.к. их не перебрать.
                Собственно, я думал, что второй раз из кэша берется уже нормальные значения именно массивов, в отличии от первого раза, когда по каким-либо причинам значения еще не успевают обработаться… Собственно, я был прав. Ошибка была в том, что речь шла про msProductOption, а не поля из msProductData…            
                    
                то что данных вовсе нет как бы совсем другое, не так ли?
Осталось выяснить почему их нет и можно сказать Собственно, я был прав
                    Осталось выяснить почему их нет и можно сказать Собственно, я был прав
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.