Page MenuHomePhabricator

No OneTemporary

diff --git a/src/Controller/TYPProfileController.php b/src/Controller/TYPProfileController.php
--- a/src/Controller/TYPProfileController.php
+++ b/src/Controller/TYPProfileController.php
@@ -1,187 +1,206 @@
<?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;
/**
* Controller routines for tablesort example routes.
*/
class TYPProfileController extends ControllerBase
{
/*public function profile_redirect(){
return $this->redirect("<front>");
}*/
public function formatPhoneNumber($s) {
foreach( explode(",", $s) as $p) {
$num_com = null;
$num_first = null;
$num_second = null;
$num_ex = explode("-", trim($p));
for($i = 0; $i < count($num_ex); $i++) {
if(($i+1) < count($num_ex)) {
$num_first .= $num_ex[$i];
} else {
$num_second .= $num_ex[$i];
}
}
if(empty($num_first)) {
$num_first = $num_second;
$num_second = null;
}
if(strlen($num_first) == 9) {
$num_com = substr($num_first, 0, 1) . '-'. substr($num_first, 1, 4). '-'. substr($num_first, 5,4);
if(!empty($num_second)) {
$num_com .= '-'.$num_second;
}
} else {
if(strlen($num_first) < 9) {
$num_first .= $num_second;
if(strlen($num_first) == 9) {
$num_com = substr($num_first, 0, 1) . '-'. substr($num_first, 1, 4). '-'. substr($num_first, 5,4);
} elseif(strlen($num_first) == 10){
$num_com = substr($num_first, 0, 2) . '-'. substr($num_first, 2, 4). '-'. substr($num_first, 6,7);
}else {
$num_com = substr($num_first, 0, 1) . '-'. substr($num_first, 1, 4). '-'. substr($num_first, 5,4).'-'.substr($num_first, 9,strlen($num_first));
}
} else {
if(strlen($num_first) == 10) {
$num_com = substr($num_first, 0, 2) . '-'. substr($num_first, 2, 4). '-'. substr($num_first, 6,7);
} else {
$num_first .= $num_second;
$num_com = substr($num_first, 0, 1) . '-'. substr($num_first, 1, 4). '-'. substr($num_first, 5,4).'-'.substr($num_first, 9,strlen($num_first));
}
}
}
$ps[] = $num_com;
}
return implode(", ", $ps);
}
public function formatWorkingHour($s) {
foreach( explode(",", $s) as $p) {
$ps[] = $p;
}
return implode(", ", $ps);
}
protected $data;
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){
$this->data = \Drupal::service("typ.search")->getProfile($bizid ,AUTO);
$address_id = "";
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$data = $this->data;
if (!$data) {
return $this->redirect("<front>");
}
/*if($data['landingpage'] == ""){
$address_id = $data['addressid'];
}
if(is_numeric($address_id)){
$result = \Drupal::service('typ.unvservice')->loadListing($data['customerid']);
$rs_details = (!empty($result['address'][$data['headingcod']][$address_id]['frontviews']))?$result['address'][$headingcode][$data['headingcod']]['frontviews']:array();
} else {
$result = \Drupal::service('typ.unvservice')->loadService($data['customerid']);
}*/
// PLEASE COMMENT?? WHY WE LOAD PROFILE AND THEN LOAD SERVICE?
$address_id = $data['addressid'];
$result = \Drupal::service('typ.unvservice')->loadListing($data['customerid']);
//(!empty($result['landingpages'][$data['headingcode']]))?$result['landingpages'][$data['headingcode']]:array();
//$type = '';
if($result['customertype'] == 'FL'){
$type = 'FL';
}else{
$result_olc = \Drupal::service('typ.catalog')->listData($data['customerid']);
}
$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'];
}
$temp = '<p style="color:#000;">';
$tempdesc = $temp.$tempdesc;
$type = $data['customertype'];
if($type == "FL") {
$dataproddesct = iconv_substr($tempdesc,0,123,"UTF-8");
$dataproddesct .= '...';
}else{
$dataproddesct = $tempdesc;
}
if($type != "FL" && !empty($result_olc)){
$olcdata = $result_olc[0];
}
if (!empty($data['telno'])) {
foreach ($data['telno'] as $t) {
$data['_format']['telno'][] = $this->formatPhoneNumber($t);
}
}
if (!empty($data['fax'])) {
foreach ($data['fax'] as $t) {
$data['_format']['fax'][] = $this->formatPhoneNumber($t);
}
}
if($type == "FL"){
/*unset($data['_format']['telno']);
$data['_format']['telno'][] = $data['_format']['telno'][0];
unset($data['fax']);
$data['fax'][] = $data['fax'][0];
$exp = explode(",", $data['email']);
unset($data['email']);
$data['email'][] = $exp[0];*/
}else{
/*$exp = explode(",", $data['email']);
$data['email'] = $exp;*/
}
$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);
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[^>]*?>/','<p style="color:#000">',html_entity_decode($result['address'][$data['headingcode']][$data['addressid']]['promotion']['subject']));
if(!empty($data['profile'])){
$data['profile'] = preg_replace('/<p[^>]*?>/','<p style="color:#000">',html_entity_decode($data['profile']));
}if (!empty($data['workinghours'])) $data['_format']['workinghours'] = $this->formatWorkingHour($data['workinghours']);
$data['customertyp'] = $data['customertype'];
$display[] = array(
'#theme' => 'typ_profile',
'#profile' => $data,
'#prodescription' => $dataproddesct,
'#catalog' => $olcdata,
'#type' => $type,
'#promotion' => $result['address'][$data['headingcode']][$data['addressid']]['promotion'],
);
if ($type != 'FL')
$display['#attached']['drupalSettings']['disableAds'] = TRUE;
return $display;
}
+
+ public function getPromotion(){
+
+ $mobileDetector = \Drupal::service('krs.mobile_detect');
+ if($mobileDetector->isAndroidOS()){
+ $url = 'https://play.google.com/store/apps/details?id=com.initialive.yellowpages.act&hl=th';
+ }elseif($mobileDetector->isIOS()){
+ $url = 'https://itunes.apple.com/th/app/thailand-yellowpages/id387848017?mt=8';
+ }else{
+ $url = '';
+ }
+
+ $display[] = array(
+ '#theme' => 'typ_promotion',
+ '#url' => $url
+ );
+
+ return $display;
+ }
}
diff --git a/typ_profile.module b/typ_profile.module
--- a/typ_profile.module
+++ b/typ_profile.module
@@ -1,44 +1,49 @@
<?php
/**
* @file
* Module file for tablesort_example.
*/
/**
* @defgroup tablesort_example Example: Tablesort
* @ingroup examples
* @{
* Example of a sortable table display.
* Three columns are sortable (Numbers, Letters and Mixture)
* We are using TableSort Extender
* extend('Drupal\Core\Database\Query\TableSortExtender')
*/
/**
* @} End of "defgroup tablesort_example".
*/
//namespace Drupal\typ\Form;
//include "legacy/TYPLegacyIncludeAll.php";
/*if (class_exists("\TYP\Legacy\Form\TYPLegacyCustomerController")) {
echo 'yes';
} else {
echo 'no';
}
exit;
*/
function typ_profile_theme() {
return array(
'typ_profile' => array(
'variables' => array(
'profile' => NULL,
'prodescription' => NULL,
'catalog' => NULL,
'type' => NULL,
'promotion' => NULL
)
+ ),
+ 'typ_promotion' => array(
+ 'variables' => array(
+ 'url' => NULL
+ )
)
);
}
diff --git a/typ_profile.routing.yml b/typ_profile.routing.yml
--- a/typ_profile.routing.yml
+++ b/typ_profile.routing.yml
@@ -1,15 +1,23 @@
typ_profile_search:
path: '/profile/{bizid}'
defaults:
_controller: '\Drupal\typ_profile\Controller\TYPProfileController::profilePage'
_title_callback: '\Drupal\typ_profile\Controller\TYPProfileController::profileTitle'
requirements:
_permission: 'access content'
+typ_profile_promotion:
+ path: '/profile/get-promotion'
+ defaults:
+ _controller: '\Drupal\typ_profile\Controller\TYPProfileController::getPromotion'
+ _title_callback: '\Drupal\typ_profile\Controller\TYPProfileController::profileTitle'
+ requirements:
+ _permission: 'access content'
+
#typ_profile_redirect:
# path: '/profile'
# defaults:
# _controller: '\Drupal\typ_profile\Controller\TYPProfileController::profileOverview'
# _title: 'Rredirect '
# requirements:
# _permission: 'access content'
\ No newline at end of file

File Metadata

Mime Type
text/x-diff
Expires
Wed, Dec 25, 3:14 AM (1 d, 10 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
193871

Event Timeline