mRoles); $bindVars = []; $bindVars = array_merge( $bindVars, $roles, [ $gBitUser->mUserId ] ); $sql = "SELECT r.`source`, r.`cross_ref_title` FROM `".BIT_DB_PREFIX."liberty_xref_source` r JOIN `".BIT_DB_PREFIX."liberty_xref_type` t ON t.`xref_type` = r.`xref_type` AND t.`content_type_guid` = r.`content_type_guid` LEFT OUTER JOIN `".BIT_DB_PREFIX."users_roles_map` purm ON ( purm.`user_id`=".$gBitUser->mUserId." ) AND ( purm.`role_id`=r.`role_id` ) WHERE r.`content_type_guid` = 'contact' AND t.`sort_order` = 0 AND (r.`role_id` IN(". implode(',', array_fill(0, count($roles), '?')) ." ) OR purm.`user_id`=?) ORDER BY r.`source`"; $result = $this->mDb->query( $sql, $bindVars ); while( $res = $result->fetchRow() ) { $this->mContactType[ $res['source']] = $res['cross_ref_title']; } // asort($this->mContactType); $gBitSmarty->assign( 'contContactTypes', $this->mContactType ); } /** * processRequestHash(&$pRequest, &$pStore) * Build contact_type settins hash for the session */ public function processRequestHash(&$pRequest, &$pStore) { global $gBitUser; if( !empty( $pRequest["contact_type_guid"] ) ) { if( $gBitUser->isRegistered() ) { $gBitUser->storePreference( 'contact_default_guids', serialize( $pRequest['contact_type_guid'] ) ); } $pStore['contact_type_guid'] = $pRequest["contact_type_guid"]; } elseif( !isset( $pStore['content_type_guid'] ) && $gBitUser->getPreference( 'contact_default_guids' ) && $gBitUser->isRegistered() ) { $pStore['contact_type_guid'] = unserialize( $gBitUser->getPreference( 'contact_default_guids' ) ); } elseif( !isset( $pStore['content_type_guid'] ) ) { $pStore['contact_type_guid'] = []; } elseif( isset( $pRequest["refresh"] ) && !isset( $pRequest["contact_type_guid"] ) ) { $pStore['contact_type_guid'] = []; } } public static function getContactTypeList( $pOptionHash=NULL ) { global $gBitSystem; $where = ''; $bindVars = []; if( !empty( $pOptionHash['active_role'] ) ) { $where = " WHERE cxt.`role_id` = ? "; $bindVars[] = $pOptionHash['active_role']; } if ( !empty( $pOptionHash['title'] ) ) { $where = " WHERE cxt.`title` = ? "; $bindVars[] = $pOptionHash['title']; } $guidWhere = " cxt.`content_type_guid` = 'contact' "; $where = $where ? $where . " AND $guidWhere" : " WHERE $guidWhere"; $query = "SELECT cxt.* FROM `".BIT_DB_PREFIX."liberty_xref_type` cxt $where ORDER BY cxt.`sort_order`"; $result = $gBitSystem->mDb->query( $query, $bindVars ); $ret = []; while( $res = $result->fetchRow() ) { $res["num_types"] = $gBitSystem->mDb->getOne( "SELECT COUNT(*) FROM `".BIT_DB_PREFIX."liberty_xref_source` WHERE `xref_type` = ? AND `content_type_guid` = 'contact'", [ $res["xref_type"] ] ); $ret[] = $res; } return $ret; } }