Thanks, Tom. I'll post a link to this from my weblog. The HTML Simplify is a utility most of us need for a lot of projects. Do you have a blog? I'm going to link to the thread on Google Groups, but it would seem more normal to post to an announcement on your company site.
On Sep 14, 4:36 pm, Sid Bachtiar <sid.bacht...@gmail.com> wrote: > 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><strik > > e><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 Developmenthttp://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 -~----------~----~----~----~------~----~------~--~---