![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Точка.Присутствия/Записи в блоге |
![]() |
|
Drupal 7: Функции для работы с файловыми путями
2014-06-16 17:17:48 (читать в оригинале)drupal_basename($uri, $suffix = NULL)
— возвращает имя файла. Это аналог PHP функции basename() за исключением того, что поддерживает stream wrappers и имена файлов с не US-ASCII символами.drupal_basename('sites/default/files/test.jpg'); // test.jpg drupal_basename('public://test.jpg'); // test.jpg drupal_basename('/drupal/sites/default/files/test.jpg'); // test.jpg
drupal_dirname($uri)
— возвращает директорию файла. Это аналог PHP функции dirname() за исключением того, что поддерживает stream wrappers.drupal_dirname('sites/default/files/test.jpg'); // sites/default/files drupal_dirname('public://test.jpg'); // public:// drupal_dirname('/drupal/sites/default/files/test.jpg'); // /drupal/sites/default/files
drupal_realpath($uri)
— возвращает абсолютный путь к файлу. Может работать с stream wrappers. Возвращает FALSE если файла не существует. Не рекомендуется к использованию.drupal_realpath('sites/default/files/test.jpg'); // /drupal/sites/default/files/test.jpg drupal_realpath('public://test.jpg'); // /drupal/sites/default/files/test.jpg drupal_realpath('/drupal/sites/default/files/test.jpg'); // /drupal/sites/default/files/test.jpg
file_build_uri($path)
— добавляет к пути файла дефолтный протокол (public://).file_build_uri('test.jpg'); // public://test.jpg
file_create_filename($basename, $directory)
— возвращает полный путь для будущего файла с именем $basename в директории $directory. Если файл с таким именем существует, то к имени файла добавляется порядковый номер. Поддерживает stream wrappers.// если файл test.jpg не существует в указанной директории file_create_filename('test.jpg', 'sites/default/files'); // sites/default/files/test.jpg file_create_filename('test.jpg', 'public://'); // public://test.jpg file_create_filename('test.jpg', '/drupal/sites/default/files/'); // /drupal/sites/default/files/test.jpg // если файл test.jpg существует в указанной директории file_create_filename('test.jpg', 'sites/default/files'); // sites/default/files/test_0.jpg file_create_filename('test.jpg', 'public://'); // public://test_0.jpg file_create_filename('test.jpg', '/drupal/sites/default/files/'); // /drupal/sites/default/files/test_0.jpg
file_create_url($uri)
— возвращает URL файла. Поддерживает stream wrappers. Не поддерживает абсолютные пути к файлу.file_create_url('sites/default/files/test.jpg'); // http://example.com/sites/default/files/test.jpg file_create_url('public://test.jpg'); // http://example.com/sites/default/files/test.jpg file_create_url('/drupal/sites/default/files/test.jpg'); // /drupal/sites/default/files/test.jpg
file_destination($destination, $replace)
— возвращает путь к существующему файлу в зависимости от значения $replace. Если файла $destination не существует, то функция возвратит то, что передано первым аргументом.file_destination('sites/default/files/test.jpg', FILE_EXISTS_REPLACE)); // sites/default/files/test.jpg file_destination('sites/default/files/test.jpg', FILE_EXISTS_RENAME)); // sites/default/files/test_0.jpg file_destination('sites/default/files/test.jpg', FILE_EXISTS_ERROR)); // FALSE file_destination('public://test.jpg', FILE_EXISTS_REPLACE)); // public://test.jpg file_destination('public://test.jpg', FILE_EXISTS_RENAME)); // public://test_0.jpg file_destination('public://test.jpg', FILE_EXISTS_ERROR)); // FALSE file_destination('/drupal/sites/default/files/test.jpg', FILE_EXISTS_REPLACE)); // /drupal/sites/default/files/test.jpg file_destination('/drupal/sites/default/files/test.jpg', FILE_EXISTS_RENAME)); // /drupal/sites/default/files/test_0.jpg file_destination('/drupal/sites/default/files/test.jpg', FILE_EXISTS_ERROR)); // FALSE
file_directory_temp()
— возвращает путь к временной директории, указанной на странице admin/config/media/file-system. Не рекомендуется использовать.file_directory_temp(); // /tmp
file_munge_filename($filename, $extensions, $alerts = TRUE)
— если файл имеет двойное расширение, например file.php.jpg, то функция добавит нижнее подчёркивание к первому расширению, во избежание взлома при криво настроенном апаче.file_munge_filename('sites/default/files/exploit.php.pps', ''); // sites/default/files/exploit.php_.pps file_munge_filename('public://exploit.php.pps', ''); // public://exploit.php_.pps file_munge_filename('/drupal/sites/default/files/exploit.php.pps', ''); // drupal/sites/default/files/exploit.php_.pps
file_unmunge_filename($filename)
— отменяет эффект от функции file_munge_filename().file_unmunge_filename('sites/default/files/exploit.php_.pps'); // sites/default/files/exploit.php.pps file_unmunge_filename('public://exploit.php_.pps'); // public://exploit.php.pps file_unmunge_filename('/drupal/sites/default/files/exploit.php_.pps'); // drupal/sites/default/files/exploit.php.pps
file_stream_wrapper_uri_normalize($uri)
— нормализует URI файла: удаляет завершающий слэш из имени директории и исправляет тройной слэш в протоколе.file_stream_wrapper_uri_normalize('sites/all/files/'); // sites/all/files file_stream_wrapper_uri_normalize('public:///test.jpg'); // public://test.jpg
file_uri_scheme($uri)
— возвращает протокол из URI.file_uri_scheme('public://test.jpg'); // public file_uri_scheme('temporary://'); // temporary
file_uri_target($uri)
— возвращает часть пути без протокола.file_uri_target('public://test.jpg'); // test.jpg file_uri_target('temporary://test.jpg'); // test.jpg file_uri_target('sites/default/files/test.jpg'); // FALSE
file_valid_uri($uri)
— возвращает TRUE если в $uri валидный Drupal URI.file_valid_uri('public://test.jpg'); // TRUE file_valid_uri('foo://test.jpg'); // FALSE file_valid_uri('sites/default/files/test.jpg'); // FALSE
Drupal 7: Как в своей теме сменить версию jQuery
2014-06-16 17:09:06 (читать в оригинале)Добавить в template.php своей темы:
/** * Implements hook_js_alter(). */ function THEMENAME_js_alter(&$javascript) { $javascript['misc/jquery.js']['data'] = '//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'; $javascript['misc/jquery.js']['version'] = '1.8.3'; $javascript['misc/jquery.js']['type'] = 'external'; $javascript['misc/jquery.js']['preprocess'] = FALSE; }Сбросить кэш.
Если не нравится использовать CDN гугла, то всё ещё проще:
/** * Implements hook_js_alter(). */ function THEMENAME_js_alter(&$javascript) { $javascript['misc/jquery.js']['data'] = path_to_theme() . '/js/jquery-1.8.3.min.js'; }
Drupal 7: Как получить размер файла по его URL
2014-06-16 17:05:57 (читать в оригинале)Функция, которая получает размер удалённого (находящегося на другом сервере) файла, не скачивая его на сервер:
function get_remote_filesize($url) { $result = drupal_http_request($url, array('method' => 'HEAD')); if (empty($result->error) && isset($result->headers['content-length'])) { return $result->headers['content-length']; } }
Пример использования:
echo get_remote_filesize('http://img.yandex.net/i/www/logo.png') . ' bytes' // 3729 bytes
Простейший набор функций журналирования
2014-05-01 18:14:24 (читать в оригинале)Даже объяснять ничего не буду) Код в полном тексте статьи
ADB не видит устройство
2014-02-04 12:41:22 (читать в оригинале)Бывают случаи, когда ADB наотрез отказывается видеть устройство и отладка невозможна. Вроде и дрова встали, как надо, а гаджет в списке не появляется. Первую часть решения проблемы расписали здесь, и мы ей и воспользуемся.
Итак. Android SDK у вас скорее всего стоит. Если не стоит, то берем тут. Если все SDK не требуется, качаем только драйвер. Скачали, распаковали, а теперь ищем папку
usb_driver
(в SDK она лежит в extras\google\
). Открываем файл android_winusb.inf
на редактирование. Ищем строки;Google Nexus One %SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02 %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01 %SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E11 %CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E12&MI_01
Копируем их, вставляем. Заменяем «Google Nexus One» в комментарии на имя своего девайса (для собственного удобства). Теперь нам нужны значения VID и PID для нашего устройства. За ними идем в Диспетчер устройств и ищем наше устройство (Android Composite ADB Interface, Android, Samsung Android Phone — у кого как). В свойствах устройства мы найдем искомое:

Заменяем в inf-файле в скопированной части Vid и Pid на значения из свойств устройства (во всех четырех местах).
%SingleAdbInterface% = USB_Install, USB\VID_2207&PID_0010 %CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0010&MI_01 %SingleAdbInterface% = USB_Install, USB\VID_2207&PID_0010 %CompositeAdbInterface% = USB_Install, USB\VID_2207&PID_0010&MI_01
Сохраняем файл. Теперь можно обновить драйвер. Либо удаляем устройство в Диспетчере и указываем путь вручную к нашему драйверу, либо делаем «Обновить драйвер» из того же Диспетчера и опять таки подсовываем ему наш путь.
Казалось бы все — выдернуть вставить устройство и все должно запеть. Можно для верности перезапустить adb и посмотреть список девайсов (adb.exe находится в
%android-sdk%\platform-tools\
):> adb kill-server > adb devices
Но не факт, что этого хватит. Если устройства в списке нет, открываем файлик
%USERPROFILE%\.android\adb_usb.ini
и на новой строке пишем наш Vid
, предваряя его 0x
:0x2207
Все, сохраняем файл, перезапускаем ADB и гаджет и радуемся появлению устройства в списке.
Возникли вопросы или устройство не появилось? Пишите в комментариях, попробуем разобраться
Страницы: 1 2



Категория «Наблюдения»
Взлеты Топ 5
![]() | ||
+1482 |
1510 |
Juri13139 |
+1449 |
1484 |
Elen_i_rebyata |
+1430 |
1508 |
Дрочливый_Драчун |
+1419 |
1505 |
Малти_Ошер |
+1349 |
1590 |
@дневники: ~ Mikeko ~ - Пусть все думают, что было так! :) |
Падения Топ 5
![]() | ||
-3 |
1184 |
Сайт визажиста Мокровой Инны блог |
-5 |
1434 |
Экспериментальный блог |
-7 |
5 |
afrika-abr |
-7 |
85 |
Народные методы, средства, способы лечения. |
-8 |
41 |
Elephant_Talk |

Популярные за сутки
Загрузка...

BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.