X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Джава скрипт. Помощь в отображении
santis
santis
Topic Starter сообщение 5.1.2012, 2:02; Ответить: santis
Сообщение #1


Топовый постер
*******


Группа: Active User
Сообщений: 3487
Регистрация: 29.11.2010
Из: Краснодар
Поблагодарили: 1510 раз
Репутация:   164  


Здравствуйте.
Поставил сегодня новый шаблон на блог, теперь не могу разобраться с неправильным отображением символов.
lifeheart.ru
Первый символ из статьи, джаваскриптом (это я так думаю, не знаю как на самом деле) делается заглавным и отображается как "?" . Как исправить?
Шаблон называется memoir
Скачать можно отсюда: http://morestyle.ru/elegantthemes/memoir-r...gantthemes.html
Буду благодарен кто подскажет как решить проблему.

p/s/s Оно отображается нормально в кирилице 1251.
p/s/s/s Ещё один вопрос, как поставить что бы не считал тег вставки картинки за контент? Потому как в целой записи, коверкается отображение картинки

Сообщение отредактировал santis - 5.1.2012, 2:08


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
dan1
dan1
сообщение 5.1.2012, 7:55; Ответить: dan1
Сообщение #2


Участник
***

Группа: User
Сообщений: 195
Регистрация: 12.8.2010
Из: Тагила
Поблагодарили: 74 раза
Репутация:   25  


Скачал тему.
Надеюсь Вы перекодировали файлы темы в UTF-8?
В файле index.php к содержимому постов прикреплен фильтр:
apply_filters('the_content',et_create_dropcaps(get_the_content('')));
Функция et_create_dropcaps() как и полагается описана в functions.php. Эта функция назначает тег span с классом drop-caps первому символу в статье, что позволяет его всячески украшать. Однако, в PHP для поддержки кириллицы в UTF-8 необходимо явно указать локаль, либо пользоваться функциями из библиотеки mb_string и подобных. Варианты с указанием локалей вспоминать не хочется, поэтому напишу на что заменить код в functions.php с участием библиотеки mb_string.

В файле functions.php найдите:
function et_create_dropcaps($post_text){
    global $shortname;
    
    if ( get_option($shortname . '_dropcaps') == 'false' ) return $post_text;
    
    $post_content_text = trim($post_text);
    $post_content_firstletter = $post_content_text[0];
    $post_content_text[0] = '';
    
    return '<span class="drop-caps">' . $post_content_firstletter . '</span>' . $post_content_text;
}


Замените либо на это:
function et_create_dropcaps($post_text){
    global $shortname;
    if ( get_option($shortname . '_dropcaps') == 'false' ) return $post_text;
    $post_content_text = trim(strip_tags($post_text));    
    if($post_text[0] == "<") return $post_text;
    else return '<span class="drop-caps">' . mb_substr($post_content_text, 0, 1, 'UTF-8') . '</span>' . mb_substr($post_content_text, 1, mb_strlen($post_content_text, 'UTF-8'), 'UTF-8');
}

В данном варианте в полной статье вряд ли будут отображаться заглавные буквы, т.к. если текст поста начинается с символа "<", то просто выводится полный текст. Я подумал, что если картинки будут встроены в начало текста, то одиноко стоящая заглавная буква будет выглядеть очень не эстетично, но ведь текстовый редактор WordPress самостоятельно вставляет в абзацы тег <p>, что и мешает задумке. Получается, что в полной новости вообще не будет выводиться заглавная буква.

Если нужно всегда выводить заглавную букву помимо тех случаев, когда сперва идёт изображение, то замените на эту функцию:
function et_create_dropcaps($post_text){
    global $shortname;
    if ( get_option($shortname . '_dropcaps') == 'false' ) return $post_text;
    $post_content_text = trim(strip_tags($post_text));
    if(strpos($post_text, "img") == 1) return $post_text;
    else return '<span class="drop-caps">' . mb_substr($post_content_text, 0, 1, 'UTF-8') . '</span>' . mb_substr($post_content_text, 1, mb_strlen($post_content_text, 'UTF-8'), 'UTF-8');
}

Если и этот вариант не устраивает, то нужно будет прибегнуть к регулярным выражениям и помочь вам смогут только на платной основе.

Сообщение отредактировал dan1 - 5.1.2012, 7:59


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
santis
santis
Topic Starter сообщение 5.1.2012, 12:53; Ответить: santis
Сообщение #3


Топовый постер
*******


Группа: Active User
Сообщений: 3487
Регистрация: 29.11.2010
Из: Краснодар
Поблагодарили: 1510 раз
Репутация:   164  


Спасибо большое теперь все нормально.
p/s В последнем случае, не отображаются вообще картинки. Ну да ладно, в каждой статье символ выделять не надо.
p/s/s Надо садиться за пхп smile.gif

Сообщение отредактировал lostprophet - 5.1.2012, 13:12
Причина редактирования: закрыто по пожеланию ТС


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужна помощь в активации аккаунта AdSense
10 dimaguru 2557 Вчера, 11:12
автор: Ley
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыГде взять скрипт круговой индикатор выполнения
3 slavyn 426 14.12.2017, 22:55
автор: Caterpillar
Открытая тема (нет новых ответов) Ищу скрипт новостного агрегатора
0 Cunningfox 475 27.11.2017, 21:17
автор: Cunningfox
Открытая тема (нет новых ответов) Нужна помощь с задачами по SEO
Звучит так себе конечно, однако очень нужна ваша помощь!!!
10 another_way 1522 25.11.2017, 13:35
автор: Bel_Ami
Открытая тема (нет новых ответов) Поиск. Скрипт а-ля pikabu.
1 Упс 764 20.11.2017, 8:19
автор: codename65


 



RSS Текстовая версия Сейчас: 16.12.2017, 2:00
Дизайн