• Главная
  • Support
  • Forum
  • Cobalt 8
  • Проблема перехода к статье с главной страници при включенной мультиязычности

AlexMoiseyuk VIP
Total posts: 123
05 Март 2014 09:51

есть модули на главной странице. Cobalt -Module-Records, в частности один из них галерея (bx-slider).. при нажатии на статью должен осуществлятся переход к странице статьи , но это возможно только если типу присвоен ITEM ID - соответсвующий пункт меню. но с этим проблема, так как есть 2 разных пункта меню для разных языков. вариант создания пункта в неопубликованом меню и присваивание типа ему не подходит, из-за надобности сохранения подсветки активного пункта меню.

Последние изменения: 17 Март 2014


Sergey
Total posts: 13,748
05 Март 2014 16:59

Да здесь есть такое. В джумле получается 2 меню на 2 языка.

К сожалению решение для этого не простое.

Вам надо определится будет это паралельный или зеркальный перевод. Если это паралельный то проблем нет на каждый язык свой тип. Если зеркальный то тогда в меню надо создавать ссылку не на раздел а алиас. Тоесть например в основном языке создаем ссылку на раздел и в втором языке создаем алиас на тот же раздел но в другом языке.

В таком случае вам надо будет поставить один элемент и он будет коректный для всех ссылок.

Тоесть другими словами если в вас на 2 разных языка, 2 разные ссылки в меню то и вести они должны к разным разделам. Почитайте это

http://docs.mintjoomla.com/en/cobalt/translation-and-multilinguage/


AlexMoiseyuk VIP
Total posts: 123
05 Март 2014 18:49

я читал.. зеркальный перевод это удобно, но не хотелось бы подключать сторонние компоненты, тем болле, что Фаланг мне не получилось коректно настроить.

более всего мне понравился смешаный перевод, что кобальт, как мне показалось очень хорошо позволяет. Основная загвоздка в этом, что типы у меня - это Видео и Галерея. тоесть я просто после создания статьи, нажимаю "сохранить как копию" и мне достаточно иметь один раздел с двумя копиями статтей. А если создать 2 раздела то нужно будет в 2 раза больше материалов загружать, так как в другой раздел не скопируешь статью таким образом (насколько я знаю). и нет возможности "вибора значения поля Upload с папки".

стоить так же сказать, считаю, что при попытке скопировать статью с видео получил ошибку

Warning: Missing argument 2 for CFormFieldUpload::copyFile(), called in Z:\home\43\www\components\com_cobalt\fields\video\video.php on line 56 and defined in Z:\home\43\www\components\com_cobalt\library\php\fields\cobaltupload.php on line 422
Fatal error: Call to a member function get() on a non-object in Z:\home\43\www\components\com_cobalt\library\php\fields\cobaltupload.php on line 432

попробовал решение с алииасом, для чего создал "внешнюю ссылку", куда скопировал index.php?option=com_cobalt&view=records&section_id=2 к статье с главной переходит, но id пункта меню открытой страници остается "Главная" с соответсвенно шаблоном главной и т.п. так же ссылка на раздел основного языка виглядит: www.43/галерея.html а соответсвующая русского (внешняя) - www.43/ru/галерея/статьи/2-gallery.html

и один с основных моментов. в джумле (в том числе и в статьях) есть такое понятие как "асоциации". думаю,что вы конечно же знаете что это. в кобальте есть такая возможность или только переход к стаьям другого языка через главную и поиск?


AlexMoiseyuk VIP
Total posts: 123
05 Март 2014 20:58

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

и если уже есть язык:все, то ни про какие асоциации даже пунктов меню не может быть и речи,

а если типам и разделам не присвоены пункты меню, то асоциации пунктов (разные ссылки на разделы для разных языков) работают хорошо. получается илюзия паралельного перевода и даже подсветка активных пунктов отлично работает.. но опять же модули на главной =(


Sergey
Total posts: 13,748
06 Март 2014 04:29

Да создать языковые асоциации было бы не плохо. Это помоглобы наверно и переключать язык в полном виде статьи и оставаться в ней при пралельном переводе. Но пока что это не видится возможным.

Barabashka тоесть я просто после создания статьи, нажимаю "сохранить как копию" и мне достаточно иметь один раздел с двумя копиями статтей

На самом деле при копировании статьи файлы все равно копируются. Так как если удалить одну статью удалятся и файлы, и тогда их не будет и во второй статье.

Barabashka а если типам и разделам не присвоены пункты меню, то асоциации пунктов (разные ссылки на разделы для разных языков) работают хорошо. получается илюзия паралельного перевода и даже подсветка активных пунктов отлично работает.. но опять же модули на главной =(

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

Barabashka зеркальный перевод это удобно, но не хотелось бы подключать сторонние компоненты, тем болле, что Фаланг мне не получилось коректно настроить.

В реале фаланг и не работает. Хотя они отделились от джумфиша, эту возможность переводить статью во время редактирования они убрали оказывается как это выяснилось позже.

Barabashka попробовал решение с алииасом, для чего создал "внешнюю ссылку", куда скопировал index.php?option=com_cobalt&view=records&section_id=2 к статье с главной переходит, но id пункта меню открытой страници остается "Главная" с соответсвенно шаблоном главной и т.п. так же ссылка на раздел основного языка виглядит: www.43/галерея.html а соответсвующая русского (внешняя) - www.43/ru/галерея/статьи/2-gallery.html

надо было не внешнеюю ссылку а менно тип ссылки алиас. Не знаю как по русски будет но этотип кторый ссылкается на другую ссылку меню.

Надо ошибкой работаем.

И еще есть идея. Я думаю что для модулья рекордс можно просто добавить параметер айтем айди который промто перезапишет основной для записей в этом моделе и просто ставить 2 модуля по одному на язык. Это прекрасно все решило без каких либо хаков.


Konstantin
Total posts: 1,113
06 Март 2014 04:57

Barabashka стоить так же сказать, считаю, что при попытке скопировать статью с видео получил ошибку

Исправлено.


AlexMoiseyuk VIP
Total posts: 123
06 Март 2014 15:49

Sergey На самом деле при копировании статьи файлы все равно копируются. Так как если удалить одну статью удалятся и файлы, и тогда их не будет и во второй статье.

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

Sergey Это кастом роутер. Надо скопировать и поправить файл роутера. И там сделать разбор полетов. Смотрть что за раздел и что за язык, и подставлять соответвующий айтем айди

для меня это пока сложновато. как-то пытался разбираться в нем, так и не понял..

Sergey надо было не внешнеюю ссылку а менно тип ссылки алиас. Не знаю как по русски будет но этотип кторый ссылкается на другую ссылку меню.

так вот "галерея" это, насколько я знаю, и есть алиас моего пункта меню? я не до конца понимаю. у меня есть пункт меню с алиасом "галерея" и который назначен типу кобальта Галерея. мне для другого язика нужно чтобы алиас был другой, но это все равно оставалось ссылкой на раздел

Sergey Я думаю что для модулья рекордс можно просто добавить параметер айтем айди который промто перезапишет основной для записей в этом моделе

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


AlexMoiseyuk VIP
Total posts: 123
06 Март 2014 16:39

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


Sergey
Total posts: 13,748
07 Март 2014 06:39

Barabashka а с другой стороны, насколько это отличается от зеркального перевода?

Ну это и есть зеркальный перевод. Просто средства его исполнения не фаланг а предпологаемый встроеный функционал.

Нечно подобное уже запланировано для Кобальта 9.


AlexMoiseyuk VIP
Total posts: 123
07 Март 2014 10:24

а можете что-то посоветовать на счет перезаписи айтем айди настройками модуля? это, конечно, может выглядеть смешно, но код на подобии этого не помог =) in file url.php строка 65

if(!empty($module->id) && $module->params->get('params.mod_records_itemid', 0))
{
$itemid = $module->params->get('params.mod_records_itemid');
}

mod_cobalt_records.xml

<field name="mod_records_itemid" type="menuitem" label="CLMENUIID">
    <option value="">XML_OPTION_NOMENUITEM</option>
</field>

хотя только что увидел, это слишком мало)


Sergey
Total posts: 13,748
07 Март 2014 12:30

Да что то наподобие этого я и хотел сделать.

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


AlexMoiseyuk VIP
Total posts: 123
07 Март 2014 17:38

Sergey Да что то наподобие этого я и хотел сделать.

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

отлично, спасибо большое. Отпишите сюда, пожалуйста, когда будет готово, чтобы я мог проследить


AlexMoiseyuk VIP
Total posts: 123
07 Март 2014 20:40

уважаемый Сергей. я просто переполнен благодарностью и признательностю за Вашы советы, труди, доброжелательность и отзывчивость!

я не мог до конца понять Вашего совета, пока случайно не увидел некоторую особенность джумлы, и не понял значение Ваших слов. поскольку имеем для 2-х языков 2 разных меню, то в каждом можем создать аналогичный пункт меню, который будет вести на тот же, допустим, раздел Кобальта: Галерея. обеим им можна дать абсолютно одинаковый алиас, например galery и без всяких проблем присвоить типу айтем айди, например основного языка, ссылающийся на интересующий нас раздел. и при переходе с модуля будем, какой бы не был язык, иметь ссылку типа хттп://домен/язык/galery/статья/1-статья.хтмл единственная обязательная особенность - типу нужно присваивать айтем айди, а резделу - нет

иногда волшебство - это просто)


Sergey
Total posts: 13,748
09 Март 2014 15:37

Barabashka я не мог до конца понять Вашего совета, пока случайно не увидел некоторую особенность джумлы, и не понял значение Ваших слов.

Я раз что поняли это. Это одна из самых сложных частей джумлы для поинмания. Я знаю людей которые пользуются джумлой 5 лет и до сих пор не понимают что такое и для чего нужно Itemid.

Напомните мне в этой теме к концу недели. Я постораюсь это включить в следующее обновление.


AlexMoiseyuk VIP
Total posts: 123
11 Март 2014 21:18

напомню в пятницу


AlexMoiseyuk VIP
Total posts: 123
14 Март 2014 23:36

Sergey Напомните мне в этой теме к концу недели. Я постораюсь это включить в следующее обновление.

почти как и обещал, напоминаю


Sergey
Total posts: 13,748
17 Март 2014 13:02

Добавил в следующию версию.

Replay Topic
Uploading
Click here to upload and insert file from you hard drive: (png, gif, jpg, jpeg, zip, txt, rar)
Работает на Cobalt