Skip to Content Skip to Menu

com_cb_search Advanced Search fix for OpenSEF

  • jeffason
  • jeffason
  • OFFLINE
  • Posts: 53
  • Thanks: 0
  • Karma: 3
18 years 2 months ago #19074 by jeffason
I fixed mod_cb_advanced search to work with OpenSEF and thought others may be wishing they could have this as well.

I did not fix the "advanced search" part because its confusing and wierd and I dont use it. But this fix works for your "search all fields" form and "search by field" form when they are displayed together.

I only changed about 4 lines in each file so its pretty much the same, no security holes opened etc. Two files need to be replaced. If anyone has problems let me know but it should work the way it is. You can turn on the component alias in opensef for the advanced search.

What did I do? I changed the form actions to be the output of
sefRelToAbs("index.php?option=$option&Itemid=$Itemid"). The assigning is done via the tmpl child function in the .php file and it is called up when the templated is rendered from the .tmpl.html file.

Still wishing I could turn on OpenSEF for community builder :/

/administrator/components/com_cb_search/tmpl/cb_search.simple.tmpl.html
[code:1]
<mos:comment>
@version $Id: cb_search.simple.tmpl.html,v 1.0 2006/03/15 12:19:00 rg66 Exp $
@package Joomla
@license www.gnu.org/copyleft/gpl.html GNU/GPL
Joomla is Free Software
</mos:comment>
<mos:tmpl name="header">
{CALENDAR}
<table cellpadding="5" cellspacing="0" border="0" width="98%" class="contentpane" id="registrationTable">
</mos:tmpl>
<mos:tmpl name="header_1">
<tr>
<td colspan="3" width="100%" class="componentheading">{CB_AS_TITLE}</td>
</tr>
</mos:tmpl>
<mos:tmpl name="search_1">
<tr>
<td colspan="3" width="100%" class="componentheading">{CB_AS_SEARCH_TITLE_1}</td>
</tr>
<tr>
<td valign="top">
<form action="{CB_AS_SEARCH_INDEX}" method="post">
<b>{PROMPT_KEYWORD}:</b>
</td>
<td valign="top">
<input type="text" name="searchword" id="search_searchword" size="35" value="" class="inputbox" />
<input type="image" src="{CB_AS_SEARCH_GIF}" alt="{CB_AS_BUTTON}" align="top" style="border: 0px;" />
</td>
<td>
</td>
</tr>
<tr>
<td colspan="3">
{LIST}
</td>
</tr>
<tr>
<td colspan="3">
<input type="hidden" name="id" value="0" />
<input type="hidden" name="gid" value="0" />
<input type="hidden" name="option" value="{OPTION}" />
<input type="hidden" name="task" value="simplesearch" />
</form>
</td>
</tr>
</mos:tmpl>
<mos:tmpl name="search_1_footer">
</table>
<table cellpadding="5" cellspacing="0" border="0" width="98%" class="contentpane" id="registrationTable">
</mos:tmpl>
<mos:tmpl name="search_2">
<form action="{CB_AS_SEARCH_INDEX}" method="post" id="adminForm" name="adminForm">
<tr>
<td colspan="3" width="100%" class="componentheading">{CB_AS_SEARCH_TITLE_2}</td>
</tr>
</mos:tmpl>
<mos:tmpl name="search_2_delimiter">
<tr>
<td colspan="{COLSPAN}" class="delimiterCell">{TITLE}</td>
</tr>
</mos:tmpl>
<mos:tmpl name="search_2_list">
<tr>
<td align=\"right\"><b>{TITLE}:</b></td>
<td>{OPERATORS}</td>
<td colspan="{COLSPAN}" class="fieldCell">{FIELD}</td>
</tr>
</mos:tmpl>
<mos:tmpl name="search_2_list_footer">
<tr>
<td colspan="2">
<input type="hidden" name="id" value="0" />
<input type="hidden" name="gid" value="0" />
<input type="hidden" name="option" value="{OPTION}" />
<input type="hidden" name="task" value="simplesearch2" />
</td>
<td>
<input type="image" src="{CB_AS_SEARCH_GIF}" alt="{CB_AS_BUTTON}" align="top" style="border: 0px;" />
</td>
</tr>
</form>
</mos:tmpl>
<mos:tmpl name="allow">
<tr>
<td colspan="3" width="100%" class="componentheading">{CB_AS_SEARCH_TITLE_3}</td>
</tr>
<tr>
<td colspan="3">
<center><a href="{ALLOW_URL}">{ALLOW_TEXT}</a></center>
</td>
</tr>
</mos:tmpl>
<mos:tmpl name="footer">
</table>
</mos:tmpl>
[/code:1]

/components/com_cb_search/cb_search.html.php
[code:1]
<?php
//CB Advanced Search Component//
/**
* Front End Code
*@package cbadancedsearch
*@Copyright (C) 2006 Emptorum.com
*@ ALl Rights reserved
*@license www.gnu.org/copyleft/gpl.html . GNU Public License
*@version 1.0
*/

//ensure this file is being included by a parent file
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

class HTML_advancedsearch {

function simple($option, $rowFields, $rowFieldValues, $regErrorMSG){
global $mosConfig_absolute_path, $mosConfig_live_site, $Itemid;
require ($mosConfig_absolute_path."/administrator/components/com_cb_search/cb_search.config.php"«»);

$tmpl = & cb_as :: createTemplate();
$tmpl->readTemplatesFromInput('cb_search.simple.tmpl.html');
$tmpl->addVar('header', 'calendar', cb_as::cbCalendars(2) );
//$tmpl->addVar('header', 'index', sefRelToAbs("index.php"«») );
$tmpl->displayParsedTemplate('header');
if ( $cbsa_show_title ) {
$tmpl->addVar('header_1', 'cb_as_title', _CB_AS_TITLE );
$tmpl->displayParsedTemplate('header_1');
}

$searchphrase = mosGetParam( $_REQUEST, 'searchphrase', 'any' );
$searchphrases = array();

$phrase = new stdClass();
$phrase->value = 'any';
$phrase->text = _SEARCH_ANYWORDS;
$searchphrases[] = $phrase;

$phrase = new stdClass();
$phrase->value = 'all';
$phrase->text = _SEARCH_ALLWORDS;
$searchphrases[] = $phrase;

$phrase = new stdClass();
$phrase->value = 'exact';
$phrase->text = _SEARCH_PHRASE;
$searchphrases[] = $phrase;

$lists= mosHTML::radioList( $searchphrases, 'searchphrase', '', $searchphrase );
$image_url = $mosConfig_live_site."/components/com_cb_search/images/search.gif";

if ( $cbsa_allow_search_1 ){
$tmpl->addVar('search_1', 'cb_as_search_title_1', _CB_AS_SEARCH_TITLE_1 );
$tmpl->addVar('search_1', 'option', $option );
$tmpl->addVar('search_1', 'cb_as_search_gif', $image_url );
$tmpl->addVar('search_1', 'cb_as_button', _CB_AS_BUTTON );
$tmpl->addVar('search_1', 'prompt_keyword', _CB_AS_ALL_FIELDS );
$tmpl->addVar('search_1', 'list', $lists );
$tmpl->addVar('search_1', 'cb_as_search_index', sefRelToAbs("index.php?option=$option&Itemid=$Itemid"«») );
$tmpl->displayParsedTemplate('search_1');
}
$tmpl->displayParsedTemplate('search_1_footer');

if ( $cbsa_allow_search_2 ){
$tmpl->addVar('search_2', 'cb_as_search_title_2', _CB_AS_SEARCH_TITLE_2 );
$tmpl->displayParsedTemplate('search_2');

$pfields='';
$title='';
$searchoperators='';
$searchoperators2='';
for($i=0, $n=count( $rowFields ); $i < $n; $i++) {
$colspan = 3;
$pfields='';
if($rowFields[$i]->type=='delimiter') {
$tmpl->addVar('search_2_delimiter', 'colspan', $colspan );
$tmpl->addVar('search_2_delimiter', 'title', unHtmlspecialchars(getLangDefinition($rowFields[$i]->title)) );
$tmpl->addVar('search_2', 'cb_as_search_index', sefRelToAbs("index.php?option=$option&Itemid=$Itemid"«») );

$tmpl->displayParsedTemplate('search_2_delimiter');
} else {
if(getLangDefinition($rowFields[$i]->title)!=""«») {
$title = getLangDefinition($rowFields[$i]->title);
$colspan=1;
}
if($regErrorMSG!==null && isset($_POST[$rowFields[$i]->name])) {
if (!is_array($_POST[$rowFields[$i]->name])) $oValue = htmlentities($_POST[$rowFields[$i]->name]);
if($rowFields[$i]->type=='date') $oValue=dateConverter($oValue,$ueConfig,'Y-m-d');
if($rowFields[$i]->type=='webaddress' && $rowFields[$i]->rows==2) $oValue=$oValue."|*|".$_POST[$rowFields[$i]->name."Text"];
} else $oValue = "";
if(!ISSET($rowFields[$i]->id)) $rowFields[$i]->id="";
if(!ISSET($rowFieldValues->name])) $rowFieldValues->name]="";
if ($rowFields[$i]->type=='multicheckbox' || $rowFields[$i]->type=='multiselect' || $rowFields[$i]->type=='radio'){
$pfields = "<input readonly type=\"hidden\" name=\"".$rowFields[$i]->name."[]\" value=\"no_check\" checked />";
}
$pfields .= cb_as::getFieldEntry(1,$calendars,$rowFields[$i]->type,$rowFields[$i]->name,$rowFields[$i]->description,$rowFields[$i]->title,$oValue,$rowFields[$i]->required,$rowFields[$i]->title,$rowFields[$i]->id,$rowFields[$i]->size, $rowFields[$i]->maxlength, $rowFields[$i]->cols, $rowFields[$i]->rows,$rowFields[$i]->profile,$rowFieldValues->name],$rowFields[$i]->readonly);
}

//we get the default value for the searchoperator
switch ($cbsa_logical_default){
case "0":
$logical_default = "=";
break;
case "1":
$logical_default = "AND";
break;
case "2":
$logical_default = "OR";
break;
case "3":
$logical_default = "NOT";
break;
default:
$logical_default = "AND";
break;
}

$searchoperator = mosGetParam( $_REQUEST, 'searchoperator', $logical_default );
$searchoperators = array();

$search_op_count = 0;
$search_op_count2 = $cbsa_logical_equal + $cbsa_logical_and + $cbsa_logical_or + $cbsa_logical_not;
$op_tag_attribs= '';
$op_hidden = '';
if ($cbsa_logical_equal==1){
$operator = new stdClass();
$operator->value = '=';
$operator->text = _CB_AS_OPERATORS_EQUAL;
$searchoperators[] = $operator;
$search_op_count++;
$op_hidden = "radio";
}
if ($cbsa_logical_and==1){
$operator = new stdClass();
$operator->value = 'AND';
$operator->text = _CB_AS_OPERATORS_AND;
$searchoperators[] = $operator;
$search_op_count++;
$op_hidden = "radio";
}
if ($cbsa_logical_or==1){
$operator = new stdClass();
$operator->value = 'OR';
$operator->text = _CB_AS_OPERATORS_OR;
$searchoperators[] = $operator;
$search_op_count++;
$op_hidden = "radio";
}
if ($cbsa_logical_not==1){
$operator = new stdClass();
$operator->value = 'NOT';
$operator->text = _CB_AS_OPERATORS_NOT;
$searchoperators[] = $operator;
$search_op_count++;
$op_hidden = "radio";
}

if ($search_op_count==0){
$operator = new stdClass();
$operator->value = 'AND';
$operator->text = _CB_AS_OPERATORS_AND;
$searchoperators[] = $operator;

$searchoperator = "AND";
$op_tag_attribs = 'readonly checked';
$op_hidden = "hidden";
} elseif ( $search_op_count==1 && $search_op_count2 == 1 ){
$op_hidden = "hidden";
}

$lists= cb_as::radioList( $searchoperators, 'searchoperator'.$i, $op_tag_attribs, $searchoperator, $op_hidden );

$tmpl->addVar('search_2_list', 'title', $title );
$tmpl->addVar('search_2_list', 'colspan', $colspan );
$tmpl->addVar('search_2_list', 'field', $pfields);
$tmpl->addVar('search_2_list', 'operators', $lists );

$tmpl->displayParsedTemplate('search_2_list');
$tmpl->clearTemplate('search_2_list');
}
$tmpl->addVar('search_2_list_footer', 'cb_as_search_gif', $image_url );
$tmpl->addVar('search_2_list_footer', 'option', $option );
$tmpl->addVar('search_2_list_footer', 'cb_as_button', _CB_AS_BUTTON );
$tmpl->displayParsedTemplate('search_2_list_footer');
}

if($cbsa_allow_adv_search){
$cb_sa_adv_url = "index.php?option=com_cb_search&task=advanced&Itemid=$Itemid";

$tmpl->addVar('allow', 'allow_url', sefRelToAbs($cb_sa_adv_url) );
$tmpl->addVar('allow', 'allow_text', _CB_AS_ALLOW_ADV_USER );
$tmpl->addVar('allow', 'cb_as_search_title_3', _CB_AS_SEARCH_TITLE_3 );
$tmpl->displayParsedTemplate('allow');
}

$tmpl->addVar('footer', 'option', $option );
$tmpl->addVar('footer', 'cb_as_button', _CB_AS_BUTTON );
$tmpl->displayParsedTemplate('footer');

//End of Function
}



function advanced($option, $rowFields, $rowFieldValues, $regErrorMSG){
global $mosConfig_absolute_path, $mosConfig_live_site, $Itemid;
require ($mosConfig_absolute_path."/administrator/components/com_cb_search/cb_search.config.php"«»);

echo cb_as::cbCalendars(2);
?>
<form stye action="<?php echo sefRelToAbs("index.php"«»); ?>" method="post" id="adminForm" name="adminForm">
<table cellpadding="5" cellspacing="0" border="0" width="98%" class="contentpane" id="registrationTable">
<?php
if ( $cbsa_show_title ) {
?>
<tr>
<td colspan="3" width="100%" class="componentheading"><?php echo _CB_AS_TITLE; ?></td>
</tr>
<?php
}

$pfields='';
$searchoperators='';
$searchoperators2='';
for($i=0, $n=count( $rowFields ); $i < $n; $i++) {
//echo "Anzahl Felder:".count($rowFields).":".$rowFields[$i]->type.":".$rowFields[$i]->name.":".$rowFields[$i]->description."<br>";
//echo "Anzahl Werte:".count($rowFieldValues).":"."<br>";

$pfields .= "\t\t<tr>\n";
$colspan = 5;
if($rowFields[$i]->type=='delimiter') {
$pfields .= "\t\t\t<td colspan=\"".$colspan."\" class=\"delimiterCell\">". unHtmlspecialchars(getLangDefinition($rowFields[$i]->title)) ."</td>\n";
if ($rowFields[$i]->description) $pfields .= "\t\t\t</tr><tr><td colspan=\"".$colspan."\" class=\"descriptionCell\">". unHtmlspecialchars(getLangDefinition($rowFields[$i]->description)) ."</td>\n";
} else {
if(getLangDefinition($rowFields[$i]->title)!=""«») {
$pfields .= "\t\t\t<td align=\"right\">"
. cb_as::operator2($i, 2)
. "</td>";

$pfields .= "\t\t\t<td align=\"right\">"
. getLangDefinition($rowFields[$i]->title)
. ":</td>";
$colspan=1;
}
if($regErrorMSG!==null && isset($_POST[$rowFields[$i]->name])) {
if (!is_array($_POST[$rowFields[$i]->name])) $oValue = htmlentities($_POST[$rowFields[$i]->name]);
if($rowFields[$i]->type=='date') $oValue=dateConverter($oValue,$ueConfig,'Y-m-d');
if($rowFields[$i]->type=='webaddress' && $rowFields[$i]->rows==2) $oValue=$oValue."|*|".$_POST[$rowFields[$i]->name."Text"];
} else $oValue = "";
if(!ISSET($rowFields[$i]->id)) $rowFields[$i]->id="";
if(!ISSET($rowFieldValues->name])) $rowFieldValues->name]="";
$pfields .= "\t\t\t<td colspan=\"".$colspan."\" class=\"fieldCell\">"
. cb_as::operator2($i, 1)
."</td><td>\n"
. cb_as::getFieldEntry(1,$calendars,$rowFields[$i]->type,$rowFields[$i]->name,$rowFields[$i]->description,$rowFields[$i]->title,$oValue,$rowFields[$i]->required,$rowFields[$i]->title,$rowFields[$i]->id,$rowFields[$i]->size, $rowFields[$i]->maxlength, $rowFields[$i]->cols, $rowFields[$i]->rows,$rowFields[$i]->profile,$rowFieldValues->name],$rowFields[$i]->readonly);
if ($rowFields[$i]->type=='multicheckbox' || $rowFields[$i]->type=='multiselect' || $rowFields[$i]->type=='radio'){
$pfields .= "<input readonly type=\"hidden\" name=\"".$rowFields[$i]->name."[]\" value=\"no_check\" checked />";
}
$pfields .= "</td>\n";
}
$pfields .= "\t\t</tr>\n";
}
print $pfields;
?>
<tr>
<td colspan="3">
<?php echo cb_as::operator2($i, 2); ?>
</td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" name="id" value="0" />
<input type="hidden" name="gid" value="0" />
<input type="hidden" name="option" value="<?php echo $option; ?>" />
<input type="hidden" name="task" value="advancedsearch" />
<input type="submit" value="<?php echo _CB_AS_BUTTON; ?>" class="button" />
</td>
</tr>
</table>
</form>

<?php


//End of Function
}

function usersList($row,$lfields,$lists,$listid, $search_sql, $where, $whattitle){

global $database,$limitstart,$search,$mosConfig_absolute_path, $mosConfig_sitename,$ueConfig,$_POST,$acl,$_REQUEST, $Itemid;
//$search_sql = cbEscapeSQLsearch(cbGetEscaped(trim( strtolower( $search_sql))));
//$option_itemid = "&Itemid=".cbGetEscaped($_REQUEST);
//$ue_base_url = "index.php?option=com_comprofiler&task=usersList&listid=".$listid.$option_itemid; // Base URL string
$ue_base_url = "index.php?option=com_cb_search&task=usersList&listid=".$listid; // Base URL string
$adminimagesdir = "components/com_comprofiler/images/";

require ($mosConfig_absolute_path."/administrator/components/com_cb_search/cb_search.config.php"«»);

$allusergids=array();
$usergids=explode(",",$row->usergroupids);
foreach($usergids AS $usergid) {
$allusergids[]=$usergid;
if ($usergid==29 || $usergid==30) {
$groupchildren = array();
$groupchildren = $acl->get_group_children( $usergid, 'ARO','RECURSE' );
$allusergids = array_merge($allusergids,$groupchildren);
}
}
$usergids=implode(",",$allusergids);

// Total
$database->setQuery("SELECT count(u.id) FROM #__users u, #__comprofiler ue WHERE u.id=ue.id AND u.block !=1 AND ue.approved=1 AND ue.banned=0 AND ue.confirmed=1 AND u.gid IN (".$usergids."«»)"«»);
$total_results = $database->loadResult();

// Select query
if($row->sortfields!='') $orderby = " ORDER BY ".$row->sortfields;
$filterby="";
if($row->filterfields!='') $filterby = " AND ".utf8RawUrlDecode(substr($row->filterfields,1));

// Search total
$query = "SELECT count(u.id) FROM #__users u, #__comprofiler ue WHERE u.id=ue.id AND u.block !=1 AND ue.approved=1 AND ue.banned=0 AND ue.confirmed=1 AND u.gid IN (".$usergids."«»)";

$query .= $where;
$query .= " ".$filterby;

if(!$database->setQuery($query)) print $database->getErrorMsg();
$total = $database->loadResult();

if (empty($limitstart)) $limitstart = 0;
$limit = $ueConfig;
if ($limit > $total) {
$limitstart = 0;
}

$query = "SELECT *, '' AS 'NA' FROM #__users u, #__comprofiler ue WHERE u.id=ue.id AND u.block!=1 and ue.approved=1 AND ue.banned=0 AND ue.confirmed=1 AND u.gid IN (".$usergids."«»)";

//$query .= $query2;
$query .= $where;
$query .= " ".$filterby;
$query .= " ".$orderby;
$query .= " LIMIT $limitstart, $limit";

//echo $query;

$cb_sa_base_url = "index.php?option=com_cb_search&task=advancedsearch&listid=".$listid;

$database->setQuery($query);

//We check the query worked
if ($cbsa_show_sql_error) {
if (!$database->query()) {
echo "<script>alert('".$database->getErrorMsg()."'); window.history.go(-1);</script>\n";
exit;
}
}

$users=$database->loadObjectList();

//Calculate the Total

$query_total = "SELECT *, '' AS 'NA' FROM #__users u, #__comprofiler ue WHERE u.id=ue.id AND u.block!=1 and ue.approved=1 AND ue.banned=0 AND ue.confirmed=1 AND u.gid IN (".$usergids."«»)";
$query_total .= $where;
$query_total .= " ".$filterby;
$query_total .= " ".$orderby;
$database->setQuery( $query_total );
$total_count =$database->loadObjectList();
$results_found = count( $total_count );
?>
<table width="100%" cellpadding="4" cellspacing="0" border="0" align="center" class="contentpane">
<tr>
<td colspan="2"><span class="contentheading"><?php
if ($whattitle == 0){
echo _CB_AS_SEARCH_RESULTS;
} else {
echo getLangDefinition($row->title);;
} ?></span></td>
</tr>
<tr>
<td valign="top" class="contentdescription" colspan="2">
<?php echo $mosConfig_sitename . " " . _UE_HAS . ": <b>" . $total_results . "</b> " . _UE_USERS; ?>
</td>
</tr>
<?php if ($whattitle == 0 ){ ?>
<tr>
<td valign="top" class="contentdescription">
<?php echo _CB_AS_RESULTS_FOUND . ": <b>" . $results_found . "</b> "; ?>
</td>
<form name="adminForm" method="post" action="<?php echo sefRelToAbs($ue_base_url);?>" >
<td valign = "right"><?php echo $lists; ?>
</td>
</form>
</tr>
<?php } else { ?>
<tr>
<form name="adminForm" method="post" action="<?php echo sefRelToAbs($ue_base_url);?>" >
<td style="width:100%;text-align:right;"><?php echo $lists; ?>
</td>
</form>
</tr>
<?php } ?>
<tr>
<td colspan="2">
<a href="<?php echo sefRelToAbs("index.php?option=com_cb_search&task=simple&Itemid=$Itemid"«»); ?>"><?php echo _CB_AS_TITLE; ?></a>
</td>
</tr>
<tr>
<td colspan="2">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><a href="<?php echo sefRelToAbs($ue_base_url); ?>" onclick="javascript:adminForm.search.value=''"><?php echo _UE_LIST_ALL; ?></a></td>

<td align="right"></td>
</tr>
</table>
<?php
if ($cbsa_page_nav == 0 || $cbsa_page_nav == 2){
if ($results_found > $limit){ ?>
<div style="width:100%;text-align:center;"><?php echo writePagesLinks($limitstart, $limit, $total, $cb_sa_base_url,$where); ?></div>
<hr noshade="noshade" size="1" />
<?php }
}
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<?php
echo "<td><b>".getLangDefinition($row->col1title)."</b></td>\n";
if ($row->col2enabled) echo "<td><b>".getLangDefinition($row->col2title)."</b></td>\n";
if ($row->col3enabled) echo "<td><b>".getLangDefinition($row->col3title)."</b></td>\n";
if ($row->col4enabled) echo "<td><b>".getLangDefinition($row->col4title)."</b></td>\n";
?>
</tr>
<?php
$i = 1;

foreach($users as $user) {
$evenodd = $i % 2;
if ($evenodd == 0) {
$class = "sectiontableentry1";
} else {
$class = "sectiontableentry2";
}
//print $user->name;
if($ueConfig==1) {
$onclick = "onclick=\"javascript:window.location='".sefRelToAbs("index.php?option=com_comprofiler&task=userProfile&user=".$user->id)."'\"";
$style="style=\"cursor:hand;cursor:«»pointer;\"";
}
print "\t<tr class=\"$class\" ".$style." ".$onclick.">\n";
//print $lfields;
$str = null;
eval("\$str = \"$lfields\";"«»);
echo $str. "\n";
print "\t</tr>\n";
$i++;
}
?>
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
<td align="right"></td>
</tr>
</table>
<?php
if ($cbsa_page_nav == 1 || $cbsa_page_nav == 2){
if ($results_found > $limit){ ?>
<hr noshade="noshade" size="1" />
<div style="width:100%;text-align:center;"><?php echo writePagesLinks($limitstart, $limit, $total, $cb_sa_base_url, $where ); ?></div>
<?php }
} ?>
</td>
</tr>
</table>
<?php }


// End of Class
}
?>
[/code:1]

Post edited by: jeffason, at: 2006/08/18 19:51

Please Log in or Create an account to join the conversation.

  • rg66
  • rg66
  • OFFLINE
  • Posts: 2
  • Thanks: 0
  • Karma: 21
18 years 1 month ago #19624 by rg66
Hi,

thank you for pointing out what I have to add in the component to make work with SEF. I have made several other changes and released version 2.0.4. Just visit my site
Robert

Please Log in or Create an account to join the conversation.

Moderators: beatnantkrileon
Powered by Kunena Forum