1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

Помощь проблема с кодировкой выпажающего меню.mod_quick jump

Тема в разделе "Joomla", создана пользователем joom-joom, 5 май 2011.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
Модераторы: arman29, DMS, Genk0
  1. joom-joom

    joom-joom

    Регистр.:
    28 фев 2010
    Сообщения:
    429
    Симпатии:
    148
    Всем привет. столкнулся со странной проблемой - стоит модуль QuickJump
    Суть его в том что сначала выбираешь раздел, потом категорию, потом статью и сразу же грузится выбранная статья.
    И все вроде бы замечательно,только сайт на китайском:)И вместо иероглифов-знаки вопроса. но только до тех пор, пока не сделаешь окончательный выбор. потом загружается статья и путь к ней выбран в модуле , и все буквы отображаются как надо...
    При этом разделы при выборе сразу на китайском. А категории и статьи - вопросами.
    Тоесть виноваты файлы
    findCat.php
    PHP:
    <?php
    include ('../../configuration.php');
            
    $config = new JConfig();
            
    $dbprefix=$config->dbprefix."categories";
    //echo $config->host;
    ?>
    <?php $sectionId
    =intval($_GET['section']);
    //$stateId=intval($_GET['state']);
    $link mysql_connect($config->host$config->user,$config->password); //changet the configuration in required
    if (!$link) {
        die(
    'Could not connect: ' mysql_error());
    }
    mysql_select_db($config->db);
    $query="SELECT id,title FROM $dbprefix WHERE section='$sectionId' AND published='1'";
    $result=mysql_query($query);
    ?>
    <select name="Cat" onchange="getCat(this.value)">
    <option>Select Category</option>
    <?php while($row=mysql_fetch_array($result)) { ?>
    <option value=<?php echo $row['id']; ?>><?php echo $row['title']; ?> </option>
    <?php ?>
    </select>
    и findArticle.php
    PHP:
    <?php
    include ('../../configuration.php');
            
    $config = new JConfig();
            
    $dbprefix=$config->dbprefix."content";
    //echo $config->host;
    ?>
    <?php $sectionId
    =intval($_GET['section']);
    $catId=intval($_GET['cat']);
    $link mysql_connect($config->host$config->user,$config->password); //changet the configuration in required
    if (!$link) {
        die(
    'Could not connect: ' mysql_error());
    }
    mysql_select_db($config->db);
    $query="SELECT id,title FROM $dbprefix WHERE catid='$catId'";
    $result=mysql_query($query);
    ?>
    <select name="article"  id="article" onchange="goToPage('article')">
    <option>Select Article</option>
    <?php while($row=mysql_fetch_array($result)) { ?>
    <option value=<?php echo $row['id']; ?> >  <?php echo $row['title']; ?> </option>
    <?php ?>
    </select>
    они передают главному файлу данные в неправильной кодировке (хотя,конечно, может быть и не в этом проблема)
    ну и вот главный на всякий случай.
    PHP:
    <?php
    //quickjump Module by Sharif Mamdouh http://www.inowweb.com
    defined('_JEXEC') or die('Restricted access');
    global 
    $mainframe;
    $database = & JFactory::getDBO();
    $moduleclass_sfx $params->get('moduleclass_sfx');
    $itemid $params->get('itemid');
    $exsections $params->get('exsections');
    $ids explode',',  $exsections );
    JArrayHelper::toInteger$ids );
    $Condition ' AND (s.id =' implode' OR s.id = '$ids ) . ')';
    $Conditions ' AND (s.sectionid =' implode' OR s.sectionid = '$ids ) . ')';
    //$u =& JFactory::getURI();
    //print_r( $u->_vars->id);
    //print_r($u);
    $article_id = (int) JRequest::getVar('id'false);
    $query "SELECT * FROM #__content AS s WHERE s.id= $article_id $Conditions";
          
    $database->setQuery($query);
          
    $rows $database->loadObjectList();
    foreach (
    $rows as $item) {
    $catid$item->catid;
    $sectionid$item->sectionid;
    }
    //print_r($rows);
    //print_r($rows[0][1]);
    // select the published sections
    $query "SELECT s.id, s.title FROM #__sections AS s WHERE s.published=1 $Condition";
    $database->setQuery($query);
    $sections $database->loadObjectList();
    // select the published categories
    $query "SELECT s.id, s.title FROM #__categories AS s WHERE s.published=1 AND s.section=$sectionid";
    $database->setQuery($query );
    $categories $database->loadObjectList();
    // select the published Articles
    $query "SELECT * FROM #__content AS s WHERE s.catid= $catid";
    $database->setQuery($query );
    $articles $database->loadObjectList();
    ?>
    <html>
    <head>
    <script language="javascript" type="text/javascript">
    <?php
    echo("
    var jsLiveSite='"
    );
    echo(
    JURI::base());
    echo(
    "';\n");
    echo(
    "
    var ItemID='"
    );
    echo(
    $itemid);
    echo(
    "';\n");
    ?>
    function getXMLHTTP() { //fuction to return the xml http object
            var xmlhttp=false;    
            try{
                xmlhttp=new XMLHttpRequest();
            }
            catch(e)    {        
                try{            
                    xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch(e){
                    try{
                    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
                    }
                    catch(e1){
                        xmlhttp=false;
                    }
                }
            }
            return xmlhttp;
        }
        function getSection(sectionId) {        
            var strURL=jsLiveSite+"/modules/mod_quickjump/findCat.php?section="+sectionId;
            var req = getXMLHTTP();
            if (req) {
                req.onreadystatechange = function() {
                    if (req.readyState == 4) {
                        // only if "OK"
                        if (req.status == 200) {                        
                            document.getElementById('statediv').innerHTML=req.responseText;                        
                        } else {
                            alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                        }
                    }                
                }            
                req.open("GET", strURL, true);
                req.send(null);
            }        
        }
            function getCat(catId) {        
            var strURL=jsLiveSite+"/modules/mod_quickjump/findArticle.php?cat="+catId;
            var req = getXMLHTTP();
            if (req) {
                req.onreadystatechange = function() {
                    if (req.readyState == 4) {
                        // only if "OK"
                        if (req.status == 200) {                        
                            document.getElementById('citydiv').innerHTML=req.responseText;                        
                        } else {
                            alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                        }
                    }                
                }            
                req.open("GET", strURL, true);
                req.send(null);
            }        
        }
            function goToPage( id ) {
      var node = document.getElementById( id );
      // Check to see if valid node and if node is a SELECT form control
        // Go to web page defined by the VALUE attribute of the OPTION element
        //document.form.submit();
    window.location.href= jsLiveSite+'index.php?option=com_content&view=article&id='+node.options[node.selectedIndex].value+'&Itemid='+ItemID;
    }
    </script>
    </head>
    <body>
    <div class="joomla_quickjump<?php echo $moduleclass_sfx?>">
    <table width="60%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td  width="150"><select name="section" onChange="getSection(this.value)">
        <option value="">Select Section</option>
    <?php foreach ($sections as $item) { 
    $sel='';
    if(
    $item->id==$sectionid)
    {
    $sel='selected="selected"';
    }
    ?>
    <option value=<?php echo $item->id?> <?php echo $sel?>><?php echo $item->title?></option>
    <?php
     
    ?>
            </select></td>
      </tr>
      <tr style="">
        <td ><div id="statediv"><select name="cat" onChange="getCat(this.value)" >
        <?php if(!$article_id) { ?>
        <option>Select Section First</option>
        <?php ?>
        <?php foreach ($categories as $item) { 
    $sel='';
    if(
    $item->id==$catid)
    {
    $sel='selected="selected"';
    }
    ?>
    <option value=<?php echo $item->id?> <?php echo $sel?>><?php echo $item->title?></option>
    <?php
     
    ?>
            </select></div></td>
      </tr>
      <tr style="">
        <td ><div id="citydiv"><select name="article"  id="article" onChange="goToPage('article')">
        <?php if(!$article_id) { ?>
        <option>Select Category First</option>
        <?php ?>
        <?php foreach ($articles as $item) { 
    $sel='';
    if(
    $item->id==$article_id)
    {
    $sel='selected="selected"';
    }
    ?>
    <option value=<?php echo $item->id?> <?php echo $sel?>><?php echo $item->title?></option>
    <?php
     
    ?>
            </select></div></td>
      </tr>
    </table>
    </div>
    <div align="right" style="color:#999;margin-bottom:3px;font-size:9px">By i<a target="_blank" class="external" title="web design company" href="http://www.inowweb.com"><span style="color:#999;margin-bottom:3px;font-size:9px" >Web Design</span></a></div>
    </body>
    </html>
    дело точно не в остальном сайте, а именно в модуле.
    сижу, ковыряюь целый день,но моих знаний явно недостаточно, даже не знаю в какую сторону искать...везде не то...
    поэтому буду очень благодарен за любую помощь. хотябы подскажите как поискать...
     
  2. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
    Файлы в UTF-8 без BOM сохранены?
     
  3. joom-joom

    joom-joom

    Регистр.:
    28 фев 2010
    Сообщения:
    429
    Симпатии:
    148
    да, все везде utf-8. когда после коннекта к базе добавляю mysql_query("SET character_set_results = big5"); вопросы меняются на каракули. если вместо big5другие китайские кодировки или utf-8 - ничего не меняется, вопросы...
     
  4. bork75

    bork75 Д☼брая собака )

    Регистр.:
    21 июн 2008
    Сообщения:
    1.449
    Симпатии:
    716
    Скинь адрес сайта.
    Не совсем понятно по этому моменту
     
  5. joom-joom

    joom-joom

    Регистр.:
    28 фев 2010
    Сообщения:
    429
    Симпатии:
    148
    там 3 выпадающих поля. сначала выбираешь раздел(причем разделы сразу отображаются правильно), потом категорию из этого раздела(знаки вопроса), потом статью из этой категории(окончательный выбор)-> загружается выбранная статья и в модуле во всех 3-х полях текст как надо. и остальные категории тоже отобраются правильно, пока не поменяешь раздел. Меняю раздел туда-обратно, уже на месте текста вопросы.
    сайт выключен. сечас куда-нибудь поставлю, это и правда надо видеть)

    ---------- Post added at 03:26 ---------- Previous post was at 01:44 ----------

    http://martatranslate.com вот сайт. на хостинге еще и с русские буквы поплыли...
     
  6. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
    Проблема с кодировками бывает:
    1) Не правильные заголовки от сервера (решается через htaccess)
    2) Не указана кодировка в HTML (у вас не актуально)
    3) Файлы в не правильной кодировке, соответственно вывод идет не в UTF-8
    4) База в не правильной кодировке (или же отдельные таблицы).

    Попробую сейчас для теста поставить, отпишусь по результату.

    Пока что итог такой: поставил на работающий сайт, поплыла кодировка, удалил все, все равно кодировка нарушена ) Интересно ) Сейчас буду копатся что это за чудо такое

    Как оказалось проблема была в включенном плагине кеширования. Попробуйте его временно отключить. Сейчас разбираюсь из-за чего такие проблемы с кешом )


    Проблема решена. Файл \www\modules\mod_quickjump\mod_quickjump.php удалить строки:
    56-57
    169-170
    231-232
    можно после этого включить кеширование)
    и наслаждаться
     
  7. joom-joom

    joom-joom

    Регистр.:
    28 фев 2010
    Сообщения:
    429
    Симпатии:
    148
    вот спасибо!!! щас попробую
     
  8. joom-joom

    joom-joom

    Регистр.:
    28 фев 2010
    Сообщения:
    429
    Симпатии:
    148
    нет, не хочет. кэш и так был везде выключен. переустанавливал модуль , чистил папку кэша, редактировал mod_quickjump.php как сказали.все что раньше понаделал вернул обратно. на 3-х сайтах не сработало. а у вас прям с китайским работает?
     
  9. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
    Вот пример!

    Попробуйте следующее:
    1) Чистая инсталяции
    2) Переделать исходники модуля
    3) Потом поставить
    И проверить. Может у вас какой то особенный вариант или еще что. Если так заработает значит потенциально может исправить. Если нет, пишите, будем разбираться в чем проблема

    Взял несколько символов с вашего сайта получилось повторить проблему ) Копаюсь
     

    Вложения:

    • ex.png
      ex.png
      Размер файла:
      3,2 КБ
      Просмотров:
      17
    joom-joom нравится это.
  10. joom-joom

    joom-joom

    Регистр.:
    28 фев 2010
    Сообщения:
    429
    Симпатии:
    148
    select section`ы у меня тоже работают, а категории и материалы у вас в порядке?
    я так и делал, изменял исходник mod_quickjump.php. joomla тоже чистая . доп материалы + quick jump и все.
     
Статус темы:
Закрыта.