Лишние нули в начале параметра "Вес" (Minishop2)
Здравствуйте, дорогие разработчики на Modx Revo. Вопрос касается minishop2. Отличное дополнение, все понятно и ясно. Спасибо большое Василию за разработку (и не только minishop2).
У меня вопрос такой: как сделать так, что бы в параметре «Номер» сохранялось и выводилось число 001 или 025, ну то есть с нулями впереди?
P.S. «Номер» — это бывший «Вес» (weight)
Вопрос может быть глупый и легко решаемый, но я почему то впал в ступор :) Исправил уже в базе данных Type на textfield, поковырялся в исходниках, но ничего не помогает.
У меня вопрос такой: как сделать так, что бы в параметре «Номер» сохранялось и выводилось число 001 или 025, ну то есть с нулями впереди?
P.S. «Номер» — это бывший «Вес» (weight)
Вопрос может быть глупый и легко решаемый, но я почему то впал в ступор :) Исправил уже в базе данных Type на textfield, поковырялся в исходниках, но ничего не помогает.
Комментарии: 11
Кроме базы нужно еще и модель компонента менять, и тип поля ввода — но это неправильный путь.
Зачем вообще вес тебе нужен с ведущими нулями? Вес — это же число, а не текст.
Зачем вообще вес тебе нужен с ведущими нулями? Вес — это же число, а не текст.
Спасибо за ответ, Василий. Так я же переделал «Вес» в «Номер», а номер мне нужен формата «001»
Зачем так извращаться?
Можно использовать артикул, можно добавить новое поле.
Можно использовать артикул, можно добавить новое поле.
В том то дело, что «Артикул» у меня уже есть.
Хотелось чтобы в этом блоке было 4 параметра: Цена, Артикул, Номер и Объем.
Я пытался создать свои tv-параметры, но никак не мог запихнуть их в этот блок, вот и пошел по пути переименования Веса в Номер и Старой цены в Объем.
Объем у меня как раз формата типа 10.00, а вот Номер нужен формата 001
Я извращаюсь, наверняка, из-за того, что чего-то не знаю :((
Хотелось чтобы в этом блоке было 4 параметра: Цена, Артикул, Номер и Объем.
Я пытался создать свои tv-параметры, но никак не мог запихнуть их в этот блок, вот и пошел по пути переименования Веса в Номер и Старой цены в Объем.
Объем у меня как раз формата типа 10.00, а вот Номер нужен формата 001
Я извращаюсь, наверняка, из-за того, что чего-то не знаю :((
Очевидно да, ты не знаешь, что в этот блок можно засунуть новые поля.
Вот здесь прочитай первую половину и не приставай больше к стандартным полям товара =)
Вот здесь прочитай первую половину и не приставай больше к стандартным полям товара =)
Хахаха))) Спасибо, Василий :)
А в чем проблема, написать простейший сниппет, который будет формировать нужное число?
Где 3 — кол во нулей, необходимых перед числом. Все.
while(strlen($digit) < $width)
$digit = '0' . $digit;
return $digit;
Тогда в чанке\шаблоне нужно будет не [[+weight]] а [[!snippet? &digit=`[[+weight]]` &width=`3`]]Где 3 — кол во нулей, необходимых перед числом. Все.
Наверное, лучше вывести это в плагин на событие OnDocFormSave, чтобы не нагружать вызов.
Как-то в духе:
Как-то в духе:
if ($modx->event->name == 'OnDocFormSave') {
if($resource->get('class_key') == 'msProduct'){
$tv_value = $resource->getTVValue('tv_name'); //заменить tv_name на название тв-поля/параметра товара
//кол-во необходимых нулей
if (strlen($tv_value) < 3) {
$newTvValue = = '0' . $tv_value;
$resource->set('tv_name', $newTvValue);
}
$resource->save();
}
}
Спасибо большое, но думаю лучше все сделать по нормальному) просто добавить в этот блок новый параметр :)
Дело ваше..)
Но, к слову, наличие полноценных и подписанных доп.ячеек никогда не было гарантом того, что манагеры/контенщики будут заполнять их правильно..)
Но, к слову, наличие полноценных и подписанных доп.ячеек никогда не было гарантом того, что манагеры/контенщики будут заполнять их правильно..)
Знаю, знаю, поэтому и хочу чтобы было максимально понятно и достаточно ограниченно) новый параметр сделаю чисто числовой.
Спасибо Вам за ответ.
Спасибо Вам за ответ.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.