Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F1082598
TYPProfileController.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
16 KB
Subscribers
None
TYPProfileController.php
View Options
<?php
/**
* @file
* Contains \Drupal\page_example\Controller\TableSortExampleController.
*/
/**/
namespace
Drupal\typ_profile\Controller
;
use
Drupal\Core\Controller\ControllerBase
;
use
Symfony\Component\HttpFoundation\JsonResponse
;
use
Drupal\Core\Database\Query
;
use
Drupal\Core\Url
;
use
Drupal\typ_legacy\Service\TYPUtilsService
;
/**
* Controller routines for tablesort example routes.
*/
class
TYPProfileController
extends
ControllerBase
{
public
function
__construct
(){
\Drupal
::
service
(
'page_cache_kill_switch'
)->
trigger
();
}
public
function
formatWorkingHour
(
$s
)
{
foreach
(
explode
(
","
,
$s
)
as
$p
)
{
$ps
[]
=
$p
;
}
return
implode
(
", "
,
$ps
);
}
protected
$data
;
protected
static
function
insertVisit
(
$bizid
,
$customerid
){
// DO NOT DO THIS! THIS IS NOT PROPER PLACE.. AND TOO BIG DATA!
// VORAPOAP 1/10/2558
/*db_set_active("typ_data");
$data['businessid'] = trim($bizid);
$data['customerid'] = trim($customerid);
$data['goodsid'] = "";
db_insert('last_visit_product')->fields($data)->execute();
db_set_active();*/
}
public
function
checkLPRedirect
(
$options
=
array
()){
$data
=
\Drupal
::
service
(
'typ.api'
)->
getLandingpage
(
$options
);
$customer
=
array
();
if
(
$data
){
$info
=
$data
[
'_info'
];
$res
=
$data
[
'_res'
];
$sub
=
$res
[
'subdomains'
][
$info
[
'headingcode'
]];
$datenow
=
date
(
'Y-m-d'
);
$status
=
0
;
if
(
$datenow
<=
date
(
'Y-m-d'
,
strtotime
(
$sub
[
'enddate'
]))){
if
(
$datenow
>=
date
(
'Y-m-d'
,
strtotime
(
$sub
[
'startdate'
]))
&&
$datenow
<=
date
(
'Y-m-d'
,
strtotime
(
$sub
[
'enddate'
]))){
$status
=
1
;
}
else
{
$status
=
2
;
}
}
$lp
=
$res
[
'landingpages'
][
$info
[
'headingcode'
]];
if
(
intval
(
$lp
[
'hide'
])
==
'1'
||
intval
(
$lp
[
'accounting_status'
])
==
1
){
$status
=
0
;
}
$customer
[
'busid'
]
=
$info
[
'customerid'
].
$info
[
'headingcode'
].
$lp
[
'addressid'
];
$customer
[
'custid'
]
=
$info
[
'customerid'
];
$customer
[
'subdomain'
]
=
$sub
[
'subdomain'
];
$customer
[
'headingcode'
]
=
$info
[
'headingcode'
];
$customer
[
'URL'
]
=
$sub
[
'url'
];
$customer
[
'title'
]
=
$sub
[
'title'
];
$customer
[
'keyword'
]
=
$sub
[
'keyword'
];
$customer
[
'desc'
]
=
$sub
[
'desc'
];
$customer
[
'theme'
]
=
$lp
[
'theme'
];
$customer
[
'siteid'
]
=
$sub
[
'siteclick'
];
$customer
[
'status'
]
=
$status
;
}
return
$customer
;
}
public
function
profileTitle
(
$bizid
)
{
$this
->
data
=
\Drupal
::
service
(
"typ.search"
)->
getProfile
(
$bizid
,
AUTO
);
if
(!
$this
->
data
)
return
''
;
else
return
$this
->
data
[
'humanname'
];
}
public
function
profilePage
(
$bizid
){
// $bizid filler
$input
=
str_replace
(
".html"
,
""
,
$bizid
);
$input
=
explode
(
"_"
,
$input
);
$input
=
end
(
$input
);
list
(
$bizid
,
$addressId
)
=
explode
(
'-'
,
$input
);
//
$this
->
data
=
\Drupal
::
service
(
"typ.search"
)->
getProfile
(
$bizid
,
AUTO
);
$result
=
\Drupal
::
service
(
'typ.unvservice'
)->
loadListing
(
$this
->
data
[
'customerid'
]);
$address_id
=
""
;
$language
=
\Drupal
::
languageManager
()->
getCurrentLanguage
()->
getId
();
if
(
isset
(
$_COOKIE
[
'breadcrumbs'
]))
{
$breadcrumbs_data
=
$_COOKIE
[
'breadcrumbs'
];
$breadcrumbs_ex
=
explode
(
","
,
$breadcrumbs_data
);
$breadcrumbs
[
$breadcrumbs_ex
[
0
]]
=
$breadcrumbs_ex
[
0
];
$breadcrumbs
[
'data'
]
=
$breadcrumbs_ex
[
1
];
$breadcrumbs
[
'businessid'
]
=
$breadcrumbs_ex
[
2
];
}
$data
=
$this
->
data
;
if
(!
$data
)
{
throw
new
\Symfony\Component\HttpKernel\Exception\NotFoundHttpException
();
}
if
(!
empty
(
$data
[
'redirect'
])){
$lp
=
$data
[
'redirect'
];
if
(
strpos
(
$data
[
'redirect'
],
'http://'
)
===
false
){
$lp
=
'http://'
.
$data
[
'redirect'
];
}
$chk_lp
=
array
();
if
(
$lp
){
$redirect
=
str_replace
(
array
(
"http://"
,
"/"
),
""
,
$lp
);
if
(
strpos
(
$redirect
,
\Drupal\typ_legacy\Service\TYP
::
config
(
'typ.subdomain'
))
!==
false
){
//Subdomain
$options
[
'type'
]
=
'subdomain'
;
$exp
=
explode
(
"."
,
$redirect
);
$options
[
'SUBDOMAIN'
]
=
current
(
$exp
);
}
else
{
//Domian
$options
[
'type'
]
=
'domain'
;
$options
[
'DOMAIN'
]
=
$redirect
;
}
$chk_lp
=
$this
->
checkLPRedirect
(
$options
);
}
if
(
$chk_lp
[
'status'
]
==
'1'
){
header
(
'Location: '
.
$lp
);
exit
();
}
}
else
{
if
(!
empty
(
$data
[
'landingpage'
])
&&
!
empty
(
$data
[
'subdomain'
])){
$options
[
'customerid'
]
=
$data
[
'customerid'
];
$options
[
'headingcode'
]
=
$data
[
'headingcode'
];
$onserv
=
\Drupal
::
service
(
'typ.subdomain'
)->
getOnServiceSubdomain
(
$options
,
true
);
if
(
$onserv
[
0
]
==
true
){
$lp
=
$data
[
'landingpage'
];
if
(
strpos
(
$data
[
'landingpage'
],
'http://'
)
===
false
){
$lp
=
'http://'
.
$data
[
'landingpage'
];
}
if
(!
empty
(
$lp
)){
header
(
'Location: '
.
$lp
);
exit
();
}
}
}
}
if
(
$this
->
data
[
'onlinepromotion'
]){
$promotiond_mongo
=
\Drupal
::
service
(
"typ.profile"
)->
_getpromotion
(
$bizid
);
$promo
=
iterator_to_array
(
$promotiond_mongo
);
$proid
=
array
();
foreach
(
$promo
as
$key
=>
$value
)
{
foreach
(
$value
as
$k
=>
$val
)
{
if
(
$k
==
'th'
){
$proid
[
'promotion'
]
+=
$val
;
}
if
(
$k
==
'en'
){
$proid
[
'promotion'
]
+=
$val
;
}
else
{
$proid
[
'promotion'
][
$k
]
=
$val
;
}
}
}
// echo "<PRE>";print_r($proid);exit;
$result
[
'address'
][
$data
[
'headingcode'
]][
$data
[
'addressid'
]][
'promotion'
]
=
$proid
[
'promotion'
];
// echo "<PRE>";print_r($result);exit;
}
$address_id
=
$data
[
'addressid'
];
$type
=
$this
->
data
[
'customertype'
];
if
(
$this
->
data
[
'accounting_status'
]
==
'1'
||
$this
->
data
[
'hide'
]
==
'1'
){
// Check Disable Packet and Hide content
$result
[
'customertype'
]
=
'FL'
;
$type
=
'FL'
;
}
if
(
$type
==
'FL'
||
$this
->
data
[
'customertype'
]
==
''
){
$type
=
'FL'
;
}
else
{
$result_olc
=
\Drupal
::
service
(
'typ.catalog'
)->
getPreparedCatalogItemSet
(
$data
[
'customerid'
]);
}
if
(
$language
==
'en'
){
$base_path
=
'/en/'
;
}
else
{
$base_path
=
'/'
;
}
/*Prepare Headings*/
if
(!
empty
(
$data
[
'headings'
])){
$lang
=
$language
[
0
];
$headings
=
array
();
foreach
(
$data
[
'headings'
]
as
$value
)
{
$item
=
array
();
$item
[
'headingcode'
]
=
$value
[
'headingcode'
];
$item
[
'headingname'
]
=
$value
[
'headingname'
.
$lang
];
$item
[
'subgroupcode'
]
=
$value
[
'subgroupcode'
];
$item
[
'subgroupname'
]
=
$value
[
'subgroupname'
.
$lang
];
$item
[
'groupcode'
]
=
$value
[
'groupcode'
];
$item
[
'groupname'
]
=
$value
[
'groupname'
.
$lang
];
$headings
[
$item
[
'headingname'
]]
=
$item
;
}
$data
[
'headings'
]
=
array_values
(
$headings
);
}
if
(
$_GET
[
'debug'
]){
echo
"<pre>"
;
echo
"<br>Service:<b style='color:red;'><u>"
;
if
(
$this
->
data
[
'accounting_status'
]
==
'1'
){
echo
"Don't have a Service"
;}
else
{
echo
"Service"
;
}
echo
"</u></b>"
;
echo
"<br>Hide:<b style='color:red;'><u>"
;
if
(
$this
->
data
[
'hide'
]
==
'1'
){
echo
"Hide"
;
}
else
{
echo
"Don't Hide"
;
}
echo
"</u></b>"
;
echo
"<br>Type:<b style='color:red;'><u>"
.
$type
.
"</u></b><br><br>"
;
var_export
(
$this
->
data
);
exit
;
}
if
(
$type
==
'FL'
){
$data
[
'profile'
]
=
strip_tags
(
$data
[
'profile'
]);
$data
[
'proddesc'
]
=
strip_tags
(
$data
[
'proddesc'
]);
}
$pos
=
strpos
(
html_entity_decode
(
$data
[
'proddesc'
]),
"<p>"
);
if
(
$pos
!==
false
&&
$data
[
'proddesc'
]){
$tempdesc
=
substr
(
html_entity_decode
(
$data
[
'proddesc'
]),
3
);
}
else
{
$tempdesc
=
html_entity_decode
(
html_entity_decode
(
$data
[
'proddesc'
]))
;
//$tempdesc = $data['proddesc'];
}
if
(
strlen
(
$tempdesc
)
!=
0
)
{
//$temp = '<p style="color:#333;">';
$tempdesc
=
$temp
.
$tempdesc
;
}
if
(
$type
==
"FL"
)
{
$dataproddesct
=
iconv_substr
(
$tempdesc
,
0
,
150
,
"UTF-8"
);
if
(
strlen
(
$dataproddesct
)
>
150
){
$dataproddesct
.=
'...'
;
}
}
else
{
$dataproddesct
=
$tempdesc
;
}
//$dataproddesct = str_replace("<p>","<p style='color:#333;'>",$dataproddesct);
if
(
$type
!=
"FL"
&&
!
empty
(
$result_olc
)){
$olcdata
=
$result_olc
[
0
];
}
if
(!
empty
(
$dataproddesct
)){
$data
[
'proddesc'
]
=
$dataproddesct
;
}
if
(!
empty
(
$data
[
'telno'
]))
{
foreach
(
$data
[
'telno'
]
as
$t
)
{
$data
[
'_format'
][
'telno'
][]
=
TYPUtilsService
::
formatPhoneNumber
(
$t
);
}
}
if
(!
empty
(
$data
[
'fax'
]))
{
foreach
(
$data
[
'fax'
]
as
$t
)
{
$data
[
'_format'
][
'fax'
][]
=
TYPUtilsService
::
formatPhoneNumber
(
$t
);
}
}
if
(!
empty
(
$data
[
'website'
])){
$data
[
'website_show'
]
=
$data
[
'website'
];
//$data['website'] = explode(",",$data['website']);
$item
=
array
();
if
(!
empty
(
$data
[
'website'
])){
foreach
(
$data
[
'website'
]
as
$key
=>
$new
){
if
(
strpos
(
$new
,
'http://'
)
===
FALSE
&&
strpos
(
$new
,
'https://'
)
===
FALSE
){
$item
[
'http://'
.
$new
]
=
$new
;
}
else
{
$item
[
$new
]
=
$new
;
}
}
$data
[
'website'
]
=
$item
;
}
}
/*$thai_month_arr = array('01'=>'ม.ค.','02'=>'ก.พ.','03'=>'มี.ค.','04'=>'เม.ย.','05'=>'พ.ค.','06'=>'มิ.ย.','07'=>'ก.ค.','08'=>'ส.ค.','09'=>'ก.ย.','10'=>'ต.ค.','11'=>'พ.ย.','12'=>'ธ.ค.');
list($year, $month,$day) = explode('-', $result['address'][$data['headingcode']][$data['addressid']]['promotion']['enddate']);
$date_e = $day." ".$thai_month_arr[$month]." ".($year+543);
$end_date_promotion = $result['address'][$data['headingcode']][$data['addressid']]['promotion']['enddate'];
list($year, $month,$day) = explode('-', $result['address'][$data['headingcode']][$data['addressid']]['promotion']['startdate']);
$date_s = $day." ".$thai_month_arr[$month]." ".($year+543);
$result['address'][$data['headingcode']][$data['addressid']]['promotion']['startdate'] = $date_s;
$result['address'][$data['headingcode']][$data['addressid']]['promotion']['enddate'] = $date_e;
$result['address'][$data['headingcode']][$data['addressid']]['promotion']['subject'] = preg_replace('/<p[^>]*?>/','',html_entity_decode($result['address'][$data['headingcode']][$data['addressid']]['promotion']['subject']));*/
/*if(date("Y-m-d") > $end_date_promotion){
$promotion_data = '';
}else{
$promotion_data = $result['address'][$data['headingcode']][$data['addressid']]['promotion'];
}*/
if
(!
empty
(
$data
[
'profile'
])){
$data
[
'profile'
]
=
preg_replace
(
'/<p[^>]*?>/'
,
''
,
html_entity_decode
(
$data
[
'profile'
]));
}
if
(!
empty
(
$data
[
'workinghours'
]))
{
$data
[
'_format'
][
'workinghours'
]
=
$this
->
formatWorkingHour
(
$data
[
'workinghours'
]);
$data
[
'customertyp'
]
=
$data
[
'customertype'
];
}
if
(!
empty
(
$data
[
'cityname'
])){
$bangkok
=
array
(
'กรุงเทพ'
,
'กรุงเทพฯ'
,
'ก.ท.ม.'
,
'กรุงเทพมหานคร'
,
'กทม'
,
'จังหวัดกรุงเทพมหานคร'
,
'จังหวัด กรุงเทพมหานคร'
);
if
(!
in_array
(
$data
[
'cityname'
],
$bangkok
)
&&
strpos
(
$data
[
'cityname'
],
"จังหวัด"
)
===
false
){
$data
[
'cityname'
]
=
t
(
'Province'
)
.
' '
.
$data
[
'cityname'
];
}
}
/*Logo*/
if
(!
empty
(
$data
[
'logof'
])){
$data
[
'logo'
]
=
\Drupal
::
service
(
'typ.search'
)->
_detectImage
(
'logo'
,
$data
[
'logof'
]);
}
/*Picture*/
if
(!
empty
(
$data
[
'pictures'
][
'files'
])){
$data
[
'pictures'
]
=
\Drupal
::
service
(
'typ.search'
)->
createImageThumbnail
(
$data
,
'large'
);
}
else
{
unset
(
$data
[
'pictures'
]);
}
/*if(!empty($promotion_data['promoimg']) && @file_exists('http://promotion.yellowpages.co.th/media/promotion/'.$promotion_data['promoimg'])){ // images from Old system
$promotion_data['baseurl'] = 'http://promotion.yellowpages.co.th/media/promotion/';
}else{
$promotion_data['baseurl'] = 'http://media.yellowpages.co.th/yellowpages/promotion/';
}
*/
if
(
empty
(
$data
[
'printads'
])
&&
(
$data
[
'printadstf'
]
||
$data
[
'printadsef'
])){
if
(
$data
[
'lang'
]
==
'th'
){
$exp
=
explode
(
'.'
,
$data
[
'printadstf'
]);
}
else
{
$exp
=
explode
(
'.'
,
$data
[
'printadsef'
]);
}
if
(
$exp
){
$data
[
'printads'
]
=
$exp
[
0
];
}
}
$link_url
=
"$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"
;
$check_lang
=
explode
(
"/"
,
$link_url
);
if
(
$check_lang
[
1
]
==
'en'
){
$link_url
=
str_replace
(
"/en/"
,
"/"
,
$link_url
);
}
/*echo "<pre>";
var_export($data); exit();*/
$display
[]
=
array
(
'#theme'
=>
'typ_profile'
,
'#profile'
=>
$data
,
'#prodescription'
=>
$dataproddesct
,
'#catalog'
=>
$olcdata
,
'#type'
=>
$type
,
'#promotion'
=>
$promotion_data
,
'#breadcrumbs'
=>
$breadcrumbs
,
'#base_path'
=>
$base_path
,
'#facebook_comment'
=>
$link_url
,
);
if
(
$type
!=
'FL'
)
$display
[
'#attached'
][
'drupalSettings'
][
'disableAds'
]
=
TRUE
;
$display
[
'#attached'
][
'library'
]
=
array
(
'typ_profile/profile.popup'
,
'typ_contrib/colorbox'
,
);
if
(
$type
==
'FL'
){
$display
[
'#attached'
][
'library'
]
=
array
(
'typ_profile/profile.popup'
,
'typ_contrib/colorbox'
,
'typ_ads/ads_unit'
);
$display
[]
=
array
(
'#markup'
=>
format_string
(
'<div class="container-fuild" id="corner-slider"></div>'
,
array
())
);
}
else
{
$display
[
'#attached'
][
'library'
]
=
array
(
'typ_profile/profile.popup'
,
'typ_contrib/colorbox'
,
);
}
return
$display
;
}
public
function
getTitlePromotion
(){
return
t
(
'How to get promotion'
);
}
public
function
getPromotion
(){
$mobileDetector
=
\Drupal
::
service
(
'krs.mobile_detect'
);
if
(
$mobileDetector
->
isAndroidOS
()
==
1
){
header
(
'Location: https://play.google.com/store/apps/details?id=com.initialive.yellowpages.act&hl=th'
);
exit
;
}
if
(
$mobileDetector
->
isIOS
()
==
1
){
header
(
'Location: https://itunes.apple.com/th/app/thailand-yellowpages/id387848017?mt=8'
);
exit
;
}
else
{
header
(
'Location: http://m.yellowpages.co.th/mobile/typliveplus/user/'
);
exit
;
}
$display
[]
=
array
(
'#theme'
=>
'typ_promotion'
,
);
$display
[
'#attached'
][
'library'
]
=
array
(
'typ_profile/profile.popup'
,
);
return
$display
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sun, Dec 22, 11:09 PM (14 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
193524
Attached To
rPF typ_profile
Event Timeline
Log In to Comment