1116 Ладно ... Ответов нет вообще, - так что я сам погрузился в это. Это лучшее, что я мог придумать. Я надеюсь, что это помогает другим, нуждающимся в том же.
Я разрывался между использованием extends
( источник ) или mixins
( источник ).
После небольшого исследования я использовал миксины ( это видео ударило по голове о том, чего я пытался достичь и как это решить). Если вы хотите сделать миксин глобальным для всех компонентов, посмотрите это видео около 4:11 и далее. Я не делаю это в нижеследующем объяснении.
Обратите внимание, что я использую веб-пакет вместе с laravel-mix с нижеприведенным решением. Используется в WordPress-установке.
Раскрытие
Это смесь из миллиарда разных ответов и статей. Потребовалось бы целую вечность, чтобы приписать все это правильным владельцам и источникам, так что я даже не буду пытаться Сожалею.
./mixins/scrollAndResize.js
). export const scrollAndResizeMixin = {
created() {
console.log( 'scrollAndResizes loaded' );
this.calcScroll();
this.calcPageAndViewport();
},
data: function() {
return {
scrollFromTop: 0,
viewportHeight: 0,
viewportWidth: 0,
pageHeight: 0
}
},
methods: {
calcScroll: function (){
let doc = document.documentElement;
this.scrollFromTop = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
// DEBUG (uncomment and scroll, to check if it works)
// console.log( (window.pageYOffset || doc.scrollTop) );
// console.log( (doc.clientTop || 0) );
},
calcPageAndViewport: function(){
// Viewport info
this.viewportHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
this.viewportWidth = Math.min(document.documentElement.clientWidth, window.innerWidth || 0);
// Page length
var body = document.body;
var html = document.documentElement;
this.pageHeight = Math.max(
body.scrollHeight,
body.offsetHeight,
html.clientHeight,
html.scrollHeight,
html.offsetHeight
);
},
}
};
./app.js
). // Vue
import Vue from 'vue';
// Mixins
import { scrollAndResizeMixin } from './mixins/scrollAndResize';
// The Application
const app = new Vue({
mixins: [
scrollAndResizeMixin
],
computed: {
mobile: function() {
return this.viewportWidth < 992; // This uses the mixin
}
},
created() {
window.addEventListener( 'scroll', this.calcScroll );
window.addEventListener( 'resize', this.calcPageAndViewport );
},
destroyed() {
window.removeEventListener( 'scroll', this.calcScroll );
window.removeEventListener( 'resize', this.calcPageAndViewport );
}
});
Desktop
Mobile
Если вы используете DotNetNuke 4.8 или выше, вам просто нужно включить удобные для человека URL-адреса через Web.Config.
Чтобы включить удобные для человека URL-адреса, замените:
<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" />
на:
<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="HumanFriendly" />
ОБНОВЛЕНИЕ: Для DNN 7.x и выше теперь это должно быть:
<add name="DNNFriendlyUrl" type="DotNetNuke.Services.Url.FriendlyUrl.DNNFriendlyUrlProvider, DotNetNuke.HttpModules" includePageName="true" regexMatch="[^a-zA-Z0-9 _-]" urlFormat="advanced" />
Дополнительная информация: Включить удобные для человека URL-адреса в DotNetNuke
Другое предложение является Бластером Страницы, если Вы не желаете, пишут Ваш собственный код. Работы хорошо для сайтов l используют его на.
Проверьте это - детали здесь:
Кроме того, смотрите на существующий модуль FriendlyUrl, это уже включено в DNN.
Если Вы захотите сделать это на страницах запаса, то необходимо будет взломать источник для него или записать модуль, который делает это независимо.
Чтобы напрямую ответить на ваш вопрос: да, вы можете добавить код на страницу настроек страницы DNN. Однако вы измените основной код и, следовательно, не сможете легко обновить вашу установку, когда будет выпущен следующий выпуск DNN.
Многие люди приходят в DNN и хотят написать новый URL-адрес. Проблема не в переписывании: это заставляет структуру DNN генерировать правильные URL-адреса там, где вы хотите, - в меню, в сгенерированных ссылках внутри модулей. Чтобы действительно изменить схему перезаписи, вам необходимо заменить / дополнить функцию переопределения URL-адресов, удобную функцию генерации URL-адресов и предоставить некоторую возможность перенаправления, чтобы связать старые и новые URL-адреса вместе.