Extension:PageAttachment

From MediaWiki.org
Jump to: navigation, search
MediaWiki extensions manual - list
Crystal Clear action run.png
PageAttachment

Release status: stable

PageAttachmentExt Screenshot v2.png
Implementation User interface, User activity, Skin, Ajax, Special page, Database
Description This extension extends MediaWiki to allow adding files to a page as attachments.
Author(s) Aldrin Baroi (AldrinTalk)
Last version See Compatibility Section
MediaWiki See Compatibility Section
PHP 5.3, 5.2
Database changes yes
License GNU GPL v3
Download Project page
Mercurial [Help]

Browse source code
View code changes
View issues

Hooks used
LoadExtensionSchemaUpdates

BeforeInitialize
EditPage::importFormData
ArticleSaveComplete
BeforePageDisplay
SkinAfterContent
SkinAfterBottomScripts
UploadForm:initial
UploadForm:BeforeProcessing
UploadComplete
SpecialUploadComplete
UserLoginComplete
UserLogoutComplete
ArticleDelete
FileDeleteComplete
FileUndeleteComplete
LinksUpdate
LinksUpdateComplete

Check usage (experimental)

Contents

[edit] What can this extension do?

This extension extends MediaWiki to allow adding files to a page as attachments.

By default, attachments are only allowed to be added to pages in the "Main" namespace. Through configuration changes, attachments can be allowed to be attached to any other pages under other namespaces, for example, "User Talk" pages.

[edit] Security

Every precaution has been taken to make this extension secure by following guidelines outlined in MediaWiki's security manual for developers.

See Security for developers

If you identify any security (or any other) issues, please, open a bug report at the following link:

PageAttachment Issues

[edit] What is new?

New Versions Released: (May 5, 2012)

  • 1.4.0
  • 2.1.0

See compatibility section to choose the right version for you platform.

This release contains the following fixes/enhancements:

  • Issue# 26 - For Right-to-Left languages, correctly trim the description text
  • Issue# 37 - Add Watch Capability (NEW Feature)
  • Issue# 38 - When Permanent Attachment Removal is Enabled, Do Not Store Deleted File Info
  • Issue# 42 - Protected pages not taken into consideration when viewing/using attachment facility
  • Issue# 43 - Javascript Should Not Try to Load Attachment List When in Edit/Preview etc. Mode
  • Issue# 44 - Replace Deprecated "sajax_do_call" Ajax function with new jQuery function
    • Only in 2.1.0 version
  • Issue# 45 - Internaltionalization/Localization Not Working for Notification Message
  • Issue# 48 - Fatal error: Class UploadPermissionChecker_MediaWiki?_v1170 not found
  • Issue# 51 - Generate Cache Table

This release was tested on the following operating systems:

  • Mac OS 10.7.3
  • Windows Vista
  • Windows 7
  • Debian 6
  • CentOS 6.2
  • Ubuntu 11.10 & 10.04

[edit] Compatibility


PHP Versions (minimum) 5.3   5.2 5.2.3
PageAttachment Versions Stable 1.4.0 2.1.0 3.0.0 TBR * 1.4.0-php-5.2 2.1.0-php-5.2 3.0.0 TBR *
Latest 1.4.0 2.2.0 TBR * 1.4.0-php-5.2 2.2.0-php-5.2 TBR *
MediaWiki Versions 1.16.2 1.17.0 1.18.0 1.19.0 1.16.2 1.17.0 1.18.0 1.19.0

TBR: To be released.

* Code checked in. Testing in progress: Check Progress

  • Notes on PHP 5.2 release
    • PHP 5.2 compatible release is created by transforming the PHP 5.3 compatible code through the use of "ant" script.
    • Custom Date Formatting is not supported
    • MediaWiki 1.19 requires PHP 5.2.3


[edit] Usage

Supported use-cases:

  • View attachments
  • Upload & attach a file
  • Browse/search for existing (uploaded) files and attach
  • Download an attachment
  • Remove an attachment (does not delete the file from MediaWiki repository)
    • Remove an attachment permanentely
      • NOTE: MediaWiki archives the deleted files. You would have to run the maintenance script
            php deleteArchivedFiles.php --delete
        to remove the files from the archive. See: Manual:DeleteArchivedFiles
  • View an attachment file's history
  • View audit log
    • For a specific attachment
    • For all attachmnets for a page
  • Auto remove an attachment when the attachment file is deleted from MediaWiki repository
  • Auto restore an attachment when a file deleted from MediaWiki repository is restored and if it was attached to any page
  • Set attachment category during upload
  • Watch Attachments (NEW in 1.4.0 & 2.1.0 versions)

Note: By default following are turned off

  • Audit logging
  • Set attachment category during upload
  • Permanent file deletion
  • Watch Attachments


[edit] Download instructions

This project is hosted on Google Code at the following link:

MediaWiki PageAttachment on Google Code

This project uses Mercurial repository. You can create your clone using following command:

hg clone https://code.google.com/p/mediawiki-page-attachment/ 

End-user installable package:

Download MdiaWiki PageAttachment Extension


If you need help with using a Mecurial repository, please take a look at the following links:

[edit] Prerequisites

MediaWiki file upload functionality must be enabled for this extension to work. If file upload is not enabled, only "view" activity is allowed.

Please consult: Configuring File Uploads

[edit] Installation

Please see the detailed installation instructions on the following link:

PageAttachment Installtion

[edit] Configuration

It is recommended to use the site specific configuration file to override the defaults and specify site specific settings.

Default configuration file is:

config/DefaultConfigurations.php

Site specific configuration file is:

config/SiteSpecificConfigurations.php

[edit] Allowed Namespaces

Attachments are allowed only on pages under configured namespaces.

By default, only "Main" namespace is enabled:

$wgPageAttachment_allowedNameSpaces[] = NS_MAIN;

To add other namespaces, for example, "Talk", "User", and "User Talk" add the following in the site specific configuration file:

$wgPageAttachment_allowedNameSpaces[] = NS_TALK; 
$wgPageAttachment_allowedNameSpaces[] = NS_USER; 
$wgPageAttachment_allowedNameSpaces[] = NS_USER_TALK;


[edit] MediaWiki User Rights

For upload & attachment activity, check is made to ensure the following:

  • User is not blocked
  • Wiki is not in readonly mode

[edit] PageAttachment User Rights

This extension maintains page attachment specific rights separately.

Page attachment specific rights are:

  • View attachments
  • Upload & attach a file
  • Browse/Search for existing (uploaded) files and attach
  • Remove attachments
  • Download attachments
  • View history
  • View audit log (if audit logging is enabled)


NOTE: View rights must be enabled for all other rights to work


The rights can be applied:

  • When login is not required
    • Only at the activity level (e.g. upload & attach a file)
  • When login is required, rights can be applied to each activity
    • At a group level
    • At a user specific level


NOTE: The groups/users must be valid MediaWiki groups/users.

[edit] Audit Log

Audit logging by default is turned off. To enable audit logging, set the following:

$wgPageAttachment_enableAuditLog = true;


[edit] Cache

Server side cache
PageAttachment extension uses cache to store page attachment list, attachment data, and article names.
MediaWiki's Cache
By default, MediaWiki cache is used and recommended.
Recommeded for Production use.
To use MediaWiki's cache, no configuration change is required.
Please consult: MediaWiki Cache Setup
PageAttachment's Internal Cache
Alternatively, you can use one of the two internal cache implementations.
* SQLite3 Cache
* Database Cache
Use internal cache implementations for development & testing purposes only.
To use SQLite3 internal cache, set the following in the site-specific configuration file:
    $wgPageAttachment_useInternalCache = true;
    $wgPageAttachment_internalCacheType = 'SQLite3';
    $wgPageAttachment_sqlite3CacheDirectory = 'Absolute path to a directory where web server has read-write access';
To use Database cache, set the following in the site-specific configuration file:
    $wgPageAttachment_useInternalCache = true;
    $wgPageAttachment_internalCacheType = 'Database';
Browser cache
Ajax is used to load the page attachment list.
By default Ajax data caching in user's web browser is disabled. The reason for this that Ajax caching will sometime cause inconsistent data display based on when an attachment was added/update/removed and after user's login/logout.
If you want to enable Ajax caching, set the following in the site-specific configuration file:
    $wgPageAttachment_ajaxCacheDuration = N;
N = Number of seconds to cache Ajax data in the user's browser.

[edit] User Interface


User Name Format
By default, real-user name is displayed, if available. To disable this and to display only user id, set the following:

$wgPageAttachment_showUserRealName = false;


Status Message Display Format
The default format applies to all skins. You can override the default and/or provide skin specific formats.
The default status message format is:

$wgPageAttachment_statusMessageFormat['default'] = ' » STATUS_MESSAGE « ';

The foregoing is rendered as the following:

 » STATUS_MESSAGE « 


The STATUS_MESSAGE is replaced with the actual message.
To change the default format, replace the YOUR_HTML_CODE with your actual HTML code. Please, leave the STATUS_MESSAGE token in:

$wgPageAttachment_statusMessageFormat['default'] = 'YOUR_HTML_CODE STATUS_MESSAGE YOUR_HTML_CODE';

To specify skin specific format, add additional settings and replace 'default' with the actual skin name. Example:

$wgPageAttachment_statusMessageFormat['skin name'] = 'YOUR_HTML_CODE STATUS_MESSAGE YOUR_HTML_CODE';


Date Format
Date formatting is based on MediaWiki settings. You can override this and specify language specific settings. By default, for English language, MediaWiki date format is overriden with the following format:

$wgPageAttachment_dateFormat['en'] = 'M d, Y h:i a';

The rendered date looks like, e.g.: Jul 24, 2011 11:17 pm
To disable this, unset the foregoing setting as follows:

$wgPageAttachment_dateFormat['en'] = null;


Cascading Style Sheet (CSS) Files

  • Common
  • For left-to-right (LTR) language
  • For right-to-left (RTL) language


Icon Image Files
The default icons apply to all skins. You can override the default and/or provide skin specific icons.
The default icon image files are:

$wgPageAttachment_imgSpacer['default']             = 'transparent-16x16.png';
$wgPageAttachment_imgBrowseSearchAttach['default'] = 'tango-folder-saved-search-16x16.png';
$wgPageAttachment_imgUploadAndAttach['default']    = 'tango-mail-attachment-16x16.png';
$wgPageAttachment_imgAttachFile['default']         = 'tango-mail-attachment-16x16.png';
$wgPageAttachment_imgRemoveAttachment['default']   = 'tango-edit-cut-16x16.png';
$wgPageAttachment_imgViewAuditLog['default']       = 'tango-edit-find-16x16.png';
$wgPageAttachment_imgViewHistory['default']        = 'tango-system-file-manager-16x16.png';

To provide skin specific icons, add additional settings and replace the 'default' with the skin name.
Note: The included image files are obtained from Tango Desktop Project and resized.

Display Column Widths


[edit] Watch Attachments

On watched pages, to send notification on attachment activity:

$wgPageAttachment_enableNotification = true;


To send the emails using MediaWiki Job Queue

  • Setup MediaWiki's Job Queue processing
  • In the site specific configuration file, set the following:
$wgPageAttachment_useJobQueueForNotification = true;


Notification emails are formatted using a template. Two templates are included:

  • Plain Text
  • HTML

Note: You must specify which template to use.

To use plain-text template, set the following:

$wgPageAttachment_messageFormat = 'plaintext';


To use HTML template, set the following:

$wgPageAttachment_messageFormat = 'html';

[edit] View/Submit Issues, Enhancement Requests

Please, submit new issue/enhancement-request at the following link:

PageAttachment Issues

[edit] Google Discussion Group

Google Discussion Group for PageAttachment Extension

Personal tools
Namespaces

Variants
Actions
Navigation
Support
Download
Development
Communication
Print/export
Toolbox