MediaWiki is extensible in many ways and a good page to start reading
up on this is
Here is a sequence for escalating the level of intervention with your
Wiki (from simple to severe):
A) Templates (transclusion) provide a very powerful way to create
dynamic content solely through editing content in your Wiki pages.
B) Some customization is already available through the UI (preferences)
C) Much behaviour can be achieved through editing Wiki pages in the
MediaWiki: namespace (changes to the skin, to CSS, to system
messages ...), indeed, people have written skins in which all
attributes can be set dynamically through Wiki pages
D) Display and layout of everything around the actual contents box cn
be customized through the skin
E) New functions are easily introduced via extensions that you add to
the core-code
F) You can alter the core-code since you have all the source there
is, but that is not the strategy of first choice: a) because it is
large and complex code that you would need to study well before you
can be sure you are not creating side-effects and b) your changes
will lock you into your current version of MediaWiki, it will be
difficult to upgrade.
{{Disclaimer:New_to_this_myself}}
HTH,
Boris
On 9-Nov-07, at 9:34 AM, Nelson A Li wrote:
Thank you, Boris. Your feedback is very helpful.
Mediawiki's goal is to provide common sharing as generic as possible.
Maybe because I am new (so naive), let me ask anybody to verify the
realtionships between pages (or templates, or even namespaces) and
php code
(extensions?). Can't we exec a function (xxx.php) from a page or
an event
associated with the page? If we can, we can narrow the
"generality" any
way we want. If not, what kind of security concern do we have?
Can users
access these php code?
Nelson
Computer Sciences Corporation
Registered Office: 2100 East Grand Avenue, El Segundo California
90245, USA
Registered in USA No: C-489-59
----------------------------------------------------------------------
----------------------------------------------------------------------
--------------------------------------------------------------------
This is a PRIVATE message. If you are not the intended recipient,
please
delete without copying and kindly advise us by e-mail of the
mistake in
delivery.
NOTE: Regardless of content, this e-mail shall not operate to bind
CSC to
any order or other contract unless pursuant to explicit written
agreement
or government initiative expressly permitting the use of e-mail for
such
purpose.
----------------------------------------------------------------------
----------------------------------------------------------------------
--------------------------------------------------------------------
Boris Steipe
<boris.steipe@uto
ronto.ca> To
Sent by: MediaWiki announcements and
site
mediawiki-l-bounc admin list
es(a)lists.wikimedi <mediawiki-
l(a)lists.wikimedia.org>
a.org cc
Subject
11/08/2007 09:02 Re: [Mediawiki-l] How about
some
PM design help?!
Please respond to
MediaWiki
announcements and
site admin list
<mediawiki-l@list
s.wikimedia.org>
I believe I have been thinking about a similar problem. I was
planning to write a tag-extension to layout the links on the main
page, adding "&action=edit" to each, contributors would edit on the
referenced page where the information is collated in specific
sections; then using the "labeled section transclusion" extension to
get the updated contents back on the main page.
My design constraints were to use core functionality as much as
possible, under the assumption that the core code develppers have
already solved problems I wouldn't even think of. Take a look at
includes/EditPage.php for example. After going through that code I
knew I wouldn't be putting anything into the database that hadn't
gone through that page. Reading something may be another matter.
The access restrictions may be more difficult to address, a number of
per-page protection extensions are listed on the extension matrix,
they all have disclaimers that MediaWiki was not designed for this.
For example, you could put the contents on the user page and then use
something like:
http://www.mediawiki.org/wiki/Extension:UserPageEditProtection
... but see ..
http://www.mediawiki.org/wiki/
Security_issues_with_authorization_extensions
CAD $ 0.02,
Boris
On 8-Nov-07, at 5:21 PM, Nelson A Li wrote:
Hello MediaWikiers,
I have learned some basic skills about mediawiki and it is time to
test the
water. Headstart in a correct direction can save a lot of trouble
later
on. If you have some time (relative term, some people can achieve
a lot in
a short time) and are willing to help, please do.
The task:
Initially I will display a table (this page can not be edited) with
the ID
and Name columns shown. Each row is a record for one specific user
(or a
group). Each user (or group) can click on the ID column of the
record
specific to the user to link to a page and update contents of the
fields
(including Name but not ID) of the record. There is an "update"
button on
that page will trigger (when pressed) the database update from user
inputs
and the updated table will be displyed right away.
My problem is that I don't have a clear picture what can (or
should) be
done inside wiki and what has to be done manually outside wiki as
well as
how many existing mediawiki features I can use?
My thoughts:
Since the table structure is relatively stable (means may change,
but not
often) , I can easily create a page with the table defined in it.
I have
all the record ID (alphnumeric, variable length) and Name (fixed
length
string) listed in a text file line by line. So I can easily write
a php
program to create a table in MySQL, read this file and populate
that table.
But how do I tell my wiki to read from that table to display the
table?
The most tricky thing is to secure data/page against user. Since
the user
is specific to a (even more than one should be fine) record, I
intend to
make user ID a field in the table (in DB but not displyed). What
kind of
user ID shall I use? Do I manually collect user IDs and populate
the DB
first? Is there an intelligent way to mange the user <-> record <->
record update page relations. Is it necessary (or any advantage)
to use
registered user only?
I am sure there will be lots of details that I can not think of
yet. But I
need help to think through the high level design first. Thank you.
Nelson
Computer Sciences Corporation
Registered Office: 2100 East Grand Avenue, El Segundo California
90245, USA
Registered in USA No: C-489-59
---------------------------------------------------------------------
-
---------------------------------------------------------------------
-
--------------------------------------------------------------------
This is a PRIVATE message. If you are not the intended recipient,
please
delete without copying and kindly advise us by e-mail of the
mistake in
delivery.
NOTE: Regardless of content, this e-mail shall not operate to bind
CSC to
any order or other contract unless pursuant to explicit written
agreement
or government initiative expressly permitting the use of e-mail for
such
purpose.
---------------------------------------------------------------------
-
---------------------------------------------------------------------
-
--------------------------------------------------------------------
_______________________________________________
MediaWiki-l mailing list
MediaWiki-l(a)lists.wikimedia.org
http://lists.wikimedia.org/mailman/listinfo/mediawiki-l
_______________________________________________
MediaWiki-l mailing list
MediaWiki-l(a)lists.wikimedia.org
http://lists.wikimedia.org/mailman/listinfo/mediawiki-l
_______________________________________________
MediaWiki-l mailing list
MediaWiki-l(a)lists.wikimedia.org
http://lists.wikimedia.org/mailman/listinfo/mediawiki-l