This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_WebOSC/catalog/includes/classes/boxes.php

290 lines
13 KiB
PHP
Raw Normal View History

<?php
/*
$Id: boxes.php,v 4.4 2006/12/05 19:05:12 wilt Exp $
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2003 osCommerce
Released under the GNU General Public License
*/
class tableBox {
var $table_border = '0';
var $table_width = '100%';
var $table_cellspacing = '0';
var $table_cellpadding = '2';
var $table_parameters = '';
var $table_row_parameters = '';
var $table_data_parameters = '';
// class constructor
function tableBox($contents, $direct_output = false) {
$tableBox_string = '<table border="' . tep_output_string($this->table_border) . '" width="' . tep_output_string($this->table_width) . '" cellspacing="' . tep_output_string($this->table_cellspacing) . '" cellpadding="' . tep_output_string($this->table_cellpadding) . '"';
if (tep_not_null($this->table_parameters)) $tableBox_string .= ' ' . $this->table_parameters;
$tableBox_string .= '>' . "\n";
for ($i=0, $n=sizeof($contents); $i<$n; $i++) {
if (isset($contents[$i]['form']) && tep_not_null($contents[$i]['form'])) $tableBox_string .= $contents[$i]['form'] . "\n";
$tableBox_string .= ' <tr';
if (tep_not_null($this->table_row_parameters)) $tableBox_string .= ' ' . $this->table_row_parameters;
if (isset($contents[$i]['params']) && tep_not_null($contents[$i]['params'])) $tableBox_string .= ' ' . $contents[$i]['params'];
$tableBox_string .= '>' . "\n";
if (isset($contents[$i][0]) && is_array($contents[$i][0])) {
for ($x=0, $n2=sizeof($contents[$i]); $x<$n2; $x++) {
if (isset($contents[$i][$x]['text']) && tep_not_null($contents[$i][$x]['text'])) {
$tableBox_string .= ' <td';
if (isset($contents[$i][$x]['align']) && tep_not_null($contents[$i][$x]['align'])) $tableBox_string .= ' align="' . tep_output_string($contents[$i][$x]['align']) . '"';
if (isset($contents[$i][$x]['valign']) && tep_not_null($contents[$i][$x]['valign'])) $tableBox_string .= ' valign="' . $contents[$i][$x]['valign'] . '"'; // Added in v4.4
if (isset($contents[$i][$x]['params']) && tep_not_null($contents[$i][$x]['params'])) {
$tableBox_string .= ' ' . $contents[$i][$x]['params'];
} elseif (tep_not_null($this->table_data_parameters)) {
$tableBox_string .= ' ' . $this->table_data_parameters;
}
$tableBox_string .= '>';
if (isset($contents[$i][$x]['form']) && tep_not_null($contents[$i][$x]['form'])) $tableBox_string .= $contents[$i][$x]['form'];
$tableBox_string .= $contents[$i][$x]['text'];
if (isset($contents[$i][$x]['form']) && tep_not_null($contents[$i][$x]['form'])) $tableBox_string .= '</form>';
$tableBox_string .= '</td>' . "\n";
}
}
} else {
$tableBox_string .= ' <td';
if (isset($contents[$i]['align']) && tep_not_null($contents[$i]['align'])) $tableBox_string .= ' align="' . tep_output_string($contents[$i]['align']) . '"';
if (isset($contents[$i]['params']) && tep_not_null($contents[$i]['params'])) {
$tableBox_string .= ' ' . $contents[$i]['params'];
} elseif (tep_not_null($this->table_data_parameters)) {
$tableBox_string .= ' ' . $this->table_data_parameters;
}
$tableBox_string .= '>' . $contents[$i]['text'] . '</td>' . "\n";
}
$tableBox_string .= ' </tr>' . "\n";
if (isset($contents[$i]['form']) && tep_not_null($contents[$i]['form'])) $tableBox_string .= '</form>' . "\n";
}
$tableBox_string .= '</table>' . "\n";
if ($direct_output == true) echo $tableBox_string;
return $tableBox_string;
}
function infoBoxHeaderTemplate($headertext,$right_arrow) {
// STS 4.3: put header template and tags in $sts object, do not display them now.
global $sts;
$btrace=debug_backtrace();
$boxname=basename($btrace[1]['file'],".php");
$boxprefix = "infobox_";
// Added in v4.4: allows to use catalog_filename.html as template for boxes created directly in a catalog script.
$boxname2 = basename($btrace[2]['file'],".php"); // backtrace 2 is the file calling the calling file (like sts_column_left.php)
if ($boxname2=='') $boxprefix = "catalog_";
if (file_exists(STS_TEMPLATE_DIR."boxes/$boxprefix".$boxname."_header.php.html")) {
$template=sts_read_template_file (STS_TEMPLATE_DIR."boxes/$boxprefix".$boxname."_header.php.html");
} elseif (isset($sts->infobox['default_content'])) { //
$template = $sts->infobox['default_header']; // Default box already in memory, get it from there
} else { // Otherwise read it from file and save it
$template=sts_read_template_file (STS_TEMPLATE_DIR."boxes/infobox_header.php.html");
$sts->infobox['default_header'] = $template;
}
$sts->infobox_header_template = $template;
$sts->infobox_headertext = $headertext;
$sts->infobox_right_arrow = $right_arrow;
}
function infoBoxTemplate($content) {
// STS 4.3: read content, display header & content.
// STS 4.4: reset headertext and right_arrow variables in case next box has no header.
global $sts;
$btrace=debug_backtrace();
$boxname=basename($btrace[1]['file'],".php"); // backtrace 1 is the calling file
$boxprefix = "infobox_"; // Added in v4.3SP2.
// Added in v4.4: allows to use catalog_filename.html as template for boxes created directly in a catalog script.
$boxname2 = basename($btrace[2]['file'],".php"); // backtrace 2 is the file calling the calling file (like sts_column_left.php)
if ($boxname2=='') $boxprefix = "catalog_";
if (file_exists(STS_TEMPLATE_DIR."boxes/$boxprefix$boxname.php.html")) {
$template=sts_read_template_file (STS_TEMPLATE_DIR."boxes/$boxprefix$boxname.php.html");
} elseif (isset($sts->infobox['default_content'])) {
$template = $sts->infobox['default_content']; // Default box already in memory, get it from there
} else { // Otherwise read it from file and save it
$template = sts_read_template_file (STS_TEMPLATE_DIR."boxes/infobox.php.html");
$sts->infobox['default_content'] = $template;
}
$template = $sts->infobox_header_template."\n".$template; // Add header before the content. Header can be empty.
$template = str_replace('$headertext', $sts->infobox_headertext, $template);
$template = str_replace('$right_arrow', $sts->infobox_right_arrow, $template);
$template = str_replace('$content', $content, $template);
echo $template;
$sts->infobox_header_template = '';
$sts->infobox_headertext = '';
$sts->infobox_right_arrow = '';
}
} // END tableBox class
class infoBox extends tableBox {
function infoBox($contents) {
$info_box_contents = array();
$info_box_contents[] = array('text' => $this->infoBoxContents($contents));
$this->table_cellpadding = '1';
$this->table_parameters = 'class="infoBox"';
// START STS
global $sts;
if ($sts->infobox_enabled == true) {
$this->infoboxtemplate($this->infoBoxContents($contents));
} else {
$this->tableBox($info_box_contents, true);
}
// END STS
}
function infoBoxContents($contents) {
$this->table_cellpadding = '3';
$this->table_parameters = 'class="infoBoxContents"';
$info_box_contents = array();
$info_box_contents[] = array(array('text' => tep_draw_separator('pixel_trans.gif', '100%', '1')));
for ($i=0, $n=sizeof($contents); $i<$n; $i++) {
$info_box_contents[] = array(array('align' => (isset($contents[$i]['align']) ? $contents[$i]['align'] : ''),
'form' => (isset($contents[$i]['form']) ? $contents[$i]['form'] : ''),
'params' => 'class="boxText"',
'text' => (isset($contents[$i]['text']) ? $contents[$i]['text'] : '')));
}
$info_box_contents[] = array(array('text' => tep_draw_separator('pixel_trans.gif', '100%', '1')));
return $this->tableBox($info_box_contents);
}
}
class infoBoxHeading extends tableBox {
function infoBoxHeading($contents, $left_corner = true, $right_corner = true, $right_arrow = false) {
$this->table_cellpadding = '0';
if ($left_corner == true) {
$left_corner = tep_image(DIR_WS_IMAGES . 'infobox/corner_left.gif');
} else {
$left_corner = tep_image(DIR_WS_IMAGES . 'infobox/corner_right_left.gif');
}
if ($right_arrow == true) {
$right_arrow = '<a href="' . $right_arrow . '">' . tep_image(DIR_WS_IMAGES . 'infobox/arrow_right.gif', ICON_ARROW_RIGHT) . '</a>';
} else {
$right_arrow = '';
}
if ($right_corner == true) {
$right_corner = $right_arrow . tep_image(DIR_WS_IMAGES . 'infobox/corner_right.gif');
} else {
$right_corner = $right_arrow . tep_draw_separator('pixel_trans.gif', '11', '14');
}
// START STS
global $sts;
if ($sts->infobox_enabled == true) {
$info_box_contents = array();
$info_box_contents[] = array(array('params' => 'width="100%" class="infoBoxHeading"',
'text' => $contents[0]['text']));
$this->infoBoxHeaderTemplate($this->tablebox($info_box_contents),$right_arrow);
} else {
$info_box_contents = array();
$info_box_contents[] = array(array('params' => 'height="14" class="infoBoxHeading"',
'text' => $left_corner),
array('params' => 'width="100%" height="14" class="infoBoxHeading"',
'text' => $contents[0]['text']),
array('params' => 'height="14" class="infoBoxHeading" nowrap',
'text' => $right_corner));
$this->tableBox($info_box_contents, true);
}
// END STS
}
}
class contentBox extends tableBox {
function contentBox($contents) {
global $sts;
if ($sts->infobox_enabled == true) {
$this->infoBoxTemplate($this->tableBox($contents));
} else {
$info_box_contents = array();
$info_box_contents[] = array('text' => $this->contentBoxContents($contents));
$this->table_cellpadding = '1';
$this->table_parameters = 'class="infoBox"';
$this->tableBox($info_box_contents, true);
}
}
function contentBoxContents($contents) {
$this->table_cellpadding = '4';
$this->table_parameters = 'class="infoBoxContents"';
return $this->tableBox($contents);
}
}
class contentBoxHeading extends tableBox {
function contentBoxHeading($contents) {
// START STS
global $sts;
if ($sts->infobox_enabled == true) {
$info_box_contents = array();
$info_box_contents[] = array(array('params' => 'class="infoBoxHeading" width="100%"',
'text' => $contents[0]['text']));
$this->infoBoxHeaderTemplate($this->tablebox($info_box_contents),$right_arrow);
} else {
$this->table_width = '100%';
$this->table_cellpadding = '0';
$info_box_contents = array();
$info_box_contents[] = array(array('params' => 'height="14" class="infoBoxHeading"',
'text' => tep_image(DIR_WS_IMAGES . 'infobox/corner_left.gif')),
array('params' => 'height="14" class="infoBoxHeading" width="100%"',
'text' => $contents[0]['text']),
array('params' => 'height="14" class="infoBoxHeading"',
'text' => tep_image(DIR_WS_IMAGES . 'infobox/corner_right_left.gif')));
$this->tableBox($info_box_contents, true);
}
// END STS
}
}
class errorBox extends tableBox {
function errorBox($contents) {
$this->table_data_parameters = 'class="errorBox"';
$this->infoBoxTemplate($this->infoBoxContents($contents));
}
}
class productListingBox extends tableBox {
function productListingBox($contents) {
// START STS 4.4: optionally use template infobox_product_listing.php.html around product listing table.
// If template does not exist, do not use default infobox template but use standard osC.
global $sts;
if ($sts->infobox_enabled == true && file_exists(STS_TEMPLATE_DIR."boxes/infobox_product_listing.php.html")) {
//$this->infoBoxHeaderTemplate("","");
$this->infoBoxTemplate($this->tablebox($contents));
} else {
$this->table_parameters = 'class="productListing"';
$this->tableBox($contents, true);
}
// STOP STS
}
}
?>