Шапка очень большой таблицы

Vor_tex

Гуру MediaWiki
Регистрация
17.12.2014
Сообщения
123
Реакции
19
Добрый день!
Существует большая таблица, генерируемая с помощью запроса semantic mediawiki, для удобства хотелось бы реализовать шапку этой таблицы так, чтобы при пролистывании вниз она закреплялась вверху окна...
Я лично столкнулся с той проблемой, что вики не воспринимает тег <thead> поэтому те способы которые я находил или которые я смог осилить ни к чему хорошему не привели.
Может кто-то знает как можно или можно ли вообще реализовать такую функцию в вики?
Спасибо!

P.S. С самой таблице можно ознакомиться тут: http://so-wiki.ru/wiki/Задания
 
Это реализуется на JavaScript/jQuery готовых решений для MW скорее всего нет.
 
Наконец-то выбрал время, спасибо за наводки.
Первый вариант попробовал - работает, но в мазиле для таблицы не хотит... почитал, давняшний баг (лет 5 уже)
Второй вариант не могу понять как запустить на вики... не подскажете?
 
Второй вариант не могу понять как запустить на вики... не подскажете?
нужно подключить скрипты и стили к вики, а затем использовать правильную разметку на страницах.
 
нужно подключить скрипты и стили к вики, а затем использовать правильную разметку на страницах.
если я сделаю подключение скриптом через LocalSettings это будет правильно?
UPD: а что делать если вики не понимает <thead><tfoot><tbody> ?
у меня семантик вики не генерит таблцу если использовать HTML теги(
 
Последнее редактирование:
если я сделаю подключение скриптом через LocalSettings это будет правильно?
Если сделаете, то правильно.


а что делать если вики не понимает
Печаль, пробуйте...
https://www.mediawiki.org/wiki/Manual:$wgRawHtml
https://www.mediawiki.org/wiki/Extension:HTMLets
https://www.mediawiki.org/wiki/Help:Magic_words#Miscellaneous
 
В не очередной раз огромное спасибо за наводку!

Шапку таблицы обернул в Thead воспользовавшись HTMLets (я кстати одну из реклам через него вставляю себе))
Скрипты подгрузил через LocalSettings, получилось так:
Код:
$wgHooks['BeforePageDisplay'][] ='onBeforePageDisplay';

function onBeforePageDisplay( OutputPage &$out, Skin &$skin ) {
$script = '
<link rel="stylesheet" type="text/css" href="../../FixedHeader/css/jquery.dataTables.css">
<link rel="stylesheet" type="text/css" href="../../FixedHeader/css/fixedHeader.dataTables.css">
 
<script type="text/javascript" language="javascript" src="//code.jquery.com/jquery-1.12.3.min.js">    </script>
<script type="text/javascript" language="javascript" src="../../FixedHeader/js/jquery.dataTables.js"></script>
<script type="text/javascript" language="javascript" src="../../FixedHeader/js/dataTables.fixedHeader.js"></script>

<script type="text/javascript" language="javascript" class="init">
$(document).ready(function() {
    $(\'table.display\').DataTable( {
        fixedHeader: {
            header: true,
     
        }
    } );
} );
</script>

$out->addHeadItem("scripts", $script);
return true;
};

Но как всегда есть НО, иногда таблица подгружается без включения FixedHeader... в чем может быть проблема? что я делаю не так?

UPD: консоль выдает это: TypeError: $(...).DataTable is not a function
но если перезагрузить страницу через (Ctrl+F5), то все работает...
UPD: Решил проблему измененив немного конструкцию
Код:
<script type="text/javascript" language="javascript" class="init">
$.noConflict();
jQuery( document ).ready(function( $ ) {
    $(\'table.display\').DataTable({
        fixedHeader: {
            header: true,
            footer: true
        }
    } );
} );
</script>
 
Последнее редактирование:
For adding scripts and styles on MediaWiki 1.17 and above, use ResourceLoader modules.

  • $out->addModules( [ /*modules*/ ] ) - For modules with both scripts and styles
  • $out->addModuleStyles( [ /*modules*/ ] ) - For modules with styles only

https://www.mediawiki.org/wiki/Manual:Hooks/BeforePageDisplay

$outputPage->addModules( array( 'ext.myExtension.foo', 'ext.myExtension.bar' ) );

https://www.mediawiki.org/wiki/ResourceLoader/Developing_with_ResourceLoader#JavaScript
 
Назад
Верх