$where_parts = array();
// echo '<pre>$search_params: ' . print_r( $search_params, true ) . '</pre>';
if ( $search_params['company'] ) {
- $where_parts[] = "T.company like '%" . esc_sql( $search_params['company'] ) . "%'";
+ $name_parts = array();
+ $name_parts[] = "company like '%" . esc_sql( $search_params['company'] ) . "%'";
+ $name_parts[] = "SOUNDEX(company) LIKE CONCAT('%', SOUNDEX('" . esc_sql( $search_params['company'] ) . "'), '%')";
+ $where_parts[] = '('.implode( ' OR ', $name_parts ).')';
}
if ( $search_params['contact'] ) {
- // Search for name.
- // Could be in these formats:
- // fname lname
- // lname, fname
- // lname fname
- // lname
- // fname
- $name_parts = array();
- $name_parts[] = "SOUNDEX(CONCAT_WS(' ', fname, lname)) = SOUNDEX( '" . esc_sql( $search_params['contact'] ) . "')";
- $name_parts[] = "SOUNDEX(CONCAT_WS(' ', lname, fname)) = SOUNDEX( '" . esc_sql( $search_params['contact'] ) . "')";
- $name_parts[] = "SOUNDEX(fname) = SOUNDEX( '" . esc_sql( $search_params['contact'] ) . "')";
- $name_parts[] = "SOUNDEX(lname) = SOUNDEX( '" . esc_sql( $search_params['contact'] ) . "')";
- $where_parts[] = '('.implode( ' OR ', $name_parts ).')';
+ $name_parts = array();
+ $name_parts[] = "SOUNDEX(CONCAT_WS(' ', fname, lname)) = SOUNDEX( '" . esc_sql( $search_params['contact'] ) . "')";
+ $name_parts[] = "SOUNDEX(CONCAT_WS(' ', lname, fname)) = SOUNDEX( '" . esc_sql( $search_params['contact'] ) . "')";
+ $name_parts[] = "SOUNDEX(fname) = SOUNDEX( '" . esc_sql( $search_params['contact'] ) . "')";
+ $name_parts[] = "SOUNDEX(lname) = SOUNDEX( '" . esc_sql( $search_params['contact'] ) . "')";
+ $where_parts[] = '('.implode( ' OR ', $name_parts ).')';
}
}
+ // echo '<pre>$where_parts: ' . print_r( $where_parts, true ) . '</pre>';
+
+ // If doing alpha list
+ if (isset($_REQUEST['alpha'])) {
+ $actionData['request']['alpha'] = $_REQUEST['alpha'];
+ }
+ $alphaList = false;
+ $alphaWhere = '';
+ $alphaSelected = false;
+
+ // Check for alpha selected
+ if ($actionData['request']['alpha'] && strlen($actionData['request']['alpha']) == 1) {
+ $alphaSelected = strtoupper($actionData['request']['alpha']);
+ $alphaWhere .= " AND T.company LIKE '$alphaSelected%'";
+ }
+
// Initialize the interests array
$interests = array();
} else if ( isset( $_REQUEST['search'] ) && !isset( $_REQUEST['contact'] ) ) {
unset( $_SESSION['search']['contact'] );
}
+ if ( isset( $_REQUEST['alpha'] ) ) {
+ $_SESSION['search']['alpha'] = $_REQUEST['alpha'];
+ } else if ( isset( $_REQUEST['alpha'] ) && !isset( $_REQUEST['alpha'] ) ) {
+ unset( $_SESSION['search']['alpha'] );
+ }
if ( ( isset( $search ) && $search ) || $searching ) {
if ( isset( $where_parts ) && !empty( $where_parts ) ) {
// $entry = $this->getList( $where );
$orderBy = 'T.company ASC,T.lname ASC,T.fname ASC,T.updated DESC';
- $entryResults = $this->getList( $where, $orderBy, true, 'id', $start, $limit );
- $stats = $this->getStats( $where );
+ $entryResults = $this->getList( $where.$alphaWhere, $orderBy, true, 'id', $start, $limit );
+ $stats = $this->getStats( $where.$alphaWhere );
+
+
+ // Get full list for all other filters, but not filtered by alpha (that would be silly)
+ $alphaList = $this->getAlphaList(' AND '.$where, $alphaSelected);
+
+
+ // echo '<pre>$alphaWhere: ' . print_r( $alphaWhere, true ) . '</pre>';
+
+ // echo '<pre>$alphaList: ' . print_r( $alphaList, true ) . '</pre>';
// Get paging results
$params = '';
$start = 1;
}
}
- if ( $entryResults['returned'] == $limit ) {
+ // if ( $entryResults['returned'] == $limit ) {
+ // $nextStart = $start + $limit;
+ // }
+ if ( $start + $limit <= $stats ) {
$nextStart = $start + $limit;
}
$entry = $entryResults['list'];
'inserting' => $inserting,
'inserting_error' => $inserting_error,
'assetsUrl' => GLM_MEMBERS_TRAVEL_PLUGIN_URL . 'assets',
+ 'alphaList' => $alphaList,
+ 'alphaSelected' => $alphaSelected,
);
<input type="hidden" name="limit" value="{$limit}">
<br clear="all">
<p><b>Total found:</b> {$leadCount} </p>
+ <div class="business-first-letter">
+ <a href="{$thisUrl}?page={$thisPage}&glm_action=index&company={$smarty.request.company}&contact={$smarty.request.contact}#glm-member-list-filters-button" class="glm-alpha-link{if !$alphaSelected} curr{/if}">All</a>
+ {foreach $alphaList as $a}
+ <a href="{$thisUrl}?page={$thisPage}&glm_action=index&alpha={$a.alpha}&company={$smarty.request.company}&contact={$smarty.request.contact}#glm-member-list-filters-button" class="glm-alpha-link{if $a.default} curr{/if}">{$a.alpha}</a>
+ {/foreach}
+ </div>
+
{if $paging}
<input type="hidden" name="search" value="1">
{if isset($smarty.request.company)}<input type="hidden" name="company" value="{$smarty.request.company}">{/if}
{if isset($smarty.request.contact)}<input type="hidden" name="contact" value="{$smarty.request.contact}">{/if}
+ {if isset($smarty.request.alpha)}<input type="hidden" name="alpha" value="{$smarty.request.alpha}">{/if}
<input type="Submit" name="pageSelect" value="Previous {$limit} Leads" class="button button-secondary glm-button"{if !$prevStart} disabled{/if}>
<input type="Submit" name="pageSelect" value="Next {$limit} Leads" class="button button-secondary glm-button"{if !$nextStart} disabled{/if}>
{/if}