MediaWiki: где же находятся файлы шаблонов?

Доброго времени суток.

По долгу службы возникла задача подправить слегка шаблон для CMS MediaWiki.

И вот тут меня ждал сюрприз. После тщетных попыток поиска чего либо в интернете на эту тему. начал искать просто по папкам. Не первый день работают с разного рода CMS и сразу начал искать что-то либо напоминающее templates или layouts… А не тут то было.. Не нашел!

Но при поисках выше перечисленных я обратил внимание на папку skins… В ней лежали файлы с расширением PHP и каким то кодом (сразу вникать не стал, ну код код, не html ведь искомый). Названия файлов соответствовали названиям собственно самих шаблонов.

При детально рассмотрении оказалось, что это и есть те самые пресловутые искомые шаблоны, НО ВЕСЬ практически html был вписан в код. Причем это была некая «помесь» ООП и html, т.к. файл содержит класс, который наследуется от класса SkinTemplate, который и формирует страницу… На мой взгляд жесть какая-то слегка сомнительное решение, хотя судя по серьезности издателя наверно на то есть свои причины не менее серьезные.

Кто что думает по этому поводу — выскажитесь.

Вот пример кода шаблона Vector (пара кусков, просто вырванных из текста для примера):

if ( $this->data['rtl'] ) {
                        $this->data['view_urls'] =
                                array_reverse( $this->data['view_urls'] );
                        $this->data['namespace_urls'] =
                                array_reverse( $this->data['namespace_urls'] );
                        $this->data['personal_urls'] =
                                array_reverse( $this->data['personal_urls'] );
                }
                // Output HTML Page
                $this->html( 'headelement' );
?></pre>
<div id="mw-page-base" class="noprint"></div>
<div id="mw-head-base" class="noprint"></div>
<pre>
                <!-- content --></pre>
<div id="content" class="mw-body">
<div id="mw-js-message" style="display: none;">html( 'userlangattributes' ) ?>></div>
 <!--?php if ( $this--->data['sitenotice'] ): ?>
 <!-- sitenotice -->
<div id="siteNotice"></div>
 <!-- /sitenotice -->
 <!--?php endif; ?-->
 <!-- firstHeading -->
<h1 id="firstHeading" class="firstHeading"></h1>
 <!-- /firstHeading -->
 <!-- bodyContent -->
<div id="bodyContent"><!--?php if ( $this--->data['isarticle'] ): ?>
 <!-- tagline -->
<div id="siteSub"></div>
 <!-- /tagline -->
 <!--?php endif; ?-->
 <!-- subtitle -->
<div id="contentSub">html( 'userlangattributes' ) ?>><!--?php $this--->html( 'subtitle' ) ?></div>
 <!-- /subtitle -->
 <!--?php if ( $this--->data['undelete'] ): ?>
 <!-- undelete -->
<div id="contentSub2"></div>
 <!-- /undelete -->
 <!--?php endif; ?-->
 <!--?php if( $this--->data['newtalk'] ): ?>

...
<div id="footer">
html( 'userlangattributes' ) ?>>

 <!--?php foreach( $this--->getFooterLinks() as $category => $links ): ?>

 <!--?php endforeach; ?-->
 <!--?php $footericons = $this--->getFooterIcons("icononly");
 if ( count( $footericons ) > 0 ): ?>
<ul id="footer-icons" class="noprint">
	<li id="footer-<?php echo htmlspecialchars( $blockName ); ?>ico">
<!--?php                           foreach ( $footerIcons as $icon ): ?-->
 <!--?php echo $this--->getSkin()->makeFooterIcon( $icon ); ?>

Вот собственно и все что хотел сказать :)



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Яндекс.Метрика