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

zaboich

  • Осваиваюсь на форуме
  • 37
  • 11 / 0
Сперва, большое спасибо Смотрящему на луну за перевод ( 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".
Но мне это совсем не нужно! Будет намного лучше если он просто не будет показывать статьи, а самое главное - не показывать пункты меню для которых нет перевода!
Может кто-нибудь занимался подобной проблемой?
*

underworld_jenia

  • Новичок
  • 2
  • 1 / 0
Re: Отключение не переведённых статей
« Ответ #1 : 26.02.2008, 00:51:17 »
у меня таже проблема, как спрятать непереведенные статьи???
Насколько я понял, при отсуствии перевода мы можем:
1. Отображать оригинальный контент.
2. Текст по умодчанию.
3. Оригинальный контент с информацией.
4. Оригинальный контент в доступных переводах.


Но как вообще спрятать непереведенные статьи???
*

alsstud

  • Новичок
  • 5
  • 0 / 0
Re: Отключение не переведённых статей
« Ответ #2 : 27.03.2008, 11:24:21 »
В JoomFish 1.8 у материалов появилась возможность указывать "перевод" для полей "Начало публикации" и "Конец публикации". Пытался менять их, чтобы скрыть статьи (поставить "конец публикации" задним числом), но это не помогает :(
Может, есть еще какие-нибудь идеи?
На буржуйских форумах тоже тихо...
*

denton100

  • Осваиваюсь на форуме
  • 13
  • 1 / 0
Re: Отключение не переведённых статей
« Ответ #3 : 27.03.2008, 12:26:10 »
Здравствуйте. Не ужели не кто не решил проблему описанную выше? Делал сайты с джумфиш, но в них все содержимое было переведено на все языке. А теперь, нужно чтобы не переведеные статьи не отображались.
*

alsstud

  • Новичок
  • 5
  • 0 / 0
Re: Отключение не переведённых статей
« Ответ #4 : 27.03.2008, 13:29:20 »
В общем, нашел некий способ, но, мягко говоря, через задницу.
В файл \administrator\components\com_joomfish\contentelements\content.xml добавляем строчку в секцию <table name="content">:
<field type="text" name="state" translate="1">Publication</field>
При редактировании материала в JoomFish выставляем в поле Publication значение "0" (без кавычек).
Таким образом мы получим в том месте, где обычно отображается материал, строчку типа "You are not authorized to view this resource. You need to login." Убрать ее можно, подправив соответствующий языковой файл в папке \language\ (например, поменять на "&nbsp;") - константы _NOT_AUTH и _DO_LOGIN

Если кто-то поделиться более грамотным способом (к примеру, заставит работать параметр "Конец публикации", о котором я писал выше) - был бы очень благодарен.
« Последнее редактирование: 27.03.2008, 13:43:17 от alsstud »

Re: Отключение не переведённых статей
« Ответ #5 : 25.04.2008, 17:54:52 »
Есть еще один способ убрать эту надпись, но именно убрать надпись, а не отключить непереведенный модуль или статью.
В языковых файлах ищем DEFINE('_EMPTY_BLOG','There are no translations available')  и просто убираем этот текст, оставляя DEFINE('_EMPTY_BLOG','').
все ^-^

*

andralexx

  • Новичок
  • 8
  • 0 / 0
Есть еще один способ убрать эту надпись, но именно убрать надпись, а не отключить непереведенный модуль или статью.
В языковых файлах ищем DEFINE('_EMPTY_BLOG','There are no translations available')  и просто убираем этот текст, оставляя DEFINE('_EMPTY_BLOG','').
все ^-^




Всё на много проще - нужно на вкладке "компоненты" найти JoomFish, выбрать "Plugins" и в появившемся меню плагинов отключить Joomfish - Missing_translation!!!
*

Olg

  • Завсегдатай
  • 1170
  • 88 / 2
Re: Отключение не переведённых статей
« Ответ #7 : 14.02.2009, 20:21:54 »
Конечно проще в J1.5...
*

obormot

  • Захожу иногда
  • 68
  • 1 / 2
Re: Отключение не переведённых статей
« Ответ #8 : 15.02.2009, 00:19:31 »
Всё на много проще - нужно на вкладке "компоненты" найти JoomFish, выбрать "Plugins" и в появившемся меню плагинов отключить Joomfish - Missing_translation!!!
andralexx, не понял, это ты про какой ЖумФиш, какую Жумлу говоришь?
*

Sense

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Re: Отключение не переведённых статей
« Ответ #9 : 19.02.2009, 09:57:09 »
отключил, не заметил никаких изменений, как показывались непереведенные статьи так и показываются
*

trampa23

  • Новичок
  • 5
  • 0 / 0
http://www.joomfish.net/en/join-the-club?page=shop.product_details&flypage=flypage_subs.tpl&product_id=2&category_id=2

безобразие! Все, о чем мы тут мечтаем и думаем, что это недоработка - это на самом деле чистой воды маркетинг (aka вымогалово в размере 60!!!! евро)
перейдите по ссылке выше - читайте и плачьте  >:(
и припрятать непереведеные статьи оказывается можно...
и меню структуру сделать разную для разных языков...

плохо что укрыли жизненно небходимую фичу от людей
а кто 60 евро сам заплатил уже - хрен в свободный доступ выложит (так что думайте, гадайте - где это выцарапать)

по сути бесплатно дают пользоваться кастрированной версией продукта
некузяво как то...
« Последнее редактирование: 22.03.2009, 01:57:32 от trampa23 »
*

Olg

  • Завсегдатай
  • 1170
  • 88 / 2
Re: Отключение не переведённых статей
« Ответ #11 : 22.03.2009, 13:20:00 »
В чём безобразие-то? Люди делают немаленькую работу и бОльшую часть результатов отдают бесплатно. Причём эта часть -- вполне работоспособная система. Вполне естественно, что они хотят получить хоть какое-то вознаграждение.
*

Siaba

  • Новичок
  • 8
  • 1 / 0
Re: Отключение не переведённых статей
« Ответ #12 : 27.03.2009, 19:36:22 »
Я целый день бился над решением этой проблемы и вуаля!!!
Нет ничего лучше русской смекалки, которой я горжусь.
Все очень просто!!!!
Для того, чтобы избавиться от ненужных ссылок и пунктов меню, надо перевести эти самые ссылки как "пробел" и опубликовать их! Все просто=)
*

New_guy

  • Осваиваюсь на форуме
  • 35
  • 0 / 0
  • Главное не спалится...
Re: Отключение не переведённых статей
« Ответ #13 : 17.04.2009, 13:46:19 »
Я целый день бился над решением этой проблемы и вуаля!!!
Нет ничего лучше русской смекалки, которой я горжусь.
Все очень просто!!!!
Для того, чтобы избавиться от ненужных ссылок и пунктов меню, надо перевести эти самые ссылки как "пробел" и опубликовать их! Все просто=)
Красавец :) Русская смекалка по-любому лучшая.

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

zeroowl

  • Новичок
  • 7
  • 4 / 0
Re: Отключение не переведённых статей
« Ответ #14 : 23.04.2009, 17:54:34 »
С меню классно! у меня заработало.
Респект.
А кто-то смог без клубных плагинов , отключать непереведенные статьи? В списках статей?

Может тоже как-то делать пустой перевод Тайтела и в com_content , пустые тайтелы не показывать?

я с кодом Joomla не знаком... но очень надо решить эту проблему а 60 евров бюджет не выдерживает
 :(
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Отключение не переведённых статей
« Ответ #15 : 23.04.2009, 18:14:18 »
Все, о чем мы тут мечтаем и думаем, что это недоработка - это на самом деле чистой воды маркетинг (aka вымогалово в размере 60!!!! евро)
ну если честно, мне слабо верится, что то что они пишут, реально реализуемо...

Ведь по сути ситуация очень простая - Joomla делает выборку из БД, а JoomFish на лету подменяет значения полей для указанных таблиц на их переводы. Но при этом, JoomFish по идее не имеет никакого контроля над количеством выбираемых записей. Поясню, что я имею в виду...

Вот у нас есть главная страница и настройка - показывать по 10 новостей на страницу. Стандартный компонент com_content делает запрос к БД и указывает, что нам нужно 10 записей, начиная с нулевой. Происходит выборка 10 записей, дальше из кустов появляется JoomFish и производит подмену набора полей у списка записей. Потенциально, он может и уменьшить этот список, убрав из него те записи, которые не имеют перевода, но тогда их будет на странице не 10, а, допустим, 8... И это уже совсем не то, что мы ожидаем...

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

zeroowl

  • Новичок
  • 7
  • 4 / 0
Re: Отключение не переведённых статей
« Ответ #16 : 23.04.2009, 19:39:35 »
 :D Да...
Спасибо за комент,
а то я уже вроде нашел где внутри Joomla , эти записи повыкидывать, но решение проблемы 10 элементов так совсем не решишь...

Теоретически в ядро где запрашиваются 10 элементов, надо изменить запрос , Если это не дефолтный язык ... чтобы выбирал только те у кого есть переводы

Как такое решение? И где этот запрос лежит...  не подскажете? я бы еще попробовал поковырять.
*

zeroowl

  • Новичок
  • 7
  • 4 / 0
Re: Отключение не переведённых статей
« Ответ #17 : 23.04.2009, 20:26:39 »
В продолжение ...
нашел все запросы к таблице контента _content ( com_content/model/*.php и com_frontpage/*.php)
добавляя еще один join

' 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 '.

получается фильтровать только то что нам надо...

осталось добавить условие что это не дефолтовый язык...
Дефолтеный язык получается через
      $registry =& JFactory::getConfig();
      $defaultLang = $registry->getValue("config.defaultlang");

Как получить значение текущего языка? пока не нашел... можно конечно из _GET но это как-то не по джумловски... ведь может быть разная настройка СЕО или еще что-то.

Помогите еще чуть-чуть  и сделаем мы супер хак и без 60 евров :)
*

zeroowl

  • Новичок
  • 7
  • 4 / 0
Re: Отключение не переведённых статей
« Ответ #18 : 23.04.2009, 21:48:42 »
Процес пошел хорошо. :)
На моем сайте все заработало отлично.
Единственное что надо, для мулти-язычных сайтов ( более 2-х языков) надо будет еще подкрутить связку по языку...

И конечно прописать это во все модули, типа последние новости и так далее.

а сейчас решение токое в components/com_content/models/
category.php, section.php , frontpage.php
меняем функцию _buildQuery()
в начале фунуции добовляем

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

изменяем определение 
      $query = ХХХХХ

добовляем
($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

доделаю еще связку с языком и выложу тогда исправленые файлы





*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Отключение не переведённых статей
« Ответ #19 : 24.04.2009, 09:54:10 »
Хм, в принципе ты прав, таким образом можно решить проблему, но это правда будет не универсальное решение - придется делать вот такие хаки запросов для каждого из компонентов. С другой стороны, я перечитал их описание - они и не обещают универсального, а речь идет именно о такой фиче для материалов...

Надо подумать, может действительно это можно просто реализовать плагином... Пойду посмотрю исходники JoomFish...
*

Alphaed

  • Осваиваюсь на форуме
  • 26
  • 2 / 0
Re: Отключение не переведённых статей
« Ответ #20 : 03.06.2009, 18:05:32 »
Случаем никакого централизованного решения не появилось?
*

zeroowl

  • Новичок
  • 7
  • 4 / 0
Re: Отключение не переведённых статей
« Ответ #21 : 16.06.2009, 21:53:12 »
Пока только работает изменением в разных пхп файлах...
все отлично
только после каждого апгрейда приходится изменять заново :)

Но езе одну проблему так и не решил.
Как написать статью которая будет изначально не на дефолтном языке сайта.

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

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Отключение не переведённых статей
« Ответ #22 : 16.06.2009, 23:30:58 »
Случаем никакого централизованного решения не появилось?
честно скажу, поковырялся дня полтора, поэкспериментировал, но решения не получилось... а менять запросы в куче файлов это все-таки не совсем правильно.
*

Alphaed

  • Осваиваюсь на форуме
  • 26
  • 2 / 0
Re: Отключение не переведённых статей
« Ответ #23 : 17.06.2009, 11:08:24 »
Оплатил я эту gold хрень. Может я что то не понял, но чет нихрена оно не скрывает, даже пункты меню для которых выключен перевод, может я что-то не то делаю, пока детально не разбирался.
После получения gold аккаунта появилась возможность скачивания:
1. Menu Localisation (Joomfish Plugin)
Version 1.1 of a Joomfish plugin that enables Menu Localisation. You will also need the associated admin module
Note that you must translate at least one menu item before this plugin will work.

2.Menu Localisation (Administrator Module)
This Admin module goes with the Joomfish plugin to enable easy menu localisation.  This admin module should be enabled in the "status" position.
A more detailed explanation will follow but the when editing a menu item you will see a new "Localise" toolbar button.  Clicking this opens up a dialog that enables you to specify the languages for which the menu item should be displayed.
A more detailed explantion will follow soon but in the meantime this screenshot should answer most of your questions.
Version 1.1 fixes:
    * form submission problem encountered by some users
    * Incorrect icon path when Joomla is installed in subdirectory

3.Advanced Joomfish Language Aware Router (2.0 Stable)
This is the stable version of the advanced Joomfish router - this translates urls for all core components beyond what the router in the main release does. This is what manages the translatable SEF URLs on the Joomfish website.
After installing you should make sure this system plugin is the first system plugin and you should also disable the basic JF Router plugin.
We anticipate extending this to support the most common Joomla 1.5 native 3rd party at a later date.
Some users have experience problems with this extension when running PHP4 therefore it should only be used on servers running php5.

4. Contenttable Localisation 2.0.3 Stable
Stable release of Joomfish plugin that allows you to suppress untranslated content items from most Frontpage and Content views.
NB This release required Joomfish 2.0.3 and Joomla 1.5.10 or later to function correctly.
Changes from build RC1 - resolves latest news module ignoring item count from translated parameters
Changes from build 1045/Beta2 - resolves "class_exists" php notice for php4 users
Changes from build 1042 - now handles mostread and newflash Modules too.
Changes from build 1036 - now handles Latest News Module too.

5.Joomfish Plus Final Release Candidate
This is the Final Release Candidate of "Joomfish Plus 2.0" - a tool that complements Joomfish and allows you to manage translations from the frontend of your website.
1. Translators no longer need to have access to the backend of your site
2,. You can allocate translators to specific languages - they will not be able to translate into languages other than the ones you specify in the backend of the site
3. You can also specify if translators can publish translations or delete existing translations - this allows for a basic translation workflow process where designated translators approve and publish other translations
I have put some preliminary documentation together which you can download here.

6.GeoIP language lookup
This is a new club plugin that enables site administrators to direct first time visitors from specific countries to specific languages/locales in Joomfish enabled Joomla websites.
You will require a subscription to http://www.maxmind.com/app/web_services#country to operate.
If this plugin is enabled then first time Joomfish will use the GeoIP plugin instead of the browser language determination to set the visitor's page language.  Note that if the visitor has chosen a language using the Joomfish module, or the language is specified by the URL or the Joomfish language cookie has been set then these are used instead of the GeoIP lookup - this means that the lookup is only used for "first time visitors".

7. geolangsys.zip
This is an alternative version of the GeoIP plugin that should work with 3rd party SEF components/plugins.
Make sure this plugin is enabled as the first of the system plugins otherwise it will not work.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Отключение не переведённых статей
« Ответ #24 : 17.06.2009, 11:13:35 »
Оплатил я эту gold хрень. Может я что то не понял, но чет нихрена оно не скрывает, даже пункты меню для которых выключен перевод, может я что-то не то делаю, пока детально не разбирался.
а про пункты меню они кажись и не обещали, речь же шла только о материалах:

4. Contenttable Localisation 2.0.3 Stable
Stable release of Joomfish plugin that allows you to suppress untranslated content items from most Frontpage and Content views.
*

Alphaed

  • Осваиваюсь на форуме
  • 26
  • 2 / 0
Re: Отключение не переведённых статей
« Ответ #25 : 17.06.2009, 11:27:59 »
так и статьи не отключаются, в блоге категории рисуются все статьи (непереведенные с подпистью что нет перевода) хрень какая-то.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: Отключение не переведённых статей
« Ответ #26 : 17.06.2009, 11:29:51 »
Значит надо их техподдержку начинать мучать, что за фигня. Деньги-то заплачены, а обещанного функционала нет...
*

dimas103

  • Новичок
  • 5
  • 0 / 0
Re: Отключение не переведённых статей
« Ответ #27 : 17.06.2009, 15:06:07 »
доделаю еще связку с языком и выложу тогда исправленые файлы

Жаль что мы так и не услышали начальника транспортного цеха. ;)  Хотелось бы получить конечное решение от автора.
*

zeroowl

  • Новичок
  • 7
  • 4 / 0
Re: Отключение не переведённых статей
« Ответ #28 : 17.06.2009, 16:56:56 »
Жаль что мы так и не услышали начальника транспортного цеха. ;)  Хотелось бы получить конечное решение от автора.

Есть решение которое работает как хак, так и не сделал поддержку более 2-х языков...
Если надо могу выложить то что есть...
*

zeroowl

  • Новичок
  • 7
  • 4 / 0
Re: Отключение не переведённых статей
« Ответ #29 : 17.06.2009, 19:07:04 »
Работающий результат

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

И во всех .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


[вложение удалено Администратором]
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться