apt-get install dos2unix
Then use it like so:
dos2unix /var/www/project-create.sh
Will recursively find all files inside current directory and call for these files dos2unix command
find . -type f -print0 | xargs -0 dos2unix
Functional code pieces that we can use on projects
apt-get install dos2unix
Then use it like so:
dos2unix /var/www/project-create.sh
Will recursively find all files inside current directory and call for these files dos2unix command
find . -type f -print0 | xargs -0 dos2unix
Download WordPress to site
wget -c http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
sudo rsync -av wordpress/* /var/www/sarah/public_html
OLD WAY Upload WordPress zip to directory
unzip wordpress.zip
Make whole site writable for WordPress (wp-content needed for plugins, wp-admin needed for wordpress update)
I think you need to set like this instead (if you have trouble installing plugins after this then I was wrong)
find /var/www/sarah/public_html -type d -exec chmod 775 {} \;
find /var/www/sarah/public_html -type f -exec chmod 664 {} \;
Then update to belong to user:
sudo chown -R sarah:www-data /var/www/sarah/public_html
Go to IP alias or domain and follow wizard
After wizard complete, download wp-config.php and add this line to bottom so users can upload plugins using admin
if(is_admin()) {
add_filter('filesystem_method', create_function('$a', 'return "direct";' ));
define( 'FS_CHMOD_DIR', 0751 );
}
Create new site folder under D:\sites\{site-name}
Unzip in folder
Open project in localhost:
Follow WordPress steps to hook up to WordPress database you created
Login to PhpMyAdmin :
http://phpmyadmin.christinewilson.ca/
Login to PhpMyAdmin:
http://localhost/phpmyadmin/
This creates an empty database with correct user assigned. WordPress will do rest when you upload files
/*
* Add categories to pages
*/
function add_cats_to_pages_definition()
{
register_taxonomy_for_object_type('category', 'page');
}
add_action('init', 'add_cats_to_pages_definition');
To set up default post categories for custom post types, please install plugin “Pods – Custom Content Types and Fields”
rm -r /path/to/directory/*
useradd -m -d /home/sarah sarah
passwd sarah
Give password: 575757aA
usermod -g www-data sarah
Add user to vsftpd
cd /etc/vsftpd
nano sarah
local_root=/var/www/sarah/public_html
htpasswd -cd /etc/vsftpd/ftpd.passwd sarah
Will ask for password now
575757aA
Then edit user home directory (not sure if this is actually needed anymore)
usermod --home /var/www/sarah/public_html sarah
Check that user can write to directory
sudo chown -R sarah:www-data /var/www/sarah/public_html
chmod 775 /var/www/sarah/public_html
/etc/init.d/vsftpd restart
For changes to take effect restart apache
service apache2 restart
Try connecting to FTP using FTP user, password and port 21
Need port 21 because WordPress doesn’t allow changing of ports
Run the following command to install vsftpd:
apt-get install vsftpd
Open up the configuration file using your text editor of choice. This example uses vim
.
nano /etc/vsftpd.conf
Copy these
#listen=NO
anonymous_enable=YES
local_enable=YES
write_enable=YES
#local_umask=022
local_umask=002
#dirmessage_enable=YES
#chroot_local_user=YES
#pam_service_name=vsftpd
pam_service_name=ftp
Add to end:
#Google Compute config
pasv_min_port=5000
pasv_max_port=6000
#Wordpress FTPS config
#allow_anon_sll=NO
#force_local_data_ssl=YES
#force_local_logins_ssl=YES
#ssl_tlsv1=YES
#ssl_sslv2=NO
#ssl_sslv3=NO
#require_ssl_reuse=NO
#ssl_ciphers=HIGH
listen_port=21
Save the file and close your text editor. Then, start vsftpd as a daemon:
service vsftpd start
At this point, you can log in your ftp server from your local computer.
If you want to prevent all local users from leaving their home directory, you need to uncomment this line from /etc/vsftpd.conf
:
chroot_local_user=YES
As of vsftpd 2.3.5, the chroot directory must not be writable. You can change the permissions of this folder with the following command:
chmod a-w /home/user
Remember to restart the vsftpd
daemon after editing vsftpd.conf
.
service vsftpd restart
Currently a known issue with ACF and Gutenberg:
https://www.advancedcustomfields.com/resources/known-issues/
Write specialized JavaScript in functions.php or one of the include files that adds a click event on the publish button which will stop the page from saving when a validation error exists and gives the user an alert letting them know what to change.
add_action('admin_footer', 'update_fields');
function update_fields()
{
global $pagenow;
echo '<script>
jQuery(window).on("load", function() {;
';
//If homepage or foundation home page
//Check slider for anything that's not mp4 videos, give error and don't let submit
if ( ('post.php' === $pagenow && isset($_GET['post']) && 'page' === get_post_type($_GET['post']) && $_GET['post'] == 53) || ('post.php' === $pagenow && isset($_GET['post']) && 'page' === get_post_type($_GET['post']) && $_GET['post'] == 141)) {
if($_GET['post'] == 53){
$sliderName = "main_slider";
}else{
$sliderName = "main_slider_foundation";
}
echo '
// When click update, check that
// Checks if cat is selected when publish button is clicked
jQuery( "body" ).on( "click", ".editor-post-publish-button", function( e ) {
var slider = $("[data-name='.$sliderName.'] [data-name=video]");
var errors = false;
slider.each(function(i, obj) {
var filename = $(this).find("[data-name=filename]").text();
if (filename=="" || filename.indexOf(".mp4") !== -1) {
}else{
errors = true;
}
});
if(errors){
alert("Please only upload mp4 videos");
return false;
}
} );
';
}
echo '});
</script>';
}
Check this out homies,
A slick JS way to stop iOS (and other devices that use touch) from scrolling
// Disable scrolling.
document.ontouchmove = function (e) {
e.preventDefault();
}
// Enable scrolling.
document.ontouchmove = function (e) {
return true;
}
https://gist.github.com/noahub/f1ee0415dacf9915fa9dcf82b6ef8e12 1.1k
Create a new text element with the default text ‘00 days 00 hrs 00 mins 00 secs’. Style this text to your liking
Double click on this new text box and click ‘view source’. Wrap the innermost text with a new <span>
tag with an id="timer"
. It should should look like:
<span id="timer">00 days 00 hrs 00 mins 00 secs</span>
Copy the Javascript snippet and paste it in your Javascript section with placement ‘Before Body End Tag’
Enter your countdown date.
<script>
countdown('06/26/2017 8:00 PM', 'timer'); //date format: mm/dd/yyyy hh:mm AM
function countdown(dt, id)
{
var end = new Date(dt);
var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var timer;
function showRemaining() {
var now = new Date();
var distance = end - now;
if (distance < 0) {
clearInterval(timer);
document.getElementById(id).innerHTML = 'THE DAY HAS ARRIVED!'; //Displays when countdown is complete
return;
}
var days = Math.floor(distance / _day);
var hours = Math.floor((distance % _day) / _hour);
var minutes = Math.floor((distance % _hour) / _minute);
var seconds = Math.floor((distance % _minute) / _second);
document.getElementById(id).innerHTML = days + ' days ';
document.getElementById(id).innerHTML += hours + ' hrs ';
document.getElementById(id).innerHTML += minutes + ' mins ';
document.getElementById(id).innerHTML += seconds + ' secs';
}
timer = setInterval(showRemaining, 1000);
}
/**
* Do not remove this section; it allows our team to troubleshoot and track feature adoption.
* TS:0002-03-083
*/
</script>