July 2nd, 2009
Есть указатель на поток pthread_t. По-хорошему, перед выходом, в программе надо всегда дожидаться окончания работы всех иных нитей. Это делается при помощи функции pthread_join которая ожидает окончания указанной нити и на это время блокирует нить вызывавшую эту функцию.
Неблокирующую проверку нити нити можно сделать с помощью отправки сигнала 0 в нить pthread_kill(thread, 0) или с использованием нестандартной функции pthread_tryjoin_np.
Tags: threads
Posted in unix|linux | No Comments »
June 20th, 2009
По умолчанию если пользоваться Select List и установить Allowed values list то в итоге список будет выглядить так
-None-
значение 1
значение 2
причем как сменить None цивилизованным способом как бы нельзя, решение такое
В Allowed values list выставляем
|Выберите вариант
1|значение 1
2|Значение 2
Затем выставляем Required
и получаем
Выберите вариант
значение 1
Значение 2
Posted in drupal, модули | No Comments »
June 18th, 2009
если надо перехватить факт что на странице произошел вызов ajax контролировать который не в силах, то можно воспользоваться встроенными в jquery функциями
- ajaxComplete
- ajaxError
- ajaxSend
- ajaxSuccess
вот пример
$(document).ready(function(){
jQuery(document).ajaxSuccess(function(evt, request, settings){
// здесь ваши действия
});
});
Posted in JavaScript, jquery | No Comments »
June 18th, 2009
created = поле с unix timestamp
SELECT count(nid), FROM_UNIXTIME(n.created, ‘%Y %d %m’) as created_day FROM node n group by created_day
Posted in mySql | No Comments »
June 16th, 2009
Для начала решим, что для загрузки страницы без окружения надо добавить параметры ajax=1 в URL (e.g. mysite.com/node/1?ajax=1), и сможет получить только ее контент.
далее в template.php файл вашей темы добавляем:
function phptemplate_preprocess_page(&$vars) {
if ( isset($_GET['ajax']) && $_GET['ajax'] == 1 ) {
$vars['template_file'] = 'page-ajax';
}
}
затем создаем page-ajax.tpl.php в каталоге темы со следующим содержанием:
<?php print $content; ?>
Posted in drupal | No Comments »
June 13th, 2009
$img - урл оригинала
’sw’ - персет
$img2 = imagecache_create_path(’sw’, $img) ;
$img2 теперь содержить путь к уменьшенному изображению
Posted in drupal, модули | No Comments »
June 13th, 2009
http://maminaeda.ru/’ . drupal_get_path_alias(’node/10′)
Posted in drupal, модули | No Comments »
June 12th, 2009
<html>
<body>
<%
a = ['spam', 'eggs', 100, 1234]
for i in range(10):
# This comment sets the indentation that will last until
# another command or comment changes it (И пробелы перед ним обязательны ! )
%>
<p><%= i %></p>
<%
# этот комментарий окончание цикла ! )
%>
</html>
</body>
Posted in PSP, Python | No Comments »
June 12th, 2009
1 загружаем модуль
LoadModule python_module modules/mod_python.so
2 прописываем конфигурацию
<Directory /absolute/path/to/psp/enabled/dir>
AddHandler mod_python .psp .psp_
PythonHandler mod_python.psp
PythonDebug On
</Directory>
Posted in Apache, PSP, Python | 1 Comment »
June 3rd, 2009
По api радио нужно создавать так
$form['posting_settings']['comment_preview'] = array(
'#title' => t('Preview comment'),
'#default_value' => variable_get('comment_preview', 1),
'#options' => array(t('Optional'), t('Required')),
);
но если возникает необходимость вставить еще элемент формы между двумя радио кнопками то делать надо так
// обявляем радио группу
$form['type'] = array(
'#type' => 'radios',
'#title' => t('Preview comment') ,
);
//первая кнопка
$form['type'][0] = array(
'#type' => 'radio',
'#title' => t('Optional') ,
'#return_value' => 0,
'#parents' => array(
'type' // привязка к группе
) ,
'#spawned' => TRUE,
);
// много других элементов формы
// вторая кнопка
$form['type'][1] = array(
'#type' => 'radio',
'#title' => t('Required') ,
'#return_value' => 1,
'#parents' => array(
'type'
) ,
'#spawned' => TRUE,
);
Posted in drupal | No Comments »