Back to index

awl  0.53
Public Member Functions | Public Attributes
Browser Class Reference

List of all members.

Public Member Functions

 Browser ($title="")
 The Browser class constructor.
 AddColumn ($field, $header="", $align="", $format="", $sql="", $class="", $datatype="", $hook=null)
 Add a column to the Browser.
 AddHidden ($field, $sql="")
 Add a hidden column - one that is present in the SQL result, but for which there is no column displayed.
 SetTitle ($new_title)
 Set the Title for the browse.
 Title ($new_title=null)
 Accessor for the Title for the browse, which could set the title also.
 SetTranslatable ($column_list)
 Set the named columns to be translatable.
 SetSubTitle ($sub_title)
 Set a Sub Title for the browse.
 SetDiv ($open_div, $close_div)
 Set a div for wrapping the browse.
 SetJoins ($join_list)
 Set the tables and joins for the SQL.
 SetUnion ($union_select)
 Set a Union SQL statement.
 SetWhere ($where_clause)
 Set the SQL Where clause to a specific value.
 SetDistinct ($distinct)
 Set the SQL DISTINCT clause to a specific value.
 SetLimit ($limit_n)
 Set the SQL LIMIT clause to a specific value.
 SetOffset ($offset_n)
 Set the SQL OFFSET clause to a specific value.
 MoreWhere ($operator, $more_where)
 Add an [operator] ...
 AndWhere ($more_where)
 Add an OR ...
 OrWhere ($more_where)
 Add an OR ...
 AddGrouping ($field, $browser_array_key=0)
 AddOrder ($field, $direction, $browser_array_key=0, $secondary=0)
 Add an ordering to the browser widget.
 ForceOrder ($field, $direction)
 Force a particular ordering onto the browser widget.
 SetOrdering ($default_fld=null, $default_dir='A', $browser_array_key=0)
 Set up the ordering for the browser.
 AddTotal ($column_name, $total_function=false)
 Mark a column as something to be totalled.
 GetTotal ($column_name)
 Retrieve the total from a totalled column.
 RowFormat ($beginrow, $closerow, $rowargs)
 Set the format for an output row.
 DoQuery ()
 This method is used to build and execute the database query.
 AddRow ($column_values)
 MatchedRow ($column, $value, $function)
 Replace a row where $column = $value with an extra arbitrary row, returned from calling $function.
 ValueReplacement ($matches)
 Return values from the current row for replacing into a template.
 Render ($title_tag=null, $subtitle_tag=null)
 This method is used to render the browser as HTML.

Public Attributes

 $Title
 $SubTitle
 $FieldNames
 $Columns
 $HiddenColumns
 $Joins
 $Where
 $Distinct
 $Union
 $Order
 $OrderField
 $OrderDirection
 $OrderBrowserKey
 $ForcedOrder
 $Grouping
 $Limit
 $Offset
 $Query
 $BeginRow
 $CloseRow
 $BeginRowArgs
 $Totals
 $TotalFuncs
 $ExtraRows
 $match_column
 $match_value
 $match_function
 $DivOpen
 $DivClose

Detailed Description

Definition at line 174 of file classBrowser.php.


Member Function Documentation

Browser::AddColumn ( field,
header = "",
align = "",
format = "",
sql = "",
class = "",
datatype = "",
hook = null 
)

Add a column to the Browser.

This constructs a new BrowserColumn, appending it to the array of columns in this Browser.

Note that if the $format parameter starts with '

' the format will replace the column format, otherwise it will be used within '

...' tags.

See also:
BrowserColumn
Parameters:
string$fieldThe name of the field.
string$headerA column header for the field.
string$alignAn alignment for column values.
string$formatA sprintf format for displaying column values.
string$sqlAn SQL fragment for calculating the value.
string$classA CSS class to apply to the cells of this column.
string$hookThe name of a global function which will preprocess the column value

The hook function should be defined as follows: function hookfunction( $column_value, $column_name, $database_row ) { ... return $value; }

Definition at line 257 of file classBrowser.php.

                                                                                                                {
    $this->Columns[] = new BrowserColumn( $field, $header, $align, $format, $sql, $class, $datatype, $hook );
    $this->FieldNames[$field] = count($this->Columns) - 1;
  }
Browser::AddGrouping ( field,
browser_array_key = 0 
)

Definition at line 446 of file classBrowser.php.

                                                       {
    if ( $this->Grouping == "" )
      $this->Grouping = "GROUP BY ";
    else
      $this->Grouping .= ", ";

    $this->Grouping .= clean_string($field);
  }

Here is the call graph for this function:

Browser::AddHidden ( field,
sql = "" 
)

Add a hidden column - one that is present in the SQL result, but for which there is no column displayed.

This can be useful for including a value in (e.g.) clickable links or title attributes which is not actually displayed as a visible column.

Parameters:
string$fieldThe name of the field.
string$sqlAn SQL fragment to calculate the field, if it is calculated.

Definition at line 272 of file classBrowser.php.

                                        {
    $this->HiddenColumns[] = new BrowserColumn( $field, "", "", "", $sql );
    $this->FieldNames[$field] = count($this->Columns) - 1;
  }
Browser::AddOrder ( field,
direction,
browser_array_key = 0,
secondary = 0 
)

Add an ordering to the browser widget.

The ordering can be overridden by GET parameters which will be rendered into the column headers so that a user can click on the column headers to control the actual order.

Parameters:
string$fieldThe name of the field to be ordered by.
string$directionA for Ascending, otherwise it will be descending order.
string$browser_array_keyUse this to distinguish between multiple browser widgets on the same page. Leave it empty if you only have a single browser instance.
string$secondaryUse this to indicate a default secondary order which shouldn't interfere with the default primary order.

Definition at line 471 of file classBrowser.php.

                                                                              {
    $field = check_by_regex($field,'/^[^\'"!\\\\()\[\]|*\/{}&%@~;:?<>]+$/');
    if ( ! isset($this->FieldNames[$field]) ) return;

    if ( !isset($this->Order) || $this->Order == "" )
      $this->Order = "ORDER BY ";
    else
      $this->Order .= ", ";

    if ( $secondary == 0 ) {
      $this->OrderField = $field;
      $this->OrderBrowserKey = $browser_array_key;
    }
    $this->Order .= $field;

    if ( preg_match( '/^A/i', $direction) ) {
      $this->Order .= " ASC";
      if ( $secondary == 0)
        $this->OrderDirection = 'A';
    }
    else {
      $this->Order .= " DESC";
      if ( $secondary == 0)
        $this->OrderDirection = 'D';
    }
  }

Here is the caller graph for this function:

Browser::AddRow ( column_values)

Definition at line 644 of file classBrowser.php.

                                    {
    if ( !isset($this->ExtraRows) || typeof($this->ExtraRows) != 'array' ) $this->ExtraRows = array();
    $this->ExtraRows[] = &$column_values;
  }
Browser::AddTotal ( column_name,
total_function = false 
)

Mark a column as something to be totalled.

You can also specify the name of a function which may modify the value before the actual totalling.

The callback function will be called with each row, with the first argument being the entire record object and the second argument being only the column being totalled. The callback should return a number, to be added to the total.

Parameters:
string$column_nameThe name of the column to be totalled.
string$total_functionThe name of the callback function.

Definition at line 554 of file classBrowser.php.

                                                             {
    $this->Totals[$column_name] = 0;
    if ( $total_function != false ) {
      $this->TotalFuncs[$column_name] = $total_function;
    }
  }
Browser::AndWhere ( more_where)

Add an OR ...

to the SQL Where clause

Parameters:
string$more_whereThe extra part of the where clause

Definition at line 433 of file classBrowser.php.

                                   {
    $this->MoreWhere("AND",$more_where);
  }

Here is the call graph for this function:

Browser::Browser ( title = "")

The Browser class constructor.

Parameters:
string$titleA title for the browser (optional).

Definition at line 211 of file classBrowser.php.

                                  {
    global $c;
    $this->Title = $title;
    $this->SubTitle = "";
    $this->Distinct = "";
    $this->Order = "";
    $this->Limit = "";
    $this->Offset = "";
    $this->BeginRow = "<tr class=\"row%d\">\n";
    $this->CloseRow = "</tr>\n";
    $this->BeginRowArgs = array('#even');
    $this->Totals = array();
    $this->Columns = array();
    $this->HiddenColumns = array();
    $this->FieldNames = array();
    $this->DivOpen = '<div id="browser">';
    $this->DivClose = '</div>';
    $this->ForcedOrder = false;
    dbg_error_log( "Browser", ":Browser: New browser called $title");
  }

Here is the call graph for this function:

This method is used to build and execute the database query.

You need not call this method, since Browser::Render() will call it for you if you have not done so at that point.

Returns:
boolean The success / fail status of the AwlQuery::Exec()

Definition at line 615 of file classBrowser.php.

                     {
    $target_fields = "";
    foreach( $this->Columns AS $k => $column ) {
      if ( $target_fields != "" ) $target_fields .= ", ";
      $target_fields .= $column->GetTarget();
    }
    if ( isset($this->HiddenColumns) ) {
      foreach( $this->HiddenColumns AS $k => $column ) {
        if ( $target_fields != "" ) $target_fields .= ", ";
        $target_fields .= $column->GetTarget();
      }
    }
    $where_clause = ((isset($this->Where) && $this->Where != "") ? "WHERE $this->Where" : "" );
    $sql = sprintf( "SELECT %s %s FROM %s %s %s ", $this->Distinct, $target_fields,
                 $this->Joins, $where_clause, $this->Grouping );
    if ( "$this->Union" != "" ) {
      $sql .= "UNION $this->Union ";
    }
    $sql .= $this->Order . ' ' . $this->Limit . ' ' . $this->Offset;
    $this->Query = new AwlQuery( $sql );
    return $this->Query->Exec("Browse:$this->Title:DoQuery");
  }
Browser::ForceOrder ( field,
direction 
)

Force a particular ordering onto the browser widget.

Parameters:
string$fieldThe name of the field to be ordered by.
string$directionA for Ascending, otherwise it will be descending order.

Definition at line 505 of file classBrowser.php.

                                            {
    $field = clean_string($field);
    if ( ! isset($this->FieldNames[$field]) ) return;

    if ( $this->Order == "" )
      $this->Order = "ORDER BY ";
    else
      $this->Order .= ", ";

    $this->Order .= $field;

    if ( preg_match( '/^A/i', $direction) ) {
      $this->Order .= " ASC";
    }
    else {
      $this->Order .= " DESC";
    }

    $this->ForcedOrder = true;
  }

Here is the call graph for this function:

Browser::GetTotal ( column_name)

Retrieve the total from a totalled column.

Parameters:
string$column_nameThe name of the column to be totalled.

Definition at line 567 of file classBrowser.php.

                                    {
    return $this->Totals[$column_name];
  }
Browser::MatchedRow ( column,
value,
function 
)

Replace a row where $column = $value with an extra arbitrary row, returned from calling $function.

Parameters:
string$columnThe name of a column to match
string$valueThe value to match in the column
string$functionThe name of the function to call for the matched row

Definition at line 657 of file classBrowser.php.

                                                    {
    $this->match_column = $column;
    $this->match_value  = $value;
    $this->match_function = $function;
  }
Browser::MoreWhere ( operator,
more_where 
)

Add an [operator] ...

to the SQL Where clause

You will generally want to call OrWhere or AndWhere rather than this function, but hey: who am I to tell you how to code!

Parameters:
string$operatorThe operator to combine with previous where clause parts.
string$more_whereThe extra part of the where clause

Definition at line 420 of file classBrowser.php.

                                               {
    if ( $this->Where == "" ) {
      $this->Where = $more_where;
      return;
    }
    $this->Where = "$this->Where $operator $more_where";
  }

Here is the caller graph for this function:

Browser::OrWhere ( more_where)

Add an OR ...

to the SQL Where clause

Parameters:
string$more_whereThe extra part of the where clause

Definition at line 442 of file classBrowser.php.

                                  {
    $this->MoreWhere("OR",$more_where);
  }

Here is the call graph for this function:

Browser::Render ( title_tag = null,
subtitle_tag = null 
)

This method is used to render the browser as HTML.

If the query has not yet been executed then this will call DoQuery to do so.

The browser (including the title) will be displayed in a div with id="browser" so that you can style '#browser tr.header', '#browser tr.totals' and so forth.

Parameters:
string$title_tagThe tag to use around the browser title (default 'h1')
Returns:
string The rendered HTML fragment to display to the user.

: We should deprecate this approach in favour of simply doing the ValueReplacement on field names

Definition at line 702 of file classBrowser.php.

                                                             {
    global $c, $BrowserCurrentRow;

    if ( !isset($this->Query) ) $this->DoQuery();  // Ensure the query gets run before we render!

    dbg_error_log( "Browser", ":Render: browser $this->Title");
    $html = $this->DivOpen;
    if ( $this->Title != "" ) {
      if ( !isset($title_tag) ) $title_tag = 'h1';
      $html .= "<$title_tag>$this->Title</$title_tag>\n";
    }
    if ( $this->SubTitle != "" ) {
      if ( !isset($subtitle_tag) ) $subtitle_tag = 'h2';
      $html .= "<$subtitle_tag>$this->SubTitle</$subtitle_tag>\n";
    }

    $html .= "<table id=\"browse_table\">\n";
    $html .= "<thead><tr class=\"header\">\n";
    foreach( $this->Columns AS $k => $column ) {
      $html .= $column->RenderHeader( $this->OrderField, $this->OrderDirection, $this->OrderBrowserKey, $this->ForcedOrder );
    }
    $html .= "</tr></thead>\n<tbody>";

    $rowanswers = array();
    while( $BrowserCurrentRow = $this->Query->Fetch() ) {

      // Work out the answers to any stuff that may be being substituted into the row start
      foreach( $this->BeginRowArgs AS $k => $fld ) {
        if ( isset($BrowserCurrentRow->{$fld}) ) {
          $rowanswers[$k] = $BrowserCurrentRow->{$fld};
        }
        else {
          switch( $fld ) {
            case '#even':
              $rowanswers[$k] = ($this->Query->rownum() % 2);
              break;
            default:
              $rowanswers[$k] = $fld;
          }
        }
      }
      // Start the row
      $row_html = vsprintf( preg_replace("/#@even@#/", ($this->Query->rownum() % 2), $this->BeginRow), $rowanswers);

      if ( isset($this->match_column) && isset($this->match_value) && $BrowserCurrentRow->{$this->match_column} == $this->match_value ) {
        $row_html .= call_user_func( $this->match_function, $BrowserCurrentRow );
      }
      else {
        // Each column
        foreach( $this->Columns AS $k => $column ) {
          $row_html .= $column->RenderValue( (isset($BrowserCurrentRow->{$column->Field})?$BrowserCurrentRow->{$column->Field}:'') );
          if ( isset($this->Totals[$column->Field]) ) {
            if ( isset($this->TotalFuncs[$column->Field]) && function_exists($this->TotalFuncs[$column->Field]) ) {
              // Run the amount through the callback function  $floatval = my_function( $row, $fieldval );
              $this->Totals[$column->Field] += $this->TotalFuncs[$column->Field]( $BrowserCurrentRow, $BrowserCurrentRow->{$column->Field} );
            }
            else {
              // Just add the amount
              $this->Totals[$column->Field] += doubleval( preg_replace( '/[^0-9.-]/', '', $BrowserCurrentRow->{$column->Field} ));
            }
          }
        }
      }

      // Finish the row
      $row_html .= preg_replace("/#@even@#/", ($this->Query->rownum() % 2), $this->CloseRow);
      $this->current_row = $BrowserCurrentRow;
      $html .= preg_replace_callback("/##([^#]+)##/", array( &$this, "ValueReplacement"), $row_html );
    }

    if ( count($this->Totals) > 0 ) {
      $BrowserCurrentRow = (object) "";
      $row_html = "<tr class=\"totals\">\n";
      foreach( $this->Columns AS $k => $column ) {
        if ( isset($this->Totals[$column->Field]) ) {
          $row_html .= $column->RenderValue( $this->Totals[$column->Field], "totals" );
        }
        else {
          $row_html .= $column->RenderValue( "" );
        }
      }
      $row_html .= "</tr>\n";
      $this->current_row = $BrowserCurrentRow;
      $html .= preg_replace_callback("/##([^#]+)##/", array( &$this, "ValueReplacement"), $row_html );
    }


    if ( count($this->ExtraRows) > 0 ) {
      foreach( $this->ExtraRows AS $k => $v ) {
        $BrowserCurrentRow = (object) $v;
        // Work out the answers to any stuff that may be being substituted into the row start
        foreach( $this->BeginRowArgs AS $k => $fld ) {
          if ( isset( $BrowserCurrentRow->{$fld} ) ) {
            $rowanswers[$k] = $BrowserCurrentRow->{$fld};
          }
          else {
            switch( $fld ) {
              case '#even':
                $rowanswers[$k] = ($this->Query->rownum() % 2);
                break;
              default:
                $rowanswers[$k] = $fld;
            }
          }
        }

        // Start the row
        $row_html = vsprintf( preg_replace("/#@even@#/", ($this->Query->rownum() % 2), $this->BeginRow), $rowanswers);

        if ( isset($this->match_column) && isset($this->match_value) && $BrowserCurrentRow->{$this->match_column} == $this->match_value ) {
          $row_html .= call_user_func( $this->match_function, $BrowserCurrentRow );
        }
        else {
          // Each column
          foreach( $this->Columns AS $k => $column ) {
            $row_html .= $column->RenderValue( (isset($BrowserCurrentRow->{$column->Field}) ? $BrowserCurrentRow->{$column->Field} : '') );
          }
        }

        // Finish the row
        $row_html .= preg_replace("/#@even@#/", ($this->Query->rownum() % 2), $this->CloseRow);
        $this->current_row = $BrowserCurrentRow;
        $html .= preg_replace_callback("/##([^#]+)##/", array( &$this, "ValueReplacement"), $row_html );
      }
    }

    $html .= "</tbody>\n</table>\n";
    $html .= $this->DivClose;

    return $html;
  }
Browser::RowFormat ( beginrow,
closerow,
rowargs 
)

Set the format for an output row.

The row format is set as an sprintf format string for the start of the row, and a plain text string for the close of the row. Subsequent arguments are interpreted as names of fields, the values of which will be sprintf'd into the beginrow string for each row.

Some special field names exist beginning with the '#' character which have 'magic' functionality, including '#even' which will insert '0' for even rows and '1' for odd rows, allowing a nice colour alternation if the beginrow format refers to it like: 'class="r%d"' so that even rows will become 'class="r0"' and odd rows will be 'class="r1"'.

At present only '#even' exists, although other magic values may be defined in future.

Parameters:
string$beginrowThe new printf format for the start of the row.
string$closerowThe new string for the close of the row.
string$rowargs... The row arguments which will be sprintf'd into the $beginrow format for each row

Definition at line 594 of file classBrowser.php.

  {
    $argc = func_num_args();
    $this->BeginRow = func_get_arg(0);
    $this->CloseRow = func_get_arg(1);

    $this->BeginRowArgs = array();
    for( $i=2; $i < $argc; $i++ ) {
      $this->BeginRowArgs[] = func_get_arg($i);
    }
  }
Browser::SetDistinct ( distinct)

Set the SQL DISTINCT clause to a specific value.

The whole clause (except the keyword) needs to be supplied

Parameters:
string$distinctThe whole clause, after 'DISTINCT'

Definition at line 385 of file classBrowser.php.

                                    {
    $this->Distinct = "DISTINCT ".$distinct;
  }
Browser::SetDiv ( open_div,
close_div 
)

Set a div for wrapping the browse.

Parameters:
string$open_divThe HTML to open the div
string$close_divThe HTML to open the div

Definition at line 336 of file classBrowser.php.

                                           {
    $this->DivOpen = $open_div;
    $this->DivClose = $close_div;
  }
Browser::SetJoins ( join_list)

Set the tables and joins for the SQL.

For a single table this should just contain the name of that table, but for multiple tables it should be the full content of the SQL 'FROM ...' clause (excluding the actual 'FROM' keyword).

Parameters:
string$join_list

Definition at line 350 of file classBrowser.php.

                                  {
    $this->Joins = $join_list;
  }
Browser::SetLimit ( limit_n)

Set the SQL LIMIT clause to a specific value.

Only the limit number should be supplied.

Parameters:
int$limit_nA number of rows to limit the SQL selection to

Definition at line 396 of file classBrowser.php.

                                {
    $this->Limit = "LIMIT ".intval($limit_n);
  }
Browser::SetOffset ( offset_n)

Set the SQL OFFSET clause to a specific value.

Only the offset number

Parameters:
int$offset_nA number of rows to offset the SQL selection to, based from the start of the results.

Definition at line 407 of file classBrowser.php.

                                  {
    $this->Offset = "OFFSET ".intval($offset_n);
  }
Browser::SetOrdering ( default_fld = null,
default_dir = 'A',
browser_array_key = 0 
)

Set up the ordering for the browser.

Generally you should call this with the first parameter set as a field to order by default. Call with the second parameter set to 'D' or 'DESCEND' if you want to reverse the default order.

Definition at line 532 of file classBrowser.php.

                                                                                     {
    if ( isset( $_GET['o'][$browser_array_key] ) && isset($_GET['d'][$browser_array_key] ) ) {
      $this->AddOrder( $_GET['o'][$browser_array_key], $_GET['d'][$browser_array_key], $browser_array_key );
    }
    else {
      if ( ! isset($default_fld) ) $default_fld = $this->Columns[0];
      $this->AddOrder( $default_fld, $default_dir, $browser_array_key );
    }
  }

Here is the call graph for this function:

Browser::SetSubTitle ( sub_title)

Set a Sub Title for the browse.

Parameters:
string$sub_titleThe sub title string

Definition at line 326 of file classBrowser.php.

                                     {
    $this->SubTitle = $sub_title;
  }
Browser::SetTitle ( new_title)

Set the Title for the browse.

This can also be set in the constructor but if you create a template Browser and then clone it in a loop you may want to assign a different Title for each instance.

Parameters:
string$new_titleThe new title for the browser

Definition at line 286 of file classBrowser.php.

                                  {
    $this->Title = $new_title;
  }

Here is the call graph for this function:

Browser::SetTranslatable ( column_list)

Set the named columns to be translatable.

Parameters:
array$column_listThe list of columns which are translatable

Definition at line 308 of file classBrowser.php.

                                           {
    $top = count($this->Columns);
    for( $i=0; $i < $top; $i++ ) {
      dbg_error_log( "Browser", "Comparing %s with column name list", $this->Columns[$i]->Field);
      if ( in_array($this->Columns[$i]->Field,$column_list) ) $this->Columns[$i]->SetTranslatable();
    }
    $top = count($this->HiddenColumns);
    for( $i=0; $i < $top; $i++ ) {
      dbg_error_log( "Browser", "Comparing %s with column name list", $this->HiddenColumns[$i]->Field);
      if ( in_array($this->HiddenColumns[$i]->Field,$column_list) ) $this->HiddenColumns[$i]->SetTranslatable();
    }
  }
Browser::SetUnion ( union_select)

Set a Union SQL statement.

In rare cases this might be useful. It's currently a fairly simple hack which requires you to put an entire valid (& matching) UNION subclause (although without the UNION keyword).

Parameters:
string$union_select

Definition at line 363 of file classBrowser.php.

                                     {
    $this->Union = $union_select;
  }
Browser::SetWhere ( where_clause)

Set the SQL Where clause to a specific value.

The WHERE keyword should not be included.

Parameters:
string$where_clauseA valide SQL WHERE ... clause.

Definition at line 374 of file classBrowser.php.

                                     {
    $this->Where = $where_clause;
  }
Browser::Title ( new_title = null)

Accessor for the Title for the browse, which could set the title also.

Parameters:
string$new_titleThe new title for the browser
Returns:
string The current title for the browser

Definition at line 297 of file classBrowser.php.

                                      {
    if ( isset($new_title) ) $this->Title = $new_title;
    return $this->Title;
  }

Here is the caller graph for this function:

Browser::ValueReplacement ( matches)

Return values from the current row for replacing into a template.

This is used to return values from the current row, so they can be inserted into a row template. It is used as a callback function for preg_replace_callback.

Parameters:
arrayof string $matches An array containing a field name as offset 1

Definition at line 673 of file classBrowser.php.

  {
    // as usual: $matches[0] is the complete match
    // $matches[1] the match for the first subpattern
    // enclosed in '##...##' and so on

    $field_name = $matches[1];
    if ( !isset($this->current_row->{$field_name}) && substr($field_name,0,4) == "URL:" ) {
      $field_name = substr($field_name,4);
      $replacement = urlencode($this->current_row->{$field_name});
    }
    else {
      $replacement = (isset($this->current_row->{$field_name}) ? $this->current_row->{$field_name} : '');
    }
    dbg_error_log( "Browser", ":ValueReplacement: Replacing %s with %s", $field_name, $replacement);
    return $replacement;
  }

Member Data Documentation

Definition at line 194 of file classBrowser.php.

Definition at line 196 of file classBrowser.php.

Definition at line 195 of file classBrowser.php.

Definition at line 179 of file classBrowser.php.

Definition at line 183 of file classBrowser.php.

Definition at line 204 of file classBrowser.php.

Definition at line 203 of file classBrowser.php.

Definition at line 199 of file classBrowser.php.

Definition at line 178 of file classBrowser.php.

Definition at line 189 of file classBrowser.php.

Definition at line 190 of file classBrowser.php.

Definition at line 180 of file classBrowser.php.

Definition at line 181 of file classBrowser.php.

Definition at line 191 of file classBrowser.php.

Definition at line 200 of file classBrowser.php.

Definition at line 202 of file classBrowser.php.

Definition at line 201 of file classBrowser.php.

Definition at line 192 of file classBrowser.php.

Definition at line 185 of file classBrowser.php.

Definition at line 188 of file classBrowser.php.

Definition at line 187 of file classBrowser.php.

Definition at line 186 of file classBrowser.php.

Definition at line 193 of file classBrowser.php.

Definition at line 177 of file classBrowser.php.

Definition at line 176 of file classBrowser.php.

Definition at line 198 of file classBrowser.php.

Definition at line 197 of file classBrowser.php.

Definition at line 184 of file classBrowser.php.

Definition at line 182 of file classBrowser.php.


The documentation for this class was generated from the following file: