Для чего Magento использует scriptaculous? - PullRequest
1 голос
/ 10 сентября 2010

Кто-нибудь знает? Я бы очень хотел вытащить его и использовать jquery, но если ядро ​​Varien js его использует ...

Ответы [ 4 ]

7 голосов
/ 11 сентября 2010

Scriptaculous - это дополнение к Prototype, которое является реальной платформой, которую использует Magento.В некотором смысле это Prototype, что JQueryUI для JQuery.Так что я не верю, что вы хотите заменить оба.Это будет очень большая задача и, вероятно, не стоит усилий.На самом деле мне было легче изучить прототип, чем пройти через большое количество встроенного JavaScript (BAD MAGENTO) и заменить его JQuery.

В любом случае, чтобы ответить на ваш вопрос, он используется повсюду в Magento.Я считаю, что это наиболее заметно в админе, поскольку он имеет несколько сложный интерфейс.Практически везде, где вы видите Zooming, Sliders, Drag and Drop и т. Д., Вы можете обвинить Scriptaculous.Почти все остальное, что связано с JS, будет прототипом.

2 голосов
/ 01 февраля 2012

Я задавался вопросом об этом в начале, когда впервые разрабатывал с Magento.jQuery более популярен благодаря большому сообществу и огромному количеству доступных плагинов.Чтобы пойти, взять и изучить новую библиотеку Javascript, такую ​​как Prototype или Scriptaculous, нужно много времени и не нужно.

Я обнаружил на курсе Magento причину этого.В начале (несколько лет назад), когда они впервые разрабатывали платформу Magento, единственной надежной, надежной и стабильной доступной библиотекой Javascript был Prototype.jQuery был еще в зачаточном состоянии и не был популярен, как сегодня, и не был достаточно стабилен.Именно поэтому они решили принять Prototype.До сегодняшнего дня, как уже говорилось в предыдущих комментариях, полное удаление сценариев Prototype займет слишком много времени и, возможно, излишне.Платформа сильно зависит от этого.

Однако ходят слухи, что в следующем крупном выпуске Magento библиотека jQuery будет иметь ядро.Произойдет ли это, еще неизвестно.

2 голосов
/ 12 сентября 2010

Хорошо, Prototype - это инфраструктура javascript, похожая на jQuery, в связи с тем, что она обрабатывает большую часть ajax, манипуляций с dom и т. Д., И, как правило, просто делает работу с javascript гораздо более простой и лаконичной - устраняя множество кросс-браузерных проблем с мало усилий.

Script.aculo.us используется для интерфейсной стороны, то есть для всех хороших загрузчиков, ползунков, перетаскивания в разделе администратора и т. Д. Все это обрабатывается с помощью script.aculo.us.

Конечно, jQuery может справиться с этим, но не может просто заменить использование Magentos Prototype и Scriptaculous jQuery. Удачи тебе, если ты попробуешь.

Magento очень интенсивно (слишком интенсивно) использует javascript, и на всем сайте есть тонны встроенного javascript.

Что вы можете сделать, так это принять, что весь этот javascript доступен для вас. Если вы хотите добавить новые функции на сайт, вы можете использовать jQuery, но не пытайтесь отменить то, что было сделано в другой библиотеке / фреймворке.

Если вы должны использовать jQuery, то все, что вам нужно сделать, это добавить следующую строку в файл макета page.xml:

<action method="addJs"><script>path to your jquery</script></action>

находится вокруг строки 38 и может быть найден в разделе по умолчанию, что влияет практически на каждую страницу.

и затем, очевидно, снова то же самое для любого из ваших собственных файлов JavaScript, которые вы создаете.

Что касается встроенного javascript, который создает magento, большая его часть основана на событиях onclick и аналогах, поэтому вы используете jQuery для удаления этих событий с синтаксисом, подобным следующему:

$('.el').removeAttr('onclick');

например, если вы хотите удалить JavaScript из кнопки «Добавить в корзину», вы должны использовать:

$('.btn-cart').removeAttr('onclick');

и затем привязать свои собственные события к этой кнопке.

As alway.removeAttr ('onclick');

Надеюсь, это поможет.

Drew

1 голос
/ 10 сентября 2010

Вы все еще можете реализовать jQuery, просто убедитесь, что вы используете функцию без конфликтов.

...