Quickie: Set (missing) page Title in Custom Pages

Custom pages in AppGini are just awesome, and I'm using them a lot. There is one backdraw you might have seen: Custom Pages don't have a (browser-) title by default. That may be irritating for users, when saving custom pages as bookmarks or when sharing links. I am showing a simple PHP one-liner which defines the title of the custom page.

Problem

When loading standard AppGini pages like Table Views or Detail Views there is a specific browser title which is a concatenation of App-Title + Page-Title:

Standard Table View of table projects ("Projekte")

That's fine for example when saving this page as bookmark.

But when creating custom pages, there is no default page title, so the browser title is incomplete:

Custom Page without page title

Every custom page will have the identical page title, which is just the App's title.

Let's have a look at the code for a standard (almost empty) custom page:

<?php 
// file: testpage.php
include("lib.php");
include("header.php");
echo '<h1>Custom Page</h1>';
include("footer.php");

This just gives a custom page with a <h1>-title but no specific browser-title.

Reason

You will see in included header.php there is a concatenation of APP_TITLE + Pipe-character | plus $x->TableTitle:

<title><?php echo APP_TITLE . (isset($x->TableTitle) ? ' | ' . $x->TableTitle : ''); ?></title>

$x is defined in Table Views, Detail Views and perhaps some other pages but not in Custom Pages.

Solution

So, let us quickly change this by defining some dummy $x variable and setting the TableTitle. Check out the following code, especially line 4:

<?php 
// file: testpage.php
include("lib.php");
$x = (object)["TableTitle" => "This is my Custom Page"];
include("header.php");
echo '<h1>Custom Page</h1>';
include("footer.php");

This line 4 declares a variable named $x as a (standard-) object and sets the value of the property TableTitle to some sample-text.

And this is the (wanted) output:

It is important to declare $x->TableTitle before including header.php.

That's it. Now, saved bookmark for or shared links to Custom Pages will have a specific, customizable title.

Do you like it?