Plone 3: переопределение файлов Javascript по умолчанию
Я использую Plone 3 и в настоящее время пытаюсь переопределить один из файлов javascript по умолчанию, т.е. table_sorter.js.
В каталоге браузера моего продукта я создал каталог "javascripts" (просто чтобы упорядочить вещи), а затем зарегистрировал каталог как ресурс в файле configure.zcml:
<browser:resourceDirectory
name="myproduct.javascripts"
directory="javascripts"
layer=".interfaces.IThemeSpecific" />
Где "myproduct" говорит само за себя. Затем в jssregistry.xml я зарегистрировался и заказал файлы javascript:
<javascript id="++resource++myproduct.javascripts/table_sorter.js"
enabled="True"
cookable="False"
inline="False"
insert-after="jquery.js" />
Где table_sorter.js - это имя файла javascript, который мне нужно переопределить.
Причина, по которой мне нужно переопределить файл, заключается в том, что по умолчанию нет способа сообщить пользователю, сортируется ли таблица или нет, пока она не нажата. Мне нужно включить значки в заголовок таблицы по умолчанию.
Я следовал за вышеупомянутыми шагами, но это, кажется, не работает. Я понятия не имею, где я иду не так. Любая помощь будет высоко оценена.
3 ответа
Вам не хватает общего шага импорта настроек. Добавьте файл skins.xml в свой профиль GS с этим кодом:
<?xml version="1.0"?>
<object name="portal_skins" allow_any="False" cookie_persistence="False">
<object name="plonetheme_mytheme_js"
meta_type="Filesystem Directory View"
directory="your.product:skins/plonetheme_mytheme_js"/>
<skin-path name="*">
<layer name="plonetheme_mytheme_js"
insert-after="custom"/>
</skin-path>
</object>
После этого вспомните, чтобы переустановить продукт, чтобы применить новый шаг GS
Примечание: я даю другой ответ просто потому, что код в комментариях не читается. Посмотрите ответ @Martijn Pierters (и комментарии) для начальной части.
Вы не переопределяете исходный файл JavaScript, а только добавляете новый.
Вы можете сделать две разные вещи здесь:
Удалите оригинальный файл table_sorter.js из portal_javascript:
<javascript id="table_sorter.js" remove="true" />
Поскольку исходный файл table_sorter.js является сервером через слой обложки, вы можете поместить новый файл с тем же именем в свой слой обложки, чтобы переопределить оригинал.
Учитывая, что вы уже поместили свой настроенный файл javascript в статический каталог, сделайте следующее.
В файле "ваше / приложение /profile /default/jsregistry.xml"
<?xml version="1.0"?>
<object name="portal_javascripts">
<javascript id="table_sorter.js" remove="True" enabled="False" />
<javascript cacheable="True" compression="none" cookable="True"
enabled="True" expression=""
id="++resource++your.app/path/to/customised/script/table_sorter.js" inline="False"/>
</object>
Измените атрибуты, как вы хотите.:)