Прокрастистранство

надо сделать, но как-то лень...
 

Добро пожаловать!

Привет всем, кто заглянул на этот сайт.

Тут пока нет ничего полезного, кроме двух с половиной переводов к некоторым плагинам WordPress, авторы которых ещё не добавили поддержку локализации. Список переводов Вы можете посмотреть здесь: http://translate.cyberwide.ru/projects

К сожалению, у меня не всегда есть время (а порой и лень) добавлять описание к проектам и мониторить их на обновление, поскольку переводы эти делаются для моих проектов и, соответственно, обновляются до тех пор, пока они в этих проектах используются, либо пока авторы плагинов не добавят поддержку локализации, и тогда они перемещаются в официальное сообщество https://translate.wordpress.org/ – так что прежде чем качать перевод отсюда – проверьте, вдруг он уже активно обновляется там.

Также этот сайт периодически падает, тормозит, выдаёт разного рода ошибки или вообще блокируется – всё потому, что это экспериментальная площадка для разработки и тестирования новых функций, со всеми вытекающими….

 

Установка серверного окружения Debian

superuser@cloud:~$ wget http://prdownloads.sourceforge.net/webadmin/webmin_1.990_all.deb

superuser@cloud:~$ sudo dpkg –install webmin_1.990_all.deb

superuser@cloud:~$ sudo apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python unzip
superuser@cloud:~$ sudo apt –fix-broken install

superuser@cloud:~$ sudo dpkg –install webmin_1.990_all.deb

superuser@cloud:~$ sudo apt install php php-zip php-dom php-gd php-curl php-mbstring php-mysql php-imagick php-gmp php-bcmath php-intl php-ldap libmagickcore-6.q16-6-extra curl wget gnupg2 ca-certificates lsb-release apt-transport-https ca-certificates apt-transport-https software-properties-common gnupg2 php-ldap

superuser@obrnan:~$ sudo apt-get install php-pgsql

superuser@obrnan:~$ sudo apt install snapd

superuser@obrnan:~$ sudo snap install core

superuser@obrnan:~$ sudo snap install –classic certbot

superuser@obrnan:~$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

superuser@obrnan:~$ sudo certbot certonly –apache

superuser@obrnan:~$ sudo certbot –apache

superuser@obrnan:~$ sudo apt install smbclient
superuser@cloud:~$ sudo apt install krb5-user

 

proxy в linux

Общий для всех
/etc/bash.bashrc :

export http_proxy="http://proxy:port/"

apt
/etc/apt/apt.conf :

Acquire::http::Proxy "http://login:password@proxy:port/";

wget
/etc/.wgetrc:

http_proxy="http://proxy:port"
https_proxy="http://proxy:port"

Единовременно:

http_proxy="http://proxy:port" wget...

с авторизацией

http_proxy="http://proxy:port" wget --proxy-user=user --proxy-password=password ...

curl
/etc/.curlrc

socks5 = proxy:port
proxy-user = username:password
user-agent = "Mozilla/5.0 (X11; Linux i686; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"

Единовременно:

curl --proxy proxy:port -U username:password ...
curl --socks5 proxy:port ...
curl --socks5-hostname proxy:port ...
#последний вариант для DNS через proxy

npm

npm config set http-proxy http://user:password@proxy:port
npm config set https-proxy http://user:password@proxy:port

Добавляем привилегии sudo, отсутствующие после свежей установки ОС, основаных на Debian

В режиме восстановления вводим команду

adduser username sudo

Поскольку при установке создаётся только один пользователь, сделать это можно только из под root`а, для этого на экране выборов вариантов загрузки жмём “Е” и в конце строки

linux vmlinuz...

добавляем

init=/bin/bash

ctrl+O для сохранения изменений, ctrl+x – для выхода и загрузки

Дополнительные типы файлов, разрешенные для загрузки на сайты

Чтобы отключить проверку типа файлов нужно добавить в wpconfig.php

define(‘ALLOW_UNFILTERED_UPLOADS’, true);

function enable_extended_upload ( $mime_types =array() ) {
   // Список MIME-типов, разрешенных для загрузки в медиабиблиотеку. Можно добавлять свои...
   $mime_types['exe']  = 'application/exe';
   $mime_types['msi']  = 'application/msi';
   $mime_types['lnk']  = 'application/x-ms-shortcut';
   $mime_types['csv']  = 'text/csv';
   $mime_types['rar']  = 'application/x-rar-compressed';
   $mime_types['7z']  = 'application/x-7z-compressed';
   $mime_types['zip']  = 'application/x-zip-compressed';
   $mime_types['vsd']  = 'application/vnd.visio';
   $mime_types['pps']  = 'application/vnd.ms-powerpoint';
   $mime_types['ppsx']  = 'application/vnd.ms-powerpoint';
   $mime_types['odp']  = 'application/vnd.oasis.opendocument.presentation';
   $mime_types['ods']  = 'application/vnd.oasis.opendocument.spreadsheet';
   $mime_types['odt']  = 'application/vnd.oasis.opendocument.text';
   $mime_types['txt']  = 'text/plain';
   return $mime_types;
} 
add_filter('upload_mimes', 'enable_extended_upload');

 

Изменить количество участников на страницу каталога пользователей в BuddyPress

Код, который изменяет количество участников на страницу каталога пользователей в BuddyPress

add_filter( 'bp_after_has_members_parse_args', 'wbcom_theme_alter_members_parse_args' );
function wbcom_theme_alter_members_parse_args( $loop ) {
  if ( bp_is_members_directory() ) {
    {
    $loop['per_page'] = 21;
    }
  }
  return $loop;
}

Не проверено, источник:

Display more than 20 members per page

Еще на ту же тему

function my_bp_members_per_page( $retval ) {
    $retval['per_page'] = 24;

    return $retval;
}
add_filter( 'bp_after_has_members_parse_args', 'my_bp_members_per_page' );

Источник:

https://stackoverflow.com/questions/31558464/how-to-change-members-per-page-in-buddypress-members-directory

Синхронизация данных из произвольных полей WordPress в поля профиля Buddypress

Данный код срабатывает при сохранении изменений в профиле пользователя WordPress.

Синхронизирует поля из usermeta в x-profile

function xprofile_sync_bp_profile2( &$errors, $update, &$user ) {
  // Bail if profile syncing is disabled.
  if ( bp_disable_profile_sync() || ! $update || $errors->get_error_codes() ) {
    return;
  }
    // Querying data from a table "usermeta", first we get the value of the custom field "address" and substitute this value for the "Address" field of the xprofile BuddyPress
    $address = get_user_meta( $user->ID, 'address', 'true' );  
  xprofile_set_field_data( 'Address', $user->ID, $address );
  	//Similarly with other fields
    $firstname = get_user_meta( $user->ID, 'first_name', 'true' );  
  xprofile_set_field_data( 'Name', $user->ID, $firstname );
  	$lastname = get_user_meta( $user->ID, 'last_name', 'true' );  
  xprofile_set_field_data( 'Lastname', $user->ID, $lastname );
  	$description = get_user_meta( $user->ID, 'description', 'true' );  
  xprofile_set_field_data( 'Bio', $user->ID, $description );
  
  	// Querying data from a table "user"
    xprofile_set_field_data( 'E-mail', $user->ID, $user->user_email );
    xprofile_set_field_data( 'Site', $user->ID, $user->user_url );
}
add_action( 'user_profile_update_errors', 'xprofile_sync_bp_profile2', 10, 3 );

Точно так же можно осуществлять и обратную синхронизацию:

// modified Xprofile sync.
function xprofile_sync_wp_profile2( $user_id = 0 ) {

  // Bail if profile syncing is disabled
  if ( bp_disable_profile_sync() ) {
    return true;
  }

  if ( empty( $user_id ) ) {
    $user_id = bp_loggedin_user_id();
  }

  if ( empty( $user_id ) ) {
    return false;
  }
    
    // get first name
    $firstname = xprofile_get_field_data('First name',$user_id );

    // get last name
    $lastname = xprofile_get_field_data('Last name',$user_id );
    
    // get nickname
    $nickname = xprofile_get_field_data('Nickname',$user_id );
    
    // create fullname
    $fullname = trim( $firstname . ' ' . $lastname );

  bp_update_user_meta( $user_id, 'nickname',   $nickname  );
  bp_update_user_meta( $user_id, 'first_name', $firstname );
  bp_update_user_meta( $user_id, 'last_name',  $lastname  );

  global $wpdb;

        //you can modify that line to change the displayed name to something else than the nickname
  $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->users} SET display_name = %s WHERE ID = %d", $nickname, $user_id ) );
}
add_action( 'xprofile_updated_profile', 'xprofile_sync_wp_profile2' );
add_action( 'bp_core_signup_user',      'xprofile_sync_wp_profile2' );
add_action( 'bp_core_activated_user',   'xprofile_sync_wp_profile2' );

Источник второго варианта:

https://buddypress.org/support/topic/how-to-use-custom-name-fields-with-xprofile/

Произвольные поля в bbpress

Добавляет произвольные поля во фронте

// Add custom fields to bbpress topics on front end
add_action ( 'bbp_theme_before_topic_form_content', 'bbp_extra_fields');
function bbp_extra_fields() {
   $value = get_post_meta( bbp_get_topic_id(), 'YOUR-FIELD-NAME', true);
   echo '<label for="bbp_extra_field">My Extra Field:</label><br>';
   echo "<input type='text' name='YOUR-FIELD-NAME' value='".$value."'>";
}

//Save and update the values from the front end
add_action ( 'bbp_new_topic', 'bbp_save_extra_fields', 10, 1 );
add_action ( 'bbp_edit_topic', 'bbp_save_extra_fields', 10, 1 );

function bbp_save_extra_fields($topic_id=0) {
  if (isset($_POST) && $_POST['YOUR-FIELD-NAME']!='')
    update_post_meta( $topic_id, 'YOUR-FIELD-NAME', $_POST['YOUR-FIELD-NAME'] );
    
}

Источник:

bbPress and custom fields