0 Пользователей и 1 Гость просматривают эту тему.
  • 64 Ответов
  • 26661 Просмотров
*

dimas103

  • Новичок
  • 5
  • 0 / 0
Re: Отключение не переведённых статей
« Ответ #30 : 18.06.2009, 12:45:10 »
zeroowl Респект!!! и +1 поставил бы да недорос. Админы ветку бы прилепить актуально для многих я думаю.
*

Ursula

  • Новичок
  • 19
  • 1 / 0
Re: Отключение не переведённых статей
« Ответ #31 : 24.08.2009, 07:33:01 »
Добрый день,
а пункты меню непереведенные так кто-нибудь отключал? Не подскажете, где лежат запросы в базу от меню? В папке mod_mainmenu ни одного query 0_0 (Joomla 1.5.9)

Re: Отключение не переведённых статей
« Ответ #32 : 06.10.2009, 18:31:39 »
Я вот тоже начал копать Joomla и придумал как спрятать не переведенные меню (и не только меню, а весь контент) пункты.
файл joomfish.class.php:
Код
if (!$rowTranslationExists){
if ($allowfallback && isset($rows[$key]->$refTablePrimaryKey)){
$fallbackrows[$key] =& $rows[$key];
$fallbackids[$key] = $rows[$key]->$refTablePrimaryKey;
}
else {
$removekeys[]=$key; // <-- save keys to remove
$results = $dispatcher->trigger('onMissingTranslation', array (&$row_to_translate, $language,$reference_table, $tableArray, $querySQL));

//JoomFish::processMissingTranslation($row_to_translate, $language,$reference_table);
}
}
потом в том же файле
Код
...
if(($language != $defaultLang) //&& ($reference_table=='menu')
      ){//remove untranslated items
       
      foreach($removekeys as $key) {
        unset($rows[$key]);
        }
        $removekeys=array_values($removekeys);       
      }

$dispatcher->trigger('onAfterTranslation', array (&$rows, $ids, $reference_table, $language, $refTablePrimaryKey, $tableArray, $querySQL, $allowfallback));
}
Осталась проблема с тем, что Joomla думает, что у меня больше страниц, чем есть, т.е., не пересчитывает к-во переведенных страниц. Я гадаю, если удалить ID удаленных строк из $ids, то все будет в норме. Может кого-то заведу на верный путь ^-^. Хотел прицепить весь  модифицированный файл, но говорит, что нет места  :(.
Joomla 1.5.14
JoomFish 2.0.3
*

rsx

  • Новичок
  • 15
  • 2 / 0
Re: Отключение не переведённых статей
« Ответ #33 : 28.12.2009, 14:48:32 »
Работающий результат

Заходим на сервере в components/com_content/models
И меняем все PHP файлы

И во всех .php
где есть строчка
Код
$query =  ....
#__content AS


Расширяем  пример файл category.php:

function _buildQuery($state = 1)
        {
                global $mainframe;
                // Get the page/component configuration
                $params = &$mainframe->getParams();

                // If voting is turned on, get voting data as well for the content items
                $voting = ContentHelperQuery::buildVotingQuery($params);

                // Get the WHERE and ORDER BY clauses for the query
                $where          = $this->_buildContentWhere($state);
                $orderby        = $this->_buildContentOrderBy($state);

                $query = 'SELECT cc.title AS category, a.id, a.title, a.title_alias, a.introtext, a.fulltext, a.sectionid, a.state, a.catid, a.created, a.created_by, a.created_by_alias, a.modified, a.modified_by,' .
                        ' a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.attribs, a.hits, a.images, a.urls, a.ordering, a.metakey, a.metadesc, a.access,' .
                        ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
                        ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug,'.
                        ' CHAR_LENGTH( a.`fulltext` ) AS readmore, u.name AS author, u.usertype, g.name AS groups'.$voting['select'] .
                        ' FROM #__content AS a' .
                        ' LEFT JOIN #__categories AS cc ON a.catid = cc.id' .
                        ' LEFT JOIN #__users AS u ON u.id = a.created_by' .
                        ' LEFT JOIN #__groups AS g ON a.access = g.id'.
                        $voting['join'].
                        $where.
                        $orderby;

                return $query;
        }





function _buildQuery($state = 1)
        {
                global $mainframe;
                // Get the page/component configuration
                $params = &$mainframe->getParams();

                // If voting is turned on, get voting data as well for the content items
                $voting = ContentHelperQuery::buildVotingQuery($params);

                // Get the WHERE and ORDER BY clauses for the query
                $where          = $this->_buildContentWhere($state);
                $orderby        = $this->_buildContentOrderBy($state);


       $registry =& JFactory::getConfig();
       $defaultLang = $registry->getValue("config.defaultlang");
           $lang = $registry->getValue("config.jflang");

                $query = 'SELECT cc.title AS category, a.id, a.title, a.title_alias, a.introtext, a.fulltext, a.sectionid, a.state, a.catid, a.created, a.created_by, a.created_by_alias, a.modified, a.modified_by,' .
                        ' a.checked_out, a.checked_out_time, a.publish_up, a.publish_down, a.attribs, a.hits, a.images, a.urls, a.ordering, a.metakey, a.metadesc, a.access,' .
                        ' CASE WHEN CHAR_LENGTH(a.alias) THEN CONCAT_WS(":", a.id, a.alias) ELSE a.id END as slug,'.
                        ' CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(":", cc.id, cc.alias) ELSE cc.id END as catslug,'.
                        ' CHAR_LENGTH( a.`fulltext` ) AS readmore, u.name AS author, u.usertype, g.name AS groups'.$voting['select'] .
                        ' FROM #__content AS a' .
                        ' LEFT JOIN #__categories AS cc ON a.catid = cc.id' .
                        ' LEFT JOIN #__users AS u ON u.id = a.created_by' .
                        ' LEFT JOIN #__groups AS g ON a.access = g.id'.

         ($lang!= $defaultLang?
                          ' JOIN #__jf_content AS jfc ON jfc.reference_id = a.id and jfc.reference_table = \'content\' and jfc.reference_field=\'title\' and jfc.published= 1 JOIN #__languages lang on lang.id = jfc.language_id and lang.code = \''.$lang.'\'':"").


                        $voting['join'].
                        $where.
                        $orderby;

                return $query;
        }

Замечания:
Уже добавлена поддержка более чем 2-х  языков
В некоторых файлах таких запросов по несколько, надо делать везде...
Кроме article.php там в функцие store не надо.
В некоторых случаях таблица  #__content AS a назывется
Код
b
и соотвественно надо написать в добовляемом куске
Так же то же самое действие надо произвести с mod_newsflash, mod_lastnews и если где-то еще...

Прилагается файл со всеми исправлениями для Joomla 1.5.11



данный метод работает отлично, вот если бы для определённой группы можно было оставить видимость статьи для перевода с фронт энда. просто хочу на сайте заказать модераторов переводчиков с разных стран и всех на затащиш в админку. если есть решения поделитесь
*

den1762

  • Захожу иногда
  • 104
  • 3 / 0
Re: Отключение не переведённых статей
« Ответ #34 : 08.05.2010, 09:58:46 »
Цитата: Alphaed
Оплатил я эту gold хрень.
Отправил сообщение в ПМ

Re: Отключение не переведённых статей
« Ответ #35 : 29.06.2010, 14:49:43 »
Оплатил я эту gold хрень.

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

Pander

  • Новичок
  • 4
  • 0 / 0
Re: Отключение не переведённых статей
« Ответ #36 : 22.07.2010, 08:27:29 »
А есть ли возможность отключения не переведённых статей/модулей/пунктов меню K2?
*

tbhost

  • Захожу иногда
  • 158
  • 10 / 6
Re: Отключение не переведённых статей
« Ответ #37 : 22.07.2010, 09:15:28 »
Сперва, большое спасибо Смотрящему на луну за перевод ( http://joomlaforum.ru/index.php/topic,21738.0.html ). Языковой файл прекрасно работает при перенесении на родную JoomFish 1.8.2.
Странно, что не поднимался довольно занятный вопрос - если разноязычные версии не совпадают, то как заставить JoomFish не выводить статьи не имеющие перевода. Т.е. имеем на сайте несколько, ну например 5, статей на основном языке (для меня - на русском) и соответственно 5 пунктов меню ведущих на них. Надо сделать англоязычную версию, но не для всех статей, а только для первых трех.
Насколько я понял - делаем переводы для статей 1, 2, 3 и меню 1, 2, 3, а для остальных JoomFish будет писать "There are no translations available".
Но мне это совсем не нужно! Будет намного лучше если он просто не будет показывать статьи, а самое главное - не показывать пункты меню для которых нет перевода!
Может кто-нибудь занимался подобной проблемой?
В настройках JoomFish нужно выбрать пункт что не показывать статьи без перевода, можно также сделать свое уведомление вместо "по-умолчанию"

Re: Отключение не переведённых статей
« Ответ #38 : 29.07.2010, 16:44:17 »
Как убрать непереведенные меню?
*

stus

  • Новичок
  • 9
  • 0 / 0
Re: Отключение не переведённых статей
« Ответ #39 : 13.09.2010, 08:34:46 »
    Я вот тоже начал копать Joomla и придумал как спрятать не переведенные меню (и не только меню, а весь контент) пункты.
    файл JoomFish.class.php:
    Код:
    if (!$rowTranslationExists){
                         if ($allowfallback && isset($rows[$key]->$refTablePrimaryKey)){
                            $fallbackrows[$key] =& $rows[$key];
                            $fallbackids[$key] = $rows[$key]->$refTablePrimaryKey;
                         }
                         else {
                            $removekeys[]=$key; // <-- save keys to remove
                            $results = $dispatcher->trigger('onMissingTranslation', array (&$row_to_translate, $language,$reference_table, $tableArray, $querySQL));

                            //JoomFish::processMissingTranslation($row_to_translate, $language,$reference_table);
                         }
                      }
    потом в том же файле
    Код:
    ...
    if(($language != $defaultLang) //&& ($reference_table=='menu')
          ){//remove untranslated items
            
             foreach($removekeys as $key) {
              unset($rows[$key]);
            }
            $removekeys=array_values($removekeys);        
          }

             $dispatcher->trigger('onAfterTranslation', array (&$rows, $ids, $reference_table, $language, $refTablePrimaryKey, $tableArray, $querySQL, $allowfallback));
          }
    Осталась проблема с тем, что Joomla думает, что у меня больше страниц, чем есть, т.е., не пересчитывает к-во переведенных страниц. Я гадаю, если удалить ID удаленных строк из $ids, то все будет в норме. Может кого-то заведу на верный путь . Хотел прицепить весь  модифицированный файл, но говорит, что нет места  .

    Вариан очень интересый, потому что сразу убираются как непереведенные пункты меню, так и неперведенные статьи. Только появилось 2 ошибки в этом конфигурационном файле (joomfish.class.php), Вы не могли бы посмотреть синтаксис.

    • Warning: Invalid argument supplied for foreach() in /var/www/.../components/com_joomfish/helpers/joomfish.class.php on line 354
    • Warning: array_values() [function.array-values]: The argument should be an array in /var/www/.../components/com_joomfish/helpers/joomfish.class.php on line 357
    В приложении находится данный конфигурационный файл: joomfish.class.php
    Заранее благодарен.[/list]
    « Последнее редактирование: 13.09.2010, 09:00:13 от stus »

    Re: Отключение не переведённых статей
    « Ответ #40 : 14.09.2010, 14:48:15 »
    Кто нибудь мне дайте сие плагин, очень нужно в образовательном сайте

    Re: Отключение не переведённых статей
    « Ответ #41 : 18.09.2010, 19:48:34 »
    Вы не могли бы посмотреть синтаксис

    Там не синтаксическая ошибка - я ее исправил просто добавив проверку существования $removekeys.

    Строчку
    Код
    if(($language != $defaultLang) // && ($reference_table=='menu')		
    переписал как
    Код
    if(($language != $defaultLang) && (isset($removekeys))

    Автору поста №33 - респект и уважуха  ^-^
    *

    Zavr

    • Новичок
    • 4
    • 0 / 0
    Re: Отключение не переведённых статей
    « Ответ #42 : 21.09.2010, 15:52:33 »
    Автору поста №33 респект и уважуха точно.

    Возникла проблема одна: если строчку:
    Код
    if(($language != $defaultLang) // && ($reference_table=='menu')
    заменить на
    Код
    if(($language != $defaultLang) && (isset($removekeys))
    то исчезают не только пункты меню, но валятся ошибки:
    Цитировать
    Notice: Trying to get property of non-object in /components/com_content/views/frontpage/view.html.php on line 123

    Notice: Undefined property: stdClass::$attribs in /components/com_content/views/frontpage/view.html.php on line 127

    Notice: Undefined property: stdClass::$access in /components/com_content/views/frontpage/view.html.php on line 140

    Notice: Undefined property: stdClass::$slug in /components/com_content/views/frontpage/view.html.php on line 142

    Notice: Undefined property: stdClass::$catslug in /components/com_content/views/frontpage/view.html.php on line 142

    Notice: Undefined property: stdClass::$sectionid in /components/com_content/views/frontpage/view.html.php on line 142

    Notice: Undefined property: stdClass::$id in /plugins/content/vote.php on line 23

    Notice: Undefined property: stdClass::$title in /templates/ja_purity_ii/html/com_content/frontpage/default_item.php on line 28

    Notice: Undefined property: stdClass::$modified in /templates/ja_purity_ii/html/com_content/frontpage/default_item.php on line 134
    на месте статей которые должны бы были быть. но не имеют перевода.
    У кого-нибудь есть мысль как это побороть?
    *

    stus

    • Новичок
    • 9
    • 0 / 0
    Re: Отключение не переведённых статей
    « Ответ #43 : 23.09.2010, 21:36:25 »
    Автору поста №33 респект и уважуха точно.

    Возникла проблема одна: если строчку:
    Код
    if(($language != $defaultLang) // && ($reference_table=='menu')
    заменить на
    Код
    if(($language != $defaultLang) && (isset($removekeys))
    то исчезают не только пункты меню, но валятся ошибки:на месте статей которые должны бы были быть. но не имеют перевода.
    У кого-нибудь есть мысль как это побороть?

    Zavr,все работает просто идеально:
    • автоматически были удалены непереведенные пункты меню
    • не переведенные статьи.
    Думаю имеет смысл выложить готовое решение для всех пользователей Решение данной проблемы для Joomfish Файл просто следует скопировать в папку: /components/com_joomfish/helpers  *DRINK*
    « Последнее редактирование: 23.09.2010, 21:42:23 от stus »
    *

    danilovmy

    • Осваиваюсь на форуме
    • 28
    • 1 / 0
    • Технический директор http://linguaxtrem.at/ru/
    Re: Отключение не переведённых статей
    « Ответ #44 : 06.10.2010, 10:08:27 »
    STUS - у  меня сайт на 3х языках. DE(основной)-EN-RU
    При использовании исчезла верхняя строка меню на других языках, в английском исчезли все левые-правые модули.

    Хорошо, допустим я не перевел некоторые модули. Но Верхнее меню точно переведено. Подскажи - может я что то не установил, флаг какой нибудь, на переводах. Или как указать системе с новым файлом, что перевод есть?

    Кстати, решение - опубликовать пустую статью работает и без доработок. Статья или модуль действительно не отображаются. Хи.
    « Последнее редактирование: 17.10.2010, 02:14:46 от danilovmy »
    Европейское Бюро мультиязычной поддержки linguaXtrem предлагает локализацию сайтов и переводы web-страниц. Откройте себя Европейским клиентам.
    *

    VAlex1983

    • Захожу иногда
    • 126
    • 1 / 0
    Re: Отключение не переведённых статей
    « Ответ #45 : 06.10.2010, 18:28:59 »
    Zavr,все работает просто идеально:
    • автоматически были удалены непереведенные пункты меню
    • не переведенные статьи.


    Думаю имеет смысл выложить готовое решение для всех пользователей Решение данной проблемы для Joomfish Файл просто следует скопировать в папку: /components/com_joomfish/helpers  *DRINK*

    stus - Так, верхнее меню переведено и работает, после замены файликов пропадает :( все остальное вроде как работает, но вот что делать с меню?
    *

    Kuzmitch

    • Захожу иногда
    • 150
    • 7 / 0
    Re: Отключение не переведённых статей
    « Ответ #46 : 20.10.2010, 16:31:16 »
    Если есть возможность - поделитесь платным плагином.
    Сам я заплатить за аккаунт не в силах :(

    можно писать в личку. с ув. Дмитрий!

    Re: Отключение не переведённых статей
    « Ответ #47 : 22.10.2010, 14:21:16 »
    please do share the link to this plugin or PM

    cheers
    *

    Knight1979

    • Осваиваюсь на форуме
    • 26
    • 1 / 0
    Re: Отключение не переведённых статей
    « Ответ #48 : 15.11.2010, 13:28:32 »
    Друзья, подскажите, под какую версию Joom!Fish у вас работает хак из поста №33?

    Под версию: JoomFish Full Package 2.0.4 он уже не работает.

    PS:

    Проверил версии 2.0.1, 2.0.2, 2.0.3 и 2.0.4. Проверял на Joomla 1.15.21, под разными шаблонами - непереведенные материалы по прежнему отображаются. Что я делаю не так?:)
    « Последнее редактирование: 15.11.2010, 14:42:44 от Knight1979 »
    *

    OverRND

    • Новичок
    • 17
    • 0 / 0
    Re: Отключение не переведённых статей
    « Ответ #49 : 16.12.2010, 12:59:35 »
    Я решил эту проблему так:
    1. Перевел ненужные пункты меню, указав перевод поля Метка: Menu Alias как 'notranslation'.
    2. В создал стиль css

    ul.menu_mainmenu a[href*='notranslation']{
    display: none;
    }

    где menu_mainmenu - название модуля меню, в котором нужно убрать ссылки.
    Способ не айс конечно, но от версии JoomFish уже не зависит)
    « Последнее редактирование: 16.12.2010, 13:07:32 от OverRND »
    *

    cev77

    • Новичок
    • 14
    • 0 / 0
    Re: Отключение не переведённых статей
    « Ответ #50 : 22.12.2010, 14:36:39 »
    Zavr,все работает просто идеально:
    • автоматически были удалены непереведенные пункты меню
    • не переведенные статьи.
    Думаю имеет смысл выложить готовое решение для всех пользователей Решение данной проблемы для Joomfish Файл просто следует скопировать в папку: /components/com_joomfish/helpers  *DRINK*

    Поставил я себе данное решение, и поверьте оно работает! Не переведенные модули и меню пропали! Но вот что делать если человек находиться на английской локали и допустим нажимает на русский флаг, а статья не переведена на русский, то ему отображается оригинальный контент, а хотелось бы, чтобы он попадал либо на главную страницу либо на уровень выше, как такое сделать? Может есть у кого догадки?
    *

    Dobreff

    • Захожу иногда
    • 214
    • 10 / 4
    Re: Отключение не переведённых статей
    « Ответ #51 : 24.12.2010, 14:45:16 »
    Всё на много проще - нужно на вкладке "компоненты" найти JoomFish, выбрать "Plugins" и в появившемся меню плагинов отключить JoomFish - Missing_translation!
    ай молодца! СПАСИБО!
    *

    Ursula

    • Новичок
    • 19
    • 1 / 0
    Re: Отключение не переведённых статей
    « Ответ #52 : 20.01.2011, 13:43:04 »
    JoomFish! 2.1.5 (пункт 4 опробован и с откатом на 2.0.3), Joomla 1.5.22

    1. Отключение плагина Missing_translation отключает только строчку, сообщающую об отсутствии перевода для этой статьи. Сама статья отображается в "непереведенном" виде.

    2. В настройках JoomFish в бесплатной комплектации нет пункта "Скрывать непереведенные статьи" (или я его не нашла - что странно). Видимо, пункт появляется при установке клубного плагина Content Table Localization (Silver или Gold Member).

    3. Изменение helper'ов модулей и файлов в папке components/com_content/models приводит к тому, что при попытке вызвать страничку, для которой нет перевода, выходит 404. Пункты меню для таких страниц по-прежнему отображаются.

    4. Замена JoomFish.class.php по рецепту вызывает 404 уже при заходе на главную.

    Самая засада в том, что скрыть ненужное мне удалось еще в 2009-м, но я в упор не помню, как... Может, сейчас не получается потому, что в Joomla что-то кардинально поменяли?

    Кстати, а счастливые обладатели плагина не пробовали в нем ковыряться и понять, по какому принципу он работает?
    *

    saidrustam

    • Захожу иногда
    • 100
    • 7 / 0
    Re: Отключение не переведённых статей
    « Ответ #53 : 17.03.2011, 15:09:09 »
    Добрый день всем гуру Joomla, ! 8)
    вышеуказанный хак адаптировал на мультиязычный сайт, все работает как и должно было, то есть скрывает все не переведенные элементы.

    Теперь возник еще один весьма интересный вопрос: Можно ли например написать статью не на дефолтовом языке, то есть у меня дефолтовый язык английский, второй русский. Сейчас я могу написать статью на английском, а русский перевод спрятать.

    Вопрос: могу ли я написать и отабразить статью на русском, а английский скрыть?  Может быть этот вопрос волнует не только меня, есть ли какое-нибудь решения для этого?  :D :D :D

    Заранее спасибо,

    P.S поиск юзал, юзал и поперек и этот форум но ничего не нашел! :o >:(
    *

    saidrustam

    • Захожу иногда
    • 100
    • 7 / 0
    Re: Отключение не переведённых статей
    « Ответ #54 : 23.03.2011, 07:58:56 »
    Прогеры Joomla окликнитесь пажста.
    *

    saidrustam

    • Захожу иногда
    • 100
    • 7 / 0
    Re: Отключение не переведённых статей
    « Ответ #55 : 27.03.2011, 16:42:22 »
    Спасибо всем, я сам поэкспериментировав нашол решение как сделать "Разные" статьи на разных языках. Joomfish'у тоже громадное спасибо. решение можно скачать http://joom.uz/blog-about-joomla/216-multi-lingual-website-on-joomfish.html
    « Последнее редактирование: 02.04.2011, 16:02:58 от saidrustam »
    *

    Ok-Alex

    • Осваиваюсь на форуме
    • 32
    • 0 / 0
    Re: Отключение не переведённых статей
    « Ответ #56 : 19.04.2011, 18:56:15 »
    Ну что, у кого то получилось прятать материалы на языке по умолчанию, но отображать на другом?
    *

    phaeton480

    • Захожу иногда
    • 59
    • 5 / 0
    Re: Отключение не переведённых статей
    « Ответ #57 : 11.08.2011, 18:23:58 »
    Присоединяюсь - мб еще кто подскажет если это не сработало как ращные меню к разным языкам подключать?
    *

    Alphaed

    • Осваиваюсь на форуме
    • 26
    • 2 / 0
    Re: Отключение не переведённых статей
    « Ответ #58 : 11.08.2011, 18:30:12 »
    Проше обновится до 1.7 и JoomFish не нужен.
    Долгий мой путь с Joomfisheм, конечно, привел к неким результатам, аля 2 меню для разных языков и так далее... Но это больше похоже на костыли.
    Имхо лучше один раз перелопатить сайт под новую версию, чем гемороится с костылями.
    « Последнее редактирование: 11.08.2011, 18:35:20 от Alphaed »
    *

    Shendrik

    • Осваиваюсь на форуме
    • 36
    • 2 / 0
    Re: Отключение не переведённых статей
    « Ответ #59 : 11.09.2011, 21:20:20 »
    Красавец :) Русская смекалка по-любому лучшая.

    И чтобы не выводить элементы меню, название которых выглядит как пустая строка изменил файл modules\mod_mainmenu\helper.php
    На 52 строке изменил строчку
    Код
    $menu->addNode($params, $row);  
    на
    Код
    If (trim($row->name)!= "") $menu->addNode($params, $row);

    D 1.5.22 данное решение не работает. Не подскажите, как реализовать подобное на этой версии. Очень надо.
    Чтобы оставить сообщение,
    Вам необходимо Войти или Зарегистрироваться