Попробуйте что-то вроде этого:
string fileName = "something";
foreach (char c in System.IO.Path.GetInvalidFileNameChars())
{
fileName = fileName.Replace(c, '_');
}
Редактирование:
С тех пор GetInvalidFileNameChars()
возвратит 10 или 15 символов, лучше использовать StringBuilder
вместо простой строки; исходная версия займет больше времени и использует больше памяти.
Ответом было очень много использовать модуль CSS Injector - отличный маленький аддон!
Вот выдержка со страницы проекта:
Позволяет администраторам вставлять CSS в вывод страницы на основе настраиваемых правил. Это полезно для добавления простых настроек CSS без изменения официальной темы сайта. CSS добавляется с помощью стандартной функции Drupal_add_css () Drupal и учитывает кеширование страниц и т. Д. Brach 2.x использует CTools, поэтому CSS может быть включен с изменениями функций (т.е. CSS, который улучшает внешний вид представления, может быть упакован вместе с представлением ).
Не совсем понятно где вы выбираете шаблон, который есть в вашем примере.
This function wont work in templates. The reason is that the variable $styles which will hold all the stylesheet html will already have been generated at this point, so drupal_add_css wont work as it adds to that. if you want to do this in your theme, you would probably have to add the css file manually
<link rel="stylesheet" ... />
The other way would be to use drupal_add_css in a module, but you might have a hard time adding the correct css files on the pages you want.
Можно использовать drupal_add_css () внутри вашего файла template.php; на этой странице есть хороший пример того, как это сделать.
Спасибо за ссылку, Wyrmmage. Это очень полезно. Я думаю, что остальная часть кода на странице не является не нужно. Вам, вероятно, просто нужно, так как Drupal 6 уже автоматически проверяет наличие файла:
drupal_add_css(path_to_theme() . '/css/yourcss.css', 'theme');
// Add the following to regenerate $styles.
// This is needed for template_preprocess_page() since css is already generated at this point.
$variables['styles'] = drupal_get_css();
Этот код внутри template.php работает для меня:
function alagna_preprocess_page(&$vars) {
drupal_add_css(path_to_theme() . '/header_1.css', 'theme');
$vars['css'] = drupal_add_css();
$vars['styles'] = drupal_get_css();
}
объяснил:
Я заметил кое-что странное, и это может решить вашу проблему:
drupal_add_css( drupal_get_path('theme','themname') . '/working.css','module' ,'all' , false );
drupal_add_css( drupal_get_path('theme','themname') . '/path/to/folder/notworking.css','module' ,'all' , false );
Первый вариант будет работать, потому что стиль находится в папке main them. Вторая строка не работает, потому что стиль находится во вложенной папке!
Edit:
я думаю, что это не работает, потому что я не написал путь к файлу стиля правильно :S так что, пожалуйста, не обращайте внимания на мой ответ
drupal_add_css( drupal_get_path('theme','test') . '/pages/subpage/style.css','theme');
работает