PHPLensConnect
PHPLensPConnect
PHPLensPredictState
PHPLensLastState
Returns: phpLens object or false on failure.
Parameters:
This function is very useful when you want to optimize your SQL statements because you can
set different SQL statements to use based on the predicted state.
There are 2 cases where the prediction might not be accurate, on saving a new or updated record.
Then the next state should normally be 'VIEW', but if an error is detected before saving, typically
because a must fill field has been left empty, then the user will be prompted to edit that must fill
field, so the state will not change to 'VIEW'. Thus in the case of saving a new record we return 'NEW?'
and on updating a new record we return 'EDIT?'.
New to phpLens 2.4.2 is the EDITSAVE state. Set firstState = 'EDITSAVE' when we want
to display an EDIT screen in firstState, but after we successfully save, we want switch to VIEW.
This works by setting firstState='EDITSAVE'.
Also if firstState is EDIT and we click on Save and save was successful, we set curState to
EDITSAVE. This is a state that is otherwise identical to EDIT. To maintain backward
compatiblity, to detect EDIT state, i suggest using
See curState for the legal values,
and an example of usage is topics.php at
phplens.com
Also new to phpLens 2.4.2 is we store the curState value in a HTML comment at the bottom of the phpLens HTML.
This is useful if you need to detect what state you are in from a Browser or Web Browser control in Internet
Explorer. The generated comment looks like the following:
This allows us to open up phpLens (in the IE Web Browser control) from VB/Delphi/VFP to edit a record
(set $this->curState = 'EDITSAVE') and detect when
the record is saved by searching for the string "LENS_{$this->id}_STATE=VIEW -->" in the
WebControl.object.document.body.innerHTML property and close the VB/Delphi/VFP window.
A. Functions
These functions can be called at any time.
function &PHPLensConnect($id,$sql,$dbms,$server,$user=false,$pwd=false,$db=false,$lang='en_us')
Two similar functions to connect to a database and return a phpLens object.
The PHPLensPConnect function will perform a persistent connection for speed, the other does
a normal connect.
function &PHPLensPConnect($id,$sql,$dbms,$server,$user=false,$pwd=false,$db=false,$lang='en_us')
Source for the functions is provided:
function &PHPLensConnect
($id,$sql,$dbms,$server,$user=false,$pwd=false,$db=false,$lang='en_us')
{
$conn = &ADONewConnection($dbms);
if (!$conn->Connect($server,$user,$pwd,$db)) return false;
return new PHPLens($id,$conn,$sql,$lang);
}
function &PHPLensPConnect
($id,$sql,$dbms,$server,$user=false,$pwd=false,$db=false,$lang='en_us')
{
$conn = &ADONewConnection($dbms);
if (!$conn->PConnect($server,$user,$pwd,$db)) return false;
return new PHPLens($id,$conn,$sql,$lang);
}
Example of connecting to MySQL:
$lens = PHPLensPConnect('RandID','select * from table','localhost','root','pwd','db1');
Example of connecting to Oracle:
$lens = PHPLensPConnect('ORARand23','select * from table','','scott','tiger','');
Example of connecting to Microsoft SQL Server:
$lens = PHPLensPConnect('mssql_9','select * from table','192.168.0.1','sa','secret','db');
Example of connecting to MS Access (ODBC) with UK English:
$lens = PHPLensPConnect('access_98','select * from table','AccessDSN','','','','en_uk');
Example of connecting to mssql (ODBC):
$lens = PHPLensPConnect('odbc_mssql','select * from table','DSN','userid','password');
function PHPLensPredictState($id, [$firststate='VIEW'])
Returns the predicted next state of the phpLens object as a string by
examining the $_POST and $_GET arrays.
This can be called before the phpLens object is created because it reads the state from a session variable.
The $id parameter is the unique id used to identify the phpLens object. If the first screen is the
create new record or filter/search screen, you need to set the $firststate to 'NEW' or 'FILTER'.
substr($this->curState,0,4) == 'EDIT'
<!-- LENS_".$this->id.'_STATE='.$this->curState." -->
function PHPLensLastState($id)
Returns the last state of the phpLens object as a string.
This can be called before the phpLens object
is created because it reads the state from a session variable.
The $id parameter is the unique id used to identify the phpLens object.
See curState for the legal values.
Close Error PHPLens
Render Reset
ResetAll SetLang
SetState
B. Methods of phpLens
These can only be called as an object method, eg. $lens->Render().
function Close()
Frees some data structures, including the recordset. Does not close the database connection.function Error($msg,$severity=LENSERROR)
Displays error message $msg, with the severity of the message indicated by {LENSWARNING=-1,
LENSERROR=0, LENSERROR_SEVERE=1}. Override this to control or hide Error messages.
Alternatively, use the errorHandler property.
Returns: phpLens object.
Parameters:
Resets phpLens, resetting all filters and sort orders. Note that the currently selected record is still selected.
Resets phpLens, resetting all filters and sort orders, and the currently selected record is de-selected. Added in 3.1.
Since phpLens 2.6, you can dynamicly modify the language setting using the SetLang function. For example, you might have a language file phplens-lang-fr.inc.php. You can set this language using:
$lens = PHPLensPConnect(...);
$lens->SetLang('fr'); // will include_once this file if located in PHPLENS_DIR.
$lens->Render();
Or if you are using applets you can put in the $lens->overrideFunction (the SetLensApplet_$id function).
If the language string length is greater than 6 characters, then we assume that a full file path is being passed to SetLang().
Sets the current state of phpLens. Must be called before $lens->Render(). See curState for the legal values of $state.
Example:
$lens = new PHPLens(...);
if (isset($_GET['hide'])) $lens->SetState('HIDE');
$lens->Render();