irc.freenode.net #drupal-dojo 11:00AM 2008-01-12

dmitrig01 morning all!

dmitrig01 Corsix: any idea about the whereabouts of cwgordon7?

Corsix dmitrig01: no :|

dmitrig01 :(

osinet anyone using teamspeak ? i'm connected and find it strange to be the only one in the channel there

osinet teamspeak?

Druplicon Download teamspeak at http://teamspeak.com/index.php?page=downloads | To connect, use "webavant.com:8768" as the servername, and your preferred nickname with no password. | If you are on Mac watch this screencast: http://dmitrizone.com/dump/teamspeak_for_mac.mov | More info at http://groups.drupal.org/node/4944

Corsix wait, 6pm UTC? Wasn't it 7?

cwgordon7 Yeah, it's 7 pm UTC

Senpai http://www.macupdate.com/info.php/id/19678

dmitrig01 cwgordon7!

cwgordon7 11am PST is right, though

cwgordon7 I think...

Corsix http://groups.drupal.org/drupal-dojo is saying 18:00 GMT

Senpai Does that need to change?

Corsix but I swear it was 7

osinet yup: that's what I get in google calendar too

Senpai ok, 7 it is.

Senpai I prolly messed it up

cwgordon7 "2 eastern us time, 7 gmt."

cwgordon7 In the body of the node

Corsix http://groups.drupal.org/node/7998 - bottom say 7pm, top says 18:00

Senpai dmitrig01: http://www.savvy.nl/blog/

dmitrig01 Senpai: new version?

Senpai it is

dmitrig01 last post is January 29th, 2006

Senpai yeah, but my version is still a beta2

dmitrig01 It's 17:58:11 right now

Senpai I must have gotten it from a different source

dmitrig01 me too!

dmitrig01 "TeamSpeex 1.0 Beta 2

dmitrig01 November 14th, 2005"

Senpai dmitrig01: told ya

Senpai no wonder, huh?

Senpai should learn to always go ti the source

Senpai Corsix, cwgordon7, thestart time has been fixed. http://groups.drupal.org/node/7998

Druplicon http://groups.drupal.org/node/7998 => Lesson #39: Flexifilter, the most awesome thing to hit Drupal since the potato => 5 IRC mentions

Corsix Senpai: :)

cwgordon7 Corsix: I want to release a 1.0 before the lesson starts

osinet see you in one hour, then :-)

cwgordon7 Corsix: It's pretty much ready to go, right?

Corsix cwgordon7: PM

dmitrig01 Corsix: cwgordon7: I think there shoud be a hook_flexifilters that allows modules to define flexifilters

cwgordon7 dmitrig01: There definitely should be

cwgordon7 dmitrig01: 6.x-1.1

cwgordon7 It'll have to wait, I think

Corsix I would prefer hook_default_flexifilters

cwgordon7 whatever, the name doesn't really matter ;)

Corsix vis a vi views

cwgordon7 Import/export features are awesome and high on the list of features, right, Corsix?

Corsix where modules can define views which you then make instances of

Corsix which go along with import/export

dmitrig01 RobLoach: watching your screencast - LOL @ "This is a very powerful framework so we should use it"

osinet aclight: ping

aclight osinet: pong

osinet just saw you appear and disappear on teamspeak

osinet any idea whether this is the proper way to connect ? I'm not familiar with that client

aclight yeah, had to reboot

Corsix Note that neither myself nor cwgordon7 have microphones, so we won't be on TS

aclight i think so. ive only used it once before though

aclight oh...no teamspeak.. bummer

osinet Corsix: ok

aclight Corsix: do either of you have headphones?

Corsix I do

cwgordon7 I do

Corsix so I could listen in

aclight use that as a microphone

aclight it sometimes works

Corsix headphones have speakers on them, not a microphone

cwgordon7 ... no... not these headphones...

aclight since a headphone is a reverse microphone

osinet Corsix: it's the same thing...but on analog only

dmitrig01 Corsix: cwgordon7: How do you expect to do the lesson without a microphone?

aclight the sound won't be as good usually

dmitrig01 just wondering :D

cwgordon7 We have presentations planned

Senpai cwgordon7, Corsix: Does this look right to you? "Join us in 15 minutes at the http://webavant.com/dojo1 training room for a lesson all about the brand new FlexiFilter module. No, you haven't heard about it before. Like we just said, it's brand new!

Senpai What is it, you ask? Imagine this. You and your site administrators can new create and control all kinds of filters throughout the site without having to code a single line. Oh, and yes, it also has a API for other modules to tie into. Cool!"

aclight do they talk to us?

cwgordon7 aclight: In a manner of speaking

cwgordon7 Senpai: Yep, looks good.

Senpai cool

Corsix Nobody told me a microphone was needed, and I hadn't even heard of dojo until last week, so don't look at me

dmitrig01 lol

Senpai ok, email is away

dmitrig01 cwgordon7: Corsix: you guys ready

cwgordon7 Ok, we're ready.

cwgordon7 Corsix?

Corsix yeah

cwgordon7 The presentation will be at http://docs.google.com/TeamPresent?docid=dg79fhm9_1233r4xfcg

cwgordon7 If you want to try stuff out as we go along, have a drupal 6 install with flexifilter 6.x-1.0 handy

cwgordon7 There is a longer presentation that will not be used during this lesson but that you can use as a reference at http://docs.google.com/TeamPresent?docid=dg79fhm9_1cfbhbddj

cwgordon7 Everyone will need to join the first presentation at http://docs.google.com/TeamPresent?docid=dg79fhm9_1233r4xfcg and we'll begin

Senpai Corsix: That google docs link seems to be 404

webavant hey sorry bout the audio being broken

dmitrig01 webavant!

webavant the web player works now

cwgordon7 Ok, everyone we're starting

Corsix ok, you should be seeing the first slide on the google presentation

cwgordon7 Click "follow presenter" to follow me.

RobLoach dmitrig01: Yeah, I have strange ways of describing it......... You mind putting the link up in the DruJo?

dmitrig01 cwgordon7: "it can do anything!" can you write an extension to make it replace views?

dmitrig01 RobLoach: :-P

RobLoach *it = things

cwgordon7 dmitrig01: I'm sure you could have it tie into views

yktdan Is the text box working?

xulu I'm totally confused. I understand we're not doing VNC, but we are doing a docs.google.com presentation. But where's the presentation, if there's no audio? Are we just each paging through the slides?

Corsix and me & cwgordon7 will be talking through the slides here in IRC

cwgordon7 We'll be going through the slides, we'll be explaining them as we go

kbgordon7 oh

cwgordon7 I have stuff to copy-and-paste into here

xulu now it's making sense

cwgordon7 Is anyone unclear on what flexifilter is supposed to do?

osinet utterly

highermath no idea

cf796 me neither

dmitrig01 LOL

cwgordon7 Ok then

dmitrig01 LOOK at the slides

Senpai (There is no audio, folks. Just follow along in IRC)

cwgordon7 Flexifilter lets you create custom filters

xulu Are we on slide #2 then?

cwgordon7 Yes

cwgordon7 Click "follow presenter"

cwgordon7 To stay on the correct slide (the one I'm on)

xulu I don't see a "follow presenter" option.

highermath where do we click that?

Corsix top right

Corsix unless you are already following

xulu The right hand window on both screens I have it up on says "Not Found" Error 404.

highermath it says no one is currently presenting

osinet right now, it says there is no presenter

xulu I see the slides, but nothing useful in the right-hand pane.

osinet ah, came bak

Corsix It should say "You are following the presenter." in the top right

Corsix or a link to do so

Dan-902 ok now...

Corsix ** And we are starting **

cwgordon7 Thank you, Corsix

highermath Why don't you jsut type this in google so we don't have to switch windows?

cwgordon7 Basically, you can define your own filters through the user interface

cwgordon7 Because this is where stuff is logged

Corsix So instead of having to create a custom module for each filter you want

Corsix you can make them through the UI

cwgordon7 This will totally revolutionize how filters are done through Drupal

Corsix (hopefully)

osinet If a filter already exists, is there any point in migrating it to flexifilter (I happen to have one in my g2 module)

cwgordon7 Yes

cwgordon7 Flexifilter allows you to hand a greater level of control to the users

Corsix well, to the site admins, which are the users in this case

cwgordon7 They can choose exactly how much text to allow the filter to filter

cwgordon7 They can change the format of the filtering

RobLoach I gotta have a shower... I'll be back in about 10 minutes.

cwgordon7 (instead of links encompassed in [[ ]], they can choose (( ))

cwgordon7 Or whatever

cwgordon7 That way they don't have to delve into the php code to do simple stuff like that

Senpai FYI, guys, there's no "follow the presenter" link in the right sidebar of that googld presentation. It jsut says 404 Not Found.

cwgordon7 hm, bad link?

Corsix After refresh does it still 404 ?

cwgordon7 http://docs.google.com/TeamPresent?docid=dg79fhm9_1233r4xfcg#

Senpai yes, it stil says 404

Corsix if so, we'll have to say when we switch slides,

Senpai in two different browsers

Senpai yeah, just announce the slide #

Corsix and put a black mark against google presentations

jacine what about this one: http://docs.google.com/TeamPresent?docid=dg79fhm9_1233r4xfcg&pli=1

Corsix Ok, moving onto the terminology

Corsix (slide 3)

Corsix (slide 4)

Corsix We call these filters "Flexifilters"

Corsix which are created through the admin UI

Corsix and can be enabled or disabled

cwgordon7 The reason you can only have 128 enabled at a time is because the filter module stores filter's deltas in a tinyint in the database.

Corsix (slide 5)

Corsix The basic building block is a component

Corsix That is our name for anything that you can put into a flexifilter

cwgordon7 Components are the stuff that actually do things to the text

Corsix so it could be "do a text replace" or "do this while loop"

cwgordon7 You can choose from a variety of components to add

cwgordon7 And components can be added more than once

Corsix and by chaining these components together, you make filters

cwgordon7 Any questions?

cwgordon7 Ok, then, next slide

Corsix (slide 6 then)

Corsix Some components (if and while loops at the moment) can have conditions in them

Corsix which control when the if/while is run

Corsix A common condition to use is "does text contain phrase"

Corsix or "is text longer than..."

cwgordon7 So basically, the components within which the conditions are contained are able to evaluate the condition and do something based on the evaluation.

Corsix (slide 8)

cwgordon7 For example, an IF component contains a condition and components. The components are only executed if the condition is TRUE.

Corsix The simplist component is text replacement

cwgordon7 Here we have a short list of simple components for use as examples

jacine wow :)

Corsix this takes a phrase and replaces it another

cwgordon7 For example, you can choose to replace all instances of "Google" with "<a href="http://google.com/">Google</a>"

dmitrig01 (slide 8 now)

Corsix then you have appending and prepending, as named

Senpai Thereby rendering cuss words as asterisks, for instance?

cwgordon7 Yep, that's another good example, Senpai

cwgordon7 The possiblities are /endless/...

Senpai Sounds like it.

Corsix I'm not so sure what text slicing is though

Corsix cwgordon7, care to explain that one?

cwgordon7 Sure

cwgordon7 Basically, you can choose to drop the first few or last few characters of the text

dmitrig01 cwgordon7: example?

cwgordon7 This is useful, say, if using another component creates two characters of junk at the end of the text.

Senpai Yes please. Example. Why would you need to do this?

Senpai ahhhhh

Corsix (slide 9)

Senpai This sounds cool.

Senpai Workflow Control

jacine like... username's blog on the blogs page?

cwgordon7 Also, you could choose to slice off any characters after character 1000, which is the site-essay-contest's character limit

cwgordon7 jacine: Not sure I understand your question

brenda003 can you use wildcards on the text you're looking for?

Corsix There is regular expression text replacement

dmitrig01 brenda003: you can use a regular expression

jacine does it just do node content? or can it change the text of links and page titles?

dmitrig01 Jacine: it's a filter

brenda003 ahh, interesting.

Corsix it is a filter

cwgordon7 jacine: It does anything that can be filtered

Corsix so node content

jacine ok, thanks

cwgordon7 Meaning nodes and anything else that uses filters

cwgordon7 Such as profile textarea fields

cwgordon7 etc.

Corsix (slide 10)

Corsix Two clever components are if() and while()

cwgordon7 We touched on this before, if() and while() loops

Corsix they are used just like any other component

Corsix except that within them can be placed components and a condition

Senpai We can do conditional statements inside of filters now??????

cwgordon7 Except they don't actually do anything themselves, but just fire other components that are placed in them.

Corsix so that the components within are executed if/while the condition is true

cwgordon7 Senpai: Of course!

Hausha let's say you have the input : foo.mp3. Will flexifilter actually make it add a whole lot before and after the input? if that is what the admin wants?

cwgordon7 Hausha: So long as you define what that should do, it can.

Corsix Hausha: You can write a filter like: if (text contains ".mp3") then append "xyz", prepend "foo"

Corsix moving onto slide 11?

cwgordon7 Let's explain while() briefly

Corsix While() loops, like if() statements, have components within them

Corsix and a condition

cwgordon7 A while() loop works pretty much like an if() statement, except it does actions while the condition is true.

cwgordon7 This is slightly dangerous as it may cause an infinite loop

cwgordon7 So, you can specify a limit at which it will abort

Corsix if you had: while(text contains "cheese") do nothing

Corsix then it would loop forever

Corsix so you have to set a limit

Corsix which defaults to 100 iterations

cwgordon7 Continue to slide 11

dmitrig01 cwgordon7: do you use any eval() statements?

Corsix but you could set to 9999999 if you know it will not loop forever

cwgordon7 You can add php code as a component or a condition if you know what you're doing.

cwgordon7 dmitrig01: So yes

dmitrig01 shivers

Senpai Yeah, I can see how you could get an infinite loop going quite easily. Could someone white-screen a site by setting up a flexifilter while() into an infinite loop?

brenda003 can you set the filter to act differently depending on if it's a teaser view, and other things?

cwgordon7 Well, you have to specify the limit.

Corsix Senpai: which is the reason you must give a limit

cwgordon7 brenda003: Not yet, we just had a 1.0 release half an hour ago ;)

Corsix after which it stops looping even if the condition is true

dmitrig01 if you know what you are doing, you should be able to use the hooks

cwgordon7 brend003: Not even sure if that makes sense

brenda003 cwgordon7, me neither. :P

cwgordon7 :D lol ok

Corsix (slide 12) then

Hausha No release planned for 5.x?

Corsix currently is 6.x

cwgordon7 If anyone wants to backport, please post a patch

Corsix may backport it

cwgordon7 shivers at the thought of 5.x ;)

Corsix if there is demand

Corsix but 6.x is the future ;)

cwgordon7 See http://drupal.org/node/207629

Druplicon http://drupal.org/node/207629 => Drupal 5 version! => Flexifilter, Code - Misc, normal, postponed, 2 IRC mentions

Hausha great

cwgordon7 Now, slide 12

Senpai I wonder if there could be an error check that bails out after a preset time if, say, the $continue_until_finished flag was not set. That might protect newbs from themselves, while still giving power users the flexi that they need. I'm musing. We'll talk more after the lesson.

Corsix So, if and while can only contain 1 condition

Corsix however, that condition can be an and/or/not group

Corsix these and/or/not can contain multiple conditions

cwgordon7 Correct

dmitrig01 cwgordon7: can you make an ALL NOT?

cwgordon7 Use the AND group to "and" things together

cwgordon7 Use the OR group to "or" things together

Corsix So an AND condition will evaluate to TRUE if all the conditions within it are true

cwgordon7 Use the NOT group to negate a statement

dmitrig01 e.g ALL conditions have to be false for it to be TRUE?

Corsix ALL conditions become true or false

dmitrig01 just as a shortcut instead of nesting an AND group in a NOT group

cwgordon7 No, if any of the conditions are false, it's true

cwgordon7 Any questions? comments? concerns?

Corsix If you look carefully, then the NOT group is in fact a NOT AND group

Corsix but if you only put one condition in it, then it is NOT

jeally-bean what will happen to modules like bbcode

cwgordon7 Slide 13, then

Senpai Thus far, I'd have to say the power this module brings to bear on our content is nothing short of phenomenal!

dmitrig01 "ANY of the conditions are FALSE"

dmitrig01 Senpai: this will be on drupaldojo.com no matter what :P

dmitrig01 jeally-bean: they should vanish

Senpai dmitrig01: Yeah, we'll get the presentation and post it

Corsix (slide 14)

dmitrig01 jeally-bean: because BBcode will take two seconds to implements

dmitrig01 Senpai: no, I mean the module

Corsix two very common conditions

Senpai dmitrig01: oh! hahaha

Corsix text contains phrase/regex

Corsix and text length

Corsix so that you can cause things to happen only when the text contains a certain phrase

Corsix or exceeds a certain length

Corsix or using NOT, when these things don't happen

cwgordon7 For example, you could choose to append a "back to top" link if the length is greater than 1000 characters.

cwgordon7 Or whatever

dmitrig01 cwgordon7: could you make a back to top every 1000 characters?

Corsix in a creative way, yes

cwgordon7 dmitrig01: If you wanted to...

dmitrig01 LOL how?

Senpai oooo! We could use these simple expressions, and package up a pre-built set of them for Advanced Forum users, for esample, so that they'd have a series of presets much like BBcode.

dmitrig01 Senpai is a genius

Senpai I love this module

jacine me too :)

dmitrig01 Senpai: we need to get it a hook()

protramper So flexifilter could replace http://drupal.org/project/spamspan module in notime (just as an example) ?

cwgordon7 import/export features are reserved for 6.x-1.1

dmitrig01 If you love this module you'll love cwgordon7 and my next module

Corsix and thats for another lesson

dmitrig01 whose name, whereabouts, and functionality will be kept secret :)

cwgordon7 Ok, onward then

Corsix Chunks are something really cool

cwgordon7 They're awesomeful!

Corsix they allow you to extract part of the text and apply a set of components on just that bit

jacine This module could replace http://drupal.org/project/reptag too :)

cwgordon7 It will replace every single filter module within two months ;)

protramper haha :D

Corsix so you could take every part of the text "<bbcode>whatever</bbcode>"

Corsix and run BBcode filters on just the bit inside

Senpai You're gonna have to explain Chunks by giving an real-world example. I don't get it yet.

aclight cwgordon7: how would you replace geshifilter?

cwgordon7 aclight: How does geshifilter work?

brenda003 holy crap this is awesome.

dmitrig01 cwgordon7: geshifilter uses the external geshi library

aclight cwgordon7: that's what's used to do syntax highlighting for languages

dmitrig01 aclight: geshifilter would implement the hook

cwgordon7 So geshi filter would implement the hook

dmitrig01 aclight: and add a new component

Corsix (slide 16)

dmitrig01 "higlight text"

dmitrig01 language would be configurable

Corsix So to use Chunks, there is a basic Chunk Grabber component

dmitrig01 then you could use a chunk grabber

Corsix which like IF and WHILE, has components within it

protramper And perfect for SEO too!

dmitrig01 to grab everything between <javascript> and </javascript> and run it through the geshifilter component

Corsix but unlike if and while, runs the components within ONLY on certain parts of the text

cwgordon7 For example, you can grab any text within <myfiltertag> </myfiltertag>

cwgordon7 And run it through the subcomponents of the chunk grabber

cwgordon7 Or within [[ ]]

cwgordon7 Or whatever

cwgordon7 It will run the components within once for each chunk grabbed

Senpai So we can make custom tags, wrap certain content in those tags, and only act on it during a while() ?

cwgordon7 You don't need a while

Senpai but you could...

cwgordon7 It will run its subcomponents once for each tag

Corsix you could

Senpai saw-weet!

cwgordon7 So if you have [[abc]] [[123]

cwgordon7 er [[123]]

cwgordon7 It'll run abc and 123 each through the filter once

Corsix So you could set a chunk as "[[...]]"

Corsix and within the chunk, append "google"

Corsix so "[[abc]] [[123]]"

Corsix would become "[[abcgoogle]] [[123google]]"

cwgordon7 Well, the [[ ]] tags would disappear, actually

dmitrig01 Corsix: could you take out the [[ and ]] part?

cwgordon7 Yeah, they'd disappear by default

cwgordon7 But they can be set to reappear

Senpai Flexifilter. Now with auto-stripping!

Corsix indeed

cwgordon7 We have a cool chart on the next slide

dmitrig01 Senpai: LOL

cwgordon7 And before you judge too harshly, I was using Windows "Paint" to make it

Corsix ok, slide 17

Senpai skipped ahead and was already reading it

Corsix shows an example of Chunk Grabbing

cwgordon7 This will take links in the form of [link:title]

dmitrig01 cwgordon7: [http://drupal.org/:Drupal!] won't work :o

Corsix (although this particular example could also be implemented using regular expressions)

cwgordon7 Corsix: :P

cwgordon7 I know...

cwgordon7 It's just an example, ok? ;)

Senpai sure, but Chunks sounds cooler-er

osinet isn't there a way to use an api function instead of just the flexifilter mechanism. In that example, for instance, invoker url() on the "title" chunk instead of building the link by hand

Corsix and they can do things that regexs cannot

dmitrig01 osinet: yes

dmitrig01 osinet: you can make a new component

cwgordon7 osinet: of course

cwgordon7 osinet: two ways

cwgordon7 osinet: (1) Define a new component

dmitrig01 osinet: or you can evaluate PHP code

cwgordon7 osinet: (2) Manually use php code

dmitrig01 beat cwgordon7 to it

cwgordon7 dmitrig01: grrr

cwgordon7 :P

Corsix ideally, you would create a component

dmitrig01 ON with the presentation

Corsix but simply inserting PHP would do the job, albiet hackily

cwgordon7 That's it...

cwgordon7 Now we move onto the API discussion

Corsix So, flexifilter has two hooks

cwgordon7 For anyone interested in further detail, look at http://docs.google.com/TeamPresent?docid=dg79fhm9_1cfbhbddj#

Corsix one to provide flexifilter with additional components

Corsix and one to provide it with new conditions

Corsix http://drupalbin.com/471

cwgordon7 One will be added in the near future for importation of flexifilters ;)

Corsix shows a simple example of the component hook

Corsix it returns an array of components

Corsix with each component having a name, callback and group

Corsix and other optional things, like description and callback arguments

Corsix http://drupalbin.com/472

Corsix adds the component callback

Corsix So hook_flexifilter_components lists the components

Corsix and each component is implmented in a function

Corsix the function is similar to hook_filter

Corsix in that it as $op and $text

cwgordon7 default: return $text; is not really necessary, though, right?

osinet thx for the presentation

cwgordon7 You could just add return $text;, right?

Corsix when $op is "settings", you should return an forms API array

Corsix for op of "prepare" / "replace", you do whatever the component is ment to do

cwgordon7 You mean "prepare" / "process" ?

Corsix yeah, prepare and process

Corsix as filters are run in two stages

Corsix the prepare stage and the process stage

cwgordon7 A "prepare" stage that escapes stuff and a "process" stage that does stuff.

Corsix and for any $op that you don't do anything for, you should return $text

cwgordon7 Prepare is run first, and then process.

Corsix http://drupalbin.com/473

Corsix Extends the previous code with some settings

cwgordon7 Unless it's 'settings' in which case you should return an empty array

Corsix so when you add the component, you can configure it

Corsix in this case with a dropdown menu

Corsix but you can put in a full forms API array

Corsix when you come to handle prepare and process, the values from that form are available in $settings

cwgordon7 (pretty neat, isn't it?)

12:00 PM dmitrig01 cwgordon7: can you give a use case of prepare/process?

Corsix if you've got the line break filter turned on

Corsix but you want part of the text to be unaffected by it

Corsix (say anything between <?php and ?>)

cwgordon7 In your invocation of the hook, you define the step in which it takes place, either 'either', 'both', 'prepare', or 'process'

cwgordon7 If it's 'both', It will be run in both prepare and process

Corsix then in the prepare, you would escape all the newlines between <?php and ?>

dmitrig01 still doesn't get it

cwgordon7 dmitrig01: Basically because real filters use it

dmitrig01 LOL

cwgordon7 So to make it easier for stuff to be ported, we have a 'prepare' and 'process' step

Corsix But basically it breaks filtering into two stages

cwgordon7 If you want to do different stuff, go ahead.

cwgordon7 Most everything will be done in 'process'.

Corsix Everything is invoked in "prepare"

Corsix and then again in "process"

cwgordon7 Setting 'step' => 'either' defaults to "process", and the user can only change it if they check the "I know what I'm doing" box

Corsix The second hook is hook_flexifilter_conditions

cwgordon7 Corsix: Do you have a conditions example?

cwgordon7 ah, ok

Corsix http://drupalbin.com/474

Corsix So like components, you return an array

Corsix but instead of components, you list conditions

Corsix http://drupalbin.com/478

Corsix and again, you then write a function for each condition

Corsix which like components, has an op of settings, prepare or process

Corsix although for all intents and purposes, you can treat prepare and process as the same in conditions

Corsix less you want to write a "is the prepare step" condition

Corsix So conditions take the text, and should return true or false

cwgordon7 (which is already written for you)

Corsix So, anything that you cannot do with flexifilter at the moment

Corsix write a component or condition so that you can it

cwgordon7 (Which is very little)

Corsix and then share it with us!

cwgordon7 You can either write your own module or we can incorporate it into the flexifilter core.

Senpai You guys will have to pastebin all the code example into one doc at the end of the lesson, so I can place a single drupalbin link on drupaldojo.com.

cwgordon7 Senpai: cool, will do.

cwgordon7 Senpai: Add a link to the full presentation, too?

Senpai Already did

Corsix http://drupalbin.com/479

Corsix is both parts

cwgordon7 An example module that works under the flexifilter framework is at http://drupal.org/project/flexifilter_cite.

cwgordon7 If anyone's interested

Senpai Great lesson, guys! Thanks for the info. It's cool seeing the future of Drupal!

<<-- Return to the lesson page