Статьи

В работе с Vim время от времени возникает необходимость вставить вывод, полученный в результате выполнения внешней команды в файл.

Команда редактора :read может вставить файл или результат выполнения внешней команды в текущий буфер. Чтобы запустить внешнюю команду, добавьте перед ее началом символ !

Например, чтобы вставить вывод команды date необходимо выполнить команду редактора Vim

:read !date

Ссылки в сети на похожую тему:

Полезные приёмы работы в VIM


Чтобы закрыть доступ к папке на сайте всем пользователям веб сервера Apache кроме тех, чьи IP адреса указаны в списке необходимо добавить строки конфигурации в файл .htaccess, который должен находиться в этой же папке:

order deny,allow
deny from all
allow 1.22.33.4

где 1.22.33.4 - IP адрес, которому разрешен доступ в папку


Чтобы изменить формат окончаний строк файла с Dos на Unix в редакторе Vim проще всего использовать команду:

:set ff=unix

Или же выполнить замену строк командой:

:%s/^M//g

чтобы встравить спец символ ^M используйте сочитание клавиш ctrl-v ctrl-m

Так же можно использовать внешнюю утилиту dos2unix, чтобы сделать это.


Если есть необходимо запретить доступ к определенному файлу (some.log) в конфигурационном файле Apache .htaccess это можно сделать так:

 <FilesMatch "some\.log$"> 
Order Deny,Allow
Deny from All
 </FilesMatch> 

Если необходимо открыть доступ к какой-то одной подпапке, родительская папка которой находится под парольной защитой в Apache нужно положить файл .htaccess с таким содержимым:

Satisfy Any
Allow from all

Недавно столкнулся с необходимостью немного переделать один плагин для Wordress CMS, чтобы расширить его функционал.

В системе есть очень удобная фича shortcode, которая позволяет вызывать функции плагина. Мне понадобилось передавать дополнительный параметр в функцию, чтобы выбирать только те посты, которые имеют определенное значение параметра custom fields. Для примера назовем его slide_category.

Рассмотрим такой фрагмент кода:


function my_slider( $atts ) {
	global $post;

	extract( shortcode_atts( array(	'slide_category' => 0 ), $atts, 'slide_category' ) );
	/*
	...
	*/	
	$args = array(
		'post_type'  => 'slide',
		'showposts'  => -1,
		'meta_query' => array(
			array(
				'key'   => 'slide_category',
				'value' => $slide_category,
			)
		)
	);
	$qry = new WP_Query($args);
	/*
	...
	*/

}

/*
...
*/
add_shortcode('mySlider', 'my_slider');

Он позволит выводить определенную категорию слайдов. Чтобы вызвать этот функционал необходимо вставить shortcode такого вида в тело поста:

[mySlider slide_category="1"]

Если нужно получить поле с редактором в плагине Wordpress CMS можно воспользоваться таким кодом, который позволит добавить произовольне поле в формы добавления и редактирования категорий постов:


add_action('admin_init', 'ts_init');
function ts_init() {
	$ts_taxonomies = get_taxonomies();
	if (is_array($ts_taxonomies)) {	
	    foreach ($ts_taxonomies as $ts_taxonomy) {
	        add_action($ts_taxonomy.'_add_form_fields', 'ts_add_texonomy_field');
		add_action($ts_taxonomy.'_edit_form_fields', 'ts_edit_texonomy_field');
	    }
	}
}

add_filter('admin_head','ts_show_tiny_MCE');
function ts_show_tiny_MCE() {
	// conditions here
	wp_enqueue_script( 'common' );
	wp_enqueue_script( 'jquery-color' );
	wp_print_scripts('editor');
	if (function_exists('add_thickbox')) add_thickbox();
	wp_enqueue_script('media-upload');
	wp_enqueue_script('utils');
	wp_print_scripts('media-upload');
	if (function_exists('wp_tiny_mce')) wp_tiny_mce();
	wp_enqueue_style('farbtastic');

	do_action('admin_print_styles-post-php');
	do_action('admin_print_styles');
}

// add custom fields in category add form
function ts_add_texonomy_field() {

	$field_value = '';
	
	echo '
	
'; wp_editor($field_value, 'field_name'); echo '
'; } // add custom fields in category edit form function ts_edit_texonomy_field($taxonomy) { $field_value = ts_get_taxonomy_value('field_name', $taxonomy->term_id); echo ' '; wp_editor($field_value, 'field_name'); echo ' '; }

Ссылки по теме Function Reference для WordPress CMS:


Недавно возникла необходимость выполнить переадресацию URL с параметрами /index.html?page=cat&id=1 на /store/products/cat1.html Я создал такие правила mod_rewrite, чтобы сделать это:

RewriteCond %{REQUEST_URI} ^/index\.html
RewriteCond %{QUERY_STRING} page=cat&id=1
RewriteRule ^(.*)$ http://%{HTTP_HOST}/store/products/cat1.html [L,QSA,R=301]

В данном примере мы проверяем, что страница, на которую пытался перейти пользователь index.html Параметры запроса в QUERY_STRING содержат искомые значения page=cat&id=1 Производим переадресацию на /store/products/cat1.html

Расшифровка RewriteRule параметов

  • L - правило последнее т.е. после него не обрабатывать остальные правила mod_rewrite
  • QSA - означает добавить оригинальное значение QUERY_STRING на страницу /store/products/cat1.html
  • R=301 - означает Permanent redirect - URL перемещен на постоянной основе