Bumsakalaka

Joined 8 February 2022
no edit summary
 
(5 intermediate revisions by the same user not shown)
Line 18: Line 18:
** [[User:Bumsakalaka/JCloisterZoneLocale]]
** [[User:Bumsakalaka/JCloisterZoneLocale]]
** [[User:Bumsakalaka/Cliffs_and_Waterfalls]]
** [[User:Bumsakalaka/Cliffs_and_Waterfalls]]
** [[User:Bumsakalaka/NKO]]
** [[User:Bumsakalaka/NKO]] New King's Orders
** [[User:Bumsakalaka/WP]]
** [[User:Bumsakalaka/WP]] Wandering Preachers
** [[User:Bumsakalaka/Gambler%27s_Luck_(Fan_Expansion)]]
** [[User:Bumsakalaka/Gambler%27s_Luck_(Fan_Expansion)]] The Pope of Avignon
** [[User:Bumsakalaka/ČV]]
** [[User:Bumsakalaka/ČV]] Czech Flag
** [[User:Bumsakalaka/ČV]]
** [[User:Bumsakalaka/HA]] Halfling Abbey
** [[User:Bumsakalaka/HA]] (Halfling Abbey)
** [[User:Bumsakalaka/JS]] JPutt's Seasons
** <del>[[User:Bumsakalaka/ĎČ]]</del>
** <del>[[User:Bumsakalaka/ĎČ]]</del>


Line 205: Line 205:
! Template || Expansion EN C1 || Rozšírenie SK C1 || Expansion EN C2 || Rozšírenie SK C2
! Template || Expansion EN C1 || Rozšírenie SK C1 || Expansion EN C2 || Rozšírenie SK C2
|-
|-
| <nowiki>{{BaseGameLink}}</nowiki> [[Template:BaseGameLink|edit]] || {{BaseGameLink/en|version=C1}} || {{BaseGameLink/sk|version=C1}} || {{BaseGameLink/en}} || {{BaseGameLink/sk}}
| <nowiki>{{BaseGameLink}}</nowiki> [[Template:BaseGameLink|edit]] || {{BaseGameLink/en|edition=C1}} || {{BaseGameLink/sk|edition=C1}} || {{BaseGameLink/en}} || {{BaseGameLink/sk}}
|-
|-
| <nowiki>{{FarmersLink}}</nowiki> [[Template:FarmersLink|edit]] || - || - || {{FarmersLink/en}} || {{FarmersLink/sk}}
| <nowiki>{{FarmersLink}}</nowiki> [[Template:FarmersLink|edit]] || - || - || {{FarmersLink/en}} || {{FarmersLink/sk}}
|-
|-
| <nowiki>{{RiverLink}}</nowiki> [[Template:RiverLink|edit]] || {{RiverLink/en|version=C1}} || {{RiverLink/sk|version=C1}} || {{RiverLink/en}} || {{RiverLink/sk}}
| <nowiki>{{RiverLink}}</nowiki> [[Template:RiverLink|edit]] || {{RiverLink/en|edition=C1}} || {{RiverLink/sk|edition=C1}} || {{RiverLink/en}} || {{RiverLink/sk}}
|-
|-
| <nowiki>{{AbbotLink}}</nowiki>  [[Template:AbbotLink|edit]] || - || - || {{AbbotLink/en}} || {{AbbotLink/sk}}
| <nowiki>{{AbbotLink}}</nowiki>  [[Template:AbbotLink|edit]] || - || - || {{AbbotLink/en}} || {{AbbotLink/sk}}
Line 215: Line 215:
! colspan="5" | '''Standalone playable expansions'''
! colspan="5" | '''Standalone playable expansions'''
|-
|-
| <nowiki>{{WheelFortuneLink}}</nowiki> [[Template:WheelFortuneLink|edit]] || {{WheelFortuneLink/en|version=C1}} || {{WheelFortuneLink/sk|version=C1}} || - || -
| <nowiki>{{WheelFortuneLink}}</nowiki> [[Template:WheelFortuneLink|edit]] || {{WheelFortuneLink/en|edition=C1}} || {{WheelFortuneLink/sk|edition=C1}} || - || -
|-
|-
| <nowiki>{{MistsOverCarcassonneLink}}</nowiki> [[Template:MistsOverCarcassonneLink|edit]]|| - || - || {{MistsOverCarcassonneLink/en|}} || {{MistsOverCarcassonneLink/sk|}}
| <nowiki>{{MistsOverCarcassonneLink}}</nowiki> [[Template:MistsOverCarcassonneLink|edit]]|| - || - || {{MistsOverCarcassonneLink/en|}} || {{MistsOverCarcassonneLink/sk|}}
Line 221: Line 221:
! colspan="5" | '''Large Expansions''' (expansion number order)
! colspan="5" | '''Large Expansions''' (expansion number order)
|-
|-
| <nowiki>{{InnsCathedralsLink}}</nowiki> [[Template:InnsCathedralsLink|edit]]|| {{InnsCathedralsLink/en|version=C1}} || {{InnsCathedralsLink/sk|version=C1}} || {{InnsCathedralsLink/en|}} || {{InnsCathedralsLink/sk|}}
| <nowiki>{{InnsCathedralsLink}}</nowiki> [[Template:InnsCathedralsLink|edit]]|| {{InnsCathedralsLink/en|edition=C1}} || {{InnsCathedralsLink/sk|edition=C1}} || {{InnsCathedralsLink/en|}} || {{InnsCathedralsLink/sk|}}
|-
|-
| <nowiki>{{TradersBuildersLink}}</nowiki> [[Template:TradersBuildersLink|edit]]|| {{TradersBuildersLink/en|version=C1}} || {{TradersBuildersLink/sk|version=C1}} || {{TradersBuildersLink/en|}} || {{TradersBuildersLink/sk|}}
| <nowiki>{{TradersBuildersLink}}</nowiki> [[Template:TradersBuildersLink|edit]]|| {{TradersBuildersLink/en|edition=C1}} || {{TradersBuildersLink/sk|edition=C1}} || {{TradersBuildersLink/en|}} || {{TradersBuildersLink/sk|}}
|-
|-
| <nowiki>{{PrincessDragonLink}}</nowiki> [[Template:PrincessDragonLink|edit]]|| {{PrincessDragonLink/en|version=C1}} || {{PrincessDragonLink/sk|version=C1}} || {{PrincessDragonLink/en|}} || {{PrincessDragonLink/sk|}}
| <nowiki>{{PrincessDragonLink}}</nowiki> [[Template:PrincessDragonLink|edit]]|| {{PrincessDragonLink/en|edition=C1}} || {{PrincessDragonLink/sk|edition=C1}} || {{PrincessDragonLink/en|}} || {{PrincessDragonLink/sk|}}
|-
|-
| <nowiki>{{TowerLink}}</nowiki> [[Template:TowerLink|edit]]|| {{TowerLink/en|version=C1}} || {{TowerLink/sk|version=C1}} || {{TowerLink/en|}} || {{TowerLink/sk|}}
| <nowiki>{{TowerLink}}</nowiki> [[Template:TowerLink|edit]]|| {{TowerLink/en|edition=C1}} || {{TowerLink/sk|edition=C1}} || {{TowerLink/en|}} || {{TowerLink/sk|}}
|-
|-
| <nowiki>{{AbbeyMayorLink}}</nowiki> [[Template:AbbeyMayorLink|edit]]|| {{AbbeyMayorLink/en|version=C1}} || {{AbbeyMayorLink/sk|version=C1}} || {{AbbeyMayorLink/en|}} || {{AbbeyMayorLink/sk|}}
| <nowiki>{{AbbeyMayorLink}}</nowiki> [[Template:AbbeyMayorLink|edit]]|| {{AbbeyMayorLink/en|edition=C1}} || {{AbbeyMayorLink/sk|edition=C1}} || {{AbbeyMayorLink/en|}} || {{AbbeyMayorLink/sk|}}
|-
|-
| <nowiki>{{CountKingRobberLink}}</nowiki> [[Template:CountKingRobberLink|edit]]|| {{CountKingRobberLink/en|version=C1}} || {{CountKingRobberLink/sk|version=C1}} || {{CountKingRobberLink/en}} || {{CountKingRobberLink/sk}}
| <nowiki>{{CountKingRobberLink}}</nowiki> [[Template:CountKingRobberLink|edit]]|| {{CountKingRobberLink/en|edition=C1}} || {{CountKingRobberLink/sk|edition=C1}} || {{CountKingRobberLink/en}} || {{CountKingRobberLink/sk}}
|-
|-
| <nowiki>{{BridgesCastlesBazaarsLink}}</nowiki> [[Template:BridgesCastlesBazaarsLink|edit]]|| {{BridgesCastlesBazaarsLink/en|version=C1}} || {{BridgesCastlesBazaarsLink/sk|version=C1}} || {{BridgesCastlesBazaarsLink/en}} || {{BridgesCastlesBazaarsLink/sk}}
| <nowiki>{{BridgesCastlesBazaarsLink}}</nowiki> [[Template:BridgesCastlesBazaarsLink|edit]]|| {{BridgesCastlesBazaarsLink/en|edition=C1}} || {{BridgesCastlesBazaarsLink/sk|edition=C1}} || {{BridgesCastlesBazaarsLink/en}} || {{BridgesCastlesBazaarsLink/sk}}
|-
|-
| <nowiki>{{HillsSheepLink}}</nowiki> [[Template:HillsSheepLink|edit]]|| {{HillsSheepLink/en|version=C1}} || {{HillsSheepLink/sk|version=C1}} || {{HillsSheepLink/en}} || {{HillsSheepLink/sk}}
| <nowiki>{{HillsSheepLink}}</nowiki> [[Template:HillsSheepLink|edit]]|| {{HillsSheepLink/en|edition=C1}} || {{HillsSheepLink/sk|edition=C1}} || {{HillsSheepLink/en}} || {{HillsSheepLink/sk}}
|-
|-
| <nowiki>{{UnderBigTopLink}}</nowiki> [[Template:UnderBigTopLink|edit]]|| - || - || {{UnderBigTopLink/en}} || {{UnderBigTopLink/sk}}
| <nowiki>{{UnderBigTopLink}}</nowiki> [[Template:UnderBigTopLink|edit]]|| - || - || {{UnderBigTopLink/en}} || {{UnderBigTopLink/sk}}
Line 243: Line 243:
| <nowiki>{{BesiegersLink}}</nowiki> [[Template:BesiegersLink|edit]]|| {{BesiegersLink/en}} || {{BesiegersLink/sk}} || - || -
| <nowiki>{{BesiegersLink}}</nowiki> [[Template:BesiegersLink|edit]]|| {{BesiegersLink/en}} || {{BesiegersLink/sk}} || - || -
|-
|-
| <nowiki>{{BesiegersLink|variant=Besiegers}}</nowiki> [[Template:BesiegersLink|edit]]|| {{BesiegersLink/en|variant=Besiegers}} || {{BesiegersLink/sk|variant=Besiegers}} || - || -
| <nowiki>{{CatharsLink}}</nowiki> [[Template:CatharsLink|edit]]|| {{CatharsLink/en}} || {{CatharsLink/sk}} || - || -
|-
|-
| <nowiki>{{BesiegersLink|variant=Cathars}}</nowiki> [[Template:BesiegersLink|edit]]|| {{BesiegersLink/en|variant=Cathars}} || {{BesiegersLink/sk|variant=Cathars}} || - || -
| <nowiki>{{SiegeLink}}</nowiki> [[Template:SiegeLink|edit]]|| {{SiegeLink/en}} || {{SiegeLink/sk}} || - || -
|-
|-
| <nowiki>{{BesiegersLink|variant=Siege}}</nowiki> [[Template:BesiegersLink|edit]]|| {{BesiegersLink/en|variant=Siege}} || {{BesiegersLink/sk|variant=Siege}} || - || -
| <nowiki>{{LabyrinthLink}}</nowiki> [[Template:LabyrinthLink|edit]]|| - || - || {{LabyrinthLink/en}} || {{LabyrinthLink/sk}}
|-
|-
| <nowiki>{{LabyrinthsLink}}</nowiki> [[Template:LabyrinthsLink|edit]]|| - || - || {{LabyrinthsLink/en}} || {{LabyrinthsLink/sk}}
| <nowiki>{{RiverLink}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|edition=C1}} || {{RiverLink/sk|edition=C1}} || {{RiverLink/en}} || {{RiverLink/sk}}
|-
|-
| <nowiki>{{RiverLink}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|version=C1}} || {{RiverLink/sk|version=C1}} || {{RiverLink/en}} || {{RiverLink/sk}}
| <nowiki>{{RiverLink|variant=I}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|variant=I|edition=C1}} || {{RiverLink/sk|variant=I|edition=C1}} || {{RiverLink/en|variant=I}} || {{RiverLink/sk|variant=I}}
|-
|-
| <nowiki>{{RiverLink|variant=I}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|variant=I|version=C1}} || {{RiverLink/sk|variant=I|version=C1}} || {{RiverLink/en|variant=I}} || {{RiverLink/sk|variant=I}}
| <nowiki>{{RiverLink|variant=II}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|variant=II|edition=C1}} || {{RiverLink/sk|variant=II|edition=C1}} || {{RiverLink/en|variant=II}} || {{RiverLink/sk|variant=II}}
|-
|-
| <nowiki>{{RiverLink|variant=II}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|variant=II|version=C1}} || {{RiverLink/sk|variant=II|version=C1}} || {{RiverLink/en|variant=II}} || {{RiverLink/sk|variant=II}}
| <nowiki>{{RiverLink|variant=III}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|variant=III|edition=C1}} || {{RiverLink/sk|variant=III|edition=C1}} || - || -
|-
| <nowiki>{{RiverLink|variant=III}}</nowiki> [[Template:RiverLink|edit]]|| {{RiverLink/en|variant=III|version=C1}} || {{RiverLink/sk|variant=III|version=C1}} || - || -
|-
|-
| <nowiki>{{RiverLink|variant=20}}</nowiki> [[Template:RiverLink|edit]]|| - || - || {{RiverLink/en|variant=20}} || {{RiverLink/sk|variant=20}}
| <nowiki>{{RiverLink|variant=20}}</nowiki> [[Template:RiverLink|edit]]|| - || - || {{RiverLink/en|variant=20}} || {{RiverLink/sk|variant=20}}
Line 291: Line 289:
| <nowiki>{{CastleLordsLink}}</nowiki> [[Template:CastleLordsLink|edit]]|| {{CastleLordsLink/en}} || {{CastleLordsLink/sk}} || ||
| <nowiki>{{CastleLordsLink}}</nowiki> [[Template:CastleLordsLink|edit]]|| {{CastleLordsLink/en}} || {{CastleLordsLink/sk}} || ||
|-
|-
| <nowiki>{{PorxadaLink}}</nowiki> [[Template:PorxadaLink|edit]]|| {{PorxadaLink/en|version=C1}} || {{PorxadaLink/sk|version=C1}} || ||
| <nowiki>{{PorxadaLink}}</nowiki> [[Template:PorxadaLink|edit]]|| {{PorxadaLink/en|edition=C1}} || {{PorxadaLink/sk|edition=C1}} || ||
|-
|-
| <nowiki>{{RobbersSonLink}}</nowiki> [[Template:RobbersSonLink|edit]] || {{RobbersSonLink/en}} || {{RobbersSonLink/sk}} || {{RobbersSonLink/en}} || {{RobbersSonLink/sk}}
| <nowiki>{{RobbersSonLink}}</nowiki> [[Template:RobbersSonLink|edit]] || {{RobbersSonLink/en}} || {{RobbersSonLink/sk}} || {{RobbersSonLink/en}} || {{RobbersSonLink/sk}}
|-
|-
| <nowiki>{{WellsLink}}</nowiki> [[Template:WellsLink|edit]]|| {{WellsLink/en}} || {{WellsLink/sk}} || |-
| <nowiki>{{WellsLink}}</nowiki> [[Template:WellsLink|edit]]|| {{WellsLink/en}} || {{WellsLink/sk}} || {{WellsLink/en}} || {{WellsLink/sk}}
|-
|}
|}


Line 343: Line 342:
|-
|-
| Collapsible content || [https://www.mediawiki.org/wiki/Manual:Collapsible_elements Manual:Collapsible_elements]
| Collapsible content || [https://www.mediawiki.org/wiki/Manual:Collapsible_elements Manual:Collapsible_elements]
|-
| Grammar forms of words for translators || [https://www.mediawiki.org/wiki/Manual:$wgGrammarForms Manual:$wgGrammarForms]
|}
|}


Line 663: Line 664:
== Ideas for MediaWiki extensions ==
== Ideas for MediaWiki extensions ==


=== Automatic purge page after mark for translations ===
* Automatic purge page after mark for translations - this will speed up distribution of changes of translated page, specially for templates
* Automatic purge page after mark for translations - this will speed up distribution of changes of translated page, specially for templates
* Styles for mobile view like <code>data-mobile-style="blah blah"</code> which will be used on mobile view and will rewrite <code>style</code> if any
<pre style="margin-left:5ex;text-decoration:line-through;"><nowiki>https://www.mediawiki.org/wiki/Manual:Pywikibot/touch.py
* Find a way how to generate mobile device cache and desktop device cache file and provide it be template
[telegram] <jhsoby>
[telegram] <jhsoby> `python3 pwb.py touch -transcludes:"your template's name"
</nowiki></pre>
** Check also proper settings of [[https://www.mediawiki.org/wiki/Manual:Job_queue Manual:Job_queue]]
 
=== Developer Search ===
* Search over source codes like [[Special:ReplaceText]] but without possibility of accidentally replacing text.
 
=== Mobile depends parsing, which stores two version of same page. One for mobile devices and one for desktops. It allows to change styles etc. directly in Templates and in content ===
* <del>Styles for mobile view like <code>data-mobile-style="blah blah"</code> which will be used on mobile view and will rewrite <code>style</code> if any</del>
* <del>Find a way how to generate mobile device cache and desktop device cache file and provide it be template
** <div>Example for show different cache for mobile and desktop by MobileDetect extention
** <div>Example for show different cache for mobile and desktop by MobileDetect extention
<pre style="margin-left:5ex"><nowiki>$mobile = wfMobileDetect();
<pre style="margin-left:5ex;text-decoration:line-through;"><nowiki>$mobile = wfMobileDetect();
$cacheKey = $title->getPrefixedDBkey();
$cacheKey = $title->getPrefixedDBkey();
if ($mobile) {
if ($mobile) {
     $cacheKey .= '-mobile';
     $cacheKey .= '-mobile';
Line 675: Line 686:
     $cacheKey .= '-desktop';
     $cacheKey .= '-desktop';
}
}
$page = $cache->get($cacheKey);
$page = $cache->get($cacheKey);
if (!$page) {
if (!$page) {
     // Generate the page and store it in the cache
     // Generate the page and store it in the cache
Line 683: Line 692:
     $cache->set($cacheKey, $page);
     $cache->set($cacheKey, $page);
}
}
// Output the page
echo $page;</nowiki></pre></div></del>


// Output the page
** <del><div>Example by MobileContext extension which is part of MediaWiki
echo $page;</nowiki></pre></div>
<pre style="margin-left:5ex;text-decoration:line-through;"><nowiki>$context = MobileContext::singleton();
*
** <div>Example by MobileContext extension which is part of MediaWiki
<pre style="margin-left:5ex"><nowiki>$context = MobileContext::singleton();
$isMobile = $context->shouldDisplayMobileView();
$isMobile = $context->shouldDisplayMobileView();
if ($isMobile) {
if ($isMobile) {
     // Code for mobile devices
     // Code for mobile devices
Line 696: Line 703:
     // Code for non-mobile devices
     // Code for non-mobile devices
}
}
</nowiki></pre></div>
</nowiki></pre></div></del>
*
 
** <div>New parser function which test if current user is mobile device or not usage <code><nowiki>{{#ifmobile:stuff for mobiles|stuff for destop}}</nowiki></code>
** <del><div>New parser function which test if current user is mobile device or not usage <code><nowiki>{{#ifmobile:stuff for mobiles|stuff for destop}}</nowiki></code>
<pre style="margin-left:5ex"><nowiki> $parser->setFunctionHook( 'ifmobile', static function ( Parser $parser, $mobile_input = '', $nomobile_input = '' ) {
<pre style="margin-left:5ex;text-decoration:line-through;"><nowiki> $parser->setFunctionHook( 'ifmobile', static function ( Parser $parser, $mobile_input = '', $nomobile_input = '' ) {
if ( wfMobileDetect() ) {
if ( wfMobileDetect() ) {
return $parser->recursiveTagParse( $mobile_input );
return $parser->recursiveTagParse( $mobile_input );
Line 706: Line 713:
}
}
} );
} );
</nowiki></pre></div>
</nowiki></pre></div></del>


** <p>Delete cache for both page $title = /* the title of the page to purge */;
** <del><p>Delete cache for both page $title = /* the title of the page to purge */;
<pre style="margin-left:5ex"><nowiki>
<pre style="margin-left:5ex;text-decoration:line-through;"><nowiki>
$cacheKeyDesktop = $title->getPrefixedDBkey() . '-desktop';
$cacheKeyDesktop = $title->getPrefixedDBkey() . '-desktop';
$cacheKeyMobile = $title->getPrefixedDBkey() . '-mobile';
$cacheKeyMobile = $title->getPrefixedDBkey() . '-mobile';
$cache->delete($cacheKeyDesktop);
$cache->delete($cacheKeyDesktop);
$cache->delete($cacheKeyMobile);</nowiki></pre></p>
$cache->delete($cacheKeyMobile);</nowiki></pre></p></del>
 
** <p>Call public <code><nowiki>static function onArticlePurge( &$article ) { ... }</nowiki></code>
<pre style="margin-left:5ex"><nowiki>


** <del><p>Call public <code><nowiki>static function onArticlePurge( &$article ) { ... }</nowiki></code>
<pre style="margin-left:5ex;text-decoration:line-through;"><nowiki>
extension.json
extension.json
{
{
   "Hooks": {
   "Hooks": {
Line 726: Line 730:
   }
   }
}
}
extenstion file
extenstion file
namespace MediaWiki\Extension\MyExtension;
namespace MediaWiki\Extension\MyExtension;
class Hooks {
class Hooks {
     public static function onArticlePurge( $wikiPage ) {
     public static function onArticlePurge( $wikiPage ) {
         $title = $wikiPage->getTitle();
         $title = $wikiPage->getTitle();
         $cache = \MediaWiki\MediaWikiServices::getInstance()->getMainWANObjectCache();
         $cache = \MediaWiki\MediaWikiServices::getInstance()->getMainWANObjectCache();
         // Get the cache keys for mobile and desktop versions
         // Get the cache keys for mobile and desktop versions
         $cacheKeyDesktop = $cache->makeKey( 'page', $title->getPrefixedDBkey(), 'desktop' );
         $cacheKeyDesktop = $cache->makeKey( 'page', $title->getPrefixedDBkey(), 'desktop' );
         $cacheKeyMobile = $cache->makeKey( 'page', $title->getPrefixedDBkey(), 'mobile' );
         $cacheKeyMobile = $cache->makeKey( 'page', $title->getPrefixedDBkey(), 'mobile' );
         // Delete both caches
         // Delete both caches
         $cache->delete( $cacheKeyDesktop );
         $cache->delete( $cacheKeyDesktop );
         $cache->delete( $cacheKeyMobile );
         $cache->delete( $cacheKeyMobile );
         return true;
         return true;
     }
     }
}</nowiki></pre>
}</nowiki></pre>
</p>
</p></del>
 
** Another solution CustomCacheKey,but it looks like not used that $thatus->value['cacheKey'] value when reading the cache, need to be tests. If this is working, this will be best solution.
<pre><nowiki><?php


** <del>Another solution CustomCacheKey,but it looks like not used that $thatus->value['cacheKey'] value when reading the cache, need to be tests. If this is working, this will be best solution.
<pre style="margin-left:5ex;text-decoration:line-through;"><nowiki><?php
extensions/CustomCacheKey/CustomCacheKey.php
extensions/CustomCacheKey/CustomCacheKey.php
class CustomCacheKey {
class CustomCacheKey {
     public static function onPageContentSaveComplete($wikiPage, $user, $content, $summary, $isMinor, $isWatch, $section, $flags, $revision, $status) {
     public static function onPageContentSaveComplete($wikiPage, $user, $content, $summary, $isMinor, $isWatch, $section, $flags, $revision, $status) {
Line 766: Line 762:
     }
     }
}
}
extension.json
extension.json
{
{
     "Hooks": {
     "Hooks": {
Line 774: Line 768:
     }
     }
}
}
</nowiki></pre></del>


</nowiki></pre>
* '''Final solution IfMobile extension. Which is total easy.'''
advancededitor, translator, writer
26,447

edits