00:33.04 | *** join/#flow3 boonkerz_ (~boonkerz@p5B28B651.dip.t-dialin.net) |
00:55.28 | *** join/#flow3 skurfuerst (~Adium@i59F6C5B8.versanet.de) |
01:30.23 | *** join/#flow3 skurfuerst1 (~Adium@i59F6C5B8.versanet.de) |
01:35.40 | *** join/#flow3 kevinmo_ (~kevinmo@frbg-4d0281a4.pool.mediaWays.net) |
02:04.14 | *** join/#flow3 boonkerz (~boonkerz@p5B28B651.dip.t-dialin.net) |
02:18.56 | *** join/#flow3 boonkerz (~boonkerz@p5B28B651.dip.t-dialin.net) |
04:19.27 | *** join/#flow3 fb|michael (~tuerk@mail.flagbit.de) |
04:26.21 | *** join/#flow3 cognifloyd (~techguruf@c-67-172-253-220.hsd1.ut.comcast.net) |
05:05.04 | *** join/#flow3 ger^kallisti (~kyrill@188-194-191-15-dynip.superkabel.de) |
05:48.50 | *** join/#flow3 mgoldbeck (~Adium@dslb-088-065-251-218.pools.arcor-ip.net) |
06:26.13 | *** join/#flow3 afoeder (~afoeder@p4FD64504.dip0.t-ipconnect.de) |
06:28.34 | *** join/#flow3 sewo (~sewo@aakx48.neoplus.adsl.tpnet.pl) |
06:29.28 | sewo | good morning |
06:40.07 | afoeder | morning |
06:40.45 | *** join/#flow3 _alban_ (~Alban@LLagny-156-34-1-44.w80-14.abo.wanadoo.fr) |
06:40.45 | *** join/#flow3 mind2machine (~Alban@LLagny-156-34-1-44.w80-14.abo.wanadoo.fr) |
06:45.15 | ChristianM | morning |
06:45.26 | afoeder | moin |
06:56.38 | *** join/#flow3 SpareParts (~ondriq_h@195.168.42.50) |
07:30.44 | *** join/#flow3 Denyerec (~Never@cpc4-shep11-2-0-cust49.8-3.cable.virginmedia.com) |
07:35.26 | *** join/#flow3 nd____ (~nd@mnhm-5f74d1f6.pool.mediaWays.net) |
07:36.34 | *** join/#flow3 kevinmo (~kevinmo@home.3digit.de) |
07:42.51 | jwa | hmmpf |
07:42.55 | *** join/#flow3 aertmann (~aertmann@109.202.148.90) |
07:43.17 | ChristianM | yeah good morning to you too ;) |
07:47.25 | afoeder | :-D |
07:47.46 | afoeder | jwa, was it really *that* bad, that school class? :) |
07:48.09 | *** join/#flow3 boonkerz (~boonkerz@p4FC303FC.dip.t-dialin.net) |
07:48.44 | *** join/#flow3 Kirab (~kira.back@b2b-46-252-131-198.unitymedia.biz) |
07:49.09 | *** join/#flow3 bwaidelich (~Bastian@dslb-188-100-108-008.pools.arcor-ip.net) |
07:49.22 | jwa | afoeder: ha. no I had my headphones and turned up the volume :P |
07:53.00 | afoeder | yep, but that doesn't help when school bags bump against your backside again and again...^^ |
07:53.53 | jwa | I prominently placed my bag on the seat next to me, that usually helps, too |
07:54.17 | jwa | also, if you mind having a look at the logs from yesterday evening, I had a question (again) that noone could answer :( |
07:57.15 | afoeder | >>circular relationships?<<? |
07:58.01 | *** join/#flow3 wittem (~wittem@mail.techdivision.com) |
07:58.30 | jwa | yes |
08:10.13 | *** join/#flow3 foertel (~foertel@p4FE66202.dip0.t-ipconnect.de) |
08:16.59 | *** join/#flow3 boonkerz (~boonkerz@p4FC303FC.dip.t-dialin.net) |
08:20.25 | *** join/#flow3 ger^kallisti (~kyrill@188-194-191-15-dynip.superkabel.de) |
08:28.48 | jwa | afoeder: ? |
08:29.16 | afoeder | yes? I was hoping to silently steal myself away from my responsibility... |
08:29.32 | jwa | k, nevermind then |
08:30.05 | bwaidelich | hi all |
08:30.08 | afoeder | yeah, have indeed no idea so far. |
08:30.11 | bwaidelich | jwa: what was your question? |
08:30.14 | afoeder | hey bwaidelich! |
08:31.37 | jwa | bwaidelich: hi, the last few lines from me here: http://www.rvantwisk.nl/flow3-irc-log/2012/march/28.html |
08:32.52 | bwaidelich | counterquestion: why don't you use the form api? ;) |
08:34.41 | jwa | er, don't mind the example, I actually have different stuff there |
08:35.04 | bwaidelich | ok, but a concrete example would help |
08:35.16 | bwaidelich | so, in that case you had http://yuml.me/582a1ddb right? |
08:36.13 | jwa | exactly, only that Form isn't an aggregation of FilledForm(s) |
08:36.29 | jwa | and FormOptionValue has a reference back to FormOption, of course |
08:36.43 | bwaidelich | it's not an agregate, but a 1:1 relation |
08:37.16 | bwaidelich | http://yuml.me/798b1bd9 |
08:37.19 | jwa | the empty square thingies say otherwise? |
08:37.39 | jwa | yeah, so it's not UML :P |
08:38.08 | jwa | the reason I have it like this is because Forms do not stand in a direct relation to FilledForms, because many users can fill out a single form right? |
08:38.21 | jwa | also, what tool is that? |
08:38.25 | bwaidelich | you're right -> http://yuml.me/ec21e5ab |
08:38.44 | bwaidelich | http://yuml.me |
08:39.16 | bwaidelich | i think, this model could be improved |
08:40.15 | bwaidelich | but to clearify: FormOption is an element in the form, right? (textbox, select field, ...) |
08:40.59 | jwa | yes |
08:41.35 | afoeder | I'd also have a question again and again; is it possible to set Validators to "foreign" packages via Configuration? |
08:41.48 | jwa | can have many options, but not all have to be filled in, so a FilledForm doesn't have the same number of FormOptionValues as its Form has FormOptions |
08:42.01 | afoeder | I'd like, for example, to set Validator options to FLOW3.Party's Party |
08:42.15 | jwa | afoeder: AOP? |
08:42.45 | bwaidelich | if you look at http://flow3.typo3.org/documentation/guides/forms/quickstart.html#api-overview that's the simplified UML of the Form API |
08:42.49 | afoeder | hm would be an idea; but I think setting it via configuration would be useful in general |
08:43.24 | bwaidelich | we use FormDefinition (for Form), FormRuntime (for FilledForm) and FormElement (for FormOption) |
08:43.39 | *** join/#flow3 chrisDD (~chrisDD@BBWR20.bau.tu-dresden.de) |
08:45.07 | chrisDD | Hi, is there an initialize function that is only called when an object is really new and not loaded through persistence? i would suspect _construct and initializeObject to be called in both cases. |
08:45.29 | bwaidelich | chrisDD the constructor is not called when reconstituted |
08:45.37 | jwa | hmm.... |
08:45.56 | bwaidelich | initializeObject() is always called, after all inject* methods have been called |
08:46.36 | bwaidelich | jwa: so basically the only difference is, that you can always ask the FormRuntime for all it's elements |
08:46.49 | bwaidelich | they might be optional, but the Runtime knows about them |
08:46.58 | chrisDD | bwaidelich: thx. thats interesting. |
08:46.58 | ChristianM | jwa about circular references in general, it shouldn't be a problem, I would just for the sake of speed annotate some relation(s) lazy so they are really only loaded if needed |
08:48.03 | ChristianM | but doctrine checks that, so there shouldn't be an endless loop triggered |
08:48.53 | bwaidelich | i think, in this example the circular reference is not the problem |
08:49.03 | bwaidelich | but it seems overcomplicated to get to the values |
08:49.06 | bwaidelich | foreach ($form->getFormOptions() as $option) { |
08:49.06 | bwaidelich | <PROTECTED> |
08:49.06 | bwaidelich | <PROTECTED> |
08:49.06 | bwaidelich | <PROTECTED> |
08:49.06 | bwaidelich | } |
08:49.51 | jwa | exactly, and I'd annotate the Form property of FormOptionValue as lazy I think |
08:50.15 | bwaidelich | the optionValue has a reference to Form ? |
08:50.19 | jwa | I also have specified default values in the FormOption |
08:50.59 | jwa | bwaidelich: uh oh, no, I meant the FilledForm |
08:51.20 | jwa | but yeah since that's a ManyToOne relationship already I doubt it's a problem for doctrine, right? |
08:51.53 | bwaidelich | no, shouldn't be |
08:51.53 | jwa | funny thing is that I don't need ManyToMany relations as I first thought.. |
08:51.59 | jwa | cool :) |
08:52.08 | bwaidelich | in the form api we use unique identifiers for each form element |
08:52.27 | jwa | like ValueObjects? |
08:52.28 | bwaidelich | that makes it really easy to retrieve a specific form value |
08:52.39 | jwa | ah, of course |
08:53.10 | bwaidelich | and we can even use the dot-syntax to combine values to a composite |
08:53.29 | bwaidelich | e.g. "start.date" & "start.time" |
08:53.39 | bwaidelich | getValue('start') would return an array with both values |
08:56.03 | jwa | implementing something like that in my case would be pretty overkill though |
08:57.22 | bwaidelich | jwa i think the main difference is, that we don't map the form values to objects immediately but keep them as multi-dimensional array until the end |
09:00.24 | *** join/#flow3 farconada (~fernando@195.55.164.15) |
09:00.35 | *** join/#flow3 pgampe (~phil@pptp-212-201-71-159.pptp.stw-bonn.de) |
09:01.16 | *** part/#flow3 pgampe (~phil@pptp-212-201-71-159.pptp.stw-bonn.de) |
09:04.27 | afoeder | okey dokey; what do you think: http://forge.typo3.org/issues/35354 |
09:07.39 | bwaidelich | afoeder nice idea! but the base validators of a model should IMO only validate the absolutely necessary rules anyways and everything additional you can achieve with custom validators, no? |
09:08.28 | afoeder | well, then I didn't get something; what is the difference between "base" and "custom" validators? |
09:09.25 | bwaidelich | so, if you have special rules for your "person" model, you could either subclass the Party person or create a custom validator that validates the person object as a whole |
09:10.02 | bwaidelich | "base validator" was ambiguous |
09:10.07 | bwaidelich | http://flow3.typo3.org/documentation/guide/partii/validation.html |
09:10.12 | bwaidelich | i meant "base properties" |
09:10.33 | afoeder | ah now I got you; well, honestly I want to avoid additional files/classes only for that purpose... |
09:11.07 | ChristianM | but it's the way to go |
09:11.16 | afoeder | (you'd mean somethin like a PersonValidator?) |
09:11.17 | ChristianM | the third code example could be covered by that |
09:11.26 | ChristianM | custom NameValidator |
09:11.33 | ChristianM | and annotate that to your name property |
09:11.35 | afoeder | eh right |
09:11.36 | bwaidelich | yes, because it's part of your domain logic. |
09:11.42 | ChristianM | true |
09:11.48 | bwaidelich | but i dont't think your idea does not make sense |
09:11.49 | afoeder | true, too |
09:11.53 | bwaidelich | in general |
09:12.04 | ChristianM | yep, the configuration of validators could make sense I think |
09:12.17 | bwaidelich | but I'm not sure if it would make it even more complex if you have several ways to specify validation rules |
09:12.24 | ChristianM | true |
09:12.26 | afoeder | that's absolutely right! |
09:12.37 | afoeder | we'd need a console command to find out active validators then |
09:12.54 | afoeder | because searching for why a validation fails could drive you mad. |
09:15.20 | afoeder | (if the Yaml approach has a chance, I'd vote for an additional Validation.yaml) |
09:15.21 | *** join/#flow3 fb|micha (~tuerk@mail.flagbit.de) |
09:17.54 | afoeder | additionally, I hazy remember somebody mentioned additional validation options; I think it was Sebastian |
09:18.18 | afoeder | but I really don't remember the concrete ideas |
09:19.57 | bwaidelich | yes I think it will be similar to the PropertyMappingConfiguration |
09:20.21 | bwaidelich | http://flow3.typo3.org/documentation/guide/partiii/propertymapping.html#configuring-the-conversion-process |
09:21.14 | bwaidelich | currently you can use this to allow mapping of nested properties in your initialize*Action() method. I could imagine a similar mechanism to override validation rules. |
09:21.32 | bwaidelich | and we planned to make that settable via annotations, sometime |
09:22.08 | afoeder | ah yes; also a nice idea; but (in my case) it's not clued to (my) domain model "enough" |
09:22.50 | bwaidelich | because you're not using *your* domain model ;) |
09:23.35 | bwaidelich | btw: maybe the mixin mechanism will also allow us to "inject" validation rules to other models. But that will be global then |
09:24.54 | ChristianM | ah bwaidelich as you are here atm. just stumbled upon something and was not sure… can I get an uriBuilder in a command controller? I know there was some discussion about that quite a while ago... |
09:25.12 | afoeder | ok: after all I think the PersonNameValidator would be most straightforward |
09:25.26 | afoeder | at least in my currenct case :) |
09:26.11 | bwaidelich | christianm yes, why not? |
09:26.30 | bwaidelich | but you have to bind it to some WebRequest |
09:26.41 | bwaidelich | ...which you probably have to create first |
09:26.49 | bwaidelich | $uriBuilder->setRequest() |
09:26.51 | ChristianM | ah I see, so a dummy request |
09:26.57 | ChristianM | alright |
09:27.15 | bwaidelich | yes, that should work. as we don't have Backend & Frontend in FLOW3 ;) |
09:27.28 | bwaidelich | that makes things so much easier |
09:27.33 | ChristianM | YES |
09:27.51 | afoeder | although, for example that deep property validating has the charm that you can have different requirements for different contexts |
09:29.14 | afoeder | an employee which uses PersonName must satisfy other properties than a customer, e.g. |
09:29.48 | bwaidelich | afoeder that's true |
09:36.28 | farconada | bwaidelich: have you take a look at this? https://gist.github.com/2227439#comments |
09:37.39 | bwaidelich | farconada didn't see it yet. yes, that should work in general |
09:37.44 | bwaidelich | did you try it? |
09:38.09 | farconada | I dont know how to get the formruntime inside the factory |
09:38.21 | bwaidelich | why do you need it? |
09:38.50 | farconada | I write an examplet at this gist https://gist.github.com/2227439#comments |
09:39.06 | bwaidelich | i know, but why do you need the runtime? |
09:39.23 | farconada | $formRuntime->getFormState()->getFormValues(); |
09:39.27 | farconada | from your example |
09:40.22 | bwaidelich | lets start from the beginning: what are you trying to achieve? to redirect to a custom action after the form has been submitted? |
09:41.01 | farconada | I just playing with TYPO3.Form to learn about its possiblities. |
09:41.22 | farconada | first I want to redirect to an action with an argument passed in a form element |
09:41.30 | afoeder | ChristianM: good chances I got a ticket for T3DD. Have to confirm this, though ;-) |
09:41.39 | ChristianM | cool! |
09:41.55 | bwaidelich | afoeder great |
09:42.40 | farconada | next I want to write the same Form and redirect to different actions (depending of an argument in the template) with the same argument |
09:44.06 | farconada | my idea: a Form is something with input fields that i could use in a template to buld an object and I could send that object to different pages, the form is responsible of validation and should have hooks |
09:44.08 | farconada | is it ok? |
09:46.46 | bwaidelich | farconada: https://gist.github.com/2235472 |
09:47.09 | bwaidelich | this would redirect to an action the user can chose via dropdown (untested) |
09:48.22 | farconada | is not exactly my idea |
09:48.47 | bwaidelich | "first I want to redirect to an action with an argument passed in a form element" isn't that what this example does? |
09:48.51 | farconada | cause the target action should be defined in the template |
09:49.11 | bwaidelich | just take it from "$factorySpecificConfiguration" |
09:49.48 | farconada | 'argments' => array('fieldName' =>{fieldName}') |
09:50.12 | farconada | could I use "$factorySpecificConfiguration" for what I want ? |
09:50.42 | bwaidelich | $factorySpecificConfiguration will contain the complete preset configuration plus the values you specify in the template via the overrideConfiguration argument |
09:50.55 | farconada | ok |
09:51.09 | bwaidelich | so you have to be careful not to override exisitng data. just var_dump the variable and you'll see |
09:51.39 | farconada | the "$factorySpecificConfiguration" ok |
09:51.41 | bwaidelich | it will also contain the default options for the finishers, so you can simply override them |
09:51.45 | bwaidelich | yes |
09:52.03 | farconada | now the form parametes |
09:53.18 | farconada | inside the factory |
09:53.30 | bwaidelich | ? |
09:53.35 | farconada | how to recover the form submitted values? |
09:53.42 | farconada | for example |
09:54.16 | bwaidelich | you can add multiple finishers to a form, what about the closure finisher? |
09:54.25 | bwaidelich | https://gist.github.com/2227439 |
09:55.00 | bwaidelich | ah i see - you want to be redirected to some action with all form values as argument? |
09:55.09 | farconada | $Person = personBuilder($filedName, $fieldAge); $myFinisher->setoptions('person' => $Person) |
09:56.36 | farconada | in your example at https://gist.github.com/2227439 you wrote $formRuntime->getFormState()->getFormValues(); so lets back to my first question, where could I get the formruntime() ? |
09:57.03 | bwaidelich | it will be passed to the closure |
09:57.34 | aertmann | https://review.typo3.org/#/c/9752/1/Classes/Finishers/ClosureFinisher.php |
09:57.35 | farconada | y3es but $closureFinisher->setOption('closure', function($formRuntime) {} |
09:57.43 | farconada | in the factory? |
09:58.52 | bwaidelich | just use it like this and you'll be able to get the form values inside the closure as described |
09:59.30 | aertmann | farconada: https://gist.github.com/2235564 is this what you're looking for? |
10:00.38 | bwaidelich | farconada if you look inside the closure finisher you can see that the first parameter passed to the closure is the form runtime (http://git.typo3.org/FLOW3/Packages/TYPO3.Form.git?a=blob;f=Classes/Finishers/ClosureFinisher.php;h=b090eec12a828f4f582d7d1da32a753ad3756fce;hb=HEAD) |
10:01.03 | bwaidelich | (btw: this will be changed to be the finisherContext soon, but you can get the runtime from that as well) |
10:02.42 | farconada | reading... |
10:03.54 | farconada | sorry, not really satisfied |
10:04.00 | farconada | writing an example... |
10:09.59 | farconada | https://gist.github.com/2227439#comments |
10:10.24 | farconada | is it possible? |
10:12.56 | farconada | I'll be here in after a fast coffe |
10:30.10 | mind2machine | . |
10:33.49 | afoeder | interesting... would anybody be so kind an test/reproduce this http://codepad.viper-7.com/6CtW0u on your machine? |
10:35.37 | bwaidelich | afoeder what's the result on your machine? |
10:35.44 | afoeder | FALSE |
10:36.00 | bwaidelich | and you're surprised? |
10:36.12 | afoeder | well, the one @ codepad is what I was hoping to get... |
10:36.25 | afoeder | why should I not be surprised? :) |
10:36.33 | bwaidelich | what about the trailing pipe in the dateformat? |
10:37.40 | afoeder | http://de.php.net/manual/de/datetime.createfromformat.php |
10:37.57 | afoeder | my intention was to set hmi to 0 and the timezone, too |
10:37.58 | bwaidelich | ah, didn't know that |
10:38.25 | bwaidelich | i get false too |
10:38.54 | afoeder | what php ver? |
10:39.05 | afoeder | and; Windows? |
10:39.09 | ChristianM | I get the expected result |
10:39.14 | ChristianM | the DateTime object |
10:39.26 | afoeder | with UTC? |
10:39.31 | afoeder | (most important for me) |
10:39.51 | ChristianM | ah nope, with local timezone |
10:39.57 | afoeder | meh... |
10:40.03 | ChristianM | but that depends on your php.ini |
10:40.37 | afoeder | ChristianM, could you throw away the | and add an ! in front of the format? |
10:40.44 | afoeder | --> !Y-m-d |
10:41.20 | afoeder | (I ideally don't want something that depends on my php.ini ;-) |
10:41.41 | bwaidelich | http://codepad.viper-7.com/ICCYyE works for me but not on codepad |
10:41.43 | bwaidelich | php... |
10:42.45 | afoeder | I assume that very depends on the php version... because that whole thing is a bit fiddly however... |
10:43.14 | bwaidelich | probably it's safer to (re)set time & timezone on the DateTime object |
10:44.05 | afoeder | yes... true.... |
10:44.37 | afoeder | I hoped I can achieve it with setTypeConverterOption( 'TYPO3\FLOW3\Property\TypeConverter\DateTimeConverter', \TYPO3\FLOW3\Property\TypeConverter\DateTimeConverter::CONFIGURATION_DATE_FORMAT, 'Y-m-d|' |
10:46.14 | ChristianM | !Y-m-d gives Europe/Berlin too |
10:46.47 | afoeder | yep for me, too |
10:49.53 | ChristianM | either you set the timezone with date_default_timezone_set() in bootstrap or you rely on php.ini |
10:50.06 | *** part/#flow3 bwaidelich (~Bastian@dslb-188-100-108-008.pools.arcor-ip.net) |
10:51.11 | farconada | ready |
10:51.32 | afoeder | well, regarding this, I'm still searching for a reliable, holistic solution |
10:52.04 | afoeder | a few days ago I mentioned "Django" which per-default normalizes DateTimes to UTC prior/after persisting |
10:52.30 | afoeder | I think FLOW3 *must* provide a similar mechanism / at least this has really to be discussed. |
10:53.13 | afoeder | because the way it's currently handled may quickly result in a mess... |
10:53.54 | farconada | ideas about https://gist.github.com/2227439#comments ? |
10:55.48 | ChristianM | yeah, timezone handling in php is/was a mess |
10:55.50 | afoeder | (for that reason I started http://forge.typo3.org/issues/33308 a bit ago) |
10:56.07 | afoeder | FLOW3 really should provide a guideline for that. |
10:57.11 | afoeder | this UTC-normalization might even be a Doctrine thing. |
11:03.41 | afoeder | and, as expected: setting the timezone afterwards changes the actual date |
11:03.59 | afoeder | timezone must only be *set* @ constructor |
11:06.13 | ChristianM | sure |
11:10.14 | afoeder | ChristianM, the DateTimeConverter behavior for this reason might even be considered buggy |
11:11.03 | ChristianM | at least I would say this whole timezone stuff needs to be thought about |
11:11.34 | afoeder | absolutely; unfortunately I did not find anybody who would like to participate :-P |
11:12.43 | afoeder | check that line 39, please: http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=blob;f=Classes/Property/TypeConverter/DateTimeConverter.php;h=5aad65f3b6cf4db2f5b8a4e101ba6acb34a05124;hb=master#l39 |
11:14.01 | *** join/#flow3 bwaidelich (~Bastian@dslb-188-100-108-008.pools.arcor-ip.net) |
11:14.11 | bwaidelich | farconada still there? |
11:14.40 | farconada | yes |
11:15.08 | afoeder | this conveys the impression that you might adjust the given date/time bound to the timezone; but actually the resulting date/time is changed |
11:15.17 | bwaidelich | your example won't work. the factory just creates a form definition. the runtime is only available at.. runtime ;) |
11:15.19 | afoeder | ("becomes changed") |
11:15.36 | bwaidelich | but you can use the "setDataType()" setter to automatically map form values to objects |
11:15.52 | bwaidelich | and if that's not enough, create a simple finisher |
11:16.16 | bwaidelich | a finisher retrieves a context that contains the runtime ($finisherContext->getFormRuntime()) |
11:16.38 | ChristianM | afoeder, yep I think I see what you mean |
11:16.44 | ChristianM | that is not that great |
11:17.29 | afoeder | TZ should be set in line 117 |
11:17.33 | afoeder | as 3rd param |
11:18.57 | farconada | setDataType is undocumented, isnt it? |
11:20.01 | bwaidelich | no http://flow3.typo3.org/documentation/guides/forms/extending-form-api.html |
11:20.33 | bwaidelich | it is documented under custom form elements, but you can also set it in the factory |
11:20.51 | bwaidelich | but this is rather advanced |
11:20.58 | bwaidelich | will you be at the developer days in 2 weeks? |
11:21.13 | bwaidelich | i'll be doing a form workshop there |
11:23.05 | farconada | bwaidelich https://gist.github.com/2227439#comments with setDataType and a custom finishers, how could I reutilize the converted object? setDataType expect an string, isnt it? how could i convert a form to a model object? |
11:24.35 | farconada | sorry, I couldn't be a Developers days I cant affors it, but I'll take a look at slides |
11:25.41 | farconada | I think the most important thing here is the concept, tell me if I'm wrong |
11:25.42 | farconada | my idea: a Form is something with input fields that i could use in a template to buld an object and I could send that object to different pages, the form is responsible of validation and should have hooks |
11:27.04 | bwaidelich | farconada thats a pitty. i have to leave now, but I would ignore the dataType for now - it is flexible as it allows you to map pages, sections or single elements to an object, but this is not trivial |
11:27.26 | bwaidelich | have a look at the existing finishers and start with your custom one - they're really easy |
11:27.37 | farconada | i did it |
11:28.23 | bwaidelich | btw: editing existing object is not yet (easily) possible - we'll discuss that at the dev days |
11:28.31 | farconada | I'm considereing TYPO3.Form for complex forms not for the simplest ones, I used to manage master/detail forms that need to be converted via custom property mappers |
11:29.17 | farconada | then converted objects are passed to differents actions and fire signals |
11:30.18 | farconada | I think that TYPO3.Forms could manage it to reutilize the code and encapsuletes the logic of the forms (finishers instead of signals and so on) |
11:30.43 | bwaidelich | yes that should work |
11:31.05 | farconada | I you agree I could develop a bit more my idea and we could talk in another moment |
11:31.49 | bwaidelich | absolutely! just look through the code examples of the FormExample package for some simpler use cases and check the API. it's a bit hard to get your head around it at first, but it's quite flexible |
11:35.14 | farconada | bwaidelich thanks, I'll take a look at this and I'll develop my ideas a bit more |
11:35.23 | bwaidelich | good luck! |
11:47.07 | afoeder | whaarghh... does anybody know "Brottrunk"? |
11:47.52 | *** part/#flow3 bwaidelich (~Bastian@dslb-188-100-108-008.pools.arcor-ip.net) |
11:50.20 | wittem | hey there, at the Documentation on the flow3 website is a guide about "Forms". Where are the sources for this? |
11:55.52 | Kirab | The HttpsInterceptor is not usable, or is it? |
11:56.13 | Kirab | Seems like it’s unfinished work |
11:56.45 | Kirab | Or I just can’t find documentation or use-cases |
12:15.44 | ChristianM | wittem, I guess you talk about the Form API |
12:15.46 | ChristianM | http://git.typo3.org/FLOW3/Packages/TYPO3.Form.git |
12:15.59 | ChristianM | and maybe also interesting: http://git.typo3.org/FLOW3/Packages/TYPO3.FormBuilder.git |
12:16.10 | ChristianM | and: http://git.typo3.org/FLOW3/Packages/TYPO3.FormExample.git |
12:16.31 | wittem | Thank you ChristianM |
12:16.35 | ChristianM | Kirab HttpsInterceptor, nope, I think its the same as the IP address range stuff |
12:16.45 | ChristianM | it's not finished yet |
12:16.49 | ChristianM | afoeder, well I know it |
12:19.29 | afoeder | just tasted a bit of it *_~ |
12:24.57 | ChristianM | yeah its not really nice |
12:25.24 | ChristianM | Kirab, I think we would all be happy to have those interceptors fully implemented so if you need it, would be great if you can offer code |
12:25.37 | ChristianM | btw. did you see our effort to tackle the bugtracker? |
12:25.49 | *** join/#flow3 chrisDD (~chrisDD@drsd-4dbdb856.pool.mediaWays.net) |
12:27.37 | Kirab | ChristianM: Yes, I did, it’s moving forward now :) |
12:32.18 | chrisDD | is there a documented call tree for the object instantiation? i know you guys know which magic function is called when, but i don't want to ask every single time. and testing myself takes time. e.g. is the result of injectsettings available in __construct? |
12:33.09 | ChristianM | chrisDD nope its not |
12:33.22 | ChristianM | and I am not aware of a documentation about that |
12:33.33 | ChristianM | just because it is pretty dynamic as soon as AOP comes in |
12:33.48 | ChristianM | initializeObject is called after __construct with all injections done |
12:34.19 | ChristianM | (but for persisted objects this is called only ONCE when the object is really new) |
12:34.51 | ChristianM | chrisDD but sure, I think it would be nice to have some cheat-sheet with the basic magic methods |
12:35.11 | chrisDD | thats what i am looking for. want to initialize the object only when still not persisted with settings from a config file. |
12:35.27 | ChristianM | yep then initializeObject is what you need |
12:36.19 | chrisDD | but isn't it call when accessing again through the persistence? |
12:36.49 | chrisDD | don't want to initialize with each access to the oibject |
12:37.24 | ChristianM | nope this should really only be called after __construc |
12:37.27 | ChristianM | __construct |
12:38.56 | chrisDD | damn, misunderstood that one. makes things a lot easier :-) |
12:41.48 | ChristianM | um wait, it is in fact called in both ways, but you get an argument that you can check against |
12:43.39 | ChristianM | you can expect one argument to this method |
12:43.42 | ChristianM | an integer |
12:43.48 | ChristianM | and you can check against this constants: |
12:43.50 | ChristianM | \TYPO3\FLOW3\Object\ObjectManagerInterface::INITIALIZATIONCAUSE_CREATED |
12:44.05 | ChristianM | \TYPO3\FLOW3\Object\ObjectManagerInterface::INITIALIZATIONCAUSE_RECREATED |
12:44.38 | ChristianM | chrisDD that was for you, just so your client notifies you ;) |
12:50.25 | chrisDD | oh ok, so i have to take care of that. thats alright. |
12:54.07 | chrisDD | will you all come to f3x12 this weekend? |
12:54.47 | ChristianM | I am there |
12:56.02 | chrisDD | great. me too. |
13:01.25 | ChristianM | nice, so we will meet there |
13:09.30 | chrisDD | yes. |
13:09.38 | chrisDD | oh injectSettings isnÄt working in a model class? |
13:18.13 | *** join/#flow3 boonkerz (~boonkerz@p4FC303FC.dip.t-dialin.net) |
13:22.02 | *** join/#flow3 mind2machine (~Alban@LLagny-156-34-1-44.w80-14.abo.wanadoo.fr) |
13:22.02 | *** join/#flow3 _alban_ (~Alban@LLagny-156-34-1-44.w80-14.abo.wanadoo.fr) |
13:30.13 | *** join/#flow3 jocrau (~jocrau@64.134.46.17) |
13:31.32 | afoeder | ChristianM what do you think, is the ->setTimezone issue worth a patch? |
13:32.03 | afoeder | I don't know if this is intended behavior or if the author wasn't (really) aware of that fact |
13:33.28 | afoeder | ah, bwaidelich seems to be the author |
13:35.09 | farconada | afoerder what about the assetic package? |
13:37.21 | *** join/#flow3 skurfuerst (~Adium@192.162.229.4) |
14:07.05 | jwa | did someone already setup a CI with flow3? |
14:08.10 | farconada | time ago i did something |
14:08.22 | farconada | the big problem is coverture |
14:11.53 | jwa | coverture??? |
14:12.09 | farconada | sorry coverage |
14:12.29 | jwa | haha might have been your wife interfering with it :D |
14:13.05 | farconada | jejeje, |
14:13.29 | jwa | I mean, it's always possible ;) |
14:17.47 | jwa | and I have an excuse for not writing unit tests :3 http://flow3.typo3.org/documentation/guide/partiii/testing.html |
14:18.42 | farconada | http://jenkins-php.org/ |
14:22.20 | *** join/#flow3 sewo1 (~sewo@aalh30.neoplus.adsl.tpnet.pl) |
14:26.33 | *** join/#flow3 sewo2 (~sewo@aakz108.neoplus.adsl.tpnet.pl) |
14:48.50 | *** join/#flow3 Alban_ (~Alban@LLagny-156-34-1-44.w80-14.abo.wanadoo.fr) |
14:49.00 | *** join/#flow3 sewo (~sewo@aakz108.neoplus.adsl.tpnet.pl) |
14:55.53 | jwa | I have a suggestion for i18n formatters... I don't think it's a good idea to need the TYPO3\FLOW3 namespace and you should be able to use your own namespace for (say, very custom) own formatters |
14:56.25 | jwa | maybe use a list of namespaces for formatters in Settings.yaml or Objects.yaml or use annotations to collect all available formatters |
14:56.31 | jwa | just looking for input :) |
14:57.42 | *** join/#flow3 boonkerz_ (~boonkerz@p4FC303FC.dip.t-dialin.net) |
15:06.15 | ChristianM | jwa, didn't look into those yet, but if it is the case that they NEED to be in TYPO3\FLOW3 namespace, yes we should change that |
15:06.24 | ChristianM | to some annotation / interface based approach |
15:06.58 | ChristianM | mmm there is \TYPO3\FLOW3\I18n\Formatter\FormatterInterface |
15:13.49 | *** part/#flow3 afoeder (~afoeder@p4FD64504.dip0.t-ipconnect.de) |
15:16.50 | *** join/#flow3 sewo (~sewo@aakz108.neoplus.adsl.tpnet.pl) |
15:31.48 | *** join/#flow3 Wrack (~eric@g230118001.adsl.alicedsl.de) |
15:34.11 | *** join/#flow3 Torsten85 (~textual@ip-95-222-156-104.unitymediagroup.de) |
15:52.27 | *** join/#flow3 sewo1 (~sewo@aalb83.neoplus.adsl.tpnet.pl) |
15:54.41 | *** join/#flow3 boonkerz_ (~boonkerz@p4FC303FC.dip.t-dialin.net) |
15:56.22 | kkopecky | Did any one know a good projectmanagement softwarte for realizing a bigger projekt in flow3 ? |
15:57.15 | ChristianM | kkopecky, mmm very much depends on your needs |
15:57.34 | ChristianM | we currently try JIRA for our development effort |
15:57.35 | kkopecky | i want that the projekt will be successful :D |
15:57.42 | kkopecky | okay |
15:57.44 | ChristianM | :D who doesn't |
15:58.04 | ChristianM | JIRA looks very promising but it is not for free (at least for non open source projects) |
15:58.18 | ChristianM | it has tons of integration tools for IDEs and browsers |
15:58.27 | kkopecky | okay |
15:58.34 | kkopecky | i will look at it :) |
15:58.52 | ChristianM | apart from that, well good old redmine... |
16:02.04 | *** join/#flow3 shoelessone (~kevin@76.14.75.242) |
16:02.07 | kkopecky | now its just a projekt for my study |
16:03.55 | *** join/#flow3 fb|michael (~tuerk@mail.flagbit.de) |
16:06.30 | kkopecky | but with the goal to do a startup out of it ;) |
16:07.21 | *** join/#flow3 wouterw90 (~wouterw90@181.sub196.ddfr.nl) |
16:08.21 | ChristianM | alright |
16:08.37 | ChristianM | besides I like Wunderkit a lot |
16:09.02 | ChristianM | so far I use it mainly for self organisation but it offers team collaboration too |
16:10.32 | kkopecky | okay , i will also take a look |
16:25.23 | *** join/#flow3 jocrau (~jocrau@64.134.46.17) |
16:37.36 | *** join/#flow3 Wrack2 (~eric@g225166198.adsl.alicedsl.de) |
17:02.21 | *** join/#flow3 Kollode (~Kollode@g224120073.adsl.alicedsl.de) |
17:23.48 | *** join/#flow3 aertmann (~aertmann@x1-6-b8-c7-5d-ca-a3-b0.k704.webspeed.dk) |
18:18.30 | *** join/#flow3 andreaswolf (~aw@194.230.159.66) |
18:22.52 | *** join/#flow3 Akii (~akii@116-70.wh-gutenberg.uni-ulm.de) |
18:41.19 | *** join/#flow3 andreaswolf (~aw@194.230.159.66) |
18:53.02 | *** join/#flow3 boonkerz (~boonkerz@p4FC303FC.dip.t-dialin.net) |
18:53.52 | *** join/#flow3 sewo (~sewo@aakp86.neoplus.adsl.tpnet.pl) |
19:11.06 | *** join/#flow3 andreaswolf (~aw@194.230.159.66) |
19:31.52 | *** join/#flow3 andreaswolf (~aw@194.230.159.125) |
19:46.32 | *** join/#flow3 goli (~goli@62.245.162.32) |
19:50.19 | *** join/#flow3 andreaswolf (~aw@194.230.159.125) |
19:51.04 | *** join/#flow3 farconada (~fernando@156.Red-79-147-251.dynamicIP.rima-tde.net) |
19:58.59 | *** join/#flow3 andreaswolf (~aw@194.230.159.125) |
20:10.26 | *** join/#flow3 andreaswolf (~aw@194.230.159.125) |
20:21.54 | *** join/#flow3 beberlei (~benny@koln-4d0b0981.pool.mediaWays.net) |
20:22.55 | *** join/#flow3 Kollode1 (~Kollode@d223140.adsl.hansenet.de) |
20:38.43 | *** join/#flow3 andreaswolf (~aw@194.230.159.125) |
21:26.07 | *** join/#flow3 kevin__ (~kevin@76.14.75.242) |
21:59.36 | jwa | ChristianM: yes, there's an interface, but you can't have {0,\Acme\I18n\Formatter\MyCustomFormatter} in your translation files, can you? :) |
22:03.06 | *** join/#flow3 Akii (~akii@116-70.wh-gutenberg.uni-ulm.de) |