Yii-Bootstrap / Yii-Booster Textfieldrow's Label Problem

I’m using textFieldRow function from TbActiveForm from Yii-Bootstrap / Yii-Booster extension and either I’m missing something or there is a bug with htmlOptions[‘label’] (third parameter).

You can set it to FALSE, to hide text field’s label, but you can’t modify label’s value. No matter, what value you pass to [size=“2”]htmlOptions[‘label’][/size][size=“2”] (null, empty string, non-empty string) it is always ignored and model’s attribute label is always used in this situation.[/size]

[size=“2”]Has anyone faced the same problem and know, what’s going on? I’ve tried to trace thy problem up until TbInput class, but all I was able to see, was that $this->label always gets empty there.[/size]

[size=“2”]I managed to workaround this problem, by setting labels to FALSE (making them empty), hiding them at all with styles and using field’s prepend text to mimic label behavior. But since this does not work for lists and other non-input fields, I would be very happy to know, what’s going on here and how to fix this problem.[/size]

[size=“2”]I started exercises with [/size] [size=“2”]htmlOptions[‘label’] , because I’m a person, who takes maximum care about details, and such small detail like auto-adding required [/size]asterisk[size=“2”] to fields in search / filter box really pisses me off. So, my main goal was to find any way, to prevent [/size][size=“2”]TbActiveForm.[/size][size=“2”]textFieldRow[/size][size=“2”] from adding asterisk and to force it to add colon instead. So, if anyone knows any better way of achieving this goal, without using [/size][size=“2”]htmlOptions[‘label’], I would also be very happy to get to this knowledge.[/size]

As you know… I am not supporting for Yii-Booster… please, have a look to the new extensions… we will soon launch the site for Yiistrap and Yiiwheels… everything is just much easier and much, much faster

For the new programming tendencies for YiiBooster, to tell you the truth, I am not even following… IMHO too heavy :)

Cheers

[/size]

What is the key difference between these two extensions packs?

I’m asking, because there aren’t much information in readme.md for each of these repos in GitHub.

Antonio,

There’s another thing. Maybe you can help me.

Most small problems, that I run with Yii-Booster / Yii-Boostrap must come from some sort of misunderstanding at my side of how basic things are working.

For example, I have bootstrap.widgets.TbActiveForm form ($form). I’m rendering validation error field standard way:


<?php echo($form->error($model, 'login', $validationArray)); ?>

where $validationArray is:


$validationArray = array

(

    'hideErrorMessage'=>TRUE,

    'errorCssClass'=>'myclasserror',

    'successCssClass'=>'myclasssuccess',

    'validatingCssClass'=>'myclassvalidating',

    'afterValidateAttribute'=>'js:afterValidateAttribute'

);

I have put debug print_r right before previous code (rendering error field):


<?php echo('<pre>$validationArray = '.print_r($validationArray, TRUE).'</pre>'); ?>

Since previous code calls TbActiveForm.error() function, I have also put print_r in the very beginning of that function:


echo('<pre>$htmlOptions = '.print_r($htmlOptions, TRUE).'</pre>');

die();

Either I’m missing something, or this is a direct call, or a direct hop-in to that function, right? Since $form referes to:


<?php $form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array

then $form->error should directly TbActiveForm.error(), without any class-call or function-call in between, right? If this is so, both print_r should display exactly the same array.

But this is not true. This is, what I’m getting on screen before final die():


$validationArray = Array

(

    [hideErrorMessage] => 1

    [errorCssClass] => myclasserror

    [successCssClass] => myclasssuccess

    [validatingCssClass] => myclassvalidating

    [afterValidateAttribute] => js:afterValidateAttribute

)


$htmlOptions = Array

(

)

How this is possible? What clears that array, if there is a direct function call?

To make things even more complicated, though $htmlOptions array inside TbActiveForm.error() seems to be empty, some of it’s initial arguments are accepted – i.e. I managed to disable error messages (hideErrorMessage) and bind my own JS function for displaying them (afterValidateAttribute). Other arguments are ignored - i.e. I failed to set my own validation classes.

This is something that is beyond my knowledge and imagination. Do you have any idea, what is going on here?

YiiWheels is a widget library that will enhance YiiStrap. The difference between YiiWheels and YiiBooster is no other than it avoids the registration of all the assets at once, encapsulating them to each of their correspondent widgets. That is, no unnecessary assets will be used.

Also, YiiWheels takes advantage or the less hierarchical approach of YiiStrap compared to its predecessor, Yii-Bootstrap. Speeding up what it was for YiiBooster a huge issue.

Finally, YiiWheels will always require YiiStrap, so there are not two versions of the same application (as it was with their correspondent predecessors)

[size=2]If’ I’m getting you right, YiiStrap will be next generation Yii-Bootstrap (bringing pure Bootstrap to Yii) and YiiWheels will be all widgets and additions (like redactorJS, inline editing) to YiiStrap that YiiBooster was addition on top of Yii-Bootstrap.[/size]

Am I getting this right?

When approximation we can expect stable releases of both YiiStrap and YiiWheels?

I think it’s a pity that you are starting new projects instead of fixing existing projects.

What’s the point?

Yii Rights -> Yii Auth.

Yii Bootstrap -> YiiStrap (new name sounds like a bondage lib? :) )

YiiBooster -> YiiWheels.

<edit>

I registered a project called ‘yiistrap’ 11 months ago on Github. So, the name’s taken. :P

</edit>

As soon as you port something to a new library, that library is superseded by a new library…

Rant over. ;)

I’ve been working on a scene editor for Ogre3D since 2009, and we’'re just about to release version 0.5.

It has been rewritten from scratch several times, but - unlike web developers - we haven’t created a new project each time…

The C++ development community seems to be far more mature than the web development community, where similar software would have been at least at version 10.5 by now.

There is a tendency to promote half-baked shit as Gods gift to man.

More often than not, what really is done, is the project website, not the library itself.

I think we need to grow up.

Of course, that doesn’t help when big players like Google also releases beta software - just look at the ridiculously high version number of Chrome… :lol:

jacmoe, as always explains everything in simple, sharp words! :] Though you’re tough and though I like Chris and Antonio, I’m giving you +1 as I also like naming thing with their real names.

Yes, I do completely agree with you. This is madness of starting new project each time someone finds that shit is to big to keep it going and decides to rewrite everything from scratch. And, as you wrote, rewrite is good and often the only option, but why the hell name the project with a different name.

I mean… look at our mother, Yii itself. How many releases we had up until now? How many milestones? Three? 1.0, 1.1 and forthcoming 2.0. I don’t know, if I’m not mistaken, but Qiang even refused calling Yii 2.0 with Yii2, which could at some point suggest, that this is a brand new project. While, the hell, it is, completely rewritten from scratch, with complete backward incompatibility, and yet – still named Yii, right?

I don’t know, maybe I’m too old, or just the other thinking guy. But I don’t see any positive reason before changing project names like you change pants. It only introduces mess around. The entire open source idea was, AFAIK, based on fact that many works on the same. The Git-era of forking everything IMHO ruined that good base. While, again, forking is good itself, it doesn’t have to mean that you claim a brand new product, after you change a few lines.

And about Google Chrome… Well… take a look at my nemesis, Firefox. They pretty much the same. I still remember, that they’ve released version 4 and 5 within two or three months span after version 3. And the list of changes between these versions wouldn’t be enough for minor release for a mature project, while they’ve changed major version number. Two times in between three or four months, like in mature project it is not often to change major version number once per year. Firefox’s marketing team had far more work to do than development team, to write some lies to support idea, that major version number change was necessary.

I remember, that I asked that time, on Polish Mozillla forum, what the hell is about changing a major version number each and every two or three months. No one was really able to give a satisfactory answer.

I know that Antonio has started his own company, and thus it makes sense to not continue with the projects under the Clevertech umbrella.

That is understandable.

I am not really picking on either Antonio nor Chris.

They are both major VIPs!

I am just picking on the whole thing. :)

So, what I am going to do now - after porting my Yii powered bug tracker to YiiBooster, is to rewrite YiiBooster, taking ideas from other projects, YiiWheels included.

I think, considering the current state of the community contributed addons, that it makes totally sense to reinvent every single wheel.

Can’t really recommend any particular extension, to be honest.

Personally, I tend to just make them my own, because then I know who to turn to for support. ;)

To derail this topic even further, I don’t mean that people should do what this guy did:

http://realityeditor.sourceforge.net/

Two years after the launch of the project - lo and behold! the first development version was released at 0.0.1 ! :lol:

Just want to mention that - in case there is any doubts about it - that I am using YiiBooster right now, and I love it. :)

Ha, ha! :] Same here! :P

Did you ever find an answer to this question about changing the label?

Finally I could find this topic, I been trolling around with this,

I had no idea about

yii-bootstrap


yiibooster


yiiwheels


yiistrap

which one is what, till now, I am using yiiboirlerplate and its a great project, but the concern about this, is the support to this libraries / widgets, not matter which one to use.

How @jacmoe said its not good being starting new project each time, what we want is something solid and not severals beta versions around.

Hope can be one with the required support for us, and thanks for making those great extension for us.

I guess now I will have to replace yiibooster with yiiwheels(already setup with yiistrap I think).

@Antonio Ramirez-

Sorry my English.

Yes, I found… Since Yii-Booster is no longer supported, I had to made changes myself. I simply fiexed source code.

If you’re starting a brand new project, you may consider using the “newest” library, you’ll find (I think this is Yiistrap currently).

If you’re updating your existing code, you have to either install new extension and fix your code to it, or keep old one and fix any possible problems yourself.

I found Yii Bootstrap great, it works for me, I spent too much time on getting it into my base project and – to be honest – I’m little bit to tired with how do they start new library right after another one, dropping support for old one completely. So I decided to stay with Yii Bostrap and fix possible problems myself.

@Trejder

Yeah am on it, updating the code <_<