We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 22706
    • 10 Posts
    Сорри, братцы, я не въехал.
    http://modxcms.com/forums/index.php/topic,3139.msg22274.html#msg22274

    Сам хотел задать этот вопрос. Почему вместо meta name="keywords" мы имеем meta http-equiv="keywords"?
    Как это изменить?

    В багтрекере.
    Closed by Ryan Thrash (rthrash)
    Thursday, 23 March 2006, 12:41AM
    Reason for closing: Fixed
    Additional comments about closing: commit 841 in SVN
    и еще
    Reported Version 0.9.1
    Due in Version 0.9.2

    То есть имеется в виду что исправления будут в версии 9.2.2?

    А результат можно получить сегодня для старой версии?
    Как-то можно в шаблоне вывести список кейвордов?

    Может кто знает? undecided
      My biggest project is Almaz.
      • 33114
      • 518 Posts
      согласен... нерешенный в 0.9.2 вопрос. хотя в баг-трекере заявлено что должен быть решен.
        http://modx.ru - российская поддержка MODx
        http://newscup.ru - экспериментальный проект
        http://yentsun.com - персональный сайт
      • Надо же, а я и не заметил такого бага smiley Уже почти новый сайт на MODx был готов, хотел уже в скором времени запустить.. Прошел по ссылке http://modxcms.com/forums/index.php/topic,3139.0.html и сделал как там советуют. На мой взгляд, в файле manager/includes/document.parser.class.inc.php всю функцию надо закомментировать (примерно 568 строчка):
          function mergeDocumentMETATags($template) {
            /*
        	if($this->documentObject['haskeywords']==1) {
              // insert keywords
              $keywords = implode(", ",$this->getKeywords());
              $metas = "\t<meta http-equiv=\"keywords\" content=\"$keywords\" />\n";
            }
        	
            if($this->documentObject['hasmetatags']==1){
              // insert meta tags
              $tags = $this->getMETATags();
              foreach ($tags as $n=>$col) {
                $tag = strtolower($col['tag']);
                $tagvalue = $col['tagvalue'];
                $tagstyle = $col['http_equiv'] ? 'http-equiv':'name';
                $metas.= "\t<meta $tagstyle=\"$tag\" content=\"$tagvalue\" />\n";
              }
            }
            $template = preg_replace("/(<head>)/i", "\\1\n".$metas, $template);
          */
            return $template;
          }

        А сами ключевые слова я доставал так (чуть модифицированный сниппет etomite):
        $keywords = $modx->getKeywords(); 
        if(count($keywords)>0) {
            $keys = join($keywords, ", ");
            return ''.$keys.''; //получаем строку из ключевых слов, разделенных запятой и пробелом
        } else {
            return false;
        }
          Разработка сайтов и программных модулей на MODX.
          Опыт работы на MODx с 2005 года. Высокое качество.
          Компания Baltic Design Colors: http://www.bdcolors.ru.
          • 22706
          • 10 Posts
          Спасибо за дельный совет.
          Я оставил у себя в коде пока оба варианта (и http-equiv, и name).

          Наверно, стоит зарезать старый вариант, но я седня в инете встречал рекомендацию писать двумя способами кейворды, мол разные поисковики и все такое...
            My biggest project is Almaz.
          • partisan, что-то у тебя с кодировкой проблемы smiley
            Приходится все время переключать принудительно браузер на Cyrillic (Windows).
            Не очень хорошо, что вообще форум работает на кодировке, отличной от UTF-8.
              Разработка сайтов и программных модулей на MODX.
              Опыт работы на MODx с 2005 года. Высокое качество.
              Компания Baltic Design Colors: http://www.bdcolors.ru.
              • 22706
              • 10 Posts
              Да уж. Сорри я не спициально. На UTF-8 все руссифицированные элементы вопросиками идут.
              Вот такая вот медвежья услуга. shocked grin

              А форум вообще на ISO-8851-1! Головняк полнейший.
                My biggest project is Almaz.
                • 26709
                • 4 Posts
                Quote from: Igor at May 22, 2006, 05:18 PM

                  function mergeDocumentMETATags($template) {
                    /*
                	if($this->documentObject['haskeywords']==1) {
                      // insert keywords
                      $keywords = implode(", ",$this->getKeywords());
                      $metas = "\t<meta http-equiv=\"keywords\" content=\"$keywords\" />\n";
                    }
                	
                    if($this->documentObject['hasmetatags']==1){
                      // insert meta tags
                      $tags = $this->getMETATags();
                      foreach ($tags as $n=>$col) {
                        $tag = strtolower($col['tag']);
                        $tagvalue = $col['tagvalue'];
                        $tagstyle = $col['http_equiv'] ? 'http-equiv':'name';
                        $metas.= "\t<meta $tagstyle=\"$tag\" content=\"$tagvalue\" />\n";
                      }
                    }
                    $template = preg_replace("/(<head>)/i", "\\1\n".$metas, $template);
                  */
                    return $template;
                  }

                А сами ключевые слова я доставал так (чуть модифицированный сниппет etomite):



                Господа, а что, собственно, мешает в стандартной функции парсера вместо строки
                $metas = "\t<meta http-equiv=\"keywords\" content=\"$keywords\" />\n";
                


                поставить

                $metas = "\t<meta name=\"keywords\" content=\"$keywords\" />\n";
                


                т.е. http-equiv поменять на name. Получается все отлично и стандартными средствами