Quote from: AKots at Apr 05, 2008, 02:11 AM
И еще мне кажется, что неудобно работать с тремя небольшими сниппетами, лучше все объединить в один и параметром передавать в него нужное действие, как это сделано в большинстве сниппетов для MODx. Так, кстати, проще избежать ошибок несоответствия версий в разных взаимосвязанных сниппетах.
Т.е. все три сниппета объединить в один и вызывать его так:
[!Basket? &act=`checkout`!]
[!Basket? &act=`cartblock`!]
[!Basket? &act=`basket`!]
Вообще неплохая идея. Как говорят: аппетит приходит во время еды. Или в нашем случае: хорошие идеи приходят в процессе разработки. а не в начале
Спасибо большое за идею. В след. версии так и сделаю. Вот только надо уже сейчас задуматься об полноценном модуле магазина. Моя команда как раз заканчивает разработку очередного сайта, поэтому можно уже приступать к разработке ТЗ.
Какие функции должны быть в админке?
Как управлять товарами? Через админку или как обычно создавая документы?
Импорт/экспорт товаров ?
Взамосвязь с клиентами?
Способы оплаты?
И т.д. и т.п.
В общем, надо все согласовать и составить это злополучное ТЗ, которое так все хотят сформулировать, но дело постоянно замораживается
ПЮСЮ Очень удобно использовать эту корзину для вывода и заказа товаров из CSV файла. Ранее был выложен на форуме сниппет для вывода товаров. Так вот можно использовать чанк корзины для создания динамического прайс-листа с заказом продукции, минуя использование обычных документов МОДх или же использовать виджет DataGrid , который по описанию разрвботчиков имеет очень большую скорость работы. В общем, очень гибкий сниппет. Это я для тех, кто не знает про существование сниппета прайс-листа. Вылаживаю код его на всякий случай. Только кнопку "Добавить в Корзину" там нету, надо самому писать - небыло времени.
Установка
----------------------------------------------------
1. Создать сниппет Price с кодом расположеном ниже
2. Создаем папку Price по адресу assets/
3. По адресу assets/Price/ создаем файл price.csv
4. Вставить код на страницу [ [Price?price=price] ] , где price название файла
----------------------------------------------------
Код сниппета
====================================================
// Формируем таблицу
$Output .= "<table border=1 cellspacing=2 cellpadding=2 align=bottom bordercolor=Navy>n";
/* Задаем переменную row для того, чтобы выделить
жирным шрифтом первую строчку */
$row = 1;
// Открываем файл нашего прайс-листа для чтения [ [Price?price=price] ]
// Директория расположения
$dir_price = "assets/Price/";
$fp = fopen ("$dir_price$price.csv","r");
// Считываем в массив данные файла
while ($data = fgetcsv ($fp, 1000, ";")) {
// Подсчитываем количество данных в массиве
$num = count ($data);
// Начинаем строку в таблице
$Output .= "<tr>n";
/* Распечатываем массив в ячейки таблицы с помошью цикла.
Таким образом количество ячеек будет соответствовать
количеству данных в массиве */
for ($c=0; $c<$num; $c++) {
/* Условие. Если переменная row равна 1, то вывести
содержимое массива жирным шрифтом, иначе - простым */
if ($row == 1) {
$Output .= "<td><b>$data[$c]</b></td>n";
} else {
$Output .= "<td>$data[$c]</td>n";
}
}
// Заканчиваем строку в таблице
$Output .= "</tr>n";
/* Увеличиваем переменную row на 1, дабы не выводить более
одной строчки жирным шрифтом */
$row++;
}
// Закрываем файл нашего прайс-листа
fclose ($fp);
// Закрываем таблицу
$Output .= "</table>";
return $Output;