Version 5.0.0 beta 7
This commit is contained in:
1 parent
fa2a720105
commit
54d5dcd0a0
156 files changed
+4337
-2995
No files matched your search
@@ -1 +1 @@
|
||||
.ipsCoverPhoto--minimal .ipsCoverPhoto__container{aspect-ratio:10;}.ipsCoverPhoto--profile:not(.ipsCoverPhoto--minimal) ~ .ipsCoverPhotoMeta [data-action="goToProfile"], .ipsCoverPhoto--minimal ~ .ipsCoverPhotoMeta [data-action="browseContent"], .ipsCoverPhoto--minimal #ipsMenu_elprofile_edit{display:none !important;}.ipsProfile{display:grid;gap:1em;}@media (min-width:768px){.ipsProfile{grid-template-columns:min(360px, 30vw) 1fr;}.ipsProfile__aside{display:grid;}.ipsProfile__sticky-outer{min-height:min(100%, calc(100vh - (var(--i-sp_block) * 2) - var(--i-sticky-offset)));min-height:min(100%, calc(100svh - (var(--i-sp_block) * 2) - var(--i-sticky-offset)));position:sticky;bottom:var(--i-sp_block);align-self:end;}.ipsProfile__sticky-inner{position:sticky;top:calc(var(--i-sticky-offset) + var(--i-sp_block));display:grid;gap:1em;}}@media (max-width:767px){.ipsProfile__aside--carousel .ipsProfile__sticky-inner{display:flex;gap:1em;overflow:auto;margin-left:calc(var(--i-layout-gutter) * -1);margin-right:calc(var(--i-layout-gutter) * -1);padding-inline:var(--i-layout-gutter);overscroll-behavior-x:contain;scroll-behavior:smooth;scroll-snap-type:x mandatory;scroll-padding-inline:var(--i-layout-gutter);-webkit-transform:translateZ(0);}.ipsProfile__aside--carousel .ipsWidget{flex:1 0 min(360px, 80vw);scroll-snap-align:center;display:flex;flex-direction:column;}.ipsProfile__aside--carousel .ipsWidget__content{flex:1 1 auto;display:grid;align-content:center;}}.ipsProfile__aside .ipsSideMenu{padding:1em;}.ipsWidget--rank-badges .ipsWidget__content > *{padding:clamp(1em, 2vw, 2em) 0;border-bottom:1px solid var(--i-background_4);margin:0 clamp(1em, 2vw, 2em);}.ipsWidget--rank-badges .ipsWidget__content > *:last-child{border-width:0;}.ipsProfileWidget{padding:3em 1.5em;border-bottom:1px solid var(--i-background_3);display:block;}.ipsWidget--rank-badges .fa-trophy{color:var(--i-trophy-first--background);}.ipsProfileWidget__data{display:grid;gap:1em;}.ipsProfileWidget__dataLabel{font-weight:550;color:var(--i-color_hard);}.cProfileAchievements > a:hover{background:var(--i-background_2);}.cProfileRepScore{background:var(--i-background_5);color:var(--i-base-contrast_6);border-radius:6px;text-align:center;display:grid;font-weight:600;}.cProfileRepScore--badge{aspect-ratio:1;display:inline-grid;place-content:center;min-width:2.6em;border-radius:500px;font-size:1.2em;}.cProfileRepScore--positive{background:var(--i-background_positive);color:#fff;}.cProfileRepScore--negative{background:var(--i-background_negative);color:#fff;}.cProfileRepScore--solutions{background:var(--i-secondary);color:var(--i-secondary-contrast);}.cProfileRepScore__points{font-size:2em;}.cProfileSubscription{display:grid;overflow:hidden;border-radius:min(var(--i-design-radius), 7px);background-color:var(--i-background_dark);color:#fff;text-align:center;font-weight:600;}.cProfileSubscription > *{grid-area:1/-1;}.cProfileSubscription img{width:100%;}.cProfileSubscription__gradient{background-image:linear-gradient(to bottom, rgba(0,0,0,0) 50%, rgba(0,0,0,0.8));}.cProfileSubscription__text{padding:2em 1em;align-self:end;}.cProfileSubscription--with-image .cProfileSubscription__text{padding-top:5em;text-shadow:rgba(0,0,0,0.2) 0px 1px 1px;}.cRankHistory{position:relative;z-index:1;display:grid;gap:20px;}.cRankHistory::before{content:'';width:2px;background:var(--i-color_soft);position:absolute;top:10px;bottom:10px;inset-inline-start:19px;z-index:-1;opacity:.4;}.cRankHistory__item{position:relative;display:flex;align-items:center;gap:var(--i-sp_2);}.cRankHistory__icon{background:var(--i-background_1);padding:3px 0;flex:0 0 auto;}.cRankHistory__icon img{width:40px;aspect-ratio:1;object-fit:cover;}.cRankHistory__itemBadge--unearned{filter:opacity(15%) grayscale(1);}.ipsTabs--profile{background:var(--i-background_2);border-top-left-radius:inherit;border-top-right-radius:inherit;}.ipsTabs__panels--profile{scroll-margin-top:4.5em;}
|
||||
.ipsCoverPhoto--minimal .ipsCoverPhoto__container{aspect-ratio:10;}.ipsCoverPhoto--profile:not(.ipsCoverPhoto--minimal) ~ .ipsCoverPhotoMeta [data-action="goToProfile"], .ipsCoverPhoto--minimal ~ .ipsCoverPhotoMeta [data-action="browseContent"], .ipsCoverPhoto--minimal #ipsMenu_elprofile_edit{display:none !important;}.ipsProfileContainer{container:ipsProfile / inline-size;}.ipsProfile{display:grid;gap:1em;}@container (min-width:768px){.ipsProfile{grid-template-columns:min(360px, 35%) 1fr;}.ipsProfile__aside{display:grid;}.ipsProfile__sticky-outer{min-height:min(100%, calc(100vh - (var(--i-sp_block) * 2) - var(--i-sticky-offset)));min-height:min(100%, calc(100svh - (var(--i-sp_block) * 2) - var(--i-sticky-offset)));position:sticky;bottom:var(--i-sp_block);align-self:end;}.ipsProfile__sticky-inner{position:sticky;top:calc(var(--i-sticky-offset) + var(--i-sp_block));display:grid;gap:1em;}}@container (max-width:767px){.ipsProfile__aside--carousel .ipsProfile__sticky-inner{display:flex;gap:1em;overflow:auto;margin-left:calc(var(--i-layout-gutter) * -1);margin-right:calc(var(--i-layout-gutter) * -1);padding-inline:var(--i-layout-gutter);overscroll-behavior-x:contain;scroll-behavior:smooth;scroll-snap-type:x mandatory;scroll-padding-inline:var(--i-layout-gutter);-webkit-transform:translateZ(0);}.ipsProfile__aside--carousel .ipsWidget{flex:1 0 min(360px, 80vw);scroll-snap-align:center;display:flex;flex-direction:column;}.ipsProfile__aside--carousel .ipsWidget__content{flex:1 1 auto;display:grid;align-content:center;}}.ipsProfile__aside .ipsSideMenu{padding:1em;}.ipsProfile__aside .ipsData:not(.ipsData--profileVisitors){--i-data--padding:1.4em;--i-data--title:1.05em;}.ipsProfile__aside .ipsData:not(.ipsData--profileVisitors) .ipsData__title{font-weight:600;}.ipsProfile__aside .ipsData:not(.ipsData--profileVisitors) .ipsData__desc{margin:0;display:block;}.ipsData--profileMeta .ipsData__icon{opacity:.3;flex-basis:1em;align-self:center;font-size:16px;}.ipsProfile__aside .ipsTime__long{display:revert;}.ipsProfile__aside .ipsTime__short{display:none;}.ipsProfileWidget{padding:3em 1.5em;border-bottom:1px solid var(--i-background_3);display:block;}.cProfileAchievements > a:hover{background:var(--i-background_2);}.cProfileRepScore{background:var(--i-background_5);color:var(--i-base-contrast_6);border-radius:6px;text-align:center;display:grid;font-weight:600;}.cProfileRepScore--badge{font-size:1.5em;}.cProfileRepScore--positive, .cProfileRepScore--solutions{background:var(--i-background_positive);color:var(--i-color_positive-soft);}.cProfileRepScore--negative{background:var(--i-background_negative);color:var(--i-color_negative-soft);}.cProfileRepScore__points{font-size:2em;}.cProfileSubscription{display:grid;overflow:hidden;border-radius:min(var(--i-design-radius), 7px);background-color:var(--i-background_dark);color:#fff;text-align:center;font-weight:600;}.cProfileSubscription > *{grid-area:1/-1;}.cProfileSubscription img{width:100%;}.cProfileSubscription__gradient{background-image:linear-gradient(to bottom, rgba(0,0,0,0) 50%, rgba(0,0,0,0.8));}.cProfileSubscription__text{padding:2em 1em;align-self:end;}.cProfileSubscription--with-image .cProfileSubscription__text{padding-top:5em;text-shadow:rgba(0,0,0,0.2) 0px 1px 1px;}.cRankHistory{position:relative;z-index:1;display:grid;gap:20px;}.cRankHistory::before{content:'';width:2px;background:var(--i-color_soft);position:absolute;top:10px;bottom:10px;inset-inline-start:19px;z-index:-1;opacity:.4;}.cRankHistory__item{position:relative;display:flex;align-items:center;gap:var(--i-sp_2);}.cRankHistory__icon{background:var(--i-background_1);padding:3px 0;flex:0 0 auto;}.cRankHistory__icon img{width:40px;aspect-ratio:1;object-fit:cover;}.cRankHistory__itemBadge--unearned{filter:opacity(15%) grayscale(1);}.ipsTabs--profile{background:var(--i-background_2);border-top-left-radius:inherit;border-top-right-radius:inherit;}.ipsTabs__panels--profile{scroll-margin-top:4.5em;}
|
||||
@@ -1 +1 @@
|
||||
*{margin:0;padding:0;}*, ::before, ::after{box-sizing:border-box;min-width:0;min-height:0;}html{-webkit-text-size-adjust:100%;accent-color:var(--i-primary);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;}hr{color:inherit;}hr, iframe, fieldset{border-width:0;}iframe:where([src*="youtube."], [src*="youtube-nocookie."], [src*="vimeo."]){width:100%;height:auto;aspect-ratio:16/9;}img, svg{border:0;display:inline-block;max-width:100%;height:auto;vertical-align:top;}:where(img::before){display:block;overflow:hidden;height:100%;}h1, h2, h3, h4, h5, h6{font-size:inherit;font-weight:inherit;}b, strong{font-weight:bolder;}menu, ol, ul, summary{list-style-type:none;}blockquote, q{quotes:none;}table{border-collapse:collapse;border-spacing:0;}input, textarea, select, button{background:none;border:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;text-align:inherit;text-transform:inherit;}textarea, select{-webkit-appearance:none;appearance:none;box-shadow:none;}textarea{display:block;width:100%;}select{cursor:pointer;}[type="search"]{-webkit-appearance:none;appearance:none;}[type="date"], [type="time"]{accent-color:currentColor;}::placeholder{color:inherit;opacity:.5;}button, [type="submit"], summary{-webkit-appearance:none;appearance:none;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;}button{text-align:inherit;}details summary::-webkit-details-marker{display:none;}:focus{outline-color:transparent;}:focus-visible{outline:var(--i-outline-width) var(--i-outline-style) var(--i-outline-color);outline-offset:var(--i-outline-offset);}address{font-style:inherit;}dialog{border-width:0;margin:auto;}dialog:not([open]){display:none !important;}.sr-only, .ipsInvisible{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important;}[hidden]{display:none !important;}:root{--light__i-primary:hsl(220 85% 50%);--light__i-primary-relative-l:33;--light__i-secondary:hsl(220 49% 13%);--light__i-secondary-relative-l:10;--light__i-base:oklch(calc(var(--light__i-base-l) * 1%) calc(var(--light__i-base-c) * 1%) var(--light__i-base-h));--light__i-base-l:100;--light__i-base-c:30;--light__i-base-h:260;--dark__i-primary:hsl(215 85% 50%);--dark__i-primary-relative-l:37;--dark__i-secondary:hsl(215 18% 26%);--dark__i-secondary-relative-l:24;--dark__i-base:oklch(calc(var(--dark__i-base-l) * 1%) calc(var(--dark__i-base-c) * 1%) var(--dark__i-base-h));--dark__i-base-l:30;--dark__i-base-c:20;--dark__i-base-h:260;--set__i-default-scheme:system;--set__i-change-scheme:1;--set__i-logo--fo-fa:var(--i-font-family);--set__i-logo--fo-we:500;--set__i-desktop-logo--fo-si:18;--set__i-sidebar-ui-logo--fo-si:20;--set__i-mobile-logo--fo-si:18;--set__logo-light:;--set__logo-dark:;--set__i-logo--he:70;--set__i-sidebar-ui-logo--he:70;--set__mobile-logo-light:;--set__mobile-logo-dark:;--set__i-mobile-logo--he:70;--set__i-font-family:var(--i-font-family_system-ui);--set__i-font-size:14;--set__i-user-content-font-size:110;--set__i-position-logo:4;--set__i-position-navigation:5;--set__i-position-user:6;--set__i-position-breadcrumb:7;--set__i-position-search:9;--set__i-header-top--he:50;--set__i-header-primary--he:100;--set__i-header-secondary--he:50;--set__i-nav-bar-icons:0;--set__i-mobile-header--he:60;--set__i-sidebar-ui-header--he:65;--set__i-sidebar-width:350;--set__i-flip-sidebar:0;--set__i-sticky-sidebar:1;--set__i-layout-width:1500;--set__i-avatar-radius:1;--set__i-design-border:1;--set__i-design-radius:8;--set__i-design-shadow:2;--set__i-link-panels:1;--set__i-mobile-icons-location:footer;--set__i-mobile-footer-labels:1;--light__i-color_root:var(--i-base-contrast_3);--dark__i-color_root:var(--i-base-contrast_4);--light__i-color_soft:var(--i-base-contrast_1);--dark__i-color_soft:var(--i-base-contrast_2);--light__i-color_hard:var(--i-base-contrast_6);--dark__i-color_hard:var(--i-base-contrast_6);--light__i-link--co:var(--i-base-contrast_5);--dark__i-link--co:var(--i-base-contrast_5);--light__i-link-hover--co:var(--i-color_primary);--dark__i-link-hover--co:var(--i-color_primary);--light__i-headerTop--ba-co:var(--i-base-contrast_5);--dark__i-headerTop--ba-co:var(--i-base_3);--light__i-headerTop--co:var(--i-base_1);--dark__i-headerTop--co:var(--i-base-contrast_6);--light__i-headerPrimary--ba-co:var(--i-base-contrast_4);--dark__i-headerPrimary--ba-co:var(--i-base_3);--light__i-headerPrimary--co:var(--i-base_1);--dark__i-headerPrimary--co:var(--i-base-contrast_6);--light__i-headerSecondary--ba-co:var(--i-base-contrast_5);--dark__i-headerSecondary--ba-co:var(--i-base_4);--light__i-headerSecondary--co:var(--i-base_1);--dark__i-headerSecondary--co:var(--i-base-contrast_5);--light__i-headerMobile--ba-co:var(--i-base_1);--dark__i-headerMobile--ba-Line truncated
|
||||
*{margin:0;padding:0;}*, ::before, ::after{box-sizing:border-box;min-width:0;min-height:0;}html{-webkit-text-size-adjust:100%;accent-color:var(--i-primary);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;}hr{color:inherit;}hr, iframe, fieldset{border-width:0;}iframe:where([src*="youtube."], [src*="youtube-nocookie."], [src*="vimeo."]){width:100%;height:auto;aspect-ratio:16/9;}img, svg{border:0;display:inline-block;max-width:100%;height:auto;vertical-align:top;}:where(img::before){display:block;overflow:hidden;height:100%;}h1, h2, h3, h4, h5, h6{font-size:inherit;font-weight:inherit;}b, strong{font-weight:bolder;}menu, ol, ul, summary{list-style-type:none;}blockquote, q{quotes:none;}table{border-collapse:collapse;border-spacing:0;}input, textarea, select, button{background:none;border:0;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;text-align:inherit;text-transform:inherit;}textarea, select{-webkit-appearance:none;appearance:none;box-shadow:none;}textarea{display:block;width:100%;}select{cursor:pointer;}[type="search"]{-webkit-appearance:none;appearance:none;}[type="date"], [type="time"]{accent-color:currentColor;}::placeholder{color:inherit;opacity:.5;}button, [type="submit"], summary{-webkit-appearance:none;appearance:none;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;}button{text-align:inherit;}details summary::-webkit-details-marker{display:none;}:focus{outline-color:transparent;}:focus-visible{outline:var(--i-outline-width) var(--i-outline-style) var(--i-outline-color);outline-offset:var(--i-outline-offset);}address{font-style:inherit;}dialog{border-width:0;margin:auto;}dialog:not([open]){display:none !important;}.sr-only, .ipsInvisible{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:1px !important;}[hidden]{display:none !important;}:root{--light__i-primary:hsl(220 85% 50%);--light__i-primary-relative-l:33;--light__i-secondary:hsl(220 49% 13%);--light__i-secondary-relative-l:10;--light__i-base:oklch(calc(var(--light__i-base-l) * 1%) calc(var(--light__i-base-c) * 1%) var(--light__i-base-h));--light__i-base-l:100;--light__i-base-c:30;--light__i-base-h:260;--dark__i-primary:hsl(215 85% 50%);--dark__i-primary-relative-l:37;--dark__i-secondary:hsl(215 18% 26%);--dark__i-secondary-relative-l:24;--dark__i-base:oklch(calc(var(--dark__i-base-l) * 1%) calc(var(--dark__i-base-c) * 1%) var(--dark__i-base-h));--dark__i-base-l:30;--dark__i-base-c:20;--dark__i-base-h:260;--set__i-default-scheme:system;--set__i-change-scheme:1;--set__i-logo--fo-fa:var(--i-font-family);--set__i-logo--fo-we:500;--set__i-desktop-logo--fo-si:18;--set__i-sidebar-ui-logo--fo-si:20;--set__i-mobile-logo--fo-si:18;--set__logo-light:;--set__logo-dark:;--set__i-logo--he:70;--set__i-sidebar-ui-logo--he:70;--set__mobile-logo-light:;--set__mobile-logo-dark:;--set__i-mobile-logo--he:70;--set__i-font-family:var(--i-font-family_system-ui);--set__i-font-size:14;--set__i-user-content-font-size:110;--set__i-position-logo:4;--set__i-position-navigation:5;--set__i-position-user:6;--set__i-position-breadcrumb:7;--set__i-position-search:9;--set__i-header-top--he:50;--set__i-header-primary--he:100;--set__i-header-secondary--he:50;--set__i-nav-bar-icons:0;--set__i-mobile-header--he:60;--set__i-sidebar-ui-header--he:65;--set__i-sidebar-width:350;--set__i-flip-sidebar:0;--set__i-sticky-sidebar:1;--set__i-layout-width:1500;--set__i-avatar-radius:1;--set__i-design-border:1;--set__i-design-radius:8;--set__i-design-shadow:2;--set__i-link-panels:1;--set__i-mobile-icons-location:footer;--set__i-mobile-footer-labels:1;--light__i-color_root:var(--i-base-contrast_3);--dark__i-color_root:var(--i-base-contrast_4);--light__i-color_soft:var(--i-base-contrast_1);--dark__i-color_soft:var(--i-base-contrast_2);--light__i-color_hard:var(--i-base-contrast_6);--dark__i-color_hard:var(--i-base-contrast_6);--light__i-link--co:var(--i-base-contrast_5);--dark__i-link--co:var(--i-base-contrast_5);--light__i-link-hover--co:var(--i-color_primary);--dark__i-link-hover--co:var(--i-color_primary);--light__i-headerTop--ba-co:var(--i-base-contrast_5);--dark__i-headerTop--ba-co:var(--i-base_3);--light__i-headerTop--co:var(--i-base_1);--dark__i-headerTop--co:var(--i-base-contrast_6);--light__i-headerPrimary--ba-co:var(--i-base-contrast_4);--dark__i-headerPrimary--ba-co:var(--i-base_3);--light__i-headerPrimary--co:var(--i-base_1);--dark__i-headerPrimary--co:var(--i-base-contrast_6);--light__i-headerSecondary--ba-co:var(--i-base-contrast_5);--dark__i-headerSecondary--ba-co:var(--i-base_4);--light__i-headerSecondary--co:var(--i-base_1);--dark__i-headerSecondary--co:var(--i-base-contrast_5);--light__i-headerMobile--ba-co:var(--i-base_1);--dark__i-headerMobile--ba-Line truncated
|
||||
@@ -152,7 +152,9 @@ ips.templates.set('tableOfContents.linkOptions',`\
|
||||
{{/canEdit}}
|
||||
</span>
|
||||
</span>
|
||||
`);;
|
||||
`);ips.templates.set('ips.ui.controls.cannot_load',`
|
||||
<div class="{{{classList}}} ipsControls__fail-message">{{message}}</div>
|
||||
`,{classList:'ipsMessage ipsMessage--info',get message(){return ips.getString('ips.ui.controls.cannot_load')}});
|
||||
;(function($,_,undefined){"use strict";ips.createModule('ips.loader',function(){var _loadedScripts=[],_loadingScripts=[];var init=function(){var scripts=$('script[src][data-ips]');scripts.each(function(){var scriptInfo=ips.utils.url.getURIObject($(this).attr('src'));if(scriptInfo.queryKey.src){var paths=_getPathScripts(scriptInfo.queryKey.src);_.each(paths,function(value){_loadedScripts.push(value);});}else if(scriptInfo.path.indexOf('interface/')!==-1){var interfaces=_getInterfaceScript(scriptInfo.path);if(interfaces){_loadedScripts.push(interfaces);}}else{var other=_getOtherScript(scriptInfo.source);if(other){_loadedScripts.push(other);}}});},_getOtherScript=function(path){path=path.replace(ips.getSetting('baseURL'),'');if(path.startsWith('/')){path=path.substring(1);}
|
||||
if(path.startsWith('applications/')){path=path.replace(/^applications\//i,'')}
|
||||
return path;},_getInterfaceScript=function(path){var pieces=_.compact(path.split('/').reverse());var path=[];for(var i=0;i<pieces.length;i++){if(pieces[i]=='interface'){path.push('interface');path.push(pieces[i+1]);break;}
|
||||
@@ -199,7 +201,7 @@ _beingLoaded.push(controller);filePaths.push(_buildFilePath(controller));}
|
||||
if(!_.size(needsLoading)){deferred.resolve();return deferred.promise();}
|
||||
_.extend(_queue,needsLoading);ips.loader.get(filePaths).then(function(){deferred.resolve();});return deferred.promise();}
|
||||
function _buildFilePath(controllerName){const bits=controllerName.split('.');if(ips.getSetting('useCompiledFiles')===false){return bits[0]+'/'+bits[1]+'/controllers/'+bits[2]+
|
||||
'/ips.'+bits[2]+'.'+bits[3]+'.js';}else{try{if(_.indexOf(ips.getSetting('ipsApps'),bits[0])!==-1){const url=ips.getSetting('baseURL')+'static/js/'+bits[0]+'/'+bits[1]+'_'+bits[1]+'_'+bits[2]+'.js';}else{const url=ipsJsFileMap[bits[0]][bits[1]+'_'+bits[2]];}
|
||||
'/ips.'+bits[2]+'.'+bits[3]+'.js';}else{try{let url;if(_.indexOf(ips.getSetting('ipsApps'),bits[0])!==-1){url=ips.getSetting('baseURL')+'static/js/'+bits[0]+'/'+bits[1]+'_'+bits[1]+'_'+bits[2]+'.js';}else{url=ipsJsFileMap[bits[0]][bits[1]+'_'+bits[2]];}
|
||||
if(url.indexOf('?')!=-1){return url+'&v='+ips.getSetting('jsAntiCache');}else{return url+'?v='+ips.getSetting('jsAntiCache');}}catch(err){Debug.log(err);return'';}}}
|
||||
function _findControllers(node){if(!_.isElement(node)&&!(node instanceof jQuery)){node=document;}
|
||||
var controllersToLoad={};$(node).find('[data-controller]').addBack().each(function(idx,elem){if(!$(elem).data('_controllers')){$(elem).data('_controllers',[]);}
|
||||
@@ -559,24 +561,34 @@ if(options.minAjaxLength>text.length){return;}
|
||||
ajaxObj=ips.getAjax()(source,{dataType:'json'}).done(function(response){loadedCache=true;cache=response;_remoteFetch(text);}).fail(function(jqXHR,status,errorThrown){if(status!='abort'){Debug.log('aborting');}
|
||||
deferred.reject();});}
|
||||
cache.each(function(idx,item){if(item.value.toLowerCase().startsWith(text)){output.push(item);}});return deferred.promise();},stop=function(){if(ajaxObj){ajaxObj.abort();}};return{type:'remote',getResults:getResults,totalItems:totalItems,stop:stop};};var noData=function(){return{type:'none',getResults:$.noop,totalItems:-1,stop:$.noop};};}(jQuery,_));;
|
||||
;(function(){"use strict";ips.createModule('ips.ui.controls',function(){document.addEventListener('click',handleEvent);function respond(elem){}
|
||||
;(function($,_){"use strict";const CACHED_REMOTE_RESPONSES=new Map();ips.createModule('ips.ui.controls',function(){document.addEventListener('click',handleEvent);function respond(elem){}
|
||||
function handleEvent(e){if(e.target.closest('.ipsEditor__toolbar-item, .ipsEditor__toolbar-panel')){return;}
|
||||
let toggle=e.target.closest('[data-ipscontrols][aria-controls]');const lightDismiss=document.querySelectorAll("[data-ips-hidden-light-dismiss][open], [data-ips-hidden-light-dismiss]:not(dialog):not([hidden])");if(!toggle&&!lightDismiss.length)return;if(toggle){const name=toggle.getAttribute("aria-controls"),contentElementIds=name.split(" "),isExpanded=toggle.getAttribute("aria-expanded");if(!isExpanded){Debug.log("The clicked element has [aria-controls] but no [aria-expanded] value.")
|
||||
return}
|
||||
if(contentElementIds.length>1){document.querySelectorAll(`[aria-controls="${name}"]`).forEach(t=>t.setAttribute("aria-expanded",(isExpanded==="true")?"false":"true"));}
|
||||
for(const id of contentElementIds){const content=document.querySelector(`#${id}`);if(!content){Debug.log(`An element with #${id} was not found and therefore can't be toggled.`);continue;}
|
||||
_showEl(content,toggle,!(isExpanded==="true"));const isInGroup=content.getAttribute("data-ips-hidden-group");if(isInGroup){const groupElements=document.querySelectorAll(`[data-ips-hidden-group="${isInGroup}"]:not([hidden])`);for(const groupElement of groupElements){if(groupElement!=content){_showEl(groupElement,toggle,false);}}}}}
|
||||
for(const lightDismissEl of lightDismiss){if(lightDismissEl.contains(e.target)&&e.target.tagName.toLowerCase()!=="dialog")continue;_showEl(lightDismissEl,e.target,false);}}
|
||||
function _showEl(content,trigger,show=true){if(show&&(content.hasAttribute("data-ips-hidden-top-layer")||content.tagName==="DIALOG")){document.getElementById('ipsLayout')?.appendChild(content);}
|
||||
showOrHide(content,toggle,!(isExpanded==="true"));const isInGroup=content.getAttribute("data-ips-hidden-group");if(isInGroup){const groupElements=document.querySelectorAll(`[data-ips-hidden-group="${isInGroup}"]:not([hidden])`);for(const groupElement of groupElements){if(groupElement!=content){showOrHide(groupElement,toggle,false);}}}}}
|
||||
for(const lightDismissEl of lightDismiss){if(lightDismissEl.contains(e.target)&&e.target.tagName.toLowerCase()!=="dialog")continue;showOrHide(lightDismissEl,e.target,false);}}
|
||||
async function showOrHide(content,trigger,show=true){if(show&&(content.hasAttribute("data-ips-hidden-top-layer")||content.tagName==="DIALOG")){document.getElementById('ipsLayout')?.appendChild(content);}
|
||||
const contentTag=(content.tagName);document.querySelectorAll(`[data-ipscontrols][aria-controls="${content.id}"]`).forEach(t=>t.setAttribute("aria-expanded",show));if(show){if(contentTag==="DIALOG"){content.showModal();content.addEventListener("close",_closeEvent);}else{content.hidden=false;}
|
||||
content.querySelector("[data-autofocus]")?.focus();}
|
||||
const src=trigger.dataset.ipscontrolsSrc;if(typeof src==='string'&&!content.dataset.ipscontrolsLoaded){if(CACHED_REMOTE_RESPONSES.has(src)&&typeof CACHED_REMOTE_RESPONSES.get(src).html==='string'&&!(typeof CACHED_REMOTE_RESPONSES.get(src).expiresAt==='number'&&CACHED_REMOTE_RESPONSES.get(src).expiresAt<Date.now()/1000)){Debug.log(`ips.ui.controls: Using cached response for ${src}`);content.innerHTML=CACHED_REMOTE_RESPONSES.get(src).html;for(const cls of[...content.classList]){if(cls.startsWith('ipsLoading')){content.classList.remove('ipsLoading');}}
|
||||
$(document).trigger('contentChange',[$(content)]);content.ipsHide();content.dataset.ipscontrolsLoaded='1';content.querySelector("[data-autofocus]")?.focus();await new Promise(resolve=>setTimeout(resolve,50));content.ipsShow();}else{content.classList.add('ipsLoading');const start=Date.now();loadContent(src).then(html=>new Promise(resolve=>{if(Date.now()-start<700){setTimeout(()=>resolve(html),700-(Date.now()-start))}else{resolve(html)}})).then(html=>{content.innerHTML=html;for(const cls of[...content.classList]){if(cls.startsWith('ipsLoading')){content.classList.remove('ipsLoading');}}
|
||||
$(document).trigger('contentChange',[$(content)]);content.dataset.ipscontrolsLoaded='1';content.querySelector("[data-autofocus]")?.focus();})}}else{content.querySelector("[data-autofocus]")?.focus();}}
|
||||
requestAnimationFrame(()=>{content.style.setProperty('--i-animating-height',content.scrollHeight+'px');})
|
||||
content.setAttribute("data-ips-animating",(show)?'opening':'closing');Promise.all(content.getAnimations().map((a)=>a.finished)).then(()=>{if(!show){(contentTag==="DIALOG")?content.close():content.hidden=true;}
|
||||
content.setAttribute("data-ips-animating",(show)?'opening':'closing');await Promise.allSettled(content.getAnimations().map((a)=>a.finished));if(!show){(contentTag==="DIALOG")?content.close():content.hidden=true;}
|
||||
content.removeAttribute("data-ips-animating");const eventNames=['ips:toggleComplete']
|
||||
if(content.dataset.ipsHiddenEvent){eventNames.push(content.dataset.ipsHiddenEvent)}
|
||||
eventNames.forEach(eventName=>content.dispatchEvent(new CustomEvent(eventName,{bubbles:true,detail:{hidden:content.hidden,trigger:trigger}})));});}
|
||||
function _closeEvent(e){if(!e.target.getAttribute("open")){_showEl(e.target,e.target,false);}}
|
||||
ips.ui.registerWidget('controls',ips.ui.controls);return{respond}});}());;
|
||||
eventNames.forEach(eventName=>content.dispatchEvent(new CustomEvent(eventName,{bubbles:true,detail:{hidden:content.hidden,trigger:trigger}})));}
|
||||
function _closeEvent(e){if(!e.target.getAttribute("open")){showOrHide(e.target,e.target,false);}}
|
||||
async function loadContent(src,forceRequest=false){src=(new URL(src)).toString();const cachedContents=CACHED_REMOTE_RESPONSES.get(src);if(!forceRequest&&cachedContents&&typeof cachedContents.html==='string'){if(!(typeof cachedContents.expiresAt==='number'&&cachedContents.expiresAt<Date.now()/1000)){Debug.log(`ips.ui.controls: Using cached response for ${src}`);return cachedContents.html;}
|
||||
CACHED_REMOTE_RESPONSES.delete(src);}
|
||||
try{const response=await ips.fetch(src);if(typeof response!=='object'||typeof response.html!=='string'){throw new TypeError(`Expected an object with an html:string property`);}
|
||||
if(!response.noCache){response.expiresAt=response.expiresAt||Math.round(Date.now()/1000+3600);if(typeof response.expiresAt==='string'){response.expiresAt=parseInt(response.expiresAt);}
|
||||
if(typeof response.expiresAt!=='number'||Number.isNaN(response.expiresAt)){response.expiresAt=Math.round(Date.now()/1000+3600);}
|
||||
if(!Number.isInteger(response.expiresAt)){response.expiresAt=Math.round(response.expiresAt);}
|
||||
if(response.expiresAt*1000>Date.now()){CACHED_REMOTE_RESPONSES.set(src,response);}}
|
||||
return response.html;}catch(e){return ips.templates.render("ips.ui.controls.cannot_load",{message:typeof e.responseJSON?.errorMessage==='string'?e.responseJSON.errorMessage:undefined});}}
|
||||
ips.ui.registerWidget('controls',ips.ui.controls,['src']);return{respond}});}(jQuery,_));;
|
||||
;(function($,_,undefined){"use strict";ips.createModule('ips.ui.copy',function(){var respond=function(elem,options,e){ips.loader.get(['core/interface/clipboard/clipboard.min.js']).then(function(){if(ClipboardJS.isSupported()){elem.find('[data-role="copyButton"]').show();if(elem.find('[data-role="copyButton"]').attr('href')){elem.find('[data-role="copyButton"]').on('click',function(e){e.preventDefault();e.stopPropagation();});}
|
||||
var clipboard=new ClipboardJS(elem.find('[data-role="copyButton"]').get(0));clipboard.on('success',function(e){if(elem.attr('data-ipsCopy-flashmessage')!==undefined){ips.ui.flashMsg.show(ips.getString('copied'))}else{elem.find('[data-role="copyButton"]').text(ips.getString('copied'));}});}});};ips.ui.registerWidget('copy',ips.ui.copy,[]);return{respond:respond,};});}(jQuery,_));;
|
||||
;(function(){"use strict";ips.createModule('ips.ui.details',function(){var respond=function(elem){document.addEventListener('click',toggleDetails);},toggleDetails=function(e){const summary=e.target.closest('[data-ipsdetails] summary');if(!summary)return;const details=summary.closest('details'),content=details.querySelector('i-details-content'),isOpen=details.open;if(!details||!content)return;e.preventDefault();if(!isOpen)details.open=true;content.style.setProperty('--i-animating-height',content.scrollHeight+'px');content.setAttribute('data-ips-animating',(isOpen)?'closing':'opening');Promise.all(content.getAnimations().map((a)=>a.finished)).then(()=>{if(isOpen)details.open=false;content.removeAttribute('data-ips-animating');});};ips.ui.registerWidget('details',ips.ui.details);return{respond:respond}});}());;
|
||||
|
||||
@@ -52,8 +52,8 @@ var value;var fallback;var output='';var replacement=params[b]+'';c.replace(/\[(
|
||||
else if(x.charAt(0)=='%'&&x.substring(1)==replacement.substring(0,x.substring(1).length)){value=y.replace('#',replacement);}
|
||||
else if(x.charAt(0)=='*'&&x.substring(1)==replacement.substr(-x.substring(1).length)){value=y.replace('#',replacement);}
|
||||
else if(x==replacement){value=y.replace('#',replacement);}});output=a.replace(/^\{/,'').replace(/\}$/,'').replace('!#','');output=output.replace(b+'#',replacement).replace('#',replacement);output=output.replace(/\[.+\]/,value==null?fallback:value).trim();return output;});return word;},testConsole=function(){if(window.atob&&window.console){console.log(window.atob("ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgd293ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICBzdWNoIGZvcnVtICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgaG93IGFqYXggICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICB2ZXJ5IGNvbW11bml0eSAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWNoIG1lbWJlcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCg=="));}
|
||||
return'';};var templates=function(){var _templateStore={};var set=function(key,template){_templateStore[key]=template;},get=function(key){if(_templateStore[key]){if(_.isFunction(_templateStore[key])){return _templateStore[key]();}else{return _templateStore[key];}}
|
||||
return'';},render=function(key,obj){obj=_.extend(obj||{},{baseURL:ips.getSetting('baseURL'),lang:_lang,blankImg:ips.getSetting('blankImg')||''});return Mustache.render(get(key),obj);},compile=function(key){if(_templateStore[key]){return Mustache.parse(get(key));}
|
||||
return'';};var templates=function(){var _templateStore={};const _defaults={};var set=function(key,template,defaults={}){_templateStore[key]=template;_defaults[key]=defaults;},get=function(key){if(_templateStore[key]){if(_.isFunction(_templateStore[key])){return _templateStore[key]();}else{return _templateStore[key];}}
|
||||
return'';},render=function(key,obj){obj=(obj&&typeof obj==='object')?obj:{};const defaults=_defaults[key]||{};const options={...defaults,...obj,baseURL:ips.getSetting('baseURL'),lang:_lang,blankImg:ips.getSetting('blankImg')||''};return Mustache.render(get(key),options);},compile=function(key){if(_templateStore[key]){const compiled=Mustache.parse(get(key));return(options,...otherArgs)=>{options=(options&&typeof options==='object')?options:{};const defaults=_defaults[key]||{};options={...defaults,...options};return compiled(options,...otherArgs);};}
|
||||
return $.noop;},_lang=function(){return function(text,render){return ips.getString(render(text));}};return{set,get,render,compile};}();function cleanContentsOf(elem){elem=$(elem)
|
||||
if(!elem.length){Debug.log(`Skipped the cleaning of IPS modules and controllers from an empty content selection`)
|
||||
return}
|
||||
|
||||
@@ -1877,14 +1877,9 @@ $return .= <<<IPSCONTENT
|
||||
<p class='i-font-size_-1 i-color_soft'>
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array(trim( $blog->latestEntry()->author()->link() )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$htmlsprintf = array(trim( $blog->latestEntry()->author()->link() ), \IPS\DateTime::ts( $blog->latestEntry()->date )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $blog->latestEntry()->date instanceof \IPS\DateTime ) ? $blog->latestEntry()->date : \IPS\DateTime::ts( $blog->latestEntry()->date );$return .= $val->html();
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
{datetime=""}</p>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
|
||||
@@ -1592,7 +1592,8 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
<div>
|
||||
<h2 class='ipsTitle ipsTitle--h5'>
|
||||
<span>
|
||||
<div class="ipsBadges">
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
foreach ( $entry->badges() as $badge ):
|
||||
@@ -1602,27 +1603,27 @@ IPSCONTENT;
|
||||
|
||||
endforeach;
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $entry->prefix() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<span>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->prefix( $entry->prefix( TRUE ), $entry->prefix() );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<span class=''>
|
||||
<a href="
|
||||
</div>
|
||||
<a href="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $entry->url( "getPrefComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
@@ -1657,31 +1658,30 @@ IPSCONTENT;
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $entry->unread() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class='ipsIndicator' data-ipsTooltip title="
|
||||
<div class='ipsIndicator' data-ipsTooltip title="
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'unread_blog', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
"></div>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $entry->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</a>
|
||||
</span>
|
||||
</a>
|
||||
</h2>
|
||||
<p class='i-color_soft i-link-color_inherit'>
|
||||
|
||||
@@ -1701,7 +1701,7 @@ $return .= <<<IPSCONTENT
|
||||
·
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($entry->author()->link()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$htmlsprintf = array($entry->author()->link()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -669,24 +669,6 @@ $sprintf = array($blog->latestEntry()->name); $return .= \IPS\Member::loggedIn()
|
||||
$return .= <<<IPSCONTENT
|
||||
'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $blog->latestEntry()->unread() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<span class='ipsIndicator' data-ipsTooltip title="
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'unread_blog', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
"></span>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $blog->latestEntry()->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
@@ -772,44 +754,7 @@ $return .= \IPS\Theme::i()->getTemplate( "global", "core" )->userPhoto( $entry->
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<div class='i-flex_11 i-flex i-gap_2 i-row-gap_0 i-flex-wrap_wrap'>
|
||||
<h4 class='
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $entry->unread() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
font-weight_700
|
||||
IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
i-font-weight_500
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
i-flex_11'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $entry->unread() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $entry->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
' title='
|
||||
IPSCONTENT;
|
||||
|
||||
$sprintf = array($entry->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'view_this_entry', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
' class='ipsIndicator'></a>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<h4 class='i-font-weight_500 i-flex_11'>
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $entry->url( "getPrefComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
@@ -836,12 +781,7 @@ $return .= <<<IPSCONTENT
|
||||
<p class='i-font-size_-1 i-color_soft'>
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array(trim( $blog->latestEntry()->author()->link() )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $blog->latestEntry()->date instanceof \IPS\DateTime ) ? $blog->latestEntry()->date : \IPS\DateTime::ts( $blog->latestEntry()->date );$return .= $val->html();
|
||||
$htmlsprintf = array(trim( $blog->latestEntry()->author()->link() ), \IPS\DateTime::ts( $blog->latestEntry()->date )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
|
||||
|
||||
@@ -1185,12 +1185,12 @@ IPSCONTENT;
|
||||
if ( $row->prefix() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<span>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->prefix( $row->prefix( TRUE ), $row->prefix() );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1247,12 +1247,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef() )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $row->__get( $row::$databaseColumnMap['date'] ) instanceof \IPS\DateTime ) ? $row->__get( $row::$databaseColumnMap['date'] ) : \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) );$return .= $val->html();
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef() ), \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
@@ -1278,7 +1273,6 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
|
||||
<!-- v5 todo: The anon badge isn't great on mobile but I can't be bothered fixing it atm -->
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1530,12 +1524,12 @@ IPSCONTENT;
|
||||
if ( $row->prefix() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<span>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->prefix( $row->prefix( TRUE ), $row->prefix() );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
|
||||
@@ -415,7 +415,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "widgets", "cms" )->navigationLine( $folders, $title, $currentContainer );
|
||||
$return .= \IPS\Theme::i()->getTemplate( "widgets", "cms" )->navigationLine( $folders, null, $currentContainer );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
@@ -5132,12 +5132,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$sprintf = array(\IPS\Member::load( $warning->moderator )->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
·
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $warning->date instanceof \IPS\DateTime ) ? $warning->date : \IPS\DateTime::ts( $warning->date );$return .= $val->html();
|
||||
$htmlsprintf = array(\IPS\Member::load( $warning->moderator )->name, \IPS\DateTime::ts( $warning->date )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</p>
|
||||
|
||||
@@ -349,12 +349,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$sprintf = array($item->author()->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $item->mapped('date') instanceof \IPS\DateTime ) ? $item->mapped('date') : \IPS\DateTime::ts( $item->mapped('date') );$return .= $val->html();
|
||||
$htmlsprintf = array($item->author()->name, \IPS\DateTime::ts( $item->mapped('date') )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</a>
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -254,12 +254,7 @@ $return .= <<<IPSCONTENT
|
||||
<li>
|
||||
IPSCONTENT;
|
||||
|
||||
$sprintf = array($row->author()->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
,
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $row->start instanceof \IPS\DateTime ) ? $row->start : \IPS\DateTime::ts( $row->start );$return .= (string) $val->localeDate();
|
||||
$htmlsprintf = array($row->author()->name, \IPS\DateTime::ts( $row->start )->localeDate()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
@@ -674,12 +669,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$sprintf = array($row->author()->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $row->__get( $row::$databaseColumnMap['date'] ) instanceof \IPS\DateTime ) ? $row->__get( $row::$databaseColumnMap['date'] ) : \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) );$return .= (string) $val->localeDate();
|
||||
$htmlsprintf = array($row->author()->name, \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
@@ -5864,13 +5854,13 @@ IPSCONTENT;
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
<section class='i-margin-top_3'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( count(\IPS\core\Reports\Types::roots() )>0 ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<section class='i-margin-top_3'>
|
||||
<div class="ipsButtonBar ipsButtonBar--top">
|
||||
<h2 class="ipsTitle i-font-size_1 i-flex_91 i-align-self_center i-padding-start_2">
|
||||
IPSCONTENT;
|
||||
@@ -6703,12 +6693,7 @@ $return .= <<<IPSCONTENT
|
||||
<p class='ipsData__meta'>
|
||||
IPSCONTENT;
|
||||
|
||||
$sprintf = array(\IPS\Member::load( $warning->moderator )->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $warning->date instanceof \IPS\DateTime ) ? $warning->date : \IPS\DateTime::ts( $warning->date );$return .= $val->html();
|
||||
$htmlsprintf = array(\IPS\Member::load( $warning->moderator )->name, \IPS\DateTime::ts( $warning->date )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</p>
|
||||
</div>
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -1565,7 +1565,7 @@ IPSCONTENT;
|
||||
|
||||
if ( $loadedMember->isOnline() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
<i class="fa-solid fa-circle ipsOnlineStatus_online" data-ipsTooltip title='
|
||||
<i class="ipsOnlineStatus ipsOnlineStatus--online" data-ipsTooltip title='
|
||||
IPSCONTENT;
|
||||
|
||||
$sprintf = array($row->name); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'online_now', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'sprintf' => $sprintf ) );
|
||||
|
||||
@@ -849,12 +849,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef() )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $row->__get( $row::$databaseColumnMap['date'] ) instanceof \IPS\DateTime ) ? $row->__get( $row::$databaseColumnMap['date'] ) : \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) );$return .= $val->html();
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef() ), \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
@@ -1702,12 +1697,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef(), NULL, \IPS\IPS::classUsesTrait( $row, 'IPS\Content\Anonymous' ) ? $row->isAnonymous() : FALSE )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $row->__get( $row::$databaseColumnMap['date'] ) instanceof \IPS\DateTime ) ? $row->__get( $row::$databaseColumnMap['date'] ) : \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) );$return .= $val->html();
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef(), NULL, \IPS\IPS::classUsesTrait( $row, 'IPS\Content\Anonymous' ) ? $row->isAnonymous() : FALSE ), \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
@@ -2561,7 +2551,7 @@ if ( \count( $rows ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<i-data>
|
||||
<ol class="ipsData ipsData--core-table
|
||||
<ol class="ipsData ipsData--table ipsData--core-table
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $table->classes ):
|
||||
@@ -2585,7 +2575,7 @@ IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
ipsData--table ipsData--entries
|
||||
ipsData--entries
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
|
||||
@@ -367,12 +367,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef(), NULL, \IPS\IPS::classUsesTrait( $row, 'IPS\Content\Anonymous' ) ? $row->isAnonymous() : FALSE )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
·
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $row->__get( $row::$databaseColumnMap['date'] ) instanceof \IPS\DateTime ) ? $row->__get( $row::$databaseColumnMap['date'] ) : \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) );$return .= $val->html();
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef(), NULL, \IPS\IPS::classUsesTrait( $row, 'IPS\Content\Anonymous' ) ? $row->isAnonymous() : FALSE ), \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
@@ -3383,12 +3383,7 @@ $return .= <<<IPSCONTENT
|
||||
<div class='ipsData__meta'>
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($item->author()->link( NULL, NULL, \IPS\IPS::classUsesTrait( $item, 'IPS\Content\Anonymous' ) ? $item->isAnonymous() : FALSE )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $item->mapped('date') instanceof \IPS\DateTime ) ? $item->mapped('date') : \IPS\DateTime::ts( $item->mapped('date') );$return .= $val->html();
|
||||
$htmlsprintf = array($item->author()->link( NULL, NULL, \IPS\IPS::classUsesTrait( $item, 'IPS\Content\Anonymous' ) ? $item->isAnonymous() : FALSE ), \IPS\DateTime::ts( $item->mapped('date') )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3996,7 +3996,7 @@ IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'editor_insert_existing_file', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a>
|
||||
</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
@@ -36,26 +36,26 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
</a>
|
||||
<div class='ipsData__main'>
|
||||
<h4 class='ipsData__title ipsType_sectionHead'>
|
||||
<h4 class='ipsData__title'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $file->prefix() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<span>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core", 'front' )->prefix( $file->prefix( TRUE ), $file->prefix() );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<span><a href='
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $file->url(), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
@@ -68,7 +68,7 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $file->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a></span>
|
||||
</a>
|
||||
</h4>
|
||||
<p class='i-color_soft i-link-color_inherit'>
|
||||
|
||||
|
||||
@@ -1342,7 +1342,7 @@ $return .= <<<IPSCONTENT
|
||||
<img src='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\File::get( "core_Attachment", $file->primary_screenshot_thumb )->url;
|
||||
$return .= \IPS\File::get( "downloads_Screenshots", $file->primary_screenshot_thumb )->url;
|
||||
$return .= <<<IPSCONTENT
|
||||
' alt='' loading='lazy'>
|
||||
|
||||
@@ -1828,10 +1828,10 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->thumbImage( $file->primary_screenshot_thumb, $file->name, 'medium', '', 'view_this', $file->url( 'getPrefComment' ), 'core_Attachment', '', true );
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->thumbImage( $file->primary_screenshot_thumb, $file->name, 'medium', '', 'view_this', $file->url( 'getPrefComment' ), 'downloads_Screenshots', '', true );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<h4 class='ipsData__title ipsType_sectionHead'>
|
||||
<h4 class='ipsData__title'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1889,12 +1889,12 @@ IPSCONTENT;
|
||||
if ( $file->prefix() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<span>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->prefix( $file->prefix( TRUE ), $file->prefix() );
|
||||
$return .= <<<IPSCONTENT
|
||||
</span>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -1902,7 +1902,7 @@ endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
<span class=''><a href='
|
||||
<a href='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $file->url( "getPrefComment" ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
@@ -1940,7 +1940,7 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $file->name, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
</a></span>
|
||||
</a>
|
||||
</h4>
|
||||
<p class='i-color_soft i-link-color_inherit'>
|
||||
|
||||
@@ -2022,12 +2022,12 @@ IPSCONTENT;
|
||||
if ( $file->container()->bitoptions['reviews'] ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core", 'front' )->rating( 'large', $file->averageReviewRating(), \IPS\Settings::i()->reviews_rating_out_of, $file->memberReviewRating() );
|
||||
$return .= <<<IPSCONTENT
|
||||
<span class='i-color_soft'>(
|
||||
<span class='i-color_soft'>(
|
||||
IPSCONTENT;
|
||||
|
||||
$pluralize = array( $file->reviews ); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'num_reviews', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'pluralize' => $pluralize ) );
|
||||
@@ -2099,45 +2099,45 @@ if ( \IPS\Application::appIsEnabled( 'nexus' ) and \IPS\Settings::i()->idm_nexus
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
<p class='i-font-size_2 i-text-align_center i-margin-top_2'>
|
||||
<span class='cFilePrice'>
|
||||
|
||||
<span class='cFilePrice'>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $file->isPaid() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $price = $file->price() ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
{$price}
|
||||
|
||||
{$price}
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
else:
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'file_free', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</span>
|
||||
</span>
|
||||
</p>
|
||||
<!-- Purchase Count -->
|
||||
<p>
|
||||
@@ -2205,7 +2205,7 @@ IPSCONTENT;
|
||||
if ( \count( $file->tags() ) ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->tags( $file->tags(), TRUE );
|
||||
@@ -2675,7 +2675,7 @@ $return .= <<<IPSCONTENT
|
||||
<img src='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\File::get( "core_Attachment", $file->primary_screenshot_thumb )->url;
|
||||
$return .= \IPS\File::get( "downloads_Screenshots", $file->primary_screenshot_thumb )->url;
|
||||
$return .= <<<IPSCONTENT
|
||||
' alt='' loading='lazy'>
|
||||
|
||||
@@ -3182,7 +3182,7 @@ $return .= <<<IPSCONTENT
|
||||
<img src='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\File::get( "core_Attachment", $file->primary_screenshot_thumb )->url;
|
||||
$return .= \IPS\File::get( "downloads_Screenshots", $file->primary_screenshot_thumb )->url;
|
||||
$return .= <<<IPSCONTENT
|
||||
' alt='' loading='lazy'>
|
||||
|
||||
@@ -3708,7 +3708,7 @@ $return .= <<<IPSCONTENT
|
||||
<img src='
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\File::get( "core_Attachment", $file->primary_screenshot_thumb )->url;
|
||||
$return .= \IPS\File::get( "downloads_Screenshots", $file->primary_screenshot_thumb )->url;
|
||||
$return .= <<<IPSCONTENT
|
||||
' alt='' loading='lazy'>
|
||||
|
||||
|
||||
@@ -1060,12 +1060,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef() )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $row->__get( $row::$databaseColumnMap['date'] ) instanceof \IPS\DateTime ) ? $row->__get( $row::$databaseColumnMap['date'] ) : \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) );$return .= $val->html();
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef() ), \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
@@ -758,12 +758,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($topic->author()->link( NULL, NULL, $topic->isAnonymous() )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $topic->mapped('date') instanceof \IPS\DateTime ) ? $topic->mapped('date') : \IPS\DateTime::ts( $topic->mapped('date') );$return .= $val->html();
|
||||
$htmlsprintf = array($topic->author()->link( NULL, NULL, $topic->isAnonymous() ), \IPS\DateTime::ts( $topic->mapped('date') )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
@@ -4724,13 +4724,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($row->author()->link( NULL, NULL, $row->isAnonymous() )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_itemprop', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $row->mapped('date') instanceof \IPS\DateTime ) ? $row->mapped('date') : \IPS\DateTime::ts( $row->mapped('date') );$return .= $val->html(FALSE);
|
||||
$htmlsprintf = array($row->author()->link( NULL, NULL, $row->isAnonymous() ), \IPS\DateTime::ts( $row->mapped('date') )->html(FALSE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
@@ -2886,7 +2886,11 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" aria-expanded="false" data-ipscontrols aria-label="
|
||||
" aria-expanded="false" data-ipscontrols data-ipscontrols-src="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->authorMiniProfileUrl, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" aria-label="
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'author_stats', ENT_DISALLOWED, 'UTF-8', FALSE ), TRUE, array( ) );
|
||||
@@ -2899,10 +2903,10 @@ endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->miniProfile( $comment, $comment->$idField );
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->miniProfileWrap( $comment->author(), $comment->$idField, remoteLoading: true );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
|
||||
@@ -789,9 +789,9 @@ $return .= <<<IPSCONTENT
|
||||
<p class='ipsData__meta'>
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($comment->author()->link( NULL, NULL, $comment->isAnonymous() )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_itemprop', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$htmlsprintf = array($comment->author()->link( NULL, NULL, $comment->isAnonymous() )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
<a href='
|
||||
· <a href='
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->item()->url()->setQueryString( array( 'do' => 'findComment', 'comment' => $comment->pid ) ), ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
@@ -565,7 +565,11 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->$idField, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" aria-expanded="false" data-ipscontrols aria-label="Toggle mini profile"><i class="fa-solid fa-chevron-down" aria-hidden="true"></i></button>
|
||||
" aria-expanded="false" data-ipscontrols data-ipscontrols-src="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $comment->authorMiniProfileUrl, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" aria-label="Toggle mini profile"><i class="fa-solid fa-chevron-down" aria-hidden="true"></i></button>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -573,7 +577,7 @@ endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $comment->author()->member_id ):
|
||||
@@ -582,7 +586,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->miniProfile( $comment, $comment->$idField );
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->miniProfileWrap( $comment->author(), $comment->$idField, remoteLoading:true );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
@@ -3408,12 +3412,7 @@ $return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef() )); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $row->__get( $row::$databaseColumnMap['date'] ) instanceof \IPS\DateTime ) ? $row->__get( $row::$databaseColumnMap['date'] ) : \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) );$return .= $val->html();
|
||||
$htmlsprintf = array($row->author()->link( $row->warningRef() ), \IPS\DateTime::ts( $row->__get( $row::$databaseColumnMap['date'] ) )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
@@ -4217,7 +4216,11 @@ $return .= <<<IPSCONTENT
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $review->id, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" aria-expanded="false" data-ipscontrols aria-label="Toggle mini profile"><i class="fa-solid fa-chevron-down" aria-hidden="true"></i></button>
|
||||
" aria-expanded="false" data-ipscontrols data-ipscontrols-src="
|
||||
IPSCONTENT;
|
||||
$return .= \IPS\Theme\Template::htmlspecialchars( $review->authorMiniProfileUrl, ENT_QUOTES | ENT_DISALLOWED, 'UTF-8', FALSE );
|
||||
$return .= <<<IPSCONTENT
|
||||
" aria-label="Toggle mini profile"><i class="fa-solid fa-chevron-down" aria-hidden="true"></i></button>
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
@@ -4225,19 +4228,19 @@ endif;
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
if ( $review->author()->member_id ):
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->miniProfile( $review, $review->id );
|
||||
$return .= \IPS\Theme::i()->getTemplate( "global", "core" )->miniProfileWrap( $review->author(), $review->id, 'review', remoteLoading: true );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
endif;
|
||||
|
||||
@@ -686,12 +686,7 @@ $return .= <<<IPSCONTENT
|
||||
<div>
|
||||
IPSCONTENT;
|
||||
|
||||
$htmlsprintf = array($latestImage->author()->link()); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
|
||||
IPSCONTENT;
|
||||
|
||||
$val = ( $latestImage->mapped('date') instanceof \IPS\DateTime ) ? $latestImage->mapped('date') : \IPS\DateTime::ts( $latestImage->mapped('date') );$return .= $val->html();
|
||||
$htmlsprintf = array($latestImage->author()->link(), \IPS\DateTime::ts( $latestImage->mapped('date') )->html(TRUE)); $return .= \IPS\Member::loggedIn()->language()->addToStack( htmlspecialchars( 'byline_name_date', ENT_DISALLOWED, 'UTF-8', FALSE ), FALSE, array( 'htmlsprintf' => $htmlsprintf ) );
|
||||
$return .= <<<IPSCONTENT
|
||||
</div>
|
||||
|
||||
|
||||
Reference in new issue
Block a user