[Phpmyadmin-devel] RFD: New feature, Interface implementation (not a feature request! :-)
Garvin Hicking
me at supergarv.de
Tue Jan 28 07:15:10 CET 2003
Salutations!
I am planning to add a feature for my own sake to phpMyAdmin. The reason
is, I have created an application for one of my customers and gave him
phpMyAdmin-access on his database. For me this is a good solution because
I down have to fiddle with a reduced backend, and he scores because I
won't charge him for that. ;)
Well, but then one major problem occured to us: He is administrating data
containing html-code (here: an image). He wants to see those images inside
of phpMyAdmin or at least having a link in a row where he can click on.
Currently libarires/display_tbl.lib.php3 encodes all data with
htmlspecialchars(). I want to let certain html-entities pass as such and
be rendered by the browser. First I just wanted to hack the code away,
bypassing the htmlspecialchars()-Function if a certain config-variable is
set.
But I think this can be done with more grace, and may come to be
integrated in upcoming phpMyAdmin-releases; if there is a need for, I
would be gratefully willing to code the required snippets.
Until now I am not fully advanced regarding how I could put the feature
inside the user interface. First on, I want the solution to be as flexible
as possible. Best way would be, that a user could choose among a set of
functions treating a table. So it would not only be possible to render
HTML-Code, but maybe to transform certain characters to other ones. Maybe
a function turning all ":-)" into smilie-GIFs.
I thought of extending the SQL-parser to support SQL-Comments which then
turn on my celldata-reparsing. I then dropped this idea, because I think
it is too hard to use for the novice user.
Currently I am thinking about the following implementations. I would
really appreciate your feedback on this, and what you think of it:
1. Add another row below the header-row of the data. It should contain a
checkbox and a pulldown for each header. So I can check each checkbox, if
I want that field to be HTML-enabled, and choose a value in the pulldown-
field, which function I want the field to be used with. I think of a set
of predefined PHP-Functions, and the ability to insert 'plugins' in the
config.inc.php3 file. Like, I add a "smilie_to_html" function, a
"html_img" function, a "html_table" function and so on. This new row could
either be shown all the time, or only made accessible by clicking on a
link like "Enhance Display" or "Convert fields" or such.
Advantages: Full, flexible control over the desired fields. Customizable,
which field I want to have converted. Maybe I only want one single row
HTML-enabled, not all of them.
Dis-advantages: Many, many Variables to be propagated throughout the page.
Maybe too much to fit in GET-Vars. Many checkboxes/pulldowns to render for
the browser (slowdown)
2. Add a persistent table-property field. There I can define, much like
the 'edit table properties' which fields I later want to be treated with
certain functions.
Advantages: Clean integration without much variable-propagation hassle.
Dis-Advantages: We have to store this data somewhere, which is harder to
user for the novice user because he has to create tables like the
bookmark-table. Parsing would be a lot harder to do, because one has to
take ALIAS-Rows into consideration. You can't do 'on-the-fly'-alteration
of a single cell to be HTML-enabled.
3. Add a full-page alternative Display much like the current 'print view'.
Call it 'html view' and parse every single data as HTML.
Advantages: Most easy to code
Dis-Advanteges: Ugly implementation, no customization.
4. Expand the SQL-language with phpMyAdmin-parseable comments. Like:
SELECT
field_img,
field_href,
field_plain
FROM table
/*
pma_parse:field_img:html_img,
pma_parse:field_href:html_href,
pma_parse:field_plain:htmlspecialchars
*/
And then add a nice Interface to that like the "insert field-name"
dropdown above the SQL Query-Textarea.
Advantages: Perfect way for a 'pro'-user. Easy to code, very flexible, no
variable-propagation hassle.
Dis-Advantages: Hard to get for novice users to be usable, unless a good
point-an-click editing system is etablished.
Maybe the last suggestions, if done properly, could be enhanced for all
kind of native phpMyAdmin-functions. Even though I can't think of any
other right now.
So...oppinions please? :-)
--
Bye, ...[ icq #21392242 |
Garvin ...[ www.supergarv.de |
... *Wenn Du im Zweifel bist, hoere auf den Mann mit der blutigeren Waffe.*
More information about the Developers
mailing list