PDA

View Full Version : How to change $project['title_clean']?


BRotondi
25 Jun 2010, 06:41
Hello

$project['title_clean'] = unhtmlspecialchars($project['title_clean']); is not executed and I lost some hours in getting into the code without solving this one:

Where can I put e.g.
$project['title_clean'] .= "test"; to change {vb:raw project.title_clean} used in the templates?

Thanks!
Bruno

Edit: pt_projects seems to be a key... but still hanging...

PitchouneN64ngc
25 Jun 2010, 08:09
Where do you want to show your addition?

BRotondi
25 Jun 2010, 08:35
Thanks for your help.

In every Template using {vb:raw project.title_clean}

E.g.: http://projectbay.net/forum/project.php?issueid=1

The Icon included in the project title shows correctly in the navbar (I changed the php to us 'title' instead of 'title_clean')

But on the right you see "Project vBExperience<a class="main4" title="Forum" href="forumdisplay.php?81-vBExperience"></a>"

I want to split off the part after < which is simple in php ... if you know where to add the code...

Edit: My suggestion for 2.2 is, to give an extra input field "name html" in the Project properties as known in the thread prefixes.

PitchouneN64ngc
25 Jun 2010, 20:07
The field $project['title_clean'] is used to clean some issues you can have with project title like HTML code or malicious code.

I should review the code to see what is the real job of this field.

BRotondi
25 Jun 2010, 21:39
Thanks for having a look. When editing a project you will see
Title
HTML is allowedPerhaps during later versions this has been forgotten?

I also found a very simple workaround: Only change the datastore-cache entry! Since 'title_clean' will always be taken from there. It's much easier to step-by-step-debug admincp/project.php than all those front end-files

Now 10:37 PM here... good night!
Bruno

Edit: I was wrong. No inconsistency (deleted)

--------------- Added 25 Jun 2010 at 23:15 ---------------
Solution
O.K. here my workaround for all who like it:

Replace every 'title_clean' with 'title' in project.php and projectpost.php, since they all affect only the navbits.

Then replace
$this->set('title_clean', htmlspecialchars_uni($this->pt_project['title']));
with $t = $this->pt_project['title'];
$i = stripos($t,'<');
if ($i) {
$t = substr($t,0,$i);
}

$this->set('title_clean', htmlspecialchars_uni($t));
in includes/class_dm_pt_project.php to cut off everything after "<" (e.g. "<a href=...") or change whatever you want.

To see it in action: Project Tools (http://projectbay.net/forum/project.php?issueid=1) - Forum (http://projectbay.net/forum/forumdisplay.php?81-vBExperience) (see the Icons in the Navbits to change visa versa)

And: Thanks for "Project Tools"!