Всего 125 675 комментариев

Игорь
16 октября 2020, 12:37
0
нет, класс от модуля сбербанка — я его уже использовал на других сайтах
Александр Мельник
16 октября 2020, 12:35
+1
Класс сами писали? Вроде у меня такое было если в написанном мной классе были ошибки, к примеру он не расширял стандартный класс оплаты.
Александр Мельник
16 октября 2020, 12:13
0
приходиться с Excel подключаться к сайту на MODX
Вы имеете в виду — из запущенного редактора microsoft Excel вы каким-то образом связываетесь с сайтом?
Андрей
16 октября 2020, 11:59
0
Приношу извинения, но я не особо силен в php( Что необходимо с этим сделать?
Иван Бочкарев
16 октября 2020, 11:18
0
www.php.net/manual/ru/reserved.variables.server.php

HTTP_REFERER

Адрес страницы (если есть), с которой браузер пользователя перешёл на эту страницу. Этот заголовок устанавливается браузером пользователя.
Евгений
16 октября 2020, 11:08
0
Тоже долго искал. Работает на ура! Василий ответил:
https://modx.pro/help/7664#comment-53654
Бронебойный вариант:
$.post(document.location, {ms2_action: 'cart/clean'});
Александр Мельник
16 октября 2020, 09:16
0
Спасибо Артем.
вариант просто не будет работать, потому что ты мутируешь константу в выражении i++
я вроде бы именно это и написал, только без термина мутирования. Я написал «const не прокатит, изза того что мы переменную i на каждой итерации увеличиваем»
но такой код никто не захочет читать и поддерживать
— вроде бы тоже самое и я написал, что если язык позволяет так делать, то значит это НЕ есть «правило языка», это «культура написания кода», когда ты делаешь код гармоничнее и для себя и для потомков.
Отчего же это?
Лишь мои размышления. Название «переменная» намекает на изменяемость. Переменная должна «переменятся» или хотя бы иметь такую возможность.
Артем
16 октября 2020, 00:32
0
for (const i = 0; i < 10; i++) {
Этот вариант просто не будет работать, потому что ты мутируешь константу в выражении i++.
Это то же самое, что написать
const a = 1;
a++;
Именно поэтому используют let.

Я правильно понимаю — это не есть правило языка, это скорее «культура написания кода»?
Ты можешь использовать хоть var, но такой код никто не захочет читать и поддерживать. У const и let масса преимуществ перед var. Именно из-за них их и используют. Почитай про hoisting.

Потому как концепция «неизменяемая переменная» это странная идея
Отчего же это?
Вадим Раевский
15 октября 2020, 23:03
0
После первой отработки phpthumbon, ты второй раз запускаешь результат от первой.
Александр Мельник
15 октября 2020, 20:40
0
Неа. Именно тип. Значение двух типов менять можно. Это массив и объект. Мы запросто можем манипулировать их внутренностями.
понимаю что занимаюсь демагогией бесполезной, но не соглашусь. Вы имеете ввиду что можете изменять значения свойств объекта, объявленного через const. А положить вместо этого объекта другой можете? Нет, хотя тип при этом вы же не измените. И у одного будет тип object и у второго.
Александр Мельник
15 октября 2020, 20:36
0
Есть такое правило ВСЕГДА использовать const при объявлении переменной.
Я правильно понимаю — это не есть правило языка, это скорее «культура написания кода»? Просто некий инструмент, который позволяет гарантировать неизменность типа данных и значения (кроме объектов) если это зачем то нужно.

Опять таки, дилетансткое мнение ни о чем кроме размышлений не основанное, но мне кажется что в js так прижился const что даже стал негласным правилом, только потому что 90 процентов случаев в переменных лежат не примитивы, а объекты, а их свойства и методы можно менять и у const. И вроде как всем удобно. Потому как концепция «неизменяемая переменная» это странная идея и вообще — оксюморон какой-то.
Николай Савин
15 октября 2020, 20:27
0
а так хорошо
да наверное. Вообще на моем опыте в счетчиках всегда let используют. Здесь как раз срабатывает правило — показать читающему что эта переменная где то далее изменится. Здесь не техническая особенность а скорее общепринятое написание.

Ну скорее значение?

 Неа. Именно тип. Значение двух типов менять можно. Это массив и объект. Мы запросто можем манипулировать их внутренностями.
Александр Мельник
15 октября 2020, 20:09
0
Кстати сегодня еще раз повторно читал главу о сборке мусора в js, так как эта темя меня интересует. Но каюсь я так и не понял, что сборщик мусора настолько «шустрый» что успевает отрабатывать на каждой итерации циклов. Там написано «Сборка мусора выполняется автоматически. Мы не можем ускорить или предотвратить её.» и плюс «чтобы уменьшить возможное влияние на производительность, сборщик мусора старается работать только во время простоя процессора.»
Но вы безусловно правы.
Александр Мельник
15 октября 2020, 20:01
0
Спасибо Николай что не прошли мимо.
Тоесть я так понимаю, что в классическом цикле for const не прокатит, изза того что мы переменную i на каждой иттерации увеличиваем, а значит нам нужна ссылка на нее в памяти?
Так плохо
for (const i = 0; i < 10; i++) {
            // do something
        }
а так хорошо
for (let i = 0; i < 10; i++) {
            //
        }
далее нельзя будет изменить ее тип
Ну скорее значение? Тип понятное дело не измениться если нельзя заменить даже значение, но Боже мой, а с каких пор js стал языком со строгой типизацией? Такое чувство что из него C++ начали делать.
Николай Савин
15 октября 2020, 19:36
0
1. Объект user просто определен выше по логике кода. Он не существует сам по себе. Читаем цикл for in
2. Переменные имеют область видимости. Она ограничена круглыми или фигурными скобками. Читаем область видимости. Попробуй вызови в консоли element за пределами ближайшей фигурной скобки
3. Как только область видимости заканчивается — сборщик мусора уничтожает переменную и ее можно объявить заново. В цикле можно заново объявлять переменные на каждой итерации. Читаем про сборщик мусора.
4. Есть такое правило ВСЕГДА использовать const при объявлении переменной. Это связано с тем что далее нельзя будет изменить ее тип и при объявлении четко понятно какого типа переменная. Исключение — если изначально понятно что переменная ниже будет перезаписана. И это объявление тоже служит сигналом для читающего код что где то ниже переменная будет перезаписана. Таким образом const и let это еще и информация о судьбе переменной. Будет ли ниже ее изменение.
Александр Мельник
15 октября 2020, 17:59
0
Я продолжу задавать тут дилетантские вопросы по js.
А почему в таком вот цикле (объект user заранее создан)
for (const key in user) {
            if (user.hasOwnProperty(key)) {
                const element = user[key];
                console.log(element);
            }
        }
и key и element объявлены через const, хотя на каждой итерации они будут изменяться и при этом — ошибок не возникает?? Вот в моем понимании там может быть только let element =
Роман
15 октября 2020, 15:36
0
Используй pThumb, там можно указать свой любой путь.
Роман
15 октября 2020, 15:25
0
Хорошее решение, быстрое и удобное. Спасибо за проделанную работу. Кинул соточку! =)
god2016
15 октября 2020, 15:04
0
msImportExport последняя версия, экспорт файл получается в битой кодировке, что нужно сделать что бы была правильная кодировка? :) кто сталкивался с таким? )