Great plugin! Thank you ... I am using it on my project :D

On Tue, Sep 15, 2009 at 1:59 AM, Tom Boutell <t...@punkave.com> wrote:
>
> Unlike most of our plugins, pkToolkitPlugin is a bit of a kitchen
> sink. It contains a lot of utility classes, some more experimental
> things, and not a lot of documentation. So it's easy to miss the great
> stuff that lives there.
>
> Better documentation is coming as various items in that plugin mature.
> But I'd like to share two particularly useful and stable features that
> folks probably don't realize are there:
>
> * The pkToolkit:ssh task. This is a convenient way to open up an
> interactive ssh connection to any staging or production server
> configured in properties.ini. Just type:
>
> ./symfony pkToolkit:ssh staging
>
> You'll be prompted for the password of the staging site. When the
> connection is made, the script automatically changes directory to the
> project's directory, which is almost always the next thing you'd do
> anyway. And then it becomes a normal interactive shell.
>
> Note that the 'expect' utility must be installed on your computer for
> this to work, and it probably won't work on a Windows host. Macs come
> with expect, and it is an easily installed package on Linux.
>
> * The pkHtml class. Many projects allow users to edit content via a
> rich text editor. And we all know what happens if the user pastes a
> Word document in there: the styles of the page wind up hopelessly
> munged. You can use striptags(), but that doesn't clean up the CSS, so
> your page is still a mess.
>
> A common workaround is to use FCK's "paste as plaintext" mode, which
> thwarts attempts to paste rich text from another program. That works,
> after a fashion, but it's frustrating for users. And none of the
> workarounds help if the user is actively trying to enter inappropriate
> HTML in a misguided attempt to re-style their site... then calling you
> to fix it for the 500th time.
>
> HTML Tidy can do the job, but it has a reputation for being heavy and slow.
>
> Or... you can just use pkHtml::simplify():
>
> pkHtml::simplify($richTextHTML,
> "<h3><h4><h5><h6><blockquote><p><a><ul><ol><nl><li><b><i><strong><em><strike><code><hr><br><div><table><thead><caption><tbody><tr><th><td>");
>
> If that looks a lot like the arguments to striptags(), you're right.
> But pkHtml::simplify() follows up striptags() with a DOMDocument-based
> filter that removes attributes too, except for the attributes that
> actually make sense to permit for certain tags. Currently this is:
>
> A tag -> href and name attributes
> img tag -> src attribute
>
> You don't have to use pkHtml::simplify() manually, either. Instead,
> you can use the sfValidatorHtml validator, also found in pkToolkit,
> which allows the above list of tags by default because they are
> well-suited to user-entered content (you can change that).
>
> pkHtml is much more lightweight than Tidy. On one project we needed to
> separately clean hundreds of potential HTML containers in a single XML
> document, in real time, before presenting some of that information to
> the user. pkHtml::simplify turns that around very quickly indeed.
>
> Our pkContextCMSPlugin takes advantage of pkHtml::simplify() to allow
> rich text editing without the constant "oops I screwed up my site"
> issues that come up without a robust server-side filter.
>
> For convenience we also package Dominic Schierlinck's
> sfWidgetFormRichTextarea widget. It's meant to be compatible with both
> MCE and FCK, although we always use FCK.
>
> --
> Tom Boutell
> P'unk Avenue
> 215 755 1330
> punkave.com
> window.punkave.com
>
> >
>



-- 
Blue Horn Ltd - System Development
http://bluehorn.co.nz

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"symfony users" group.
To post to this group, send email to symfony-users@googlegroups.com
To unsubscribe from this group, send email to 
symfony-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to