Page MenuHomePhabricator

TYPProfileController.php
No OneTemporary

TYPProfileController.php

<?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

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

Event Timeline