Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F1083245
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
11 KB
Subscribers
None
View Options
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
Details
Attached
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
Attached To
rPF typ_profile
Event Timeline
Log In to Comment