jenkins-bot has submitted this change and it was merged.
Change subject: Split templates into individual files
......................................................................
Split templates into individual files
Change-Id: I931961fb67acf87781e673fd66056f84a710ace7
---
M Collection.php
D Collection.templates.php
A templates/CollectionFailedTemplate.php
A templates/CollectionFinishedTemplate.php
A templates/CollectionListTemplate.php
A templates/CollectionLoadOverwriteTemplate.php
A templates/CollectionPageTemplate.php
A templates/CollectionRenderingTemplate.php
A templates/CollectionSaveOverwriteTemplate.php
A templates/CollectionSuggestTemplate.php
10 files changed, 674 insertions(+), 631 deletions(-)
Approvals:
MaxSem: Looks good to me, approved
jenkins-bot: Verified
diff --git a/Collection.php b/Collection.php
index 4b914e4..504516d 100644
--- a/Collection.php
+++ b/Collection.php
@@ -180,14 +180,20 @@
$wgAutoloadClasses['CollectionHooks'] = $dir . 'Collection.hooks.php';
$wgAutoloadClasses['CollectionSuggest'] = $dir . 'Collection.suggest.php';
$wgAutoloadClasses['CollectionProposals'] = $dir . 'Collection.suggest.php';
-$wgAutoloadClasses['CollectionPageTemplate'] = $dir .
'Collection.templates.php';
-$wgAutoloadClasses['CollectionListTemplate'] = $dir .
'Collection.templates.php';
-$wgAutoloadClasses['CollectionLoadOverwriteTemplate'] = $dir .
'Collection.templates.php';
-$wgAutoloadClasses['CollectionSaveOverwriteTemplate'] = $dir .
'Collection.templates.php';
-$wgAutoloadClasses['CollectionRenderingTemplate'] = $dir .
'Collection.templates.php';
-$wgAutoloadClasses['CollectionFinishedTemplate'] = $dir .
'Collection.templates.php';
-$wgAutoloadClasses['CollectionFailedTemplate'] = $dir .
'Collection.templates.php';
-$wgAutoloadClasses['CollectionSuggestTemplate'] = $dir .
'Collection.templates.php';
+
+$wgAutoloadClasses['CollectionPageTemplate'] = $dir .
'templates/CollectionPageTemplate.php';
+$wgAutoloadClasses['CollectionListTemplate'] = $dir .
'templates/CollectionListTemplate.php';
+$wgAutoloadClasses['CollectionLoadOverwriteTemplate'] =
+ $dir . 'templates/CollectionLoadOverwriteTemplate.php';
+$wgAutoloadClasses['CollectionSaveOverwriteTemplate'] =
+ $dir . 'templates/CollectionSaveOverwriteTemplate.php';
+$wgAutoloadClasses['CollectionRenderingTemplate'] =
+ $dir . 'templates/CollectionRenderingTemplate.php';
+$wgAutoloadClasses['CollectionFinishedTemplate'] =
+ $dir . 'templates/CollectionFinishedTemplate.php';
+$wgAutoloadClasses['CollectionFailedTemplate'] = $dir .
'templates/CollectionFailedTemplate.php';
+$wgAutoloadClasses['CollectionSuggestTemplate'] = $dir .
'templates/CollectionSuggestTemplate.php';
+
$wgAutoloadClasses['CollectionRenderingAPI'] = $dir . 'RenderingAPI.php';
$wgAutoloadClasses['MWServeRenderingAPI'] = $dir . 'RenderingAPI.php';
$wgAutoloadClasses['NewRenderingAPI'] = $dir . 'RenderingAPI.php';
diff --git a/Collection.templates.php b/Collection.templates.php
deleted file mode 100644
index 9bab458..0000000
--- a/Collection.templates.php
+++ /dev/null
@@ -1,623 +0,0 @@
-<?php
-/**
- * @defgroup Templates Templates
- * @file
- * @ingroup Templates
- */
-if ( !defined( 'MEDIAWIKI' ) ) {
- die( -1 );
-}
-
-/**
- * HTML template for Special:Book
- * @ingroup Templates
- */
-class CollectionPageTemplate extends QuickTemplate {
- public function execute() {
- $data = array(
- 'collectionTitle' => $this->data['collection']['title'],
- 'collectionSubtitle' =>
$this->data['collection']['subtitle'],
- );
- $fields = array(
- 'collectionTitle' => array(
- 'type' => 'text',
- 'label-message' => 'coll-title',
- 'id' => 'titleInput',
- 'size' => '',
- 'name' => 'collectionTitle',
- ),
- 'collectionSubtitle' => array(
- 'type' => 'text',
- 'label-message' => 'coll-subtitle',
- 'id' => 'subtitleInput',
- 'size' => '',
- 'name' => 'collectionSubtitle',
- ),
- );
- foreach ( $this->data['settings'] as $fieldname => $descriptor
) {
- if ( isset( $descriptor['options'] ) && is_array(
$descriptor['options'] ) ) {
- $options = array();
- foreach ( $descriptor['options'] as $msg =>
$value ) {
- $msg = wfMessage( $msg )->text();
- $options[$msg] = $value;
- }
- $descriptor['options'] = $options;
- }
- $descriptor['id'] = "coll-input-setting-$fieldname";
- $descriptor['name'] = $fieldname;
- $fields[$fieldname] = $descriptor;
- if ( isset(
$this->data['collection']['settings'][$fieldname] ) ) {
- $data[$fieldname] =
$this->data['collection']['settings'][$fieldname];
- }
- }
-
- $context = new DerivativeContext( $this->data['context'] );
- $context->setRequest( new FauxRequest( $data ) );
- $form = new HTMLForm( $fields, $context );
- $form->setMethod( 'post' )
- ->addHiddenField( 'bookcmd', 'set_titles' )
- ->suppressDefaultSubmit()
- ->setTitle( SpecialPage::getTitleFor( 'Book' ) )
- ->setId( 'mw-collection-title-form' )
- ->setTableId( 'mw-collection-title-table' )
- ->setFooterText(
- '<noscript>' .
- '<input type="submit" value="' . $this->msg(
'coll-update' ) . '" />' .
- '</noscript>'
- )
- ->prepareForm();
-?>
-
-<div class="collection-column collection-column-left">
-
-<?php echo $form->getHTML( '' ) ?>
-
-<div id="collectionListContainer">
-<?php
-$listTemplate = new CollectionListTemplate();
-$listTemplate->set( 'collection', $this->data['collection'] );
-$listTemplate->execute();
-?>
-</div>
-<div style="display:none">
- <span id="newChapterText"><?php $this->msg( 'coll-new_chapter' )
?></span>
- <span id="renameChapterText"><?php $this->msg( 'coll-rename_chapter' )
?></span>
- <span id="clearCollectionConfirmText"><?php $this->msg(
'coll-clear_collection_confirm' ) ?></span>
-</div>
-
-</div>
-
-<div class="collection-column collection-column-right">
-<?php if ( $this->data['podpartners'] ) { ?>
- <div class="collection-column-right-box" id="coll-orderbox">
- <h2><span class="mw-headline"><?php $this->msg(
'coll-book_title' ) ?></span></h2>
- <?php
-$this->msgWiki( 'coll-book_text' );
- ?>
- <ul>
-<?php
-foreach ( $this->data['podpartners'] as $partnerKey => $partnerData ) {
- $infopage = false;
- $partnerClasses = "";
- $about_partner = wfMessage( 'coll-about_pp', $partnerData['name']
)->escaped();
- if ( isset( $partnerData['infopagetitle'] ) ) {
- $infopage = Title::newFromText(
- wfMessage( $partnerData['infopagetitle']
- )->inContentLanguage()->text() );
- if ( $infopage && $infopage->exists() ) {
- $partnerClasses = " coll-more_info collapsed";
- }
- }
-?>
- <li class="collection-partner<?php echo $partnerClasses ?>">
- <div>
- <div><a class="coll-partnerlink" href="<?php echo
htmlspecialchars( $partnerData['url'] ) ?>"><?php echo $about_partner;
?></a></div>
-<?php
- if ( $infopage && $infopage->exists() ) { ?>
- <div class="coll-order_info" style="display:none;">
-<?php
- echo $GLOBALS['wgOut']->parse( '{{:' . $infopage . '}}' );
-?>
- </div>
-<?php } ?>
- <div class="collection-order-button">
- <form action="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
- <input type="hidden" name="bookcmd"
value="post_zip" />
- <input type="hidden" name="partner"
value="<?php echo htmlspecialchars( $partnerKey ) ?>" />
- <input type="submit" value="<?php echo
wfMessage( 'coll-order_from_pp', $partnerData['name'] )->escaped() ?>"
class="order" <?php if ( count( $this->data['collection']['items'] ) == 0 ) {
?> disabled="disabled"<?php } ?> />
- </form>
- </div>
- </div>
- </li>
-<?php
-} /* foreach */
-?>
- </ul></div>
-<?php
-} /* if */
-?>
-
- <div class="collection-column-right-box" id="coll-downloadbox">
- <h2><span class="mw-headline"><?php $this->msg(
'coll-download_title' ) ?></span></h2>
- <?php if ( count( $this->data['formats'] ) == 1 ) {
- $writer = array_rand( $this->data['formats'] );
- echo wfMessage( 'coll-download_as_text',
$this->data['formats'][$writer] )->parseAsBlock();
- $buttonLabel = wfMessage( 'coll-download_as',
$this->data['formats'][$writer] )->escaped();
- } else {
- $this->msgWiki( 'coll-download_text' );
- $buttonLabel = wfMessage( 'coll-download' )->escaped();
- } ?>
- <form id="downloadForm" action="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
- <table style="width:100%; background-color:
transparent;"><tr><td><tbody><tr><td>
- <?php if ( count( $this->data['formats'] ) == 1 ) { ?>
- <input type="hidden" name="writer" value="<?php
echo htmlspecialchars( $writer ) ?>" />
- <?php } else { ?>
- <label for="formatSelect"><?php $this->msg(
'coll-format_label' ) ?></label>
- <select id="formatSelect" name="writer">
- <?php foreach ( $this->data['formats']
as $writer => $name ) {
- // Give grep a chance to find
the usages:
- // coll-format-rl,
coll-format-epub, coll-format-odf,
- // coll-format-zim,
coll-format-docbook, coll-format-okawix_zeno
- ?>
- <option value="<?php echo
htmlspecialchars( $writer ) ?>"><?php echo wfMessage( 'coll-format-' . $writer
)->escaped() ?></option>
- <?php } ?>
- </select>
- <?php } ?>
- </td><td id="collection-download-button">
- <input type="hidden" name="bookcmd" value="render" />
- <input type="hidden" name="returnto" value="<?php echo
SpecialPage::getTitleFor( 'Book' )->getPrefixedText(); ?>" />
- <input id="downloadButton" type="submit" value="<?php
echo $buttonLabel ?>"<?php if ( count( $this->data['collection']['items'] ) ==
0 ) { ?> disabled="disabled"<?php } ?> />
- </td></tr></tbody></table>
- </form>
- </div>
-
- <?php
- if ( $GLOBALS['wgUser']->isLoggedIn() ) {
- $canSaveUserPage = $GLOBALS['wgUser']->isAllowed(
'collectionsaveasuserpage' );
- $canSaveCommunityPage = $GLOBALS['wgUser']->isAllowed(
'collectionsaveascommunitypage' );
- } else {
- $canSaveUserPage = false;
- $canSaveCommunityPage = false;
- }
- if ( $GLOBALS['wgEnableWriteAPI'] && ( $canSaveUserPage ||
$canSaveCommunityPage ) ) {
- ?>
- <div class="collection-column-right-box" id="coll-savebox">
- <h2><span class="mw-headline"><?php $this->msg(
'coll-save_collection_title' ) ?></span></h2>
- <?php
- $this->msgWiki( 'coll-save_collection_text' );
- ?>
- <form id="saveForm" action="<?php echo
htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
- <table style="width:100%; background-color:
transparent;"><tbody>
- <?php if ( $canSaveUserPage ) { ?>
- <tr><td>
- <?php if ( $canSaveCommunityPage ) { ?>
- <input id="personalCollType" type="radio"
name="colltype" value="personal" checked="checked" />
- <?php } else { ?>
- <input type="hidden" name="colltype"
value="personal" />
- <?php } ?>
- <label for="personalCollTitle"><a href="<?php
echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Prefixindex', 'prefix=' .
wfUrlencode( $this->data['user-book-prefix'] ) ) ) ?>"><?php echo
htmlspecialchars( $this->data['user-book-prefix'] ) ?></a></label>
- </td>
- <td id="collection-save-input">
- <input id="personalCollTitle" type="text"
name="pcollname" />
- </td></tr>
- <?php } // if ($canSaveUserPage) ?>
- <?php if ( $canSaveCommunityPage ) { ?>
- <tr><td>
- <?php if ( $canSaveUserPage ) { ?>
- <input id="communityCollType" type="radio"
name="colltype" value="community" />
- <?php } else { ?>
- <input type="hidden" name="colltype"
value="community" />
- <?php } ?>
- <label for="communityCollTitle"><a href="<?php
echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Prefixindex', 'prefix=' .
wfUrlencode( $this->data['community-book-prefix'] ) ) ) ?>"><?php echo
htmlspecialchars( $this->data['community-book-prefix'] ) ?></a></label>
- </td>
- <td id="collection-save-button">
- <input id="communityCollTitle" type="text"
name="ccollname" disabled="disabled" />
- </td></tr>
- <?php } // if ($canSaveCommunityPage) ?>
- <tr><td> </td><td
id="collection-save-button">
- <input id="saveButton" type="submit"
value="<?php $this->msg( 'coll-save_collection' ) ?>"<?php if ( count(
$this->data['collection']['items'] ) == 0 ) { ?> disabled="disabled"<?php } ?>
/>
- </tr></tbody></table>
- <input name="token" type="hidden" value="<?php
echo htmlspecialchars( $GLOBALS['wgUser']->getEditToken() ) ?>" />
- <input name="bookcmd" type="hidden"
value="save_collection" />
- </form>
-
- <?php
- if ( !wfMessage( 'coll-bookscategory'
)->inContentLanguage()->isDisabled() ) {
- $this->msgWiki( 'coll-save_category' );
- }
- ?>
- </div>
- <?php } ?>
-
-</div>
-
-
-
-<?php
- }
-}
-
-/**
- * HTML template for Special:Book collection item list
- * @ingroup Templates
- */
-class CollectionListTemplate extends QuickTemplate {
- public function execute() {
- $mediapath = $GLOBALS['wgExtensionAssetsPath'] .
'/Collection/images/';
-?>
-
-<div class="collection-create-chapter-links">
-<a class="makeVisible" style="<?php if ( !isset( $this->data['is_ajax'] ) ) {
echo ' display:none;'; } ?>" onclick="return coll_create_chapter()"
href="javascript:void(0);"><?php $this->msg( 'coll-create_chapter' ) ?></a>
-<?php if ( count( $this->data['collection']['items'] ) > 0 ) { ?>
-<a onclick="return coll_sort_items()" href="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'sort_items' ) ) )
?>"><?php $this->msg( 'coll-sort_alphabetically' ) ?></a>
-<a onclick="return coll_clear_collection()" href="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'clear_collection' )
) ) ?>"><?php $this->msg( 'coll-clear_collection' ) ?></a>
-<?php } ?>
-</div>
-
-<div class="collection-create-chapter-list">
-
-<?php
-if ( count( $this->data['collection']['items'] ) == 0 ) { ?>
-<em id="emptyCollection"><?php $this->msg( 'coll-empty_collection' ); ?></em>
-<?php } else { ?>
-<div style="collection-create-chapter-list-text">
-<em class="makeVisible" style="display:none; font-size: 95%"><?php $this->msg(
'coll-drag_and_drop' ) ?></em>
-</div>
-<?php } ?>
-
-<ul id="collectionList">
-
-<?php
-if ( !isset( $this->data['collection']['items'] ) ) {
- return;
-}
-foreach ( $this->data['collection']['items'] as $index => $item ) {
- if ( $item['type'] == 'article' ) { ?>
- <li id="item-<?php echo intval( $index ) ?>" class="article">
- <a onclick="return coll_remove_item(<?php echo intval( $index )
?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book',
array( 'bookcmd' => 'remove_item', 'index' => $index ) ) ) ?>" title="<?php
$this->msg( 'coll-remove' ) ?>"><img src="<?php echo htmlspecialchars(
$mediapath . "remove.png" ) ?>" width="10" height="10" alt="<?php $this->msg(
'coll-remove' ) ?>" /></a><a>
- <noscript>
- <?php if ( $index == 0 ) { ?>
- <img src="<?php echo htmlspecialchars( $mediapath .
"trans.png" ) ?>" width="10" height="10" alt="" />
- <?php } else { ?>
- <a onclick="return coll_move_item(<?php echo intval(
$index ) . ', -1' ?>)" href="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta'
=> '-1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_up' )
?>"><img src="<?php echo htmlspecialchars( $mediapath . "up.png" ) ?>"
width="10" height="10" alt="<?php $this->msg( 'coll-move_up' ) ?>" /></a>
- <?php }
- if ( $index == count( $this->data['collection']['items'] ) - 1
) { ?>
- <img src="<?php echo htmlspecialchars( $mediapath .
"trans.png" ) ?>" width="10" height="10" alt="" />
- <?php } else { ?>
- <a onclick="return coll_move_item(<?php echo intval(
$index ) . ', 1' ?>)" href="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta'
=> '1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_down' )
?>"><img src="<?php echo htmlspecialchars( $mediapath . "down.png" ) ?>"
width="10" height="10" alt="<?php $this->msg( 'coll-move_down' ) ?>" /></a>
- <?php } ?>
- </noscript>
- <?php if ( $item['currentVersion'] == 0 ) {
- $url = $item['url'] . '?oldid=' . $item['revision'];
- } else {
- $url = $item['url'];
- }
- ?>
- <a href="<?php echo htmlspecialchars( $url ) ?>" title="<?php
$this->msg( 'coll-show' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath
. "show.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-show' )
?>" /></a>
- <span class="title sortableitem">
- <?php if ( isset( $item['displaytitle'] ) &&
$item['displaytitle'] != '' ) {
- echo htmlspecialchars( $item['displaytitle'] );
- } else {
- echo htmlspecialchars( $item['title'] );
- } ?>
- </span>
- </li>
- <?php } elseif ( $item['type'] == 'chapter' ) { ?>
- <li id="item-<?php echo intval( $index ) ?>" class="chapter">
- <a onclick="return coll_remove_item(<?php echo intval( $index )
?>)" href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book',
array( 'bookcmd' => 'remove_item', 'index=' => $index ) ) ) ?>" title="<?php
$this->msg( 'coll-remove' ) ?>"><img src="<?php echo htmlspecialchars(
$mediapath . "remove.png" ) ?>" width="10" height="10" alt="<?php $this->msg(
'coll-remove' ) ?>" /></a>
- <noscript>
- <?php if ( $index == 0 ) { ?>
- <img src="<?php echo htmlspecialchars( $mediapath .
"trans.png" ) ?>" width="10" height="10" alt="" />
- <?php } else { ?>
- <a onclick="return coll_move_item(<?php echo intval(
$index ) . ', -1' ?>)" href="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta'
=> '-1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_up' )
?>"><img src="<?php echo htmlspecialchars( $mediapath . "up.png" ) ?>"
width="10" height="10" alt="<?php $this->msg( 'coll-move_up' ) ?>" /></a>
- <?php }
- if ( $index == count( $this->data['collection']['items'] ) - 1
) { ?>
- <img src="<?php echo htmlspecialchars( $mediapath .
"trans.png" ) ?>" width="10" height="10" alt="" />
- <?php } else { ?>
- <a onclick="return coll_move_item(<?php echo intval(
$index ) . ', 1' ?>)" href="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'move_item', 'delta'
=> '1', 'index' => $index ) ) ) ?>" title="<?php $this->msg( 'coll-move_down' )
?>"><img src="<?php echo htmlspecialchars( $mediapath . "down.png" ) ?>"
width="10" height="10" alt="<?php $this->msg( 'coll-move_down' ) ?>" /></a>
- <?php } ?>
- </noscript>
- <img src="<?php echo htmlspecialchars( $mediapath . "trans.png"
) ?>" width="10" height="10" alt="" />
- <strong class="title sortableitem" style="margin-left:
0.2em;"><?php echo htmlspecialchars( $item['title'] ) ?></strong>
- <a class="makeVisible" <?php if ( !isset(
$this->data['is_ajax'] ) ) { echo 'style="display:none"'; } ?> onclick="<?php
echo htmlspecialchars( 'return coll_rename_chapter(' . intval( $index ) . ', '
. Xml::encodeJsVar( $item['title'] ) . ')' ) ?>"
href="javascript:void(0)">[<?php $this->msg( 'coll-rename' ) ?>]</a>
- </li>
- <?php }
-} ?>
-</ul>
-
-</div>
-
-<?php
- }
-}
-
-/**
- * HTML template for Special:Book/load_collection/ when overwriting an
exisiting collection
- * @ingroup Templates
- */
-class CollectionLoadOverwriteTemplate extends QuickTemplate {
- public function execute() {
-?>
-
-<?php $this->msgWiki( 'coll-load_overwrite_text' ); ?>
-
-<form action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl(
'Book' ) ) ?>" method="post">
- <input name="overwrite" type="submit" value="<?php $this->msg(
'coll-overwrite' ) ?>" />
- <input name="append" type="submit" value="<?php $this->msg(
'coll-append' ) ?>" />
- <input name="cancel" type="submit" value="<?php $this->msg(
'coll-cancel' ) ?>" />
- <input name="bookcmd" type="hidden" value="load_collection" />
- <input name="colltitle" type="hidden" value="<?php echo
htmlspecialchars( $this->data['title']->getPrefixedText() ) ?>" />
-</form>
-
-<?php
- }
-}
-
-/**
- * HTML template for Special:Book/save_collection/ when overwriting an
exisiting collection
- * @ingroup Templates
- */
-class CollectionSaveOverwriteTemplate extends QuickTemplate {
- public function execute() {
-?>
-
-<h2><span class="mw-headline"><?php $this->msg( 'coll-overwrite_title' )
?></span></h2>
-
-<?php echo wfMessage( 'coll-overwrite_text',
$this->data['title']->getPrefixedText() )->parseAsBlock(); ?>
-
-<form action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl(
'Book' ) ) ?>" method="post">
- <input name="overwrite" type="submit" value="<?php $this->msg(
'coll-yes' ) ?>" />
- <input name="abort" type="submit" value="<?php $this->msg( 'coll-no' )
?>" />
- <input name="pcollname" type="hidden" value="<?php echo
htmlspecialchars( $this->data['pcollname'] ) ?>" />
- <input name="ccollname" type="hidden" value="<?php echo
htmlspecialchars( $this->data['ccollname'] ) ?>" />
- <input name="colltype" type="hidden" value="<?php echo
htmlspecialchars( $this->data['colltype'] ) ?>" />
- <input name="token" type="hidden" value="<?php echo htmlspecialchars(
$GLOBALS['wgUser']->getEditToken() ) ?>" />
- <input name="bookcmd" type="hidden" value="save_collection" />
-</form>
-
-<?php
- }
-}
-
-/**
- * HTML template for Special:Book/rendering/ (in progress)
- * @ingroup Templates
- */
-class CollectionRenderingTemplate extends QuickTemplate {
- public function execute() {
-?>
-
-<span style="display:none" id="renderingStatusText"><?php echo wfMessage(
'coll-rendering_status', '%PARAM%' )->parse() ?></span>
-<span style="display:none" id="renderingArticle"><?php echo ' ' . wfMessage(
'coll-rendering_article', '%PARAM%' )->parse() ?></span>
-<span style="display:none" id="renderingPage"><?php echo ' ' . wfMessage(
'coll-rendering_page', '%PARAM%' )->parse() ?></span>
-
-<?php echo wfMessage( 'coll-rendering_text' )
- ->numParams( number_format( $this->data['progress'], 2,
'.', '' ) )
- ->params( $this->data['status'] )->parse() ?>
-
-<?php
- if ( CollectionSession::isEnabled() ) {
- $title_string = wfMessage(
'coll-rendering_collection_info_text_article' )->inContentLanguage()->text();
- } else {
- $title_string = wfMessage(
'coll-rendering_page_info_text_article' )->inContentLanguage()->text();
- }
- $t = Title::newFromText( $title_string );
- if ( $t && $t->exists() ) {
- echo $GLOBALS['wgOut']->parse( '{{:' . $t . '}}' );
- }
- }
-}
-
-/**
- * HTML template for Special:Book/rendering/ (finished)
- * @ingroup Templates
- */
-class CollectionFinishedTemplate extends QuickTemplate {
- public function execute() {
- global $wgCollectionShowRenderNotes;
-
-echo wfMessage( 'coll-rendering_finished_text', $this->data['download_url']
)->parseAsBlock();
-
-$t = Title::newFromText( $this->data['return_to'] );
-
-$notes = '';
-foreach ( $wgCollectionShowRenderNotes as $noteKey ) {
-
- if ( $noteKey === 'coll-rendering_finished_note_article_rdf2latex' ) {
- // Show a note specific to the rdf2latex when rendering an
article
- if ( $this->data['writer'] !== 'rdf2latex' ||
$t->isSpecialPage() ) {
- continue;
- }
- $tt = '{{int:printableversion}}';
- if ( $t && $t->isKnown() ) {
- # Direct link to printable version; only valid for
single articles.
- $tt = '[' . $t->getFullURL( [ 'printable' => 'yes' ] )
. " $tt]";
- }
- $noteMessage = wfMessage(
'coll-rendering_finished_note_article_rdf2latex', $tt );
- } else {
- $noteMessage = wfMessage( $noteKey );
- }
-
- if ( $noteMessage->exists() ) {
- $notes .= Html::rawElement(
- 'li',
- array(),
- Html::rawElement( 'p', array(), $noteMessage->parse() )
- );
- } else {
- wfDebugLog( 'collection', 'Note message key not found: ' .
$noteKey );
- }
-}
-
-if ( $notes !== '' || $this->data['is_cached'] ) {
- echo wfMessage( 'coll-rendering_finished_notes_heading'
)->parseAsBlock();
-}
-
-if ( $notes !== '' ) {
- echo Html::rawElement( 'ul', array(), $notes );
-}
-
-if ( $this->data['is_cached'] ) {
- $forceRenderURL = SkinTemplate::makeSpecialUrl(
- 'Book',
- 'bookcmd=forcerender&' . $this->data['query'],
- PROTO_RELATIVE
- );
- echo wfMessage( 'coll-is_cached', $forceRenderURL )->parseAsBlock();
-}
-if ( $t && $t->isKnown() ) {
- echo wfMessage( 'coll-return_to', $t )->parseAsBlock();
-}
-
-if ( CollectionSession::isEnabled() ) {
- $title_string = wfMessage( 'coll-finished_collection_info_text_article'
)->inContentLanguage()->text();
-} else {
- $title_string = wfMessage( 'coll-finished_page_info_text_article'
)->inContentLanguage()->text();
-}
-$t = Title::newFromText( $title_string );
-if ( $t && $t->exists() ) {
- echo $GLOBALS['wgOut']->parse( '{{:' . $t . '}}' );
-}
-?>
-
-<?php
- }
-}
-
-/**
- * HTML template for Special:Book/rendering/ (failed)
- * @ingroup Templates
- */
-class CollectionFailedTemplate extends QuickTemplate {
- public function execute() {
-
-echo wfMessage( 'coll-rendering_failed_text', $this->data['status']
)->parseAsBlock();
-
-$t = Title::newFromText( $this->data['return_to'] );
-if ( $t && $t->isKnown() ) {
- echo wfMessage( 'coll-return_to', $t )->parseAsBlock();
-}
-
-if ( CollectionSession::isEnabled() ) {
- $title_string = wfMessage( 'coll-failed_collection_info_text_article'
)->inContentLanguage()->text();
-} else {
- $title_string = wfMessage( 'coll-failed_page_info_text_article'
)->inContentLanguage()->text();
-}
-$t = Title::newFromText( $title_string );
-if ( $t && $t->exists() ) {
- echo $GLOBALS['wgOut']->parse( '{{:' . $t . '}}' );
-}
-?>
-
-<?php
- }
-}
-
-/**
- * Template for suggest feature
- *
- * It needs the two methods getProposalList() and getMemberList()
- * to run with Ajax
- */
-class CollectionSuggestTemplate extends QuickTemplate {
- public function execute () {
-?>
-<div>
- <?php $this->msg( 'coll-suggest_intro_text' ) ?>
- <div id="collectionSuggestStatus" style="text-align: center; margin:
5px auto 10px auto; padding: 0 4px; border: 1px solid #ed9; background-color:
#fea; visibility: hidden;"> </div>
- <table style="width: 100%; border-spacing: 10px;"><tbody><tr>
- <td style="padding: 10px; vertical-align: top;">
- <form method="post" action="<?php echo
htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' =>
'suggest' ) ) ) ?>">
- <strong style="font-size: 1.2em;"><?php
$this->msg( 'coll-suggested_articles' ) ?></strong>
- (<a href="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest',
'resetbans' => '1' ) ) ) ?>" title="<?php $this->msg(
'coll-suggest_reset_bans_tooltip' ) ?>"><?php $this->msg(
'coll-suggest_reset_bans' ) ?></a>)
- <?php if ( count( $this->data['proposals'] ) >
0 ) { ?>
- <noscript>
- <div id="collection-suggest-add">
- <input type="submit" value="<?php
$this->msg( 'coll-suggest_add_selected' ) ?>" name="addselected" />
- </div>
- </noscript>
- <?php } ?>
- <ul id="collectionSuggestions"
style="list-style: none; margin-left: 0;">
- <?php echo $this->getProposalList() ?>
- </ul>
- </form>
- </td>
- <td style="width: 45%; vertical-align: top;">
- <div style="padding: 10px; border: 1px solid #aaa;
background-color: #f9f9f9;">
- <strong style="font-size: 1.2em;"><?php
$this->msg( 'coll-suggest_your_book' ) ?></strong>
- (<span id="coll-num_pages"><?php echo
wfMessage( 'coll-n_pages' )->numParams( $this->data['num_pages'] )->escaped()
?></span><?php echo wfMessage( 'pipe-separator' )->plain() ?><a href="<?php
echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>"
title="<?php $this->msg( 'coll-show_collection_tooltip' ) ?>"><?php $this->msg(
'coll-suggest_show' ) ?></a>)
- <ul id="collectionMembers" style="list-style:
none; margin-left: 0;">
- <?php echo $this->getMemberList(); ?>
- </ul>
- </div>
- </td>
- </tr></tbody></table>
-</div>
-<?php
- }
-
- /**
- * needed for Ajax functions
- * @return string
- */
- public function getProposalList () {
- global $wgScript, $wgExtensionAssetsPath;
-
- $mediapath = $wgExtensionAssetsPath . '/Collection/images/';
- $baseUrl = $wgScript . "/";
-
- $prop = $this->data['proposals'];
- $out = '';
-
- $num = count( $prop );
- if ( $num == 0 ) {
- return "<li>" . wfMessage( 'coll-suggest_empty'
)->escaped() . "</li>";
- }
-
- $artName = $prop[0]['name'];
- $title = Title::newFromText( $artName );
- $url = $title->getLocalUrl();
- $out .= '<li style="margin-bottom: 10px; padding: 4px 4px;
background-color: #ddddff; font-size: 1.4em; font-weight: bold;">';
- $out .= '<noscript><input type="checkbox" value="' .
htmlspecialchars( $artName ) . '" name="articleList[]" /></noscript>';
- $out .= '<a onclick="' . htmlspecialchars(
'collectionSuggestCall("AddArticle", ' . Xml::encodeJsVar( array( $artName ) )
. '); return false;' ) . '" href="' . htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'add' =>
$artName ) ) ) . '" title="' . wfMessage( 'coll-add_page_tooltip' )->escaped()
. '"><img src="' . htmlspecialchars( $mediapath . 'silk-add.png' ) . '"
width="16" height="16" alt=""></a> ';
- $out .= '<a onclick="' . htmlspecialchars(
'collectionSuggestCall("BanArticle", ' . Xml::encodeJsVar( array( $artName ) )
. '); return false;' ) . '" href="' . htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'ban' =>
$artName ) ) ) . '" title="' . wfMessage( 'coll-suggest_ban_tooltip'
)->escaped() . '"><img src="' . htmlspecialchars( $mediapath .
'silk-cancel.png' ) . '" width="16" height="16" alt=""></a> ';
- $out .= '<a href="' . htmlspecialchars( $url ) . '" title="' .
htmlspecialchars( $artName ) . '">' . htmlspecialchars( $artName ) . '</a>';
- $out .= '</li>';
-
- for ( $i = 1; $i < $num; $i++ ) {
- $artName = $prop[$i]['name'];
- $url = $baseUrl . $artName;
- $url = str_replace( " ", "_", $url );
- $out .= '<li style="padding-left: 4px;">';
- $out .= '<noscript><input type="checkbox" value="' .
htmlspecialchars( $artName ) . '" name="articleList[]" /></noscript>';
- $out .= '<a onclick="' . htmlspecialchars(
'collectionSuggestCall("AddArticle", ' . Xml::encodeJsVar( array( $artName ) )
. '); return false;' ) . '" href="' . htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'add' =>
$artName ) ) ) . '" title="' . wfMessage( 'coll-add_page_tooltip' )->escaped()
. '"><img src="' . htmlspecialchars( $mediapath . 'silk-add.png' ) . '"
width="16" height="16" alt=""></a> ';
- $out .= '<a href="' . htmlspecialchars( $url ) . '"
title="' . htmlspecialchars( $artName ) . '">' . htmlspecialchars( $artName ) .
'</a>';
- $out .= '</li>';
- }
-
- return $out;
- }
-
- /**
- * needed for Ajax functions
- * @return string
- */
- public function getMemberList() {
- $mediapath = $GLOBALS['wgExtensionAssetsPath'] .
'/Collection/images/';
- $coll = $this->data['collection'];
- $out = '';
-
- $num = count( $coll['items'] );
- if ( $num == 0 ) $out .= "<li>" . wfMessage(
'coll-suggest_empty' )->escaped() . "</li>";
-
- for ( $i = 0; $i < $num; $i++ ) {
- $artName = $coll['items'][$i]['title'];
- if ( $coll['items'][$i]['type'] == 'article' ) {
- $out .= '<li><a href="' . htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'remove'
=> $artName ) ) ) . '" onclick="' . htmlspecialchars(
'collectionSuggestCall("RemoveArticle", ' . Xml::encodeJsVar( array( $artName )
) . '); return false;' ) . '" title="' . wfMessage( 'coll-remove_this_page'
)->escaped() . '"><img src="' . htmlspecialchars( $mediapath . 'remove.png' ) .
'" width="10" height="10" alt=""></a> ';
- $out .= '<a href="' . htmlspecialchars(
$coll['items'][$i]['url'] ) . '" title="' . htmlspecialchars( $artName ) . '">'
. htmlspecialchars( $artName ) . '</a></li>';
- }
- }
-
- return $out;
- }
-}
diff --git a/templates/CollectionFailedTemplate.php
b/templates/CollectionFailedTemplate.php
new file mode 100644
index 0000000..3ca1f94
--- /dev/null
+++ b/templates/CollectionFailedTemplate.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * @defgroup Templates Templates
+ * @file
+ * @ingroup Templates
+ */
+
+/**
+ * HTML template for Special:Book/rendering/ (failed)
+ * @ingroup Templates
+ */
+class CollectionFailedTemplate extends QuickTemplate {
+ public function execute() {
+
+ echo wfMessage( 'coll-rendering_failed_text',
$this->data['status'] )->parseAsBlock();
+
+ $t = Title::newFromText( $this->data['return_to'] );
+ if ( $t && $t->isKnown() ) {
+ echo wfMessage( 'coll-return_to', $t )->parseAsBlock();
+ }
+
+ if ( CollectionSession::isEnabled() ) {
+ $title_string = wfMessage(
'coll-failed_collection_info_text_article' )->inContentLanguage()->text();
+ } else {
+ $title_string = wfMessage(
'coll-failed_page_info_text_article' )->inContentLanguage()->text();
+ }
+ $t = Title::newFromText( $title_string );
+ if ( $t && $t->exists() ) {
+ echo $GLOBALS['wgOut']->parse( '{{:' . $t . '}}' );
+ }
+ ?>
+
+ <?php
+ }
+}
diff --git a/templates/CollectionFinishedTemplate.php
b/templates/CollectionFinishedTemplate.php
new file mode 100644
index 0000000..bcf8c1e
--- /dev/null
+++ b/templates/CollectionFinishedTemplate.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * @defgroup Templates Templates
+ * @file
+ * @ingroup Templates
+ */
+
+/**
+ * HTML template for Special:Book/rendering/ (finished)
+ * @ingroup Templates
+ */
+class CollectionFinishedTemplate extends QuickTemplate {
+ public function execute() {
+ global $wgCollectionShowRenderNotes;
+
+ echo wfMessage( 'coll-rendering_finished_text',
$this->data['download_url'] )->parseAsBlock();
+
+ $t = Title::newFromText( $this->data['return_to'] );
+
+ $notes = '';
+ foreach ( $wgCollectionShowRenderNotes as $noteKey ) {
+
+ if ( $noteKey ===
'coll-rendering_finished_note_article_rdf2latex' ) {
+ // Show a note specific to the rdf2latex when
rendering an article
+ if ( $this->data['writer'] !== 'rdf2latex' ||
$t->isSpecialPage() ) {
+ continue;
+ }
+ $tt = '{{int:printableversion}}';
+ if ( $t && $t->isKnown() ) {
+ # Direct link to printable version;
only valid for single articles.
+ $tt = '[' . $t->getFullURL( [
'printable' => 'yes' ] ) . " $tt]";
+ }
+ $noteMessage = wfMessage(
'coll-rendering_finished_note_article_rdf2latex', $tt );
+ } else {
+ $noteMessage = wfMessage( $noteKey );
+ }
+
+ if ( $noteMessage->exists() ) {
+ $notes .= Html::rawElement(
+ 'li',
+ array(),
+ Html::rawElement( 'p', array(),
$noteMessage->parse() )
+ );
+ } else {
+ wfDebugLog( 'collection', 'Note message key not
found: ' . $noteKey );
+ }
+ }
+
+ if ( $notes !== '' || $this->data['is_cached'] ) {
+ echo wfMessage( 'coll-rendering_finished_notes_heading'
)->parseAsBlock();
+ }
+
+ if ( $notes !== '' ) {
+ echo Html::rawElement( 'ul', array(), $notes );
+ }
+
+ if ( $this->data['is_cached'] ) {
+ $forceRenderURL = SkinTemplate::makeSpecialUrl(
+ 'Book',
+ 'bookcmd=forcerender&' . $this->data['query'],
+ PROTO_RELATIVE
+ );
+ echo wfMessage( 'coll-is_cached', $forceRenderURL
)->parseAsBlock();
+ }
+ if ( $t && $t->isKnown() ) {
+ echo wfMessage( 'coll-return_to', $t )->parseAsBlock();
+ }
+
+ if ( CollectionSession::isEnabled() ) {
+ $title_string = wfMessage(
'coll-finished_collection_info_text_article' )->inContentLanguage()->text();
+ } else {
+ $title_string = wfMessage(
'coll-finished_page_info_text_article' )->inContentLanguage()->text();
+ }
+ $t = Title::newFromText( $title_string );
+ if ( $t && $t->exists() ) {
+ echo $GLOBALS['wgOut']->parse( '{{:' . $t . '}}' );
+ }
+ ?>
+
+ <?php
+ }
+}
diff --git a/templates/CollectionListTemplate.php
b/templates/CollectionListTemplate.php
new file mode 100644
index 0000000..ba0d288
--- /dev/null
+++ b/templates/CollectionListTemplate.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * @defgroup Templates Templates
+ * @file
+ * @ingroup Templates
+ */
+
+/**
+ * HTML template for Special:Book collection item list
+ * @ingroup Templates
+ */
+class CollectionListTemplate extends QuickTemplate {
+ public function execute() {
+ $mediapath = $GLOBALS['wgExtensionAssetsPath'] .
'/Collection/images/';
+ ?>
+
+ <div class="collection-create-chapter-links">
+ <a class="makeVisible" style="<?php if ( !isset(
$this->data['is_ajax'] ) ) { echo ' display:none;'; } ?>" onclick="return
coll_create_chapter()" href="javascript:void(0);"><?php $this->msg(
'coll-create_chapter' ) ?></a>
+ <?php if ( count( $this->data['collection']['items'] )
> 0 ) { ?>
+ <a onclick="return coll_sort_items()"
href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array(
'bookcmd' => 'sort_items' ) ) ) ?>"><?php $this->msg(
'coll-sort_alphabetically' ) ?></a>
+ <a onclick="return coll_clear_collection()"
href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array(
'bookcmd' => 'clear_collection' ) ) ) ?>"><?php $this->msg(
'coll-clear_collection' ) ?></a>
+ <?php } ?>
+ </div>
+
+ <div class="collection-create-chapter-list">
+
+ <?php
+ if ( count( $this->data['collection']['items'] ) == 0 )
{ ?>
+ <em id="emptyCollection"><?php $this->msg(
'coll-empty_collection' ); ?></em>
+ <?php } else { ?>
+ <div
style="collection-create-chapter-list-text">
+ <em class="makeVisible"
style="display:none; font-size: 95%"><?php $this->msg( 'coll-drag_and_drop' )
?></em>
+ </div>
+ <?php } ?>
+
+ <ul id="collectionList">
+
+ <?php
+ if ( !isset( $this->data['collection']['items']
) ) {
+ return;
+ }
+ foreach ( $this->data['collection']['items'] as
$index => $item ) {
+ if ( $item['type'] == 'article' ) { ?>
+ <li id="item-<?php echo intval(
$index ) ?>" class="article">
+ <a onclick="return
coll_remove_item(<?php echo intval( $index ) ?>)" href="<?php echo
htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' =>
'remove_item', 'index' => $index ) ) ) ?>" title="<?php $this->msg(
'coll-remove' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath .
"remove.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-remove'
) ?>" /></a><a>
+ <noscript>
+ <?php
if ( $index == 0 ) { ?>
+
<img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>"
width="10" height="10" alt="" />
+ <?php }
else { ?>
+
<a onclick="return coll_move_item(<?php echo intval( $index ) . ', -1' ?>)"
href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array(
'bookcmd' => 'move_item', 'delta' => '-1', 'index' => $index ) ) ) ?>"
title="<?php $this->msg( 'coll-move_up' ) ?>"><img src="<?php echo
htmlspecialchars( $mediapath . "up.png" ) ?>" width="10" height="10" alt="<?php
$this->msg( 'coll-move_up' ) ?>" /></a>
+ <?php }
+ if (
$index == count( $this->data['collection']['items'] ) - 1 ) { ?>
+
<img src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>"
width="10" height="10" alt="" />
+ <?php }
else { ?>
+
<a onclick="return coll_move_item(<?php echo intval( $index ) . ', 1' ?>)"
href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array(
'bookcmd' => 'move_item', 'delta' => '1', 'index' => $index ) ) ) ?>"
title="<?php $this->msg( 'coll-move_down' ) ?>"><img src="<?php echo
htmlspecialchars( $mediapath . "down.png" ) ?>" width="10" height="10"
alt="<?php $this->msg( 'coll-move_down' ) ?>" /></a>
+ <?php }
?>
+ </noscript>
+ <?php if (
$item['currentVersion'] == 0 ) {
+ $url =
$item['url'] . '?oldid=' . $item['revision'];
+ } else {
+ $url =
$item['url'];
+ }
+ ?>
+ <a href="<?php
echo htmlspecialchars( $url ) ?>" title="<?php $this->msg( 'coll-show' )
?>"><img src="<?php echo htmlspecialchars( $mediapath . "show.png" ) ?>"
width="10" height="10" alt="<?php $this->msg( 'coll-show' ) ?>" /></a>
+ <span class="title sortableitem">
+ <?php if ( isset( $item['displaytitle'] ) &&
$item['displaytitle'] != '' ) {
+ echo htmlspecialchars( $item['displaytitle'] );
+ } else {
+ echo htmlspecialchars( $item['title'] );
+ } ?>
+ </span>
+ </li>
+ <?php } elseif ( $item['type'] ==
'chapter' ) { ?>
+ <li id="item-<?php echo intval(
$index ) ?>" class="chapter">
+ <a onclick="return
coll_remove_item(<?php echo intval( $index ) ?>)" href="<?php echo
htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' =>
'remove_item', 'index=' => $index ) ) ) ?>" title="<?php $this->msg(
'coll-remove' ) ?>"><img src="<?php echo htmlspecialchars( $mediapath .
"remove.png" ) ?>" width="10" height="10" alt="<?php $this->msg( 'coll-remove'
) ?>" /></a>
+ <noscript>
+ <?php if (
$index == 0 ) { ?>
+ <img
src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10"
height="10" alt="" />
+ <?php } else {
?>
+ <a
onclick="return coll_move_item(<?php echo intval( $index ) . ', -1' ?>)"
href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array(
'bookcmd' => 'move_item', 'delta' => '-1', 'index' => $index ) ) ) ?>"
title="<?php $this->msg( 'coll-move_up' ) ?>"><img src="<?php echo
htmlspecialchars( $mediapath . "up.png" ) ?>" width="10" height="10" alt="<?php
$this->msg( 'coll-move_up' ) ?>" /></a>
+ <?php }
+ if ( $index ==
count( $this->data['collection']['items'] ) - 1 ) { ?>
+ <img
src="<?php echo htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10"
height="10" alt="" />
+ <?php } else {
?>
+ <a
onclick="return coll_move_item(<?php echo intval( $index ) . ', 1' ?>)"
href="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array(
'bookcmd' => 'move_item', 'delta' => '1', 'index' => $index ) ) ) ?>"
title="<?php $this->msg( 'coll-move_down' ) ?>"><img src="<?php echo
htmlspecialchars( $mediapath . "down.png" ) ?>" width="10" height="10"
alt="<?php $this->msg( 'coll-move_down' ) ?>" /></a>
+ <?php } ?>
+ </noscript>
+ <img src="<?php echo
htmlspecialchars( $mediapath . "trans.png" ) ?>" width="10" height="10" alt=""
/>
+ <strong class="title
sortableitem" style="margin-left: 0.2em;"><?php echo htmlspecialchars(
$item['title'] ) ?></strong>
+ <a class="makeVisible"
<?php if ( !isset( $this->data['is_ajax'] ) ) { echo 'style="display:none"'; }
?> onclick="<?php echo htmlspecialchars( 'return coll_rename_chapter(' .
intval( $index ) . ', ' . Xml::encodeJsVar( $item['title'] ) . ')' ) ?>"
href="javascript:void(0)">[<?php $this->msg( 'coll-rename' ) ?>]</a>
+ </li>
+ <?php }
+ } ?>
+ </ul>
+
+ </div>
+
+ <?php
+ }
+}
diff --git a/templates/CollectionLoadOverwriteTemplate.php
b/templates/CollectionLoadOverwriteTemplate.php
new file mode 100644
index 0000000..abf303b
--- /dev/null
+++ b/templates/CollectionLoadOverwriteTemplate.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * @defgroup Templates Templates
+ * @file
+ * @ingroup Templates
+ */
+
+/**
+ * HTML template for Special:Book/load_collection/ when overwriting an
exisiting collection
+ * @ingroup Templates
+ */
+class CollectionLoadOverwriteTemplate extends QuickTemplate {
+ public function execute() {
+ ?>
+
+ <?php $this->msgWiki( 'coll-load_overwrite_text' ); ?>
+
+ <form action="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
+ <input name="overwrite" type="submit" value="<?php
$this->msg( 'coll-overwrite' ) ?>" />
+ <input name="append" type="submit" value="<?php
$this->msg( 'coll-append' ) ?>" />
+ <input name="cancel" type="submit" value="<?php
$this->msg( 'coll-cancel' ) ?>" />
+ <input name="bookcmd" type="hidden"
value="load_collection" />
+ <input name="colltitle" type="hidden" value="<?php echo
htmlspecialchars( $this->data['title']->getPrefixedText() ) ?>" />
+ </form>
+
+ <?php
+ }
+}
diff --git a/templates/CollectionPageTemplate.php
b/templates/CollectionPageTemplate.php
new file mode 100644
index 0000000..fa1ff8b
--- /dev/null
+++ b/templates/CollectionPageTemplate.php
@@ -0,0 +1,233 @@
+<?php
+/**
+ * @defgroup Templates Templates
+ * @file
+ * @ingroup Templates
+ */
+
+/**
+ * HTML template for Special:Book
+ * @ingroup Templates
+ */
+class CollectionPageTemplate extends QuickTemplate {
+ public function execute() {
+ $data = array(
+ 'collectionTitle' => $this->data['collection']['title'],
+ 'collectionSubtitle' =>
$this->data['collection']['subtitle'],
+ );
+ $fields = array(
+ 'collectionTitle' => array(
+ 'type' => 'text',
+ 'label-message' => 'coll-title',
+ 'id' => 'titleInput',
+ 'size' => '',
+ 'name' => 'collectionTitle',
+ ),
+ 'collectionSubtitle' => array(
+ 'type' => 'text',
+ 'label-message' => 'coll-subtitle',
+ 'id' => 'subtitleInput',
+ 'size' => '',
+ 'name' => 'collectionSubtitle',
+ ),
+ );
+ foreach ( $this->data['settings'] as $fieldname => $descriptor
) {
+ if ( isset( $descriptor['options'] ) && is_array(
$descriptor['options'] ) ) {
+ $options = array();
+ foreach ( $descriptor['options'] as $msg =>
$value ) {
+ $msg = wfMessage( $msg )->text();
+ $options[$msg] = $value;
+ }
+ $descriptor['options'] = $options;
+ }
+ $descriptor['id'] = "coll-input-setting-$fieldname";
+ $descriptor['name'] = $fieldname;
+ $fields[$fieldname] = $descriptor;
+ if ( isset(
$this->data['collection']['settings'][$fieldname] ) ) {
+ $data[$fieldname] =
$this->data['collection']['settings'][$fieldname];
+ }
+ }
+
+ $context = new DerivativeContext( $this->data['context'] );
+ $context->setRequest( new FauxRequest( $data ) );
+ $form = new HTMLForm( $fields, $context );
+ $form->setMethod( 'post' )
+ ->addHiddenField( 'bookcmd', 'set_titles' )
+ ->suppressDefaultSubmit()
+ ->setTitle( SpecialPage::getTitleFor( 'Book' ) )
+ ->setId( 'mw-collection-title-form' )
+ ->setTableId( 'mw-collection-title-table' )
+ ->setFooterText(
+ '<noscript>' .
+ '<input type="submit" value="' . $this->msg(
'coll-update' ) . '" />' .
+ '</noscript>'
+ )
+ ->prepareForm();
+ ?>
+
+ <div class="collection-column collection-column-left">
+
+ <?php echo $form->getHTML( '' ) ?>
+
+ <div id="collectionListContainer">
+ <?php
+ $listTemplate = new CollectionListTemplate();
+ $listTemplate->set( 'collection',
$this->data['collection'] );
+ $listTemplate->execute();
+ ?>
+ </div>
+ <div style="display:none">
+ <span id="newChapterText"><?php $this->msg(
'coll-new_chapter' ) ?></span>
+ <span id="renameChapterText"><?php $this->msg(
'coll-rename_chapter' ) ?></span>
+ <span id="clearCollectionConfirmText"><?php
$this->msg( 'coll-clear_collection_confirm' ) ?></span>
+ </div>
+
+ </div>
+
+ <div class="collection-column collection-column-right">
+ <?php if ( $this->data['podpartners'] ) { ?>
+ <div class="collection-column-right-box"
id="coll-orderbox">
+ <h2><span class="mw-headline"><?php
$this->msg( 'coll-book_title' ) ?></span></h2>
+ <?php
+ $this->msgWiki( 'coll-book_text' );
+ ?>
+ <ul>
+ <?php
+ foreach (
$this->data['podpartners'] as $partnerKey => $partnerData ) {
+ $infopage = false;
+ $partnerClasses = "";
+ $about_partner =
wfMessage( 'coll-about_pp', $partnerData['name'] )->escaped();
+ if ( isset(
$partnerData['infopagetitle'] ) ) {
+ $infopage =
Title::newFromText( wfMessage( $partnerData['infopagetitle']
)->inContentLanguage()->text() );
+ if ( $infopage
&& $infopage->exists() ) {
+
$partnerClasses = " coll-more_info collapsed";
+ }
+ }
+ ?>
+ <li
class="collection-partner<?php echo $partnerClasses ?>">
+ <div>
+ <div><a
class="coll-partnerlink" href="<?php echo htmlspecialchars( $partnerData['url']
) ?>"><?php echo $about_partner; ?></a></div>
+ <?php
+ if (
$infopage && $infopage->exists() ) { ?>
+
<div class="coll-order_info" style="display:none;">
+
<?php
+
echo $GLOBALS['wgOut']->parse( '{{:' . $infopage . '}}' );
+
?>
+
</div>
+ <?php
} ?>
+ <div
class="collection-order-button">
+
<form action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book'
) ) ?>" method="post">
+
<input type="hidden" name="bookcmd" value="post_zip" />
+
<input type="hidden" name="partner" value="<?php echo htmlspecialchars(
$partnerKey ) ?>" />
+
<input type="submit" value="<?php echo wfMessage( 'coll-order_from_pp',
$partnerData['name'] )->escaped() ?>" class="order" <?php if ( count(
$this->data['collection']['items'] ) == 0 ) { ?> disabled="disabled"<?php } ?>
/>
+
</form>
+ </div>
+ </div>
+ </li>
+ <?php
+ } /* foreach */
+ ?>
+ </ul></div>
+ <?php
+ } /* if */
+ ?>
+
+ <div class="collection-column-right-box"
id="coll-downloadbox">
+ <h2><span class="mw-headline"><?php $this->msg(
'coll-download_title' ) ?></span></h2>
+ <?php if ( count( $this->data['formats'] ) == 1
) {
+ $writer = array_rand(
$this->data['formats'] );
+ echo wfMessage(
'coll-download_as_text', $this->data['formats'][$writer] )->parseAsBlock();
+ $buttonLabel = wfMessage(
'coll-download_as', $this->data['formats'][$writer] )->escaped();
+ } else {
+ $this->msgWiki( 'coll-download_text' );
+ $buttonLabel = wfMessage(
'coll-download' )->escaped();
+ } ?>
+ <form id="downloadForm" action="<?php echo
htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
+ <table style="width:100%;
background-color: transparent;"><tr><td><tbody><tr><td>
+
<?php if ( count( $this->data['formats'] ) == 1 ) { ?>
+
<input type="hidden" name="writer" value="<?php echo htmlspecialchars(
$writer ) ?>" />
+
<?php } else { ?>
+
<label for="formatSelect"><?php $this->msg( 'coll-format_label' )
?></label>
+
<select id="formatSelect" name="writer">
+
<?php foreach ( $this->data['formats'] as $writer => $name ) {
+
// Give grep a chance to find the usages:
+
// coll-format-rl, coll-format-epub, coll-format-odf,
+
// coll-format-zim, coll-format-docbook,
coll-format-okawix_zeno
+
?>
+
<option value="<?php echo htmlspecialchars( $writer )
?>"><?php echo wfMessage( 'coll-format-' . $writer )->escaped() ?></option>
+
<?php } ?>
+
</select>
+
<?php } ?>
+
</td><td id="collection-download-button">
+
<input type="hidden" name="bookcmd" value="render" />
+
<input type="hidden" name="returnto" value="<?php echo
SpecialPage::getTitleFor( 'Book' )->getPrefixedText(); ?>" />
+
<input id="downloadButton" type="submit" value="<?php echo $buttonLabel
?>"<?php if ( count( $this->data['collection']['items'] ) == 0 ) { ?>
disabled="disabled"<?php } ?> />
+
</td></tr></tbody></table>
+ </form>
+ </div>
+
+ <?php
+ if ( $GLOBALS['wgUser']->isLoggedIn() ) {
+ $canSaveUserPage =
$GLOBALS['wgUser']->isAllowed( 'collectionsaveasuserpage' );
+ $canSaveCommunityPage =
$GLOBALS['wgUser']->isAllowed( 'collectionsaveascommunitypage' );
+ } else {
+ $canSaveUserPage = false;
+ $canSaveCommunityPage = false;
+ }
+ if ( $GLOBALS['wgEnableWriteAPI'] && ( $canSaveUserPage
|| $canSaveCommunityPage ) ) {
+ ?>
+ <div class="collection-column-right-box"
id="coll-savebox">
+ <h2><span class="mw-headline"><?php
$this->msg( 'coll-save_collection_title' ) ?></span></h2>
+ <?php
+ $this->msgWiki(
'coll-save_collection_text' );
+ ?>
+ <form id="saveForm" action="<?php echo
htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
+ <table style="width:100%;
background-color: transparent;"><tbody>
+ <?php if (
$canSaveUserPage ) { ?>
+ <tr><td>
+
<?php if ( $canSaveCommunityPage ) { ?>
+
<input id="personalCollType" type="radio" name="colltype"
value="personal" checked="checked" />
+
<?php } else { ?>
+
<input type="hidden" name="colltype" value="personal" />
+
<?php } ?>
+
<label for="personalCollTitle"><a href="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Prefixindex', 'prefix=' . wfUrlencode(
$this->data['user-book-prefix'] ) ) ) ?>"><?php echo htmlspecialchars(
$this->data['user-book-prefix'] ) ?></a></label>
+ </td>
+ <td
id="collection-save-input">
+
<input id="personalCollTitle" type="text" name="pcollname" />
+
</td></tr>
+ <?php } // if
($canSaveUserPage) ?>
+ <?php if (
$canSaveCommunityPage ) { ?>
+ <tr><td>
+
<?php if ( $canSaveUserPage ) { ?>
+
<input id="communityCollType" type="radio" name="colltype"
value="community" />
+
<?php } else { ?>
+
<input type="hidden" name="colltype" value="community" />
+
<?php } ?>
+
<label for="communityCollTitle"><a href="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Prefixindex', 'prefix=' . wfUrlencode(
$this->data['community-book-prefix'] ) ) ) ?>"><?php echo htmlspecialchars(
$this->data['community-book-prefix'] ) ?></a></label>
+ </td>
+ <td
id="collection-save-button">
+
<input id="communityCollTitle" type="text" name="ccollname" disabled="disabled"
/>
+
</td></tr>
+ <?php } // if
($canSaveCommunityPage) ?>
+ <tr><td> </td><td
id="collection-save-button">
+ <input
id="saveButton" type="submit" value="<?php $this->msg( 'coll-save_collection' )
?>"<?php if ( count( $this->data['collection']['items'] ) == 0 ) { ?>
disabled="disabled"<?php } ?> />
+ </tr></tbody></table>
+ <input name="token"
type="hidden" value="<?php echo htmlspecialchars(
$GLOBALS['wgUser']->getEditToken() ) ?>" />
+ <input name="bookcmd"
type="hidden" value="save_collection" />
+ </form>
+
+ <?php
+ if ( !wfMessage( 'coll-bookscategory'
)->inContentLanguage()->isDisabled() ) {
+ $this->msgWiki(
'coll-save_category' );
+ }
+ ?>
+ </div>
+ <?php } ?>
+
+ </div>
+
+
+
+ <?php
+ }
+}
diff --git a/templates/CollectionRenderingTemplate.php
b/templates/CollectionRenderingTemplate.php
new file mode 100644
index 0000000..4501869
--- /dev/null
+++ b/templates/CollectionRenderingTemplate.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * @defgroup Templates Templates
+ * @file
+ * @ingroup Templates
+ */
+
+/**
+ * HTML template for Special:Book/rendering/ (in progress)
+ * @ingroup Templates
+ */
+class CollectionRenderingTemplate extends QuickTemplate {
+ public function execute() {
+ ?>
+
+ <span style="display:none" id="renderingStatusText"><?php echo
wfMessage( 'coll-rendering_status', '%PARAM%' )->parse() ?></span>
+ <span style="display:none" id="renderingArticle"><?php echo ' '
. wfMessage( 'coll-rendering_article', '%PARAM%' )->parse() ?></span>
+ <span style="display:none" id="renderingPage"><?php echo ' ' .
wfMessage( 'coll-rendering_page', '%PARAM%' )->parse() ?></span>
+
+ <?php echo wfMessage( 'coll-rendering_text' )
+ ->numParams( number_format( $this->data['progress'], 2,
'.', '' ) )
+ ->params( $this->data['status'] )->parse() ?>
+
+ <?php
+ if ( CollectionSession::isEnabled() ) {
+ $title_string = wfMessage(
'coll-rendering_collection_info_text_article' )->inContentLanguage()->text();
+ } else {
+ $title_string = wfMessage(
'coll-rendering_page_info_text_article' )->inContentLanguage()->text();
+ }
+ $t = Title::newFromText( $title_string );
+ if ( $t && $t->exists() ) {
+ echo $GLOBALS['wgOut']->parse( '{{:' . $t . '}}' );
+ }
+ }
+}
diff --git a/templates/CollectionSaveOverwriteTemplate.php
b/templates/CollectionSaveOverwriteTemplate.php
new file mode 100644
index 0000000..9d83519
--- /dev/null
+++ b/templates/CollectionSaveOverwriteTemplate.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * @defgroup Templates Templates
+ * @file
+ * @ingroup Templates
+ */
+
+/**
+ * HTML template for Special:Book/save_collection/ when overwriting an
exisiting collection
+ * @ingroup Templates
+ */
+class CollectionSaveOverwriteTemplate extends QuickTemplate {
+ public function execute() {
+ ?>
+
+ <h2><span class="mw-headline"><?php $this->msg(
'coll-overwrite_title' ) ?></span></h2>
+
+ <?php echo wfMessage( 'coll-overwrite_text',
$this->data['title']->getPrefixedText() )->parseAsBlock(); ?>
+
+ <form action="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" method="post">
+ <input name="overwrite" type="submit" value="<?php
$this->msg( 'coll-yes' ) ?>" />
+ <input name="abort" type="submit" value="<?php
$this->msg( 'coll-no' ) ?>" />
+ <input name="pcollname" type="hidden" value="<?php echo
htmlspecialchars( $this->data['pcollname'] ) ?>" />
+ <input name="ccollname" type="hidden" value="<?php echo
htmlspecialchars( $this->data['ccollname'] ) ?>" />
+ <input name="colltype" type="hidden" value="<?php echo
htmlspecialchars( $this->data['colltype'] ) ?>" />
+ <input name="token" type="hidden" value="<?php echo
htmlspecialchars( $GLOBALS['wgUser']->getEditToken() ) ?>" />
+ <input name="bookcmd" type="hidden"
value="save_collection" />
+ </form>
+
+ <?php
+ }
+}
diff --git a/templates/CollectionSuggestTemplate.php
b/templates/CollectionSuggestTemplate.php
new file mode 100644
index 0000000..c347adc
--- /dev/null
+++ b/templates/CollectionSuggestTemplate.php
@@ -0,0 +1,115 @@
+<?php
+/**
+ * @defgroup Templates Templates
+ * @file
+ * @ingroup Templates
+ */
+
+/**
+ * Template for suggest feature
+ *
+ * It needs the two methods getProposalList() and getMemberList()
+ * to run with Ajax
+ */
+class CollectionSuggestTemplate extends QuickTemplate {
+ public function execute () {
+ ?>
+ <div>
+ <?php $this->msg( 'coll-suggest_intro_text' ) ?>
+ <div id="collectionSuggestStatus" style="text-align:
center; margin: 5px auto 10px auto; padding: 0 4px; border: 1px solid #ed9;
background-color: #fea; visibility: hidden;"> </div>
+ <table style="width: 100%; border-spacing:
10px;"><tbody><tr>
+ <td style="padding: 10px;
vertical-align: top;">
+ <form method="post"
action="<?php echo htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book',
array( 'bookcmd' => 'suggest' ) ) ) ?>">
+ <strong
style="font-size: 1.2em;"><?php $this->msg( 'coll-suggested_articles' )
?></strong>
+ (<a href="<?php echo
htmlspecialchars( SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' =>
'suggest', 'resetbans' => '1' ) ) ) ?>" title="<?php $this->msg(
'coll-suggest_reset_bans_tooltip' ) ?>"><?php $this->msg(
'coll-suggest_reset_bans' ) ?></a>)
+ <?php if ( count(
$this->data['proposals'] ) > 0 ) { ?>
+ <noscript>
+ <div
id="collection-suggest-add">
+
<input type="submit" value="<?php $this->msg( 'coll-suggest_add_selected' ) ?>"
name="addselected" />
+ </div>
+ </noscript>
+ <?php } ?>
+ <ul
id="collectionSuggestions" style="list-style: none; margin-left: 0;">
+ <?php echo
$this->getProposalList() ?>
+ </ul>
+ </form>
+ </td>
+ <td style="width: 45%; vertical-align:
top;">
+ <div style="padding: 10px;
border: 1px solid #aaa; background-color: #f9f9f9;">
+ <strong
style="font-size: 1.2em;"><?php $this->msg( 'coll-suggest_your_book' )
?></strong>
+ (<span
id="coll-num_pages"><?php echo wfMessage( 'coll-n_pages' )->numParams(
$this->data['num_pages'] )->escaped() ?></span><?php echo wfMessage(
'pipe-separator' )->plain() ?><a href="<?php echo htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book' ) ) ?>" title="<?php $this->msg(
'coll-show_collection_tooltip' ) ?>"><?php $this->msg( 'coll-suggest_show' )
?></a>)
+ <ul
id="collectionMembers" style="list-style: none; margin-left: 0;">
+ <?php echo
$this->getMemberList(); ?>
+ </ul>
+ </div>
+ </td>
+ </tr></tbody></table>
+ </div>
+ <?php
+ }
+
+ /**
+ * needed for Ajax functions
+ * @return string
+ */
+ public function getProposalList () {
+ global $wgScript, $wgExtensionAssetsPath;
+
+ $mediapath = $wgExtensionAssetsPath . '/Collection/images/';
+ $baseUrl = $wgScript . "/";
+
+ $prop = $this->data['proposals'];
+ $out = '';
+
+ $num = count( $prop );
+ if ( $num == 0 ) {
+ return "<li>" . wfMessage( 'coll-suggest_empty'
)->escaped() . "</li>";
+ }
+
+ $artName = $prop[0]['name'];
+ $title = Title::newFromText( $artName );
+ $url = $title->getLocalUrl();
+ $out .= '<li style="margin-bottom: 10px; padding: 4px 4px;
background-color: #ddddff; font-size: 1.4em; font-weight: bold;">';
+ $out .= '<noscript><input type="checkbox" value="' .
htmlspecialchars( $artName ) . '" name="articleList[]" /></noscript>';
+ $out .= '<a onclick="' . htmlspecialchars(
'collectionSuggestCall("AddArticle", ' . Xml::encodeJsVar( array( $artName ) )
. '); return false;' ) . '" href="' . htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'add' =>
$artName ) ) ) . '" title="' . wfMessage( 'coll-add_page_tooltip' )->escaped()
. '"><img src="' . htmlspecialchars( $mediapath . 'silk-add.png' ) . '"
width="16" height="16" alt=""></a> ';
+ $out .= '<a onclick="' . htmlspecialchars(
'collectionSuggestCall("BanArticle", ' . Xml::encodeJsVar( array( $artName ) )
. '); return false;' ) . '" href="' . htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'ban' =>
$artName ) ) ) . '" title="' . wfMessage( 'coll-suggest_ban_tooltip'
)->escaped() . '"><img src="' . htmlspecialchars( $mediapath .
'silk-cancel.png' ) . '" width="16" height="16" alt=""></a> ';
+ $out .= '<a href="' . htmlspecialchars( $url ) . '" title="' .
htmlspecialchars( $artName ) . '">' . htmlspecialchars( $artName ) . '</a>';
+ $out .= '</li>';
+
+ for ( $i = 1; $i < $num; $i++ ) {
+ $artName = $prop[$i]['name'];
+ $url = $baseUrl . $artName;
+ $url = str_replace( " ", "_", $url );
+ $out .= '<li style="padding-left: 4px;">';
+ $out .= '<noscript><input type="checkbox" value="' .
htmlspecialchars( $artName ) . '" name="articleList[]" /></noscript>';
+ $out .= '<a onclick="' . htmlspecialchars(
'collectionSuggestCall("AddArticle", ' . Xml::encodeJsVar( array( $artName ) )
. '); return false;' ) . '" href="' . htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'add' =>
$artName ) ) ) . '" title="' . wfMessage( 'coll-add_page_tooltip' )->escaped()
. '"><img src="' . htmlspecialchars( $mediapath . 'silk-add.png' ) . '"
width="16" height="16" alt=""></a> ';
+ $out .= '<a href="' . htmlspecialchars( $url ) . '"
title="' . htmlspecialchars( $artName ) . '">' . htmlspecialchars( $artName ) .
'</a>';
+ $out .= '</li>';
+ }
+
+ return $out;
+ }
+
+ /**
+ * needed for Ajax functions
+ * @return string
+ */
+ public function getMemberList() {
+ $mediapath = $GLOBALS['wgExtensionAssetsPath'] .
'/Collection/images/';
+ $coll = $this->data['collection'];
+ $out = '';
+
+ $num = count( $coll['items'] );
+ if ( $num == 0 ) $out .= "<li>" . wfMessage(
'coll-suggest_empty' )->escaped() . "</li>";
+
+ for ( $i = 0; $i < $num; $i++ ) {
+ $artName = $coll['items'][$i]['title'];
+ if ( $coll['items'][$i]['type'] == 'article' ) {
+ $out .= '<li><a href="' . htmlspecialchars(
SkinTemplate::makeSpecialUrl( 'Book', array( 'bookcmd' => 'suggest', 'remove'
=> $artName ) ) ) . '" onclick="' . htmlspecialchars(
'collectionSuggestCall("RemoveArticle", ' . Xml::encodeJsVar( array( $artName )
) . '); return false;' ) . '" title="' . wfMessage( 'coll-remove_this_page'
)->escaped() . '"><img src="' . htmlspecialchars( $mediapath . 'remove.png' ) .
'" width="10" height="10" alt=""></a> ';
+ $out .= '<a href="' . htmlspecialchars(
$coll['items'][$i]['url'] ) . '" title="' . htmlspecialchars( $artName ) . '">'
. htmlspecialchars( $artName ) . '</a></li>';
+ }
+ }
+
+ return $out;
+ }
+}
--
To view, visit https://gerrit.wikimedia.org/r/309549
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I931961fb67acf87781e673fd66056f84a710ace7
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Collection
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>
Gerrit-Reviewer: Legoktm <[email protected]>
Gerrit-Reviewer: MaxSem <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits