-
Notifications
You must be signed in to change notification settings - Fork 32
[WIP] fixed generation of bbcode for uppercased tags #76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Ugh! Can you remove 2bd7dc7 and force push? This is extremely hard to assess correctly as-is. Appreciate your effort, though! |
* @param string $code | ||
* | ||
* @dataProvider textCodeProviderWithInvalidCode | ||
* @group debug |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
???
dc30728
to
6005b2c
Compare
@DaSourcerer Sure no problem. Branch is cleaned. |
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'Parser.php'; | ||
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'UppercasedCodeDefinitionSet.php'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Strange, I needed this for Travis. It worked fine without it on my local setup.
Can you elaborate a little on what problems that causes? |
@shmax I think, he doesn't experience any actual problems safe for the parts of the input that could not be parsed as tags being forcibly turned all-lowercase. I am actually in support of this, but find this implementation not very convincing. There has to be a better way than to keep tagname and the original token when one is directly derived from the other. Could be this is a bit of a hint some refactoring may be in order? After all, we've got Oh, and while we're at it: Do we want to support tagnames with multibyte characters in them? |
That was my thought as well, particularly as he's doing some run-time string operations that weren't there before, even with the double storage. |
JBBCode/ElementNode.php
Outdated
foreach($this->attribute as $key => $value){ | ||
if($key == $this->tagName){ | ||
foreach ($this->attribute as $key => $value) { | ||
if ($this->normalize($key) == $this->normalize($this->originalTagName)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can you check against $this->tagName
? It's already been normalized by this point, hasn't it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And what about strcasecmp()
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was worried about this change by myself too. I'll go for the strcasecmp approach.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
I didn't expected any text modification when an invalid code is given. For my current project the strtolower modification is not accetable. @DaSourcerer The changes might not be very convincing however I didn't want to introduce too many changes at once in one of my first contributions to this project and thus I tried to not break the current structure. |
6005b2c
to
3007a04
Compare
Just curious: is it very difficult to implement compared to the current implementation? |
@frastel: As I said, this may be a hint some refactoring were in order. I understand your reluctance to introduce possibly code-breaking changes, but I just feel there is a better solution. Btw: That would be a shortcoming on our side, not yours ;) @Kubo2: It is so-so. We would introduce a hard dependency on the mb extensions (which is probably less probelmatic than I may make it sound like here). We also use the normalized (i.e. lowercased) tag names for various lookups. I am not quite sure how array keys with mb-characters in them behave. Worst scenario: We would lose all 𝓞(1) lookups and have them replaced with 𝓞(n). Worth it? I really don't know ... |
This PR is actually based on my other cleanup PR. This PR makes only sense after the cleanup PR has been merged.
I found two issues:
[URL=INVALID]foo[/URL]
was generated to[url=invalid]foo[/url]
.=
. So[URL foo=bar]INVALID[/URL]
was generated to[url= foo=bar]INVALID[/url]
.I am not quite sure if the change in
ElementNode::getAsBBCode
for the empty=
is the best solution. Therefore this PR is still WIP. Any feedback appreciated!