Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
joshine
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
joshine
Commits
5ff331c3
Commit
5ff331c3
authored
May 22, 2023
by
liumengfei
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'developer' into production
parents
53284d1c
12cc178f
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
562 additions
and
19 deletions
+562
-19
app/code/Joshine/InstagramFeed/Model/Cache/Type.php
+1
-1
app/code/Joshine/Script/Console/Command/InstagramFeedPull.php
+436
-0
app/code/Joshine/Script/etc/di.xml
+4
-0
app/code/Magento/Checkout/Block/Onepage.php
+9
-0
app/code/Magento/Checkout/view/frontend/web/js/view/checkout-footer.js
+31
-2
app/code/Magento/Checkout/view/frontend/web/template/checkout-index-footer.html
+4
-4
app/code/Magento/Cms/Controller/Index/GetPage.php
+37
-0
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/onepage.phtml
+36
-10
app/design/frontend/Joshine/breeze/web/css/_custom.less
+2
-2
pub/.htaccess
+2
-0
No files found.
app/code/Joshine/InstagramFeed/Model/Cache/Type.php
View file @
5ff331c3
...
@@ -10,7 +10,7 @@ class Type extends TagScope
...
@@ -10,7 +10,7 @@ class Type extends TagScope
const
CACHE_TAG
=
'INSTAGRAM_FEED'
;
const
CACHE_TAG
=
'INSTAGRAM_FEED'
;
const
CACHE_LIFETIME
=
60
*
60
;
const
CACHE_LIFETIME
=
60
*
60
*
24
;
/**
/**
* @param FrontendPool $cacheFrontendPool
* @param FrontendPool $cacheFrontendPool
...
...
app/code/Joshine/Script/Console/Command/InstagramFeedPull.php
0 → 100644
View file @
5ff331c3
<?php
namespace
Joshine\Script\Console\Command
;
use
Google\Service\BinaryAuthorization\ValidateAttestationOccurrenceRequest
;
use
Joshine\InstagramFeed\Block\MediaFeed
;
use
Joshine\InstagramFeed\Model\Cache\Type
;
use
Joshine\Review\Helper\ImageHelper
;
use
Joshine\Review\Model\ImageUploader
;
use
Magento\Framework\App\Area
;
use
Magento\Framework\App\Config\ScopeConfigInterface
;
use
Magento\Framework\App\Filesystem\DirectoryList
;
use
Magento\Framework\App\ResourceConnection
;
use
Magento\Framework\App\State
;
use
Magento\Framework\DB\Adapter\AdapterInterface
;
use
Magento\Framework\Exception\NoSuchEntityException
;
use
Magento\Framework\File\Csv
;
use
Magento\Framework\ObjectManager\ObjectManager
;
use
Magento\Framework\ObjectManagerInterface
;
use
Magento\Framework\Serialize\Serializer\Json
;
use
Magento\Framework\UrlInterface
;
use
Magento\Framework\View\Element\BlockFactory
;
use
Magento\Setup\Exception
;
use
Magento\Store\Model\App\Emulation
;
use
Magento\Store\Model\ScopeInterface
;
use
Magento\Store\Model\StoreManager
;
use
Magento\Store\Model\StoreManagerInterface
;
use
Symfony\Component\Console\Command\Command
;
use
Symfony\Component\Console\Input\InputInterface
;
use
Symfony\Component\Console\Input\InputOption
;
use
Symfony\Component\Console\Output\OutputInterface
;
use
Magento\Review\Model\Review
;
use
Magento\Customer\Model\Customer
;
use
Magento\Customer\Model\ResourceModel\Customer\CollectionFactory
;
class
InstagramFeedPull
extends
Command
{
const
IMAGE_PATH
=
'/joshine/instagram/'
;
const
IMAGE_TMP_PATH
=
'/joshine/instagram/tmp/'
;
/**
* @var Csv
*/
private
$csv
;
/**
* @var Customer
*/
private
$customer
;
/**
* @var DirectoryList
*/
private
$directoryList
;
/**
* @var ResourceConnection
*/
private
$resource
;
/**
* @var AdapterInterface
*/
private
$connection
;
/**
* @var State
*/
private
$state
;
/**
* @var Magento\Customer\Model\ResourceModel\Customer\Collection
*/
private
$collection
;
/**
* @var CollectionFactory
*/
private
$collectionFactory
;
const
FILE
=
"csv"
;
/**
* @var OutputInterface
*/
private
$_output
;
/**
* @var mixed
*/
private
$storeId
;
/**
* @var ImageUploader
*/
private
$imageUploader
;
/**
* @var \Joshine\Review\Model\ImagesFactory
*/
private
$imagesFactory
;
/**
* @var \Magento\Framework\Message\ManagerInterface
*/
private
$messageManager
;
/**
* @var \Joshine\Review\Model\ResourceModel\Images
*/
private
$imagesResource
;
/**
* @var \Magento\Framework\Filesystem
*/
private
$filesystem
;
/**
* @var \Magento\Framework\Filesystem\Io\File
*/
private
$ioFile
;
/**
* @var MediaFeed
*/
const
INSTAGRAM_API_BASE_URL
=
'https://api.instagram.com'
;
const
INSTAGRAM_GRAPH_API_URL
=
"https://graph.instagram.com"
;
const
INSTAGRAM_AUTH_URL
=
'oauth/authorize'
;
const
INSTAGRAM_TOKEN_URL
=
'oauth/access_token'
;
const
REDIRECT_URL
=
'admin/joshine_instagram/oauth/redirect'
;
protected
$_objectManager
;
/**
* @var \Magento\Framework\HTTP\Client\Curl
*/
private
$_curlClient
;
/**
* @var \Magento\Framework\Json\EncoderInterface
*/
private
$jsonEncoder
;
/**
* @var Json
*/
private
$_json
;
/**
* @var \Magento\Framework\Json\Decoder
*/
private
$jsonDecoder
;
/**
* @var ScopeConfigInterface
*/
private
$scopeConfig
;
/**
* @var StoreManagerInterface
*/
private
$storeManager
;
/**
* @var \Magento\Framework\App\Cache\StateInterface|mixed
*/
private
$_cacheState
;
/**
* @var \Magento\Framework\Image\AdapterFactory
*/
private
$imageFactory
;
/**
* @var \Magento\Framework\Filesystem\Io\File
*/
private
$fileManager
;
/**
* @var string
*/
private
$id
;
/**
* @var \Magento\Framework\App\CacheInterface
*/
private
$_cache
;
public
function
__construct
(
\Magento\Framework\Filesystem
$filesystem
,
ObjectManager
$objectManager
,
CollectionFactory
$collectionFactory
,
Csv
$csv
,
Customer
$customer
,
DirectoryList
$directoryList
,
ResourceConnection
$resource
,
State
$state
,
\Magento\Framework\Filesystem\Io\File
$fileManager
,
\Magento\Framework\Image\AdapterFactory
$imageFactory
,
\Magento\Framework\Filesystem\Io\File
$ioFile
,
\Magento\Framework\App\RequestInterface
$request
,
\Magento\Framework\HTTP\Client\Curl
$curl
,
\Magento\Framework\Json\EncoderInterface
$jsonEncoder
,
\Magento\Framework\App\CacheInterface
$cache
,
\Magento\Framework\Json\Decoder
$jsonDecoder
,
StoreManagerInterface
$storeManager
,
\Magento\Framework\App\Cache\StateInterface
$_cacheState
,
ImageUploader
$imageUploader
,
\Joshine\Review\Model\ImagesFactory
$imagesFactory
,
\Magento\Framework\Message\ManagerInterface
$messageManager
,
\Joshine\Review\Model\ResourceModel\Images
$imagesResource
,
\Magento\Framework\App\Config\ScopeConfigInterface
$scopeConfig
,
string
$name
=
null
)
{
parent
::
__construct
(
$name
);
$this
->
imageFactory
=
$imageFactory
;
$this
->
fileManager
=
$fileManager
;
$this
->
_objectManager
=
$objectManager
;
$this
->
imageUploader
=
$imageUploader
;
$this
->
storeManager
=
$storeManager
;
$this
->
_cacheState
=
$_cacheState
;
$this
->
_cache
=
$cache
;
$this
->
jsonDecoder
=
$jsonDecoder
;
$this
->
filesystem
=
$filesystem
;
$this
->
scopeConfig
=
$scopeConfig
;
$this
->
imagesFactory
=
$imagesFactory
;
$this
->
messageManager
=
$messageManager
;
$this
->
_curlClient
=
$curl
;
$this
->
imagesResource
=
$imagesResource
;
$this
->
collectionFactory
=
$collectionFactory
;
$this
->
directoryList
=
$directoryList
;
$this
->
state
=
$state
;
$this
->
ioFile
=
$ioFile
;
}
protected
function
configure
()
{
$this
->
setName
(
'joshine:instagram-pull'
);
$this
->
setDescription
(
'拉取ins媒体'
);
$this
->
addOption
(
"store_id"
,
null
,
InputOption
::
VALUE_REQUIRED
,
'store id'
);
parent
::
configure
();
}
public
function
getBaseURL
()
{
return
$this
->
storeManager
->
getStore
(
$this
->
storeId
)
->
getBaseUrl
();
}
protected
function
execute
(
InputInterface
$input
,
OutputInterface
$output
)
{
$base_path
=
str_replace
(
'\\'
,
'/'
,
realpath
(
dirname
(
__FILE__
)
.
'/../../../../../../'
));
$base_path
.=
"/pub/"
;
$this
->
id
=
$this
->
getId
();
$storeId
=
$input
->
getOption
(
'store_id'
);
if
(
!
$storeId
)
{
$output
->
writeln
(
"[error]store_id没填"
);
return
;
}
$this
->
storeId
=
$storeId
;
$raw
=
$this
->
getMediaByApi
();
if
(
!
isset
(
$raw
[
'data'
]))
{
return
;
}
$media
=
$raw
[
'data'
];
foreach
(
$media
as
$index
=>
$row
)
{
$url
=
$row
[
"thumbnail_url"
]
??
$row
[
"media_url"
];
$key
=
isset
(
$row
[
'thumbnail_url'
])
?
'thumbnail_url'
:
'media_url'
;
$res
=
$this
->
downloadImage
(
$url
);
$path
=
$this
->
resize
(
$res
);
$res
=
str_replace
(
$base_path
,
""
,
$path
);
$media
[
$index
][
$key
]
=
$res
;
}
$media
=
array_merge
(
$media
,
[]);
$arr
=
[];
$arr
[
'data'
]
=
$media
;
$this
->
flushCache
(
json_encode
(
$arr
,
true
));
return
;
}
public
function
downloadImage
(
$url
)
{
$path
=
$this
->
directoryList
->
getPath
(
'var'
);
$file
=
$path
.
DIRECTORY_SEPARATOR
.
mt_rand
(
10000
,
99999
)
.
time
()
.
md5
(
$url
)
.
".jpeg"
;
file_put_contents
(
$file
,
file_get_contents
(
$url
));
return
$file
;
}
public
function
flushCache
(
$media
)
{
$this
->
cacheFeed
(
$media
);
}
public
function
getConfig
(
$path
,
$storeId
=
null
)
{
return
$this
->
scopeConfig
->
getValue
(
$path
,
\Magento\Store\Model\ScopeInterface
::
SCOPE_STORE
,
$storeId
);
}
public
function
getAppid
()
{
return
$this
->
getConfig
(
'joshine_instagram_feed/general/appid'
,
$this
->
storeId
);
}
public
function
getAppSecret
()
{
$this
->
getConfig
(
'joshine_instagram_feed/general/app_secret'
,
$this
->
storeId
);
}
public
function
redirectUri
()
:
string
{
return
$this
->
getBaseUrl
()
.
self
::
REDIRECT_URL
;
}
public
function
authUrl
()
:
string
{
return
self
::
INSTAGRAM_API_BASE_URL
.
'/'
.
self
::
INSTAGRAM_AUTH_URL
.
"?client_id=
{
$this
->
getAppid
()
}
&redirect_uri=
{
$this
->
redirectUri
()
}
&scope=user_profile,user_media&response_type=code"
;
}
public
function
getMediaUrl
(
$token
,
$uid
)
:
string
{
return
self
::
INSTAGRAM_GRAPH_API_URL
.
"/v16.0/
{
$uid
}
/media?access_token=
{
$token
}
&fields=caption,id,is_shared_to_feed,media_type,media_url,permalink,thumbnail_url,timestamp,username&limit=12"
;
}
public
function
getMediaByApi
()
{
$uid
=
$this
->
getConfig
(
'joshine_instagram_feed/general/user_id'
,
$this
->
storeId
);
$token
=
$this
->
getConfig
(
'joshine_instagram_feed/general/access_token'
,
$this
->
storeId
);
$url
=
$this
->
getMediaUrl
(
$token
,
$uid
);
try
{
$this
->
getCurlClient
()
->
get
(
$url
);
$this
->
getCurlClient
()
->
setOptions
([
CURLOPT_SSL_VERIFYHOST
=>
false
,
CURLOPT_SSL_VERIFYPEER
=>
false
]);
if
(
$this
->
getCurlClient
()
->
getStatus
()
!=
200
)
{
return
[];
}
}
catch
(
\Exception
$e
)
{
echo
$e
->
getMessage
();
return
[];
}
return
$this
->
jsonDecoder
->
decode
(
$this
->
getCurlClient
()
->
getBody
());
}
public
function
getCurlClient
()
{
return
$this
->
_curlClient
;
}
public
function
getId
()
{
try
{
return
base64_encode
(
$this
->
storeManager
->
getStore
(
$this
->
storeId
)
->
getCode
()
.
Type
::
TYPE_IDENTIFIER
);
}
catch
(
NoSuchEntityException
$e
)
{
return
base64_encode
(
date
(
'Y-m-d'
)
.
Type
::
TYPE_IDENTIFIER
);
}
}
public
function
cacheFeed
(
$feed
)
{
if
(
$this
->
_cacheState
->
isEnabled
(
Type
::
TYPE_IDENTIFIER
))
{
$this
->
save
(
$feed
,
$this
->
id
);
}
return
true
;
}
public
function
save
(
$data
,
$cacheId
)
{
if
(
$this
->
_cacheState
->
isEnabled
(
Type
::
TYPE_IDENTIFIER
))
{
return
$this
->
_cache
->
save
(
$data
,
$cacheId
,
[
Type
::
CACHE_TAG
],
Type
::
CACHE_LIFETIME
);
}
return
false
;
}
public
function
copy
(
string
$imagePath
)
{
$from
=
$imagePath
;
$fileName
=
basename
(
$imagePath
);
if
(
$this
->
ioFile
->
fileExists
(
$from
))
{
$realPath
=
$this
->
filesystem
->
getDirectoryRead
(
DirectoryList
::
MEDIA
)
->
getAbsolutePath
(
ImageHelper
::
IMAGE_PATH
);
$counter
=
0
;
while
(
$this
->
ioFile
->
fileExists
(
$realPath
.
$fileName
))
{
$imagePathArray
=
explode
(
'.'
,
$fileName
);
$imagePathArray
[
0
]
.=
$counter
++
;
$fileName
=
implode
(
'.'
,
$imagePathArray
);
}
$this
->
ioFile
->
checkAndCreateFolder
(
$this
->
ioFile
->
dirname
(
$realPath
.
$fileName
));
if
(
$this
->
ioFile
->
mv
(
$from
,
$realPath
.
$fileName
))
{
return
'/'
.
basename
(
$fileName
);
}
}
return
false
;
}
public
function
resize
(
$image
,
$width
=
600
,
$height
=
600
)
{
$absolutePath
=
$image
;
$imageResized
=
$this
->
filesystem
->
getDirectoryRead
(
DirectoryList
::
MEDIA
)
->
getAbsolutePath
(
self
::
IMAGE_PATH
.
'resized/'
.
$width
.
'/'
)
.
basename
(
$image
);
if
(
$this
->
fileManager
->
fileExists
(
$imageResized
))
{
return
$imageResized
;
}
if
(
!
$this
->
fileManager
->
fileExists
(
$absolutePath
))
{
return
""
;
}
//create image factory...
$imageResize
=
$this
->
imageFactory
->
create
();
$imageResize
->
open
(
$absolutePath
);
$imageResize
->
constrainOnly
(
true
);
$imageResize
->
keepTransparency
(
true
);
$imageResize
->
keepFrame
(
false
);
$imageResize
->
backgroundColor
([
255
,
255
,
255
]);
$imageResize
->
keepAspectRatio
(
true
);
$imageResize
->
resize
(
$width
,
$height
);
$destination
=
$imageResized
;
$imageResize
->
save
(
$destination
);
return
$destination
;
}
}
\ No newline at end of file
app/code/Joshine/Script/etc/di.xml
View file @
5ff331c3
...
@@ -9,6 +9,9 @@
...
@@ -9,6 +9,9 @@
<argument
name=
"commands"
xsi:type=
"array"
>
<argument
name=
"commands"
xsi:type=
"array"
>
<item
name=
"reviews-import"
xsi:type=
"object"
>
Joshine\Script\Console\Command\ReviewsImporter
</item>
<item
name=
"reviews-import"
xsi:type=
"object"
>
Joshine\Script\Console\Command\ReviewsImporter
</item>
</argument>
</argument>
<argument
name=
"commands"
xsi:type=
"array"
>
<item
name=
"instagram-pull"
xsi:type=
"object"
>
Joshine\Script\Console\Command\InstagramFeedPull
</item>
</argument>
</arguments>
</arguments>
</type>
</type>
</config>
</config>
\ No newline at end of file
app/code/Magento/Checkout/Block/Onepage.php
View file @
5ff331c3
...
@@ -128,6 +128,15 @@ class Onepage extends \Magento\Framework\View\Element\Template
...
@@ -128,6 +128,15 @@ class Onepage extends \Magento\Framework\View\Element\Template
{
{
return
$this
->
_scopeConfigInterface
->
getValue
(
'carriers/freeshipping/free_shipping_subtotal'
);
return
$this
->
_scopeConfigInterface
->
getValue
(
'carriers/freeshipping/free_shipping_subtotal'
);
}
}
public
function
getCopyright
()
{
$copyright
=
$this
->
_scopeConfig
->
getValue
(
'design/footer/copyright'
,
\Magento\Store\Model\ScopeInterface
::
SCOPE_STORE
);
return
$copyright
;
}
/**
/**
* Get base url for block.
* Get base url for block.
*
*
...
...
app/code/Magento/Checkout/view/frontend/web/js/view/checkout-footer.js
View file @
5ff331c3
...
@@ -6,13 +6,42 @@
...
@@ -6,13 +6,42 @@
define
([
define
([
'jquery'
,
'jquery'
,
'uiComponent'
,
'uiComponent'
,
'mage/mage'
'Magento_Ui/js/modal/alert'
,
],
function
(
$
,
Component
)
{
'mage/mage'
,
],
function
(
$
,
Component
,
modalAlert
)
{
'use strict'
;
'use strict'
;
return
Component
.
extend
({
return
Component
.
extend
({
defaults
:
{
defaults
:
{
template
:
'Magento_Checkout/checkout-index-footer'
template
:
'Magento_Checkout/checkout-index-footer'
},
initialize
:
function
()
{
this
.
initStep
();
this
.
_super
();
return
this
;
},
initStep
:
function
()
{
$
(
document
).
on
(
'click'
,
'.cf-link'
,
function
(){
var
dataKey
=
$
(
this
).
attr
(
'data-key'
);
if
(
!
dataKey
)
{
return
false
;
}
$
.
ajax
({
url
:
'/cms/index/getPage'
,
type
:
'POST'
,
data
:
{
'identifier'
:
dataKey
},
dataType
:
'json'
,
success
:
function
(
result
)
{
modalAlert
({
title
:
result
.
title
,
content
:
result
.
content
,
button
:[]
});
}
});
});
}
}
});
});
});
});
app/code/Magento/Checkout/view/frontend/web/template/checkout-index-footer.html
View file @
5ff331c3
...
@@ -5,16 +5,16 @@
...
@@ -5,16 +5,16 @@
<footer
id=
"policy-description"
class=
"checkout_policy_description"
trade-btn-event-name=
"trade:showPolicyModal"
data-testid=
"checkout-dtv5i"
>
<footer
id=
"policy-description"
class=
"checkout_policy_description"
trade-btn-event-name=
"trade:showPolicyModal"
data-testid=
"checkout-dtv5i"
>
<ul>
<ul>
<li>
<li>
<a
class=
"custom-link-color
"
href=
"/return-exchange-policy"
target=
"_blank
"
>
Refund Policy
</a>
<a
class=
"custom-link-color
cf-link"
href=
"javascript:;"
data-key=
"return-exchange-policy
"
>
Refund Policy
</a>
</li>
</li>
<li>
<li>
<a
class=
"custom-link-color
"
href=
"/shipping-policy"
target=
"_blank
"
>
Shipping policy
</a>
<a
class=
"custom-link-color
cf-link"
href=
"javascript:;"
data-key=
"shipping-policy
"
>
Shipping policy
</a>
</li>
</li>
<li>
<li>
<a
class=
"custom-link-color
"
href=
"/security-privacy-policy"
target=
"_blank
"
>
Privacy Policy
</a>
<a
class=
"custom-link-color
cf-link"
href=
"javascript:;"
data-key=
"security-privacy-policy
"
>
Privacy Policy
</a>
</li>
</li>
<li>
<li>
<a
class=
"custom-link-color
"
href=
"/terms-of-use"
target=
"_blank
"
>
Terms of service
</a>
<a
class=
"custom-link-color
cf-link"
href=
"javascript:;"
data-key=
"terms-of-use
"
>
Terms of service
</a>
</li>
</li>
</ul>
</ul>
</footer>
</footer>
...
...
app/code/Magento/Cms/Controller/Index/GetPage.php
0 → 100644
View file @
5ff331c3
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace
Magento\Cms\Controller\Index
;
use
Magento\Framework\App\ObjectManager
;
use
Magento\Framework\Controller\Result\JsonFactory
;
class
GetPage
extends
\Magento\Framework\App\Action\Action
{
protected
$resultJsonFactory
;
/**
* @param \Magento\Framework\App\Action\Context $context
*/
public
function
__construct
(
\Magento\Framework\App\Action\Context
$context
,
JsonFactory
$resultJsonFactory
)
{
$this
->
resultJsonFactory
=
$resultJsonFactory
;
parent
::
__construct
(
$context
);
}
public
function
execute
()
{
$identifier
=
$this
->
getRequest
()
->
getParam
(
'identifier'
);
$objectManager
=
\Magento\Framework\App\ObjectManager
::
getInstance
();
$CmsPage
=
$objectManager
->
get
(
\Magento\Cms\Model\Page
::
class
);
$CmsPage
->
load
(
$identifier
,
'identifier'
);
$data
=
[];
$data
[
'title'
]
=
$CmsPage
->
getTitle
();
$data
[
'content'
]
=
$CmsPage
->
getContent
();
$resultPage
=
$this
->
resultJsonFactory
->
create
();
$resultPage
->
setHttpResponseCode
(
200
);
$resultPage
->
setData
(
$data
);
return
$resultPage
;
}
}
app/design/frontend/Joshine/breeze/Magento_Checkout/templates/onepage.phtml
View file @
5ff331c3
...
@@ -14,7 +14,7 @@ $full_free = $block->getFullFreeShip();
...
@@ -14,7 +14,7 @@ $full_free = $block->getFullFreeShip();
$_helper
=
$objectManager
->
get
(
'Magento\Framework\Pricing\Helper\Data'
);
$_helper
=
$objectManager
->
get
(
'Magento\Framework\Pricing\Helper\Data'
);
$full_free_ship
=
$_helper
->
currency
(
$full_free
,
true
,
false
);
$full_free_ship
=
$_helper
->
currency
(
$full_free
,
true
,
false
);
$free_price
=
$_helper
->
currency
(
0
,
true
,
false
);
$free_price
=
$_helper
->
currency
(
0
,
true
,
false
);
$copyright
=
$block
->
getCopyright
();
$logoUrl
=
$block
->
getLogoUrl
();
$logoUrl
=
$block
->
getLogoUrl
();
$mobileDetect
=
$objectManager
->
get
(
\Joshine\Common\Lib\MobileDetect\MobileDetect
::
class
);
$mobileDetect
=
$objectManager
->
get
(
\Joshine\Common\Lib\MobileDetect\MobileDetect
::
class
);
$isMobile
=
$mobileDetect
->
isMobile
();
$isMobile
=
$mobileDetect
->
isMobile
();
...
@@ -81,7 +81,7 @@ $isMobile = $mobileDetect->isMobile();
...
@@ -81,7 +81,7 @@ $isMobile = $mobileDetect->isMobile();
.header.content
.secure-wrapper
.icon-safepay
:before
{
.header.content
.secure-wrapper
.icon-safepay
:before
{
content
:
"\e644"
;
content
:
"\e644"
;
}
}
.checkout-index-index
footer
.modal-footer
{
margin-top
:
unset
;}
.checkout-index-index
footer
.modal-footer
{
margin-top
:
unset
;
padding
:
5px
;
}
.header.content
{
height
:
60px
;
padding-top
:
10px
;
padding-bottom
:
10px
;}
.header.content
{
height
:
60px
;
padding-top
:
10px
;
padding-bottom
:
10px
;}
@media
(
min-width
:
640px
){
@media
(
min-width
:
640px
){
.header.content
{
padding-top
:
15px
!important
;
margin-bottom
:
0px
!important
;}
.header.content
{
padding-top
:
15px
!important
;
margin-bottom
:
0px
!important
;}
...
@@ -1088,9 +1088,31 @@ $isMobile = $mobileDetect->isMobile();
...
@@ -1088,9 +1088,31 @@ $isMobile = $mobileDetect->isMobile();
.checkout-index-index
.authentication-wrapper
.action.action-auth-toggle
{
.checkout-index-index
.authentication-wrapper
.action.action-auth-toggle
{
color
:
#0000ff
!important
;
color
:
#0000ff
!important
;
}
}
.modal-inner-wrap
{
max-width
:
100%
;
width
:
766px
;
border-radius
:
8px
;
max-height
:
80%
;
height
:
auto
;
}
}
.checkout-index-index
.modal-footer
.action-primary.action-accept
{
display
:
none
;
}
.checkout-index-index
.modal-header
{
border-bottom
:
1px
solid
#ddddd8
;
padding
:
20px
;
}
.checkout-index-index
.modal-title
{
margin
:
0
auto
;
}
.checkout-index-index
.modal-content
{
padding-top
:
1rem
;
}
.checkout-index-index
.authentication-wrapper
.modal-header
{
border-bottom
:
none
;
padding
:
0
;
}
}
.checkout-index-index
#shipping
.field.street
,
.checkout-index-index
.billing-address-form
.field.street
{
.checkout-index-index
#shipping
.field.street
,
.checkout-index-index
.billing-address-form
.field.street
{
min-height
:
7rem
;
min-height
:
7rem
;
}
}
...
@@ -1671,10 +1693,7 @@ $isMobile = $mobileDetect->isMobile();
...
@@ -1671,10 +1693,7 @@ $isMobile = $mobileDetect->isMobile();
background
:
#f2f2f2
;
background
:
#f2f2f2
;
margin-top
:
15px
;
margin-top
:
15px
;
}
}
#policy-description
li
a
{
font-size
:
12px
;
color
:
#276EAF
;
}
.jkl
{
.jkl
{
width
:
17px
;
width
:
17px
;
height
:
17px
;
height
:
17px
;
...
@@ -1695,8 +1714,11 @@ $isMobile = $mobileDetect->isMobile();
...
@@ -1695,8 +1714,11 @@ $isMobile = $mobileDetect->isMobile();
@keyframes
fadenum
{
@keyframes
fadenum
{
100
%
{
transform
:
rotate
(
360deg
);}
100
%
{
transform
:
rotate
(
360deg
);}
}
}
#policy-description
li
a
{
/********************************************address from end****************************************************/
font-size
:
12px
;
color
:
#666666
;
}
/***************************************dddddddddddd*****address from end****************************************************/
...
@@ -1718,6 +1740,7 @@ $isMobile = $mobileDetect->isMobile();
...
@@ -1718,6 +1740,7 @@ $isMobile = $mobileDetect->isMobile();
window.checkoutConfig.flatrate_price = '{$flatraPrice}';
window.checkoutConfig.flatrate_price = '{$flatraPrice}';
window.checkoutConfig.full_free_ship = '{$full_free_ship}';
window.checkoutConfig.full_free_ship = '{$full_free_ship}';
window.checkoutConfig.free_price = '{$free_price}';
window.checkoutConfig.free_price = '{$free_price}';
window.checkoutConfig.copyright = '{$copyright}';
window.checkoutConfig.addressVisible = true;
window.checkoutConfig.addressVisible = true;
window.checkoutConfig.shippingVisible = false;
window.checkoutConfig.shippingVisible = false;
window.checkoutConfig.paymentVisible = false;
window.checkoutConfig.paymentVisible = false;
...
@@ -1740,6 +1763,7 @@ script;
...
@@ -1740,6 +1763,7 @@ script;
<?=
/* @noEscape */
$secureRenderer
->
renderTag
(
'script'
,
[],
$scriptString
,
false
)
?>
<?=
/* @noEscape */
$secureRenderer
->
renderTag
(
'script'
,
[],
$scriptString
,
false
)
?>
</div>
</div>
<script>
<script>
require
([
'jquery'
],
function
(
$
)
{
require
([
'jquery'
],
function
(
$
)
{
var
isMobile
=
window
.
matchMedia
(
"(pointer:coarse)"
).
matches
;
var
isMobile
=
window
.
matchMedia
(
"(pointer:coarse)"
).
matches
;
/*
/*
...
@@ -1872,4 +1896,5 @@ script;
...
@@ -1872,4 +1896,5 @@ script;
});
});
</script>
</script>
\ No newline at end of file
app/design/frontend/Joshine/breeze/web/css/_custom.less
View file @
5ff331c3
...
@@ -502,7 +502,7 @@ ul {
...
@@ -502,7 +502,7 @@ ul {
position: fixed;
position: fixed;
font-size: larger;
font-size: larger;
bottom: 0;
bottom: 0;
z-index:
1
;
z-index:
2
;
width: 100%;
width: 100%;
margin: 0 auto;
margin: 0 auto;
left: 0;
left: 0;
...
@@ -2661,7 +2661,7 @@ button.action.submit.primary {
...
@@ -2661,7 +2661,7 @@ button.action.submit.primary {
display: block !important;
display: block !important;
position: fixed;
position: fixed;
bottom: 0;
bottom: 0;
z-index:
1
;
z-index:
2
;
}
}
.breeze-gallery .stage .main-image-wrapper > picture{
.breeze-gallery .stage .main-image-wrapper > picture{
display: none;
display: none;
...
...
pub/.htaccess
View file @
5ff331c3
...
@@ -271,4 +271,6 @@ ErrorDocument 403 /errors/404.php
...
@@ -271,4 +271,6 @@ ErrorDocument 403 /errors/404.php
## Prevent clickjacking
## Prevent clickjacking
Header
set
X-Frame-Options SAMEORIGIN
Header
set
X-Frame-Options SAMEORIGIN
Header
add
Access-Control-Allow-Origin "facebook.com"
</
IfModule
>
</
IfModule
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment