Павел Гвоздь
С нами с 31 мая 2015; Место в рейтинге пользователей: #3[PHP] Сравнение одинаковых чисел не работает?
Вопрос к знатокам. Скорее всего я, что-то упускаю из виду…
Под катом вопросы…
$var1 = floatval(995); // double 995
$var2 = floatval(19.9 * 50); // double 995
$var3 = floatval(1990 - floatval(19.9 * 50)); // double 995
$format = '%0' . "b\n";
printf($format, $var1); // 1111100011
printf($format, $var2); // 1111100010
printf($format, $var3); // 1111100011
print PHP_EOL . '===' . PHP_EOL;
print intval($var1 === $var2) . PHP_EOL; // false
print intval($var1 === $var3) . PHP_EOL; // false
print intval($var2 === $var3) . PHP_EOL; // false
print PHP_EOL . 'intval === intval' . PHP_EOL;
print intval(intval($var1) === intval($var2)) . PHP_EOL; // false
print intval(intval($var1) === intval($var3)) . PHP_EOL; // true
print intval(intval($var2) === intval($var3)) . PHP_EOL; // false
print PHP_EOL . 'round === round' . PHP_EOL;
print intval(round($var1, 2) === round($var2, 2)) . PHP_EOL; // true
print intval(round($var1, 2) === round($var3, 2)) . PHP_EOL; // true
print intval(round($var2, 2) === round($var3, 2)) . PHP_EOL; // true
Под катом вопросы…
[msPromoCode] 1.3.3 - Кастомизация скидки товара плагином
В новой версии пакета через плагины можно кастомизировать скидку на товары, которые применены к промо-коду. Если на примерах, то через события mspcOnBeforeSetProductDiscount и mspcOnSetProductDiscount можно:
- Увеличивать/применять скидку на товар в зависимости от кол-ва единиц товара в корзине,
- Давать скидку только на конкретную опцию товара, например на рубашку размера XXL,
- Получить итоговую стоимость товара, за вычетом скидки, равной скидке за одну единицу, вне зависимости от кол-ва единиц данной позиции в корзине,
- И много чего ещё, на что хватит вашей фантазии!
Создаём ZIP архив средствами MODX
Случается так, что на сайте надо запаковать какую-то папку, а по некоторым причинам сделать это невозможно затруднительно. Предлагаю вариант, который практически не требует ничего, кроме MODX и доступа в бек-энд.
В xPDO есть класс xPDOZip, который умеет запаковывать/распаковывать архивы. К сожалению, в самом MODX его функциональность задействована ровно наполовину — распаковать ZIP архив мы можем, а вот запаковать папку в архив не имеем возможности. Предлагаю решение!
В xPDO есть класс xPDOZip, который умеет запаковывать/распаковывать архивы. К сожалению, в самом MODX его функциональность задействована ровно наполовину — распаковать ZIP архив мы можем, а вот запаковать папку в архив не имеем возможности. Предлагаю решение!
[msPromoCode] 1.3.0 - Фиксированная скидка на всю корзину
В прошлых версиях (до 1.3.0) если указать скидку без процентов (например, 4000) на весь промо-код, то эта сумма отнимется от каждого товара. Это происходило, потому что промо-код применяется к каждому товару непосредственно. Не смотря на это, часто требуется дать скидку не процентную, а фиксированную сумму.
Встречайте версию 1.3.0 с возможностью создать промо-код, который будет применяться к целой корзине. В этом случае у нас пропадает возможность отметить товары/разделы, на которые действует скидка. Это и логично, т.к. целочисленная скидка отнимается от корзины. Теперь, если указать у такого типа промо-кода скидку без процентов, то от корзины отнимется именно эта сумма, вне зависимости от кол-ва товаров в корзине.
Встречайте версию 1.3.0 с возможностью создать промо-код, который будет применяться к целой корзине. В этом случае у нас пропадает возможность отметить товары/разделы, на которые действует скидка. Это и логично, т.к. целочисленная скидка отнимается от корзины. Теперь, если указать у такого типа промо-кода скидку без процентов, то от корзины отнимется именно эта сумма, вне зависимости от кол-ва товаров в корзине.
[xParser] Парсер RSS лент
Парсер контента RSS лент, с возможностью скачивания медиа-контента на сайт.
При добавлении полей ленты, которые надо парсить, вместо названия поля (title или enclosure[url]) можно указать @INLINE чанк, который будет обработан Fenom. Благодаря этому, в этих полях можно выстраивать совершенно любую логику, вплоть до создания новых разделов «на ходу».
При добавлении полей ленты, которые надо парсить, вместо названия поля (title или enclosure[url]) можно указать @INLINE чанк, который будет обработан Fenom. Благодаря этому, в этих полях можно выстраивать совершенно любую логику, вплоть до создания новых разделов «на ходу».
[CurrencyCalc] Калькулятор валют
Парсер и конвертер курсов валют.
- Выбор источника парсинга: ЦБ РФ, НацБанк Казахстана или YahooApis.
- Источники ЦБ РФ и НацБанк Казахстана написаны таким образом, что рубль/тенге не является обязательной валютой, скрипт конвертирует любую, существующую в списке, валюту.
- YahooApis обновляет данные в реальном времени. Также там есть курс биткоин.
- Возможность вывести список валют в виде калькулятора.
- Возможность обновлять, как вручную пачкой/единично, так и cron скриптом, хоть раз в минуту.
С 20 октября по 3 ноября -30% на пакеты Гвоздя
Время от времени в сообществе проскакивают радостные вести о скидках в магазине дополнений modstore.pro. Решил и я порадовать сообщество. У меня тут есть 5 пакетов, которые с 20 октября по 3 ноября будут с 30% скидкой. Торопитесь приобрести!
- msPromoCode — Скидочные промо-коды для miniShop2.
- imgArea — Удобная визуальная расстановка областей (map, area) на изображениях.
- msKuponator — Пакет реализует сайт-купонатор на miniShop2.
- msDeliveryOnMap — Выбор адреса и подсчёт стоимости доставки одним кликом по карте.
- msOrderFiles — Пакет для прикрепления файлов к заказу ms2.
[ExtJS] Расширяем компонент Collections
Часто ли вам приходится расширять какие-то стандартные штуки в MODX или в компонентах для него? Мне вот часто! Поэтому, давно хотелось поделиться чем-нибудь интересным на этот счёт, что я собственно и сделал в статье Дополнительные поля профиля юзера, где описал, как можно расширить профиль юзера, чтобы всё выглядело натурально. На этот раз расскажу, как можно расширять компонент Collections, не прибегая к крайним мерам, вроде правки исходников приложения.
[msOrderFiles] Файлы к заказам miniShop2
Небольшой компонент, предназначенный для прикрепления файлов к заказу miniShop2. Нет ни сниппетов, ни чанков, ни отдельной страницы компонента. Есть только вкладка, встроенная в окошко редактирования заказа miniShop2, и свой Источник файлов.
За идею компонента спасибо Михаилу Воеводскому!
[Compiler] Компиляция SCSS файлов в бекенде
Пакет компилирует SCSS в CSS код при сохранении файла в бек-энде MODX.
Пока умеет работать только с SCSS файлами, но т.к. написан на основе Munee, то в будущем будет расширен до всех возможностей оной (кроме изображений).