smarty php关于获取mysql数据的问题

smarty php关于获取mysql数据的问题,php,smarty,Php,Smarty,我熟悉php,但在smarty框架上不是很好。也许有人能帮我改变这个smarty.php文件,让它现在显示更多的mysql数据数组。同一行中还有一些字段可以显示。e、 标志,街道。如何更改php以提供{$logo}等 public function isAccessible() { $this->setPermissionLabel('open_search_by_company_form'); return parent::isAccessible(); } publi

我熟悉php,但在smarty框架上不是很好。也许有人能帮我改变这个smarty.php文件,让它现在显示更多的mysql数据数组。同一行中还有一些字段可以显示。e、 标志,街道。如何更改php以提供{$logo}等

public function isAccessible()
{
    $this->setPermissionLabel('open_search_by_company_form');
    return parent::isAccessible();
}

public function execute()
{
    $tp = SJB_System::getTemplateProcessor();
    $template = SJB_Request::getVar('display_template');
    $page = 1;
    $searchId = strip_tags(SJB_Request::getVar('searchId', time()));
    if (!empty($_REQUEST["page"]))
        $page = intval($_REQUEST["page"]);
    $items_per_page = SJB_Request::getVar('companies_per_page', false);
    $listing_type_sid = SJB_ListingTypeManager::getListingTypeSIDByID($_REQUEST["listing_type_id"]);
    $alphabets = SJB_AlphabetManager::getAlphabetsForDisplay();
    $abArr = array();
    foreach ($alphabets as $alphabet)
        $abArr[] = explode(' ', $alphabet['value']);

    $action = SJB_Request::getVar('action', 'search_form');
    if (SJB_Request::getVar('first_char')) {
        $action = 'search';
        $_REQUEST['CompanyName']['first_char_like'] = SJB_Request::getVar('first_char');
    }
    elseif (!isset($_REQUEST['CompanyName']) || $_REQUEST['CompanyName']['like'] == '') {
        $_REQUEST['CompanyName']['not_empty'] = true;
    }
    $userGroupSid = SJB_UserGroupManager::getUserGroupSIDByID('Employer');
    $userGroupFields = SJB_UserProfileFieldManager::getFieldsInfoByUserGroupSID($userGroupSid);
    foreach ($userGroupFields as $key => $userGroupField) {
        if ($userGroupField['type'] == 'location') {
            $userGroupFields[$key]['fields'] = array();
            $userGroupFields[$key]['fields'][$userGroupField['sid']] = $userGroupField;
        }
    }
    $user = new SJB_User(array(), $userGroupSid);
    $_REQUEST['active']['equal'] = 1;
    $search_form_builder = new SJB_SearchFormBuilder($user);
    $criteria_saver = new SJB_UserCriteriaSaver($searchId);
    $criteria_saver->setSessionForOrderInfo($_REQUEST);
    if (isset($_REQUEST['searchId'])) {
        $action = 'search';
        $criteria =  $criteria_saver->getCriteria();
        if (!empty($_REQUEST['sorting_field'])) {
            unset($criteria['sorting_field']);
        } else {
            $orderInfo = $criteria_saver->getOrderInfo();
            if (!empty($orderInfo['sorting_order'])) {
                $criteria['sorting_order'] = $orderInfo['sorting_order'];
            }
        }
        $_REQUEST = array_merge($_REQUEST, $criteria);
        if (!$items_per_page)
            $items_per_page = $criteria_saver->listings_per_page;
    }

    $items_per_page = $items_per_page ? $items_per_page : 16;
    $criteria = $search_form_builder->extractCriteriaFromRequestData(array_merge($_REQUEST, array('username' => array('not_equal' => 'jobg8'))), $user);
    if ($items_per_page) {
        $criteria_saver->setSessionForListingsPerPage($items_per_page);
    }
    $search_form_builder->setCriteria($criteria);
    $search_form_builder->registerTags($tp);

    $form_fields = $search_form_builder->getFormFieldsInfo();
    $tp->assign('form_fields', $form_fields);
    $metaDataProvider = SJB_ObjectMother::getMetaDataProvider();
    $tp->assign('METADATA',
        array(
            'form_fields' => $metaDataProvider->getFormFieldsMetadata($form_fields),
        )
    );

    $tp->assign('userGroupFields', $userGroupFields);
    $tp->assign('action', $action);
    $tp->assign('alphabets', $abArr);

    if ($action == 'search') {
        $sorting_field = SJB_Request::getVar('sorting_field', false);
        $sorting_order = SJB_Request::getVar('sorting_order', false);
        if (isset($_REQUEST['searchId']) && !$sorting_field) {
            $order_info = $criteria_saver->order_info;
            if ($order_info) {
                $sorting_field = $order_info['sorting_field'];
                $sorting_order = $order_info['sorting_order'];
            }
        }
        if (!$sorting_field) {
            $sorting_field = 'CompanyName';
            $sorting_order = 'ASC';
        }

        $inner_join = array();
        if ($sorting_field == 'number_of_jobs') {
            if (SJB_ListingTypeManager::getWaitApproveSettingByListingType($listing_type_sid) == 1) {
                $count = "sum( if( `listings`.`status` = 'approved', `listings`.`active`, 0 ) )";
            } else {
                $count = "sum(`listings`.`active`)";
            }
            $inner_join = array(
                'listings' => array(
                'sort_field'    => $count,
                'noPresix'      => true,
                'join_field'    => 'user_sid',
                'join_field2'   => 'sid',
                'join'          => 'LEFT JOIN',
                'groupBy'       => '`users`.`sid`'
            ));
        } elseif ($sorting_field == 'Location_State') {
            $inner_join = array(
                'states' => array(
                'sort_field'    => 'state_name',
                'noPresix'      => true,
                'join_field'    => 'sid',
                'join_field2'   => 'Location_State',
                'join'          => 'LEFT JOIN'
            ));
        }

        $searcher = new SJB_UserSearcher(false, $sorting_field, $sorting_order, $inner_join, array('limit' => ($page - 1) * $items_per_page, 'num_rows' => $items_per_page));
        $found_users = array();
        $found_users_sids = array();
        $found_users_by_criteria = $searcher->getObjectsByCriteria($criteria, null, array(), true);
        $foundObjectSIDs = $searcher->getFoundObjectSIDs();

        // display search form
        $tp->display($template);

        $criteria_saver->setSession($_REQUEST, $foundObjectSIDs);
        if (count($foundObjectSIDs) > 0) {
            $listingType = SJB_ListingTypeManager::getListingTypeInfoBySID($listing_type_sid);
            $countListings = SJB_ListingDBManager::getActiveAndApproveJobsNumberForUsers($foundObjectSIDs, $listingType);
        }
        foreach ($found_users_by_criteria as $id => $user) {
            $listingsNumber = isset($countListings[$id]) ? $countListings[$id] : 0;
            $user->addProperty(array('id' => 'countListings', 'type' => 'string', 'value' => $listingsNumber));
            if ($user->getProperty('CompanyName')) {
                $found_users_sids[$user->getSID()] = $user->getSID();
                $found_users[$id] = $user;
            }
        }
        $usersCount = $searcher->getAffectedRows();

        $form_collection = new SJB_FormCollection($found_users);
        $form_collection->registerTags($tp);
        $pages = array();

        for ($i = $page - 3; $i < $page + 3; $i++) {
            if ($i > 0)
                $pages[] = $i;
            if ($i * $items_per_page > $usersCount)
                break;
        }

        $totalPages = ceil($usersCount / $items_per_page);
        if (empty($totalPages))
            $totalPages = 1;

        if (array_search(1, $pages) === false)
            array_unshift($pages, 1);
        if (array_search($totalPages, $pages) === false)
            array_push($pages, $totalPages);

        $tp->assign("sorting_order", $sorting_order);
        $tp->assign("sorting_field", $sorting_field);
        $tp->assign("found_users_sids", $found_users_sids);
        $tp->assign("companies_per_page", $items_per_page);
        $tp->assign("searchId", $searchId);
        $tp->assign("usersCount", $usersCount);
        $tp->assign("current_page", $page);
        $tp->assign("pages_number", $totalPages);
        $tp->display('search_result_company.tpl');
    }
    else {
        // display search form
        $tp->display($template);
    }
}
公共功能是可访问的()
{
$this->setPermissionLabel(“打开公司搜索表单”);
返回父项::isAccessible();
}
公共函数execute()
{
$tp=SJB_系统::getTemplateProcessor();
$template=SJB_请求::getVar('display_template');
$page=1;
$searchId=strip_标记(SJB_请求::getVar('searchId',time());
如果(!空($_请求[“页面]))
$page=intval($_请求[“页面]);
$items_per_page=SJB_Request::getVar('companys_per_page',false);
$listing_type_sid=SJB_ListingTypeManager::getListingTypeSIDByID($_请求[“listing_type_id]”);
$alphabets=SJB_AlphabetManager::getAlphabetsForDisplay();
$abArr=array();
foreach($alphabets作为$alphabet)
$abArr[]=爆炸(“”,$alphabet['value']);
$action=SJB_请求::getVar('action','search_form');
if(SJB_请求::getVar('first_char')){
$action='search';
$\u请求['CompanyName']['first\u char\u like']=SJB\u请求::getVar('first\u char');
}
elseif(!isset($_请求['CompanyName'])|$_请求['CompanyName']['like']=''){
$\u请求['CompanyName']['not\u empty']=true;
}
$userGroupSid=SJB_UserGroupManager::getUserGroupSIDByID(“雇主”);
$userGroupFields=SJB_UserProfileFieldManager::getFieldsInfoByUserGroupSID($userGroupSid);
foreach($userGroupFields作为$key=>$userGroupField){
如果($userGroupField['type']=='location'){
$userGroupFields[$key]['fields']=array();
$userGroupFields[$key]['fields'][$userGroupField['sid']]=$userGroupField;
}
}
$user=新的SJB_用户(array(),$userGroupSid);
$\请求['active']['equal']=1;
$search\u form\u builder=新的SJB\u SearchFormBuilder($user);
$criteria\u saver=新的SJB\u用户criteriasaver($searchId);
$criteria\u saver->setSessionForOrderInfo($\u请求);
如果(isset($_请求['searchId'])){
$action='search';
$criteria=$criteria\u saver->getCriteria();
如果(!空($_请求['sorting_field'])){
未设置($criteria['sorting_field']);
}否则{
$orderInfo=$criteria_saver->getOrderInfo();
如果(!empty($orderInfo['sorting_order'])){
$criteria['sorting_order']=$orderInfo['sorting_order'];
}
}
$\u请求=数组\u合并($\u请求,$criteria);
如果(!$items\u每页)
$items\u per\u page=$criteria\u saver->listings\u per\u page;
}
$items_per_page=$items_per_page?$items_per_page:16;
$criteria=$search\u form\u builder->extractCriteriaFromRequestData(数组\合并($\请求,数组($username'=>array($not\u equal'=>jobg8')),$user);
如果($items\u/页){
$criteria_saver->setSessionForListingsPerPage($items_per_page);
}
$search\u form\u builder->setCriteria($criteria);
$search\u form\u builder->registerTags($tp);
$form_fields=$search_form_builder->getFormFieldsInfo();
$tp->assign('form\u fields',$form\u fields);
$metaDataProvider=SJB_ObjectMother::getMetaDataProvider();
$tp->assign('METADATA',
排列(
“表单字段”=>$metaDataProvider->getFormFieldsMetadata($form\u字段),
)
);
$tp->assign('userGroupFields',$userGroupFields);
$tp->assign('action',$action);
$tp->assign('alphabets',$abArr);
如果($action=='search'){
$sorting_field=SJB_请求::getVar('sorting_field',false);
$sorting_order=SJB_Request::getVar('sorting_order',false);
如果(isset($_请求['searchId'])和&!$sorting_字段){
$order\u info=$criteria\u saver->order\u info;
如果($order\u info){
$sorting_field=$order_info['sorting_field'];
$sorting_order=$order_info['sorting_order'];
}
}
如果(!$sorting\u字段){
$sorting_field='CompanyName';
$sorting_order='ASC';
}
$internal_join=array();
如果($sorting_field=='number_of_jobs'){
if(SJB_ListingTypeManager::getWaitApproveSettingByListingType($listing_type_sid)==1){
$count=“总和(如果(`listings`.`status`='approved',`listings`.`active`,0))”;
}否则{
$count=“sum(`listings`.`active`)”;
}
$inner\u join=数组(
'列表'=>数组(
“排序字段”=>$count,
'noPresix'=>正确,
'加入\u字段'=>'用户\u sid',
'join_field2'=>'sid',
“连接”=>“左连接”,
'groupBy'=>'users`.'sid`'
));
}elseif($sorting_field=='Location_State'){
$inner\u join=数组(
“状态”=>数组(
'排序字段'=>'状态名称',
'noPresix'=>正确,
'连接字段'=>'sid',
“join_field2”=>“Location_State”,
“加入”=>“左加入”
));
}
$searcher=new SJB_UserSearcher(false、$sorting_field、$sorting_order、$internal_join、array('limit'=>($page-1)*$items_per_page、'num_rows'=>$items_per_page));
$found_users=array();
$found_users_sids=array();
$found\u users\u by\u criteria=$searcher->getObjectsByCriteria($criteria,null,array(),true);
$foundObjectSIDs=$searcher->getFoundObjectSIDs();
//显示搜索表单
$tp->display($template);
$criteria\u saver->setSession($\u请求,$foundObjectSIDs);
如果(计数($FoundObjectSID)>0){
$listingType=SJB_