ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
7   •   Посмотреть все темы

Помогите разрешить войну между кодировками joomla и samphpweb

 

43
MisTERR @MisTERR
Доброго вечера, уважаемые форумчане!

Замыслил я дело благородное - вывести на свой сайт, построенный на cms Joomla 1.5 (к сожалению, с более новыми версиями так и не смог найти взаимопонимания), модуль, показывающий 3 трека. которые будут играть в ближайшее время, с учетом треков, которые были заказаы через samphpweb.

Для осуществления данной операции я сделал следующее:

1) Поставил Sam Broadcaster на серверную машину и прикрутил его БД MySql со сравнением utf8_general_ci

2) Установил samphpweb на сайт ( под управлением XAMPP). Папку samphpweb переименовал в request

3) Создал в папке request\web файл current.php. Его код привожу ниже

  1.  
  2. <?php
  3. try {
  4. // Get the configuration
  5. require_once('../config/config.php');
  6. // Get the code for this page
  7. require_once('../code/code.playing.php');
  8. // Get the display for this page
  9. require_once('../display/display.current.php');
  10. } catch (Exception $ex) {
  11. // The error page will be displayed if anything goes wrong above
  12. $message = $ex->getMessage();
  13. require_once('../display/display.error.php');
  14. }


4) Создал в папке \request\display файл display.current.php. Его код привожу ниже

  1.  
  2. <meta http-equiv="Refresh" content="5" />
  3. <?php if(is_array($comingSongs) && count($comingSongs)>0) : ?>
  4. <div id="coming-up_wrapper">
  5. <div id="coming-up">
  6. <table cellpadding="0" cellspacing="0">
  7. <tbody>
  8. <tr>
  9. <td>
  10. <?php
  11. $counter = 1;
  12. $doCounter = count($comingSongs) > 1;
  13. foreach ($comingSongs as $comingSong): ?>
  14. <div>
  15. <?php echo $comingSong->artist; ?>
  16. <?php if(!empty($comingSong->artist)) : ?> - <?php echo $comingSong->title; ?> <?php endif; ?>
  17. <?php if($comingSong->isRequested): ?>
  18. (Заказ)
  19. <?php endif; ?>
  20. </div>
  21. <hr>
  22. <?php endforeach; ?>
  23. <hr style="width:100%;border:none;"/>
  24. </td>
  25. </tr>
  26. </tbody>
  27. </table>
  28. </div>
  29. </div>
  30. <?php endif; ?>


После проверки - выяснилось, что страница ********** Правильно и коллектно отображает информацию, причем как на английском, так и на русском языке.



После этого я разместил эту информацию на сайте, используя модуль wrapper. Однако, на сайте, правильно и корректно стали отображаться только английские буквы.



Я сразу понял, что дело в кодировке Joomla. Однако, все мои попытки устранить неполадку не увенчались успехом.

Прошу помощи, ибо на решение проблемы уже ушло 2 бессонных ночи. Жуть как хочется спать...

Отредактировано MisTERR - 10.11.2012
0
43
MisTERR @MisTERR
Итак, решение!

В файлах current.php и display.current.php, сразу после
  1. <?php
вставьте

  1. header('Content-Type: text/html; charset=windows-1251');


Должно получиться примерно так

  1. <?php
  2. header('Content-Type: text/html; charset=windows-1251');
  3. try {
  4. // Get the configuration
  5. require_once('../config/current.php');
  6. ...



По поводу автообновления. В файле display.current.php вставьте в начало следующий код.

  1. <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
  2. <script type="text/javascript">
  3. jQuery(document).ready(function(){
  4. setInterval("jQuery('#timeA').load('# dl#timeB');",5000);
  5. });
  6. </script>
  7. <dl id="timeA"><dl id="timeB">
  8. <!-- Сюда вставить код -->
  9. </dl></dl>


Еще раз большое спасибо за помощь Leff27.

Модератора прошу закрыть тему.

Отредактировано MisTERR - 11.11.2012
0
410
Евгений @Drakkar
Скажи пожалуйста, как ты тут ********** реализовал поиск РУССКОЯЗЫЧНЫХ треков? ?

0
123
Максим @MoD_X
у меня он сразу работал :) скачивал перевод samphpweb от deamon'a :)

0
410
Евгений @Drakkar
MoD_X пишет:

у меня он сразу работал :) скачивал перевод samphpweb от deamon'a :)

а где можно посмотреть? А где можно скачать?:)

0
123
Максим @MoD_X
я 2 года назад тут нашёл, _http://www.soundcoder.com и не "Deamon" а "Demon" :)

Отредактировано MoD_X - 17.11.2012
0
410
Евгений @Drakkar
Народ, вод код моего поиска;
  1. <!-- BEGIN:SEARCH -->
  2. <div id="search">
  3. <form method="get" action="playlist.php" name="searchParameters">
  4. Поиск: <?php InputText('search', $search, '',50); ?>
  5. <input type="submit" value="Go" name="B1" />
  6. Показывать по <?php InputCombo('limit', $limit, 50, '25,50,100', "", "document.forms.searchParameters.submit();"); ?> результатов


Я так понял, где-то надо применить iconv("cp1251","UTF-8" ..... чтоб находил русскоязычные треки по поиску?

0
89
Azat @azatxaker
Drakkar пишет:

Народ, вод код моего поиска;
  1. <!-- BEGIN:SEARCH -->
  2. <div id="search">
  3. <form method="get" action="playlist.php" name="searchParameters">
  4. Поиск: <?php InputText('search', $search, '',50); ?>
  5. <input type="submit" value="Go" name="B1" />
  6. Показывать по <?php InputCombo('limit', $limit, 50, '25,50,100', "", "document.forms.searchParameters.submit();"); ?> результатов


Я так понял, где-то надо применить iconv("cp1251","UTF-8" ..... чтоб находил русскоязычные треки по поиску?

В playlist.php

0
410
Евгений @Drakkar
azatxaker пишет:

Drakkar пишет:

Народ, вод код моего поиска;
  1. <!-- BEGIN:SEARCH -->
  2. <div id="search">
  3. <form method="get" action="playlist.php" name="searchParameters">
  4. Поиск: <?php InputText('search', $search, '',50); ?>
  5. <input type="submit" value="Go" name="B1" />
  6. Показывать по <?php InputCombo('limit', $limit, 50, '25,50,100', "", "document.forms.searchParameters.submit();"); ?> результатов


Я так понял, где-то надо применить iconv("cp1251","UTF-8" ..... чтоб находил русскоязычные треки по поиску?

В playlist.php

У меня там только вот это:
  1. <?php
  2. try {
  3. // Get the configuration
  4. require_once('../config/config.php');
  5. // Get the code for this page
  6. require_once('../code/code.playlist.php');
  7. // Get the display for this page
  8. require_once('../display/display.playlist.php');
  9. } catch (Exception $ex) {
  10. // The error page will be displayed if anything goes wrong above
  11. $message = $ex->getMessage();
  12. require_once('../display/display.error.php');

0
123
Максим @MoD_X
code.playlist.php или тут display.error.php с новым samphp не работал :)

0
410
Евгений @Drakkar
Кажись где-то тут?
  1. <?php
  2. // The class handling song info
  3. include_once('classes/class.song.php');
  4. if (ALLOW_REQUESTS) {
  5. // An array of song objects with the top requested songs
  6. $topRequestedSongs = Song::getTopRequestedSongs();
  7. }
  8. $start = Def('start', 0); // Where the playlist must start
  9. $limit = Def('limit', 25); // How many items will be displayed
  10. $search = Def('search'); // The search string
  11. $character = Def('character'); // The letter to sort the playlist by
  12. if ("All" == $character) {
  13. unset($character);
  14. }
  15. //########## BUILD SEARCH STRING ################
  16. $search_words = '';
  17. if ($search <> '') {
  18. $search_words = array();
  19. $temp = explode(' ', $search);
  20. reset($temp);
  21. while (list($key, $val) = each($temp)) {
  22. $val = trim($val);
  23. if (!empty($val)) {
  24. $search_words[] = $val;
  25. }
  26. }
  27. }
  28. // An array of song objects matching the search criteria
  29. $playlistSongs = Song::getPlaylistSongs($search_words, $character, $start, $limit);
  30. $cnt = Song::getPlaylistSongCount();
  31. //########## =================== ################
  32. $first = $start + 1;
  33. $last = min($cnt, $start + $limit);
  34. // Create the previous and next links based on the result
  35. if ($cnt > 0) {
  36. $searchstr = urlencode($search);
  37. $prev = max(0, $start - $limit);
  38. if ($start > 0) {
  39. $prevlnk = "<a href='?start=$prev&limit={$limit}&character=$character&search=$searchstr'>&lt;&lt; Предыдущая</a>";
  40. }
  41. $tmp = ($start + $limit);
  42. if ($tmp < $cnt) {
  43. $nextlnk = "<a href='?start=$tmp&limit={$limit}&character=$character&search=$searchstr'>Следующая &gt;&gt;</a>";
  44. }
  45. }

0





Согласие на обработку данных на нашем сайте

Продолжая просматривать страницу, вы соглашаетесь с использованием файлов «Cookie» и с Политикой конфиденциальности «Privacy».
Наверху или внизу страницы вы можете изменить валюту и язык по умолчанию. Английская версия сайта ещё находится в доработке и доступна не полностью.