Commit 5b314587 by Prasong Putichanchai

upate code

parent b6a98872
<?php
use Cake\Core\Configure;
/**
* ------------------------------------------------------------------------------------------------------------------
* Application Configure
* ------------------------------------------------------------------------------------------------------------------
*/
/**
*
* Database Configure
* @author sarawutt.b
*/
Configure::write('DATABASE.HOST', '122.155.223.38');
Configure::write('DATABASE.NAME', 'connect06');
Configure::write('DATABASE.ROLE', 'connect06');
Configure::write('DATABASE.PASSWORD', 'c0nn@6');
Configure::write('DATABASE.PORT', '5432');
Configure::write('DATABASE.DRIVER', 'Cake\Database\Driver\Postgres');
/**
* @var Connect API Testing server
*/
//Configure::write('API_SERVER', 'http://connect-api-uat-connect-pakgon');
/**
* @var Connect API Production Server
*/
Configure::write('API_SERVER', 'http://connect05.pakgon.com/api');
/**
* Core Currency format
* @author sarawutt.b
*/
Configure::write('CORE.CURRENCY', '฿');
/**
*
* Document type
* @author sarawutt.b
*/
Configure::write('CORE.DOCUMENT.ALL', 'application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,image/gif,image/jpeg,image/png');
Configure::write('CORE.DOCUMENT.IMG', 'image/gif,image/jpeg,image/png');
Configure::write('CORE.DOCUMENT.PDF', 'application/pdf');
Configure::write('CORE.DOCUMENT.OFFICE', 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel');
Configure::write('CORE.DOCUMENT.IMG_PDF', 'application/pdf,image/gif,image/jpeg,image/png');
Configure::write('CORE.DOCUMENT.OFFICE_PDF', 'application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel');
/**
* @var Configuration for multiple language
* @author sarawutt.b
*/
//Configure::write('Config.language', 'tha');
Configure::write('CORE.LANGUAGE', 'tha');
/**
* @var Configuration for pagination on cake render in paginate of each page
* @author sarawutt.b
*/
Configure::write('PAGINATION.PREV.TEXT', 'Prev');
Configure::write('PAGINATION.NEXT.TEXT', 'Next');
Configure::write('PAGINATION.NEXT.CLASS', 'next disabled');
Configure::write('PAGINATION.PREV.CLASS', 'prev disabled');
Configure::write('PAGINATION.MODULE', 9);
Configure::write('PAGINATION.SEPARATE', '');
Configure::write('PAGINATION.LIMIT', 20);
/**
*
* Application Configure
* @author sarawutt.b
*/
Configure::write('APP.NAME', 'CAKEPHP DEMO APPLICATION');
Configure::write('APP.VERSION', '3.5.4');
/**
* @var Configuration for production deployment if is deploy time make this to TRUE
* @author sarawutt.b
*/
Configure::write('APP.DEPLOY_TO_PRODUCTION_TIME', false);
/**
* @var Configuration not found data language
* @author sarawutt.b
*/
Configure::write('APP.DISPLAY.NO_RESULT', 'Result Not Found');
return [
/**
* Debug Level:
......@@ -10,7 +98,6 @@ return [
* true: Errors and warnings shown.
*/
'debug' => filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN),
/**
* Configure basic information about the application.
*
......@@ -55,7 +142,6 @@ return [
'locales' => [APP . 'Locale' . DS],
],
],
/**
* Security and encryption configuration
*
......@@ -66,7 +152,6 @@ return [
'Security' => [
'salt' => env('SECURITY_SALT', '34f67849d2c770a24d70fcffa3c44f32fd532e338060fbeb5a9de575b4e4ea17'),
],
/**
* Apply timestamps with the last modified time to static assets (js, css, images).
* Will append a querystring parameter containing the time the file was modified.
......@@ -76,9 +161,8 @@ return [
* enable timestamping regardless of debug value.
*/
'Asset' => [
// 'timestamp' => true,
// 'timestamp' => true,
],
/**
* Configure the cache adapters.
*/
......@@ -88,7 +172,6 @@ return [
'path' => CACHE,
'url' => env('CACHE_DEFAULT_URL', null),
],
/**
* Configure the cache used for general framework caching.
* Translation cache files are stored with this configuration.
......@@ -103,7 +186,6 @@ return [
'duration' => '+1 years',
'url' => env('CACHE_CAKECORE_URL', null),
],
/**
* Configure the cache for model and datasource caches. This cache
* configuration is used to store schema descriptions, and table listings
......@@ -119,7 +201,6 @@ return [
'url' => env('CACHE_CAKEMODEL_URL', null),
],
],
/**
* Configure the Error and Exception handlers used by your application.
*
......@@ -156,7 +237,6 @@ return [
'log' => true,
'trace' => true,
],
/**
* Email configuration.
*
......@@ -189,8 +269,22 @@ return [
'tls' => null,
'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
],
'gmail'=> [
'className' => 'Smtp',
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username' => 'developer@pakgon.com', //your gmail address
'password' => 'pakgon#pwd', //your gmail password
'log' => true,
'context' => [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]
],
],
/**
* Email delivery profiles
*
......@@ -208,7 +302,6 @@ return [
'headerCharset' => 'utf-8',
]
],
/**
* Connection information used by the ORM to connect
* to your application's datastores.
......@@ -220,127 +313,75 @@ return [
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres',
'driver' => Configure::read('DATABASE.DRIVER'),
'persistent' => false,
'host' => '122.155.223.38',
'port' => 5432,
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'connect06',
'password' => 'c0nn@6',
'database' => 'connect06',
'encoding' => 'utf8',
'host' => Configure::read('DATABASE.HOST'),
'port' => Configure::read('DATABASE.PORT'),
'username' => Configure::read('DATABASE.ROLE'),
'password' => Configure::read('DATABASE.PASSWORD'),
'database' => Configure::read('DATABASE.NAME'),
'schema' => 'core',
'timezone' => 'UTC',
'encoding' => 'utf8',
'timezone' => Configure::read('CORE.DEFAULT_TIMEZONE'),
'flags' => [],
'cacheMetadata' => true,
'log' => false,
/**
* Set identifier quoting to true if you are using reserved words or
* special characters in your table or column names. Enabling this
* setting will result in queries built using the Query Builder having
* identifiers quoted when creating SQL. It should be noted that this
* decreases performance because each query needs to be traversed and
* manipulated before being executed.
*/
'quoteIdentifiers' => false,
/**
* During development, if using MySQL < 5.6, uncommenting the
* following line could boost the speed at which schema metadata is
* fetched from the database. It can also be set directly with the
* mysql configuration directive 'innodb_stats_on_metadata = 0'
* which is the recommended value in production environments
*/
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
'url' => env('DATABASE_URL', null),
],
'core' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres',
'driver' => Configure::read('DATABASE.DRIVER'),
'persistent' => false,
'host' => '122.155.223.38',
'port' => 5432,
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'connect06',
'password' => 'c0nn@6',
'database' => 'connect06',
'encoding' => 'utf8',
'host' => Configure::read('DATABASE.HOST'),
'port' => Configure::read('DATABASE.PORT'),
'username' => Configure::read('DATABASE.ROLE'),
'password' => Configure::read('DATABASE.PASSWORD'),
'database' => Configure::read('DATABASE.NAME'),
'schema' => 'core',
'timezone' => 'UTC',
'encoding' => 'utf8',
'timezone' => Configure::read('CORE.DEFAULT_TIMEZONE'),
'flags' => [],
'cacheMetadata' => true,
'log' => false,
/**
* Set identifier quoting to true if you are using reserved words or
* special characters in your table or column names. Enabling this
* setting will result in queries built using the Query Builder having
* identifiers quoted when creating SQL. It should be noted that this
* decreases performance because each query needs to be traversed and
* manipulated before being executed.
*/
'quoteIdentifiers' => false,
/**
* During development, if using MySQL < 5.6, uncommenting the
* following line could boost the speed at which schema metadata is
* fetched from the database. It can also be set directly with the
* mysql configuration directive 'innodb_stats_on_metadata = 0'
* which is the recommended value in production environments
*/
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
'url' => env('DATABASE_URL', null),
],
'db_master' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres',
'driver' => Configure::read('DATABASE.DRIVER'),
'persistent' => false,
'host' => '122.155.223.38',
'port' => 5432,
//'port' => 'non_standard_port_number',
'username' => 'connect06',
'password' => 'c0nn@6',
'database' => 'connect06',
'encoding' => 'utf8',
'host' => Configure::read('DATABASE.HOST'),
'port' => Configure::read('DATABASE.PORT'),
'username' => Configure::read('DATABASE.ROLE'),
'password' => Configure::read('DATABASE.PASSWORD'),
'database' => Configure::read('DATABASE.NAME'),
'schema' => 'master',
'timezone' => 'UTC',
'encoding' => 'utf8',
'timezone' => Configure::read('CORE.DEFAULT_TIMEZONE'),
'flags' => [],
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
'url' => env('DATABASE_TEST_URL', null),
'quoteIdentifiers' => false,
'url' => env('DATABASE_URL', null),
],
'db_education' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres',
'driver' => Configure::read('DATABASE.DRIVER'),
'persistent' => false,
'host' => '122.155.223.38',
'port' => 5432,
//'port' => 'non_standard_port_number',
'username' => 'connect06',
'password' => 'c0nn@6',
'database' => 'connect06',
'encoding' => 'utf8',
'host' => Configure::read('DATABASE.HOST'),
'port' => Configure::read('DATABASE.PORT'),
'username' => Configure::read('DATABASE.ROLE'),
'password' => Configure::read('DATABASE.PASSWORD'),
'database' => Configure::read('DATABASE.NAME'),
'schema' => 'education',
'timezone' => 'UTC',
'encoding' => 'utf8',
'timezone' => Configure::read('CORE.DEFAULT_TIMEZONE'),
'flags' => [],
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
'url' => env('DATABASE_TEST_URL', null),
'quoteIdentifiers' => false,
'url' => env('DATABASE_URL', null),
],
/**
* The test connection is used during the test suite.
......@@ -364,17 +405,16 @@ return [
],
'db_temp' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres',
'driver' => Configure::read('DATABASE.DRIVER'),
'persistent' => false,
'host' => '122.155.223.38',
'port' => '5432',
//'port' => 'non_standard_port_number',
'username' => 'connect06',
'password' => 'c0nn@6',
'database' => 'connect06',
'host' => Configure::read('DATABASE.HOST'),
'port' => Configure::read('DATABASE.PORT'),
'username' => Configure::read('DATABASE.ROLE'),
'password' => Configure::read('DATABASE.PASSWORD'),
'database' => Configure::read('DATABASE.NAME'),
'encoding' => 'utf8',
'schema' => 'temp',
'timezone' => 'UTC',
'timezone' => Configure::read('CORE.DEFAULT_TIMEZONE'),
'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false,
......@@ -382,7 +422,6 @@ return [
'url' => env('DATABASE_TEST_URL', null),
],
],
/**
* Configures logging options
*/
......@@ -402,7 +441,6 @@ return [
'url' => env('LOG_ERROR_URL', null),
],
],
/**
* Session configuration.
*
......@@ -449,7 +487,6 @@ return [
'session.cookie_domain' => '.pakgon.com'
]
],
'OAuth2Client' => [
'routes' => [
'base_uri' => 'http://oauth-uat.connect.pakgon.com',
......@@ -485,31 +522,30 @@ return [
'ACCESS_TOKEN_URL' => 'http://oauth-uat.connect.pakgon.com/oauth/access_token.json',
'REFRESH_TOKEN_URL' => 'xxx'
],
'Config' => [
'apiCore' => [
'createAccount' => 'http://connect05.pakgon.com/api/Signups', //Signup
'verifyPinCode' => 'http://connect05.pakgon.com/api/Signups/verify', //PicCode
'signin' => 'http://connect05.pakgon.com/api/Signins', //Signin
'changePassword' => 'http://connect05.pakgon.com/api/Profiles/changePassword', //ChangePassword
'forgotPassword' => 'http://connect05.pakgon.com/api/Profiles/forgetPassword', //ForgotPassword
'profile' => 'http://connect05.pakgon.com/api/Profiles', //Profile
'connectProfile' => 'http://connect05.pakgon.com/api/Connects/profile',//Profile
'Contact' => 'http://connect05.pakgon.com/api/Contacts',//Contacts
'createAccount' => Configure::read('API_SERVER') . '/Signups', //Signup
'verifyPinCode' => Configure::read('API_SERVER') . '/Signups/verify', //PicCode
'signin' => Configure::read('API_SERVER') . '/Signins', //Signin
'changePassword' => Configure::read('API_SERVER') . '/Profiles/changePassword', //ChangePassword
'forgotPassword' => Configure::read('API_SERVER') . '/Profiles/forgetPassword', //ForgotPassword
'profile' => Configure::read('API_SERVER') . '/Profiles', //Profile
'connectProfile' => Configure::read('API_SERVER') . '/Connects/profile', //Profile
'Contact' => Configure::read('API_SERVER') . '/Contacts', //Contacts
],
'apiCommunication' => [
'getCategoriesHome' => 'http://connect05.pakgon.com/communication/Api/getCategoriesHome.json',
'getNewsHome' => 'http://connect05.pakgon.com/communication/Api/getNewsHome.json',
'getNotification' => 'http://connect05.pakgon.com/api/Notifications/push',
'getNotificationType' => 'http://connect05.pakgon.com/communication/Api/getNotificationType.json',
'getNotificationMessage' => 'http://connect05.pakgon.com/communication/Api/getNotificationMessage.json',
'updateReadStatus' => 'http://connect05.pakgon.com/communication/Api/updateReadStatus.json',
'setNotificationMessage' => 'http://connect05.pakgon.com/communication/Api/setNotificationMessage.json',
'getNewsDetail' => 'http://connect05.pakgon.com/communication/Api/getNewsDetail.json',
'notification' => 'http://connect05.pakgon.com/communication/Api/getNotificationType.json',
]
]
'getCategoriesHome' => Configure::read('API_SERVER') . '/communication/Api/getCategoriesHome.json',
'getNewsHome' => Configure::read('API_SERVER') . '/communication/Api/getNewsHome.json',
'getNotification' => Configure::read('API_SERVER') . '/Notifications/push',
'getNotificationType' => Configure::read('API_SERVER') . '/communication/Api/getNotificationType.json',
'getNotificationMessage' => Configure::read('API_SERVER') . '/communication/Api/getNotificationMessage.json',
'updateReadStatus' => Configure::read('API_SERVER') . '/communication/Api/updateReadStatus.json',
'setNotificationMessage' => Configure::read('API_SERVER') . '/communication/Api/setNotificationMessage.json',
'getNewsDetail' => Configure::read('API_SERVER') . '/communication/Api/getNewsDetail.json',
'notification' => Configure::read('API_SERVER') . '/communication/Api/getNotificationType.json',
]
],
'RedirectApplicationURL' => 'http://commu-uat.connect.pakgon.com'
];
......@@ -32,13 +32,7 @@ use Cake\Core\Configure;
class AppController extends Controller {
protected $selectEmptyMsg = '---- please select ----';
/**
*
* @var redirect url when authorize to success
*/
protected $_redirectApplicationURL = 'http://commu-uat.connect.pakgon.com';
/**
* Initialization hook method.
*
......
......@@ -14,6 +14,8 @@ class ProfilesController extends AppController
/*******************************/
$id = $this->Auth->user('id');
$this->loadModel('Users');
$responseUserProfile = $this->Users->get($id, [
'contain' => []
......@@ -33,7 +35,6 @@ class ProfilesController extends AppController
'keyField' => 'id',
'valueField' => 'country_name_th'
]);
// pr($responseUserPersonal['master_country_id']);die;
if(!empty($Country)) $Country = $Country->toArray();
//********DropdownProvince********
......@@ -43,7 +44,9 @@ class ProfilesController extends AppController
'is_used' => true],
'keyField' => 'id',
'valueField' => 'province_name_th'
])->where(['master_country_id =' => $responseUserPersonal['master_country_id']]);
])
->where(['master_country_id =' => $responseUserPersonal['master_country_id']])
->order(['province_name_th']);
// pr($Province);die;
if(!empty($Province)) $Province = $Province->toArray();
......@@ -63,7 +66,7 @@ class ProfilesController extends AppController
]
]
)->first();
// pr($userPersonals);die;
if($userPersonals['email'] == $this->request->data['UserPersonals']['email']){
$chkemail = true;
}else{
......@@ -96,7 +99,7 @@ class ProfilesController extends AppController
$userPersonals['user_id'] = $data['Users']['user_id'];
$userPersonals['master_country_id'] = $this->request->data['master_country_id'];
$userPersonals['master_province_id'] = $this->request->data['master_province_id'];
$userPersonals['modified_by'] = '';
$userPersonals['modified_by'] = $id;
if ($this->UserPersonals->save($userPersonals)) {
$this->Flash->success(__('Update Complete.'));
......
......@@ -3,7 +3,11 @@ namespace App\Controller;
use App\Controller\AppController;
class ProvincesController extends AppController
{
{
public function initialize() {
parent::initialize();
$this->Auth->allow();
}
public function getProvince() {
$this->autoRender = false;
......
......@@ -18,7 +18,7 @@ class UsersController extends AppController {
*/
public function initialize() {
parent::initialize();
$this->Auth->allow(['signin', 'signout', 'signup', 'verify','forgotPassword']);
$this->Auth->allow(['signin', 'signout', 'signup', 'verify','forgotPassword','createAccount','pinCode','pinCodepassword']);
}
public function index() {
......@@ -31,8 +31,9 @@ class UsersController extends AppController {
#Signin
public function verify() {
public function verify() {
$this->viewBuilder()->layout('blank');
if ($this->request->is('post')) {
$data = $this->request->getData();
if (!empty($data)) {
......@@ -41,17 +42,22 @@ class UsersController extends AppController {
$http = new Client();
$response = $http->post($api_core_signin, $data['data'])->body();
$response = json_decode($response, '_full');
if (!empty($response)) {
if (strtolower(trim($response['status'])) == 'success') {
$this->Auth->setUser($response['result']);
$response['result']['user']['id'] = $response['result']['user']['user_id'];
$this->Auth->setUser($response['result']['user']);
//$url = Router::url(['controller' => 'Homes', 'action' => 'index'], true);
// Before chan logic to OAUTH
// echo "<script>setTimeout(function(){Login.onLogin('" . $response['result']['token'] . "','" . $url . "','" . $response['result']['topic'] . "')},1000);</script>";
$statusCode = '200';
echo "<script type='text/javascript'>setTimeout(function(){Login.onLogin('" . $statusCode . "','" . $this->_redirectApplicationURL . "','" . $response['result']['topic'] . "')},1000);</script>";
// echo "<script type='text/javascript'>setTimeout(function(){Login.onLogin('" . $statusCode . "','" . $this->_redirectApplicationURL . "','" . $response['result']['topic'] . "')},1000);</script>";
$redirectApplicationURL = Configure::read('RedirectApplicationURL');
$topic = $response['result']['topic'];
$this->set(compact('statusCode', 'redirectApplicationURL', 'topic'));
#echo "<script>setTimeout(function(){alert('".$response['result']['token']."')},1000);</script>";
#echo "<script>Login.onLogin('".$response['result']['token']."','".$url."','".$response['result']['topic']."');</script>";
......@@ -65,7 +71,6 @@ class UsersController extends AppController {
#$api_notification = 'http://connect05.pakgon.com/api/Notifications/push';
$api_notification = Configure::read('Config.apiCommunication.getNotification');
$http = new Client();
$options = [
'headers' => [
......@@ -75,10 +80,8 @@ class UsersController extends AppController {
$response = $http->post($api_notification, $param, $options)->body();
#prr($response);
#------------------------------------------------------------------
//$this->redirect($this->_redirectApplicationURL);
header('Location: ' . $this->_redirectApplicationURL);
die;
//header('Location: ' . $this->_redirectApplicationURL);
} else {
$this->Flash->error(__('Verify Fail'));
return $this->redirect(['controller' => 'Users', 'action' => 'signin']);
......@@ -92,7 +95,6 @@ class UsersController extends AppController {
return $this->redirect(['controller' => 'Users', 'action' => 'signin']);
}
}
}
public function signup()
......@@ -158,7 +160,7 @@ class UsersController extends AppController {
$this->request->data['password'] = $hasher->hash($password);
$users['created_by'] = 0;
$users['is_used'] = true;
$users['is_used'] = false;
$users['created'] = $dateNow;
$users['dynamic_key'] = 'dynamic_key';
......@@ -274,7 +276,7 @@ class UsersController extends AppController {
public function pinCode($token=null)
{
if(empty($token))
$this->viewBuilder()->layout('blank');
......
<table cellpadding="0" width="100%" cellspacing="0" border="0" id="backgroundTable" class='bgBody'>
<tr>
<td>
<table cellpadding="0" width="620" class="container" align="center" cellspacing="0" border="0">
<tr>
<td>
<!-- Tables are the most common way to format your email consistently. Set your table widths inside cells and in most cases reset cellpadding, cellspacing, and border to zero. Use nested tables as a way to space effectively in your message. -->
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td class='movableContentContainer bgItem'>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr height="40">
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
</tr>
<tr>
<td width="200" valign="top">&nbsp;</td>
<td width="200" valign="top" align="center">
<div class="contentEditableContainer contentImageEditable">
<div class="contentEditable" align='center' >
<img src="images/logo.png" width="155" height="155" alt='Logo' data-default="placeholder" />
</div>
</div>
</td>
<td width="200" valign="top">&nbsp;</td>
</tr>
<tr height="25">
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
</tr>
</table>
</div>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="100%" colspan="3" align="center" style="padding-bottom:10px;padding-top:25px;">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='center' >
<h2 >It's been a while...</h2>
</div>
</div>
</td>
</tr>
<tr>
<td width="100">&nbsp;</td>
<td width="400" align="center">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='left' >
<p >Hi [FirstName,there],
<br/>
<br/>
Click on the link below to update your profile. If you're no longer interested in hearing from us, simply click on unsubscribe below (or ignore this message) and we won't send you any more newsletters.</p>
</div>
</div>
</td>
<td width="100">&nbsp;</td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="200">&nbsp;</td>
<td width="200" align="center" style="padding-top:25px;">
<table cellpadding="0" cellspacing="0" border="0" align="center" width="200" height="50">
<tr>
<td bgcolor="#ED006F" align="center" style="border-radius:4px;" width="200" height="50">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='center' >
<a target='_blank' href="#" class='link2'>Click here to reset it</a>
</div>
</div>
</td>
</tr>
</table>
</td>
<td width="200">&nbsp;</td>
</tr>
</table>
</div>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="100%" colspan="2" style="padding-top:65px;">
<hr style="height:1px;border:none;color:#333;background-color:#ddd;" />
</td>
</tr>
<tr>
<td width="60%" height="70" valign="middle" style="padding-bottom:20px;">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='left' >
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">Sent to [email] by [CLIENTS.COMPANY_NAME]</span>
<br/>
<span style="font-size:11px;color:#555;font-family:Helvetica, Arial, sans-serif;line-height:200%;">[CLIENTS.ADDRESS] | [CLIENTS.PHONE]</span>
<br/>
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">
<a target='_blank' href="[FORWARD]" style="text-decoration:none;color:#555">Forward to a friend</a>
</span>
<br/>
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">
<a target='_blank' href="[UNSUBSCRIBE]" style="text-decoration:none;color:#555">click here to unsubscribe</a></span>
</div>
</div>
</td>
<td width="40%" height="70" align="right" valign="top" align='right' style="padding-bottom:20px;">
<table width="100%" border="0" cellspacing="0" cellpadding="0" align='right'>
<tr>
<td width='57%'></td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentFacebookEditable" style='display:inline;'>
<div class="contentEditable" >
<img src="images/facebook.png" data-default="placeholder" data-max-width='30' data-customIcon="true" width='30' height='30' alt='facebook' style='margin-right:40x;'>
</div>
</div>
</td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentTwitterEditable" style='display:inline;'>
<div class="contentEditable" >
<img src="images/twitter.png" data-default="placeholder" data-max-width='30' data-customIcon="true" width='30' height='30' alt='twitter' style='margin-right:40x;'>
</div>
</div>
</td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentImageEditable" style='display:inline;'>
<div class="contentEditable" >
<a target='_blank' href="#" data-default="placeholder" style="text-decoration:none;">
<img src="images/pinterest.png" width="30" height="30" data-max-width="30" alt='pinterest' style='margin-right:40x;' />
</a>
</div>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
\ No newline at end of file
<table cellpadding="0" width="100%" cellspacing="0" border="0" id="backgroundTable" class='bgBody'>
<tr>
<td>
<table cellpadding="0" width="620" class="container" align="center" cellspacing="0" border="0">
<tr>
<td>
<!-- Tables are the most common way to format your email consistently. Set your table widths inside cells and in most cases reset cellpadding, cellspacing, and border to zero. Use nested tables as a way to space effectively in your message. -->
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td class='movableContentContainer bgItem'>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr height="40">
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
</tr>
<tr>
<td width="200" valign="top">&nbsp;</td>
<td width="200" valign="top" align="center">
<div class="contentEditableContainer contentImageEditable">
<div class="contentEditable" align='center' >
<img src="images/logo.png" width="155" height="155" alt='Logo' data-default="placeholder" />
</div>
</div>
</td>
<td width="200" valign="top">&nbsp;</td>
</tr>
<tr height="25">
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
</tr>
</table>
</div>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="100%" colspan="3" align="center" style="padding-bottom:10px;padding-top:25px;">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='center' >
<h2 >It's been a while...</h2>
</div>
</div>
</td>
</tr>
<tr>
<td width="100">&nbsp;</td>
<td width="400" align="center">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='left' >
<p >Hi [FirstName,there],
<br/>
<br/>
Click on the link below to update your profile. If you're no longer interested in hearing from us, simply click on unsubscribe below (or ignore this message) and we won't send you any more newsletters.</p>
</div>
</div>
</td>
<td width="100">&nbsp;</td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="200">&nbsp;</td>
<td width="200" align="center" style="padding-top:25px;">
<table cellpadding="0" cellspacing="0" border="0" align="center" width="200" height="50">
<tr>
<td bgcolor="#ED006F" align="center" style="border-radius:4px;" width="200" height="50">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='center' >
<a target='_blank' href="#" class='link2'>Click here to reset it</a>
</div>
</div>
</td>
</tr>
</table>
</td>
<td width="200">&nbsp;</td>
</tr>
</table>
</div>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="100%" colspan="2" style="padding-top:65px;">
<hr style="height:1px;border:none;color:#333;background-color:#ddd;" />
</td>
</tr>
<tr>
<td width="60%" height="70" valign="middle" style="padding-bottom:20px;">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='left' >
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">Sent to [email] by [CLIENTS.COMPANY_NAME]</span>
<br/>
<span style="font-size:11px;color:#555;font-family:Helvetica, Arial, sans-serif;line-height:200%;">[CLIENTS.ADDRESS] | [CLIENTS.PHONE]</span>
<br/>
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">
<a target='_blank' href="[FORWARD]" style="text-decoration:none;color:#555">Forward to a friend</a>
</span>
<br/>
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">
<a target='_blank' href="[UNSUBSCRIBE]" style="text-decoration:none;color:#555">click here to unsubscribe</a></span>
</div>
</div>
</td>
<td width="40%" height="70" align="right" valign="top" align='right' style="padding-bottom:20px;">
<table width="100%" border="0" cellspacing="0" cellpadding="0" align='right'>
<tr>
<td width='57%'></td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentFacebookEditable" style='display:inline;'>
<div class="contentEditable" >
<img src="images/facebook.png" data-default="placeholder" data-max-width='30' data-customIcon="true" width='30' height='30' alt='facebook' style='margin-right:40x;'>
</div>
</div>
</td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentTwitterEditable" style='display:inline;'>
<div class="contentEditable" >
<img src="images/twitter.png" data-default="placeholder" data-max-width='30' data-customIcon="true" width='30' height='30' alt='twitter' style='margin-right:40x;'>
</div>
</div>
</td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentImageEditable" style='display:inline;'>
<div class="contentEditable" >
<a target='_blank' href="#" data-default="placeholder" style="text-decoration:none;">
<img src="images/pinterest.png" width="30" height="30" data-max-width="30" alt='pinterest' style='margin-right:40x;' />
</a>
</div>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
\ No newline at end of file
<table cellpadding="0" width="100%" cellspacing="0" border="0" id="backgroundTable" class='bgBody'>
<tr>
<td>
<table cellpadding="0" width="620" class="container" align="center" cellspacing="0" border="0">
<tr>
<td>
Verification code: <?php echo $verify_code;?>
</td>
</tr>
</table>
</td>
</tr>
</table>
\ No newline at end of file
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>[SUBJECT]</title>
<style type="text/css">
@media screen and (max-width: 600px) {
table[class="container"] {
width: 95% !important;
}
}
#outlook a {padding:0;}
body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}
.ExternalClass {width:100%;}
.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;}
#backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}
img {outline:none; text-decoration:none; -ms-interpolation-mode: bicubic;}
a img {border:none;}
.image_fix {display:block;}
p {margin: 1em 0;}
h1, h2, h3, h4, h5, h6 {color: black !important;}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {color: blue !important;}
h1 a:active, h2 a:active, h3 a:active, h4 a:active, h5 a:active, h6 a:active {
color: red !important;
}
h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited {
color: purple !important;
}
table td {border-collapse: collapse;}
table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }
a {color: #000;}
@media only screen and (max-device-width: 480px) {
a[href^="tel"], a[href^="sms"] {
text-decoration: none;
color: black; /* or whatever your want */
pointer-events: none;
cursor: default;
}
.mobile_link a[href^="tel"], .mobile_link a[href^="sms"] {
text-decoration: default;
color: orange !important; /* or whatever your want */
pointer-events: auto;
cursor: default;
}
}
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
a[href^="tel"], a[href^="sms"] {
text-decoration: none;
color: blue; /* or whatever your want */
pointer-events: none;
cursor: default;
}
.mobile_link a[href^="tel"], .mobile_link a[href^="sms"] {
text-decoration: default;
color: orange !important;
pointer-events: auto;
cursor: default;
}
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
/* Put your iPhone 4g styles in here */
}
@media only screen and (-webkit-device-pixel-ratio:.75){
/* Put CSS for low density (ldpi) Android layouts in here */
}
@media only screen and (-webkit-device-pixel-ratio:1){
/* Put CSS for medium density (mdpi) Android layouts in here */
}
@media only screen and (-webkit-device-pixel-ratio:1.5){
/* Put CSS for high density (hdpi) Android layouts in here */
}
/* end Android targeting */
h2{
color:#181818;
font-family:Helvetica, Arial, sans-serif;
font-size:22px;
line-height: 22px;
font-weight: normal;
}
a.link1{
}
a.link2{
color:#fff;
text-decoration:none;
font-family:Helvetica, Arial, sans-serif;
font-size:16px;
color:#fff;border-radius:4px;
}
p{
color:#555;
font-family:Helvetica, Arial, sans-serif;
font-size:16px;
line-height:160%;
}
</style>
<script type="colorScheme" class="swatch active">
{
"name":"Default",
"bgBody":"ffffff",
"link":"fff",
"color":"555555",
"bgItem":"ffffff",
"title":"181818"
}
</script>
</head>
<body>
<?php echo $this->fetch('content') ?>
</body>
</html>
\ No newline at end of file
<script type='text/javascript'>
setTimeout(function(){
if (typeof Login == 'undefined') {
location = '<?php echo $redirectApplicationURL; ?>';
} else {
Login.onLogin('<?php echo $statusCode; ?>','<?php echo $redirectApplicationURL; ?>','<?php echo $topic; ?>');
}
}, 1000);
</script>;
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment