Thẻ div sử dụng background image. Để background không bị biến dạng và vẫn sử dụng image đó, tiến hành set padding-bottom % theo tỉ lệ.
[imgHeight/imgWidth] %
div.contain{
padding:0;
padding-bottom:66%;
}
Thẻ div sử dụng background image. Để background không bị biến dạng và vẫn sử dụng image đó, tiến hành set padding-bottom % theo tỉ lệ.
[imgHeight/imgWidth] %
div.contain{
padding:0;
padding-bottom:66%;
}
1. Backup all site
2. Scan source Code, scan database
3. Cron Jobs: check and remove each job.
Beware: cron job backup site or statistics
Đối với site thông thường thì Cron Job là trống không có cái nào
Để backup và restore Wordpress site bằng plugin Duplicator miễn phí, sau khi tạo ra file .zip có hể download hoặc di chuyển qua host khác. Tiến hành install là hoàn thành.
Plugin Back up khác WP All In One
Phát hiện lỗi: khi upgrade joomla 4 lên joomla 5, lưu article xuất hiện lỗi
Save failed with the following error: Joomla\Component\Finder\Administrator\Table\MapTable::_getNode(1, id) failed.
Giải pháp: sử dụng phpmyadmin INSERT INTO `#_finder_taxonomy` (`id`, `parent_id`, `title`, `state`, `access`, `lft`, `rgt`) VALUES (1, 0, 'ROOT', 1, 1, 0, 1);
Nguyên nhân table #_finder_taxonomy thiếu 1 record không có dữ liệu ROOT
Link test php XAMPP local: https://localhost/dashboard/phpinfo.php
1. Rename php to php_old
2. Download PHP8.5 from: https://www.php.net/downloads
3. Unzip and rename folder
4. Copy php.ini from php_old to new
5. Copy extras from php_old to new
The simplest solution
Check and good luck
XAMPP 3.3.0
SET FOREIGN_KEY_CHECKS = ON;
#2006 - MySQL server has gone away
Open mysql.ini
[mysqld]
max_allowed_packet=1M -> max_allowed_packet=32M
All version font awesome
Change <i class="fa fa-twitter"></i> to 𝕏
Css change:
.fa-twitter::before {
content: "𝕏";
}
Detail: joomla 3.8 PHP 7.4, run PHP 8.x error MB_OVERLOAD_STRING
Solution: uprgade joomla 3. 8 to joomla 3.10 (compatible PHP8.x)
Step upgrade: upgrade 3.10 to 4.x, 4.x to 5.x (all compatible PHP 8.x)
Add custom style to css
/*pagination*/
ul.pagination {
list-style: none;
margin: 0;
padding: 0;
text-align: center;
}
ul.pagination li {
display: inline-block;
margin: 5px;
}
.icon-angle-double-left::after {
content: 'Start';
}
.icon-angle-left::after {
content: 'Prev';
}
.icon-angle-right::after {
content: 'Next';
}
.icon-angle-double-right::after {
content: 'End';
}
Joomla5, rsfrom
Detail: Email contain signature image blank
Reason: image is transparent
Solution: <div style="background-color: #333;">{signature:signature_image}</div>
Joomla 5, goddady PHP 8.4
Error: install site not work, check site local SUCCESS, upload goddady error. Configuration 'debug=true' view error
Step check:
1. Change PHP version: 8.1, 8.2, 8.3, 8.4. (may be each version PHP sett extension different)
2. Try PHP 8.4. CPANEL PHP select option check box 'mysqli'
Detail: open article save error, save again SUCCESS
Save 1: view error Duplicate entry '2-479' for key 'PRIMARY'
Save 2: SUCCESS
This relate table #_finder_links_terms và #_finder_terms. User phpmyadmin empty (clean records)
SOLVED
Joomla5 live site
Local contact good work
Upload to live host contact 0- content, debug:
Call to undefined method : Joomla\Plugin\System\Schemaorg\Extension\Schemaorg->onBeforeCompileHead
Check PHP version 8.3, 8.2, 8.1 the same issue.
Message focus Schemaorg plugin, search via internet not relate.
Try in luck: admin>configuration TURN OFF SEF url, then TURN ON again.
Not sure why, may be relate configuration file when upgrade j4 to j5.
Error: add new module type 'Custom', error COM_MEDIA_ERROR_MISSING_DIR
Solution: Admin system, plugins 'FileSystem - Local', disable/enable
Detail: Joomla article, open article edit, -> Save failed with the following error: Invalid parent ID.
Solution: check 'Category', open and re-save category, check catetory parent
Solution1 :
1. add custom css (below): some case template css j4,j5 not add Modal style -> upload layout style broken
Solution 2:
2. If use JCE : admin>component> JCE Profile > Default - Add group inside ( register)
May be require 2 solution the same my issue
CSS:
/*Modal*/
.modal {
--modal-zindex: 1050;
--modal-width: 500px;
--modal-padding: 1rem;
--modal-margin: 0.5rem;
--modal-color: ;
--modal-bg: var(--body-bg);
--modal-border-color: var(--border-color-translucent);
--modal-border-width: var(--border-width);
--modal-border-radius: var(--border-radius-lg);
--modal-box-shadow: var(--box-shadow-sm);
--modal-inner-border-radius: calc(var(--border-radius-lg) - (var(--border-width)));
--modal-header-padding-x: 1rem;
--modal-header-padding-y: 1rem;
--modal-header-padding: 1rem 1rem;
--modal-header-border-color: var(--border-color);
--modal-header-border-width: var(--border-width);
--modal-title-line-height: 1.5;
--modal-footer-gap: 0.5rem;
--modal-footer-bg: ;
--modal-footer-border-color: var(--border-color);
--modal-footer-border-width: var(--border-width);
position: fixed;
top: 0;
left: 0;
z-index: var(--modal-zindex);
display: none;
width: 100%;
height: 100%;
overflow-x: hidden;
overflow-y: auto;
outline: 0;
}
.modal-dialog {
position: relative;
width: auto;
margin: var(--modal-margin);
pointer-events: none;
}
.modal.fade .modal-dialog {
-webkit-transition: -webkit-transform 0.3s ease-out;
transition: -webkit-transform 0.3s ease-out;
transition: transform 0.3s ease-out;
transition: transform 0.3s ease-out, -webkit-transform 0.3s ease-out;
-webkit-transform: translate(0, -50px);
transform: translate(0, -50px);
}
@media (prefers-reduced-motion: reduce) {
.modal.fade .modal-dialog {
-webkit-transition: none;
transition: none;
}
}
.modal.show .modal-dialog {
-webkit-transform: none;
transform: none;
}
.modal.modal-static .modal-dialog {
-webkit-transform: scale(1.02);
transform: scale(1.02);
}
.modal-dialog-scrollable {
height: calc(100% - var(--modal-margin) * 2);
}
.modal-dialog-scrollable .modal-content {
max-height: 100%;
overflow: hidden;
}
.modal-dialog-scrollable .modal-body {
overflow-y: auto;
}
.modal-dialog-centered {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
min-height: calc(100% - var(--modal-margin) * 2);
}
.modal-content {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
width: 100%;
color: var(--modal-color);
pointer-events: auto;
background-color: var(--modal-bg);
background-clip: padding-box;
border: var(--modal-border-width) solid var(--modal-border-color);
border-radius: var(--modal-border-radius);
outline: 0;
}
.modal-backdrop {
--backdrop-zindex: 1040;
--backdrop-bg: hsl(0, 0%, 0%);
--backdrop-opacity: 0.5;
position: fixed;
top: 0;
left: 0;
z-index: var(--backdrop-zindex);
width: 100vw;
height: 100vh;
background-color: var(--backdrop-bg);
}
.modal-backdrop.fade {
opacity: 0;
}
.modal-backdrop.show {
opacity: var(--backdrop-opacity);
}
.modal-header {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-negative: 0;
flex-shrink: 0;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
padding: var(--modal-header-padding);
border-bottom: var(--modal-header-border-width) solid var(--modal-header-border-color);
border-top-left-radius: var(--modal-inner-border-radius);
border-top-right-radius: var(--modal-inner-border-radius);
}
.modal-header .btn-close {
padding: calc(var(--modal-header-padding-y) * 0.5) calc(var(--modal-header-padding-x) * 0.5);
margin: calc(-0.5 * var(--modal-header-padding-y)) calc(-0.5 * var(--modal-header-padding-x)) calc(-0.5 * var(--modal-header-padding-y)) auto;
}
.modal-title {
margin-bottom: 0;
line-height: var(--modal-title-line-height);
}
.modal-body {
position: relative;
-webkit-box-flex: 1;
-ms-flex: 1 1 auto;
flex: 1 1 auto;
padding: var(--modal-padding);
}
.modal-footer {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-negative: 0;
flex-shrink: 0;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
-webkit-box-pack: end;
-ms-flex-pack: end;
justify-content: flex-end;
padding: calc(var(--modal-padding) - var(--modal-footer-gap) * 0.5);
background-color: var(--modal-footer-bg);
border-top: var(--modal-footer-border-width) solid var(--modal-footer-border-color);
border-bottom-right-radius: var(--modal-inner-border-radius);
border-bottom-left-radius: var(--modal-inner-border-radius);
}
.modal-footer > * {
margin: calc(var(--modal-footer-gap) * 0.5);
}
@media (min-width: 576px) {
.modal {
--modal-margin: 1.75rem;
--modal-box-shadow: var(--box-shadow);
}
.modal-dialog {
max-width: var(--modal-width);
margin-right: auto;
margin-left: auto;
}
.modal-sm {
--modal-width: 300px;
}
}
@media (min-width: 992px) {
.modal-lg,
.modal-xl {
--modal-width: 800px;
}
}
@media (min-width: 1200px) {
.modal-xl {
--modal-width: 1140px;
}
}
.modal-fullscreen {
width: 100vw;
max-width: none;
height: 100%;
margin: 0;
}
.modal-fullscreen .modal-content {
height: 100%;
border: 0;
border-radius: 0;
}
.modal-fullscreen .modal-header,
.modal-fullscreen .modal-footer {
border-radius: 0;
}
.modal-fullscreen .modal-body {
overflow-y: auto;
}
@media (max-width: 575.98px) {
.modal-fullscreen-sm-down {
width: 100vw;
max-width: none;
height: 100%;
margin: 0;
}
.modal-fullscreen-sm-down .modal-content {
height: 100%;
border: 0;
border-radius: 0;
}
.modal-fullscreen-sm-down .modal-header,
.modal-fullscreen-sm-down .modal-footer {
border-radius: 0;
}
.modal-fullscreen-sm-down .modal-body {
overflow-y: auto;
}
}
@media (max-width: 767.98px) {
.modal-fullscreen-md-down {
width: 100vw;
max-width: none;
height: 100%;
margin: 0;
}
.modal-fullscreen-md-down .modal-content {
height: 100%;
border: 0;
border-radius: 0;
}
.modal-fullscreen-md-down .modal-header,
.modal-fullscreen-md-down .modal-footer {
border-radius: 0;
}
.modal-fullscreen-md-down .modal-body {
overflow-y: auto;
}
}
@media (max-width: 991.98px) {
.modal-fullscreen-lg-down {
width: 100vw;
max-width: none;
height: 100%;
margin: 0;
}
.modal-fullscreen-lg-down .modal-content {
height: 100%;
border: 0;
border-radius: 0;
}
.modal-fullscreen-lg-down .modal-header,
.modal-fullscreen-lg-down .modal-footer {
border-radius: 0;
}
.modal-fullscreen-lg-down .modal-body {
overflow-y: auto;
}
}
@media (max-width: 1199.98px) {
.modal-fullscreen-xl-down {
width: 100vw;
max-width: none;
height: 100%;
margin: 0;
}
.modal-fullscreen-xl-down .modal-content {
height: 100%;
border: 0;
border-radius: 0;
}
.modal-fullscreen-xl-down .modal-header,
.modal-fullscreen-xl-down .modal-footer {
border-radius: 0;
}
.modal-fullscreen-xl-down .modal-body {
overflow-y: auto;
}
}
@media (max-width: 1399.98px) {
.modal-fullscreen-xxl-down {
width: 100vw;
max-width: none;
height: 100%;
margin: 0;
}
.modal-fullscreen-xxl-down .modal-content {
height: 100%;
border: 0;
border-radius: 0;
}
.modal-fullscreen-xxl-down .modal-header,
.modal-fullscreen-xxl-down .modal-footer {
border-radius: 0;
}
.modal-fullscreen-xxl-down .modal-body {
overflow-y: auto;
}
}


