Skip to content

Instantly share code, notes, and snippets.

View khoipro's full-sized avatar
💭
#devops #wordpress #vuejs #docker

Nguyễn Minh Khôi khoipro

💭
#devops #wordpress #vuejs #docker
View GitHub Profile
@khoipro
khoipro / README.md
Created July 28, 2023 06:48
Câu hỏi phỏng vấn vị trí Frontend Developer tại Code Tốt

Dưới đây là một số mẫu câu hỏi mà Code Tốt đặt ra với ứng viên. Chúng tôi hi vọng dù bạn biết đó là câu hỏi trong buổi phỏng vấn, thì việc đọc những nội dung này cũng sẽ giúp ích cho kiến thức bạn cần tìm hiểu và thực hành. Càng tìm hiểu và làm sát vấn đề chúng tôi nêu ra, bạn càng có cơ hội tiếp cận sâu hơn với mảng lập trình web.

Phần lớn ứng viên đạt tỷ lệ từ 75% trở lên sẽ được gia nhập đội ngũ của chúng tôi.

Nếu bạn đã sẵn sàng, hãy liên hệ với bộ phận Tuyển dụng của Code Tốt nhé.

Công cụ lập trình

@khoipro
khoipro / functions.php
Last active August 31, 2023 01:18
Fix Rank Math product schema (single product)
<?php
/**
* Fix missing review on product schema (Rank Math)
*
* @author codetot
**/
function codetot_update_missing_product_schema( $entity ) {
$stampedDBData = get_post_meta(get_queried_object_id(), 'stamped_io_product_reviews_new', true);
@khoipro
khoipro / .lando-example.yml
Created February 4, 2023 03:29
Best practice with .lando config
# With php XDEBUG on or off
tooling:
xdebug-on: # run: lando xdebug-on
service: appserver
description: Enable xdebug for apache.
cmd: "docker-php-ext-enable xdebug && /etc/init.d/apache2 reload"
user: root
xdebug-off: # run: lando xdebug-off
service: appserver
description: Disable xdebug for apache.
@khoipro
khoipro / laravel-faq-beginners.md
Created December 27, 2022 23:44
Laravel FAQ for beginners (with Windows)
@khoipro
khoipro / .lando.yml
Created December 2, 2022 03:33
Example lando config for WordPress recipes (with redis, phpmyadmin, mailhog, nginx with domain .test)
name: codetot-vn
recipe: wordpress
proxy:
appserver_nginx:
- codetot.test
config:
webroot: .
database: mariadb
via: nginx
php: '7.4'
@khoipro
khoipro / slider.js
Last active September 14, 2024 00:09
Load swiper slides lazyload (with <noscript> tag) for each slide
import { select, selectAll, hasClass, removeClass, loadNoscriptContent } from 'lib/dom'
import Swiper, { Navigation } from 'swiper'
export default el => {
const sliderEl = select('.js-slider', el)
const slideEls = selectAll('.swiper-slide', el)
if (sliderEl) {
const swiper = new Swiper(sliderEl, {
freeMode: true,
@khoipro
khoipro / commands.sh
Last active December 24, 2023 17:41
Useful commands for interacting with Ubuntu/*nix OS
# import db .sql to site
# tutorial: https://fullstack-tutorials.com/mysql/mysql-import-database-from-sql-file-in-linux
gunzip < dump.sql.gz | mysql -u username -p database
# extract db to .sql.gz
# tutorial: https://fullstack-tutorials.com/mysql/mysql-export-database-to-gzip-file-in-linux
mysqldump -u username -p database_name | gzip > dump.sql.gz
@khoipro
khoipro / wp-config.php
Created July 25, 2022 14:37
wp-config.php - enable debug, disable fatal error handler
<?php
// Local Dev
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );
<?php
function codetot_is_localhost()
{
return !empty($_SERVER['HTTP_X_CODETOT_THEME_HEADER']) && $_SERVER['HTTP_X_CODETOT_THEME_HEADER'] === 'development';
}
function codetot_is_local_dev() {
$is_localhost = azpet_is_localhost();
$domain_name = $_SERVER['HTTP_HOST'] ?? '';
$is_test_domain = !empty($domain_name) && strpos($domain_name, '.test') !== false;
@khoipro
khoipro / helpers.php
Last active April 29, 2022 04:04
Video section like Youtube playlist (left large video, right video list)
<?php
function _get_youtube_video_thumbnail_url($video_id) {
return "https://i.ytimg.com/vi/$video_id/hqdefault.jpg";
}