Владимир Переверзев

Владимир Переверзев

Дающим карму - да воздастся! Напишите на стене что-то приятное!
+69
Репутация
-28
Рейтинг
#1 Как решить проблему с Open Graph для главной страницы? 9 апреля 2022 в 22:45
  • <?php if(!$core->uri) { ?>
  • Ваш код для главной
  • <?php } ?>
Олег Васильевич я

Коллеги, спасибо большое за обсуждение важной темы.

— — — — -

Подскажите такой момент, пожалуйста.

Я хочу настроить Open Graph не только для главной страницы, но и для страниц списков контента (разделов сайта).

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

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

Буду признателен за подсказки, идеи или готовые фрагменты кода для решения этой задачи.

#2 Open Graph - компонент - Description 9 апреля 2022 в 22:40

В этой теме есть

RSN

 RSN, спасибо большое.

Я уже тоже увидел тот топик и Вашу дискуссию.
Спасибо за ссылку.

— — — — -

Хочу ещё уточнить, у Вас удалось настроить Опен Граф не только для главной, но и для остальных страниц?

#3 Open Graph - компонент - Description 9 апреля 2022 в 14:32

Подскажите, пожалуйста, а как всё-таки — с помощью данного компонента ИЛИ в дополнение к нему — настроить микроразметку Open Graph для главной страницы сайта, для списков и других страниц сайта, КРОМЕ страниц непосредственно записей и профилей?

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

Как это реализовать? Жёстко в шаблоне прописать? А как там отличить страницы подкатегорий, наборов от страниц записей? И что конкретно туда написать?

В общем, отлично, что компонент есть. Большое спасибо автору. Но потребность он закрывает лишь частично.
 

#4 В какой файл устанавливать код Google Analytics 9 апреля 2022 в 13:12
Делать все по правилам хорошо, но ведь для того они и созданы чтобы их нарушать :)
Виктор

Виктор, вот так, как описали Вы — делать НЕ стоит.
Это влияет на качество работы аналитики.

#5 [ЕСТЬ РЕШЕНИЕ] Разделитель, горизонтальная черта в меню - как добавить? 5 апреля 2022 в 16:47

Можете поиграться со стилями под Вашу тему.

WebMan

WebMan, спасибо большое за наводку.

Я использую кастомизацию шаблона Modern.
Кастомизирую его по инструкции  Zau4man.

В файл /templates/название_моей_кастомной_темы_корректно_унаследованной_от_modern/scss/theme/_custom.scss я добавил код:

  1. /* Пункт выпадающего подменю со стилем divider - чёрточка-разделитель в главном меню */
  2. .dropdown-menu li.divider {
  3. height: 1px;
  4. margin: 2px -3px;
  5. overflow: hidden;
  6. border-bottom: 1px solid #CCCCDD;
  7. pointer-events: none !important;
  8. cursor: not-allowed !important;
  9. }
  10.  

Пункт меню оформил так, как описали Вы выше: текст и ссылка "---", css-класс «divider».
Затем обязательно компилирую свою тему.

На выходе получаю именно то, что мне нужно:

Изображение

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

Топик не закрываю, вдруг у кого-то возникнут вопросы, уточнения, дополнения.

#6 [ЕСТЬ РЕШЕНИЕ] Разделитель, горизонтальная черта в меню - как добавить? 3 апреля 2022 в 22:03

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

Изображение

Здесь мне надо разместить в разделе «Участники» шесть элементов.

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

Их можно разбить на три связанные между собой подгруппы, разделив их горизонтальной чертой:

Наша команда
Наши партнёры
------------------
Новые
Популярные
------------------
Активность
Комментарии

Вот как эту горизонтальную черту добавить?

#1 [ЕСТЬ РЕШЕНИЕ] Разделитель, горизонтальная черта в меню - как добавить? 3 апреля 2022 в 21:54

Здравствуйте, уважаемые Инстантоманы. ))

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

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

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

Подскажите, пожалуйста, есть что-то подобное в Инстанте?
А планируется к реализации?

#8 Как настроить мультиязычный сайт с языком по умолчанию - НЕ английским? 3 апреля 2022 в 20:39

Я не знаю как работают сторонние компоненты мультиязычности, сейчас буду говорить про то, что сейчас есть в коробке InstantCMS 2.15.1:

Он и не влияет. Вид сайта будет выводится на языке браузера, для одного администратора это будет например uk, для вас он в это же время будет в en. И при этом вы оба будете сидеть на сайте в одно и тоже время.

 
Loadырь

Loadырь, я правда очень признателен Вам, во-первых, за Ваш интерес и знания о мультиязычности в Инстанте, причём с фокусом именно на ядро, а не на сторонние компоненты.

А во-вторых, за то, что Вы всю эту механику — объясняете. Я читал Ваши предыдущие комментарии в разных топиках — и Ваши комментарии чаще всего самые содержательные и ценные.

— — — — -

Но! Есть предположение, что в данном случае Вы не до конца правы.

Да, безусловно есть какая-то подстройка движка под настройки браузера каждого пользователя. Но я очень внимательно изучал состояние базы данных для описанного кейса. Дело в том, что В МОМЕНТ включения мультиязычности я выбирал языком по умолчанию украинский — в базе данных для полей текстовых полей создавались дополнительные поля с префиксами _uk и _ua.

— — — — -

Хотя, возможно, и наоборот — не прав я.

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

#9 Пользовательская экспертиза компонента Translate 3 апреля 2022 в 17:10

Я знаю. Реализован в компоненте «Translate». Но компонент получился однопроектным и в массы не пошел.

Loadырь

 Loadырь, получается, этот функционал можно ковырнуть оттуда?

#10 Автоопределение языка для мультиязычных сайтов 3 апреля 2022 в 12:17

Дополнение к данной теме.

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

В частности, в файле bootstrap.php есть вот такой фрагмент кода:

  1. // Язык браузера
  2. if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) && !empty($config->is_user_change_lang)){
  3. $user_lang = strtolower(substr((string)$_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2));
  4. if($user_lang !== $config->getConfig('language') &&
  5. preg_match('/^[a-z]{2}$/i', $user_lang) &&
  6. is_dir($config->root_path.'system/languages/'.$user_lang.'/')){
  7. $config->set('language', $user_lang);
  8. }
  9. }
  10.  

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

А вот для пользователей сайта — данный код выполняет автоматический выбор языка. Но насколько корректно работает данный код — пока сказать не берусь.

Если знаете — напишите, пожалуйста.

В целом тема остаётся для меня актуальной.

#11 Как настроить мультиязычный сайт с языком по умолчанию - НЕ английским? 3 апреля 2022 в 12:11

Но при этом полагаете, что вся целевая аудитория будет смотреть на ваш сайт через ваш браузер?

Loadырь

Loadырь, Вы неверно поняли мою мысль.

Я читаю как раз ровно наоборот: что язык интерфейса в браузере конкретного администратора сайта, который выполняет настройку мультиязычности, никак _НЕ_ должен влиять на настройки сайта, ПОСКОЛЬКУ сайт он настраивает для целевой аудитории, а _НЕ_ для себя.
 
В остальном согласен. Я планирую использовать для этого компонент «Языки 2.0» от dwd.
К этому компоненту у меня есть много вопросов. Я считаю его скорее мощной, но ОЧЕНЬ СЫРОЙ заготовкой для реализации мультиязычности, чем готовым компонентом. Но в целом инструмент годный.

К компоненту Translate не присматривался. Вроде он устарел, менее полезен и актуальнен в сравнении с «Языки 2.0». Верно?

#12 Английский по умолчанию 3 апреля 2022 в 08:49

Насколько понимаю по датам сообщениям, данный топик обсуждался до выпуска ветки 2.15, то есть для версий 2.14.3 и ранее.

А у меня для сайта на версии 2.15.1 — абсолютно противоположная проблема:

1. Я настраиваю языковую локализацию по умолчанию (в моём случае она не русская и не английская).

2. Затем включаю опцию " Разрешить смену языка пользователями (подстановкой префикса в URL)", чтобы русский и английский язык были доступны на сайте в качестве языков международного общения.

3. И у меня наоборот — языком по умолчанию становится английский, а не тот, который мне нужен.

— — — — -

Вот поднятый мной топик:
instantcms.ru/forum/multijazychnyi-sait-s-jazykom-po-umolchaniyu-ne-angliiskim.html

Решение пока ищу. Разбор рекомендаций в данном топике точно будут полезны. Но если знаете конкретный ответ по моему запросу — также буду очень признателен за подсказки.

#13 Как настроить мультиязычный сайт с языком по умолчанию - НЕ английским? 3 апреля 2022 в 08:32

 Владимир Переверзев, а вы движокустанавливали с нуля на en или на ru локализации? Браузер у вас на какой язык настроен?

Loadырь

Loadырь, спасибо, что откликнулись.

И пользуясь случаем хочу поблагодарить Вас в целом за Ваш интерес и полезную информацию по теме мультиязычности Инстанта.

Я убеждён, что качественная мультиязычность Инстанту — это очень важная часть функционала данного движка.
Это именно то, что может В РАЗЫ расширить сферу применяемости движка, и соответственно — рынок использования, и соответственно — сообщество специалистов и заказчиков.

Классный движок, а по факту популярен практически только среди русскоязычных специалистов.

— — — — - 

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

Вопрос политических и даже межкультурных взаимоотношений наших стран — сейчас ОЧЕНЬ заряжен.
Чтобы не уходить в деструктивные срачи, я указал в примере немецкий.

— — — — - 

Первая попытка

Сначала развернул русскую версию 2.15.2.

Добавил к ней украинскую локализацию путём установки компонента Олега Васильевича:
instantcms.ru/addons/uk.html

Затем сначала переключил настройки сайта на украинский язык — тут всё сработало корректно.
Украинский интерфейс отображался по основным URL-ам, без префиксов.

Но! После включения галочки «Разрешить смену языка пользователями (подстановкой префикса в URL)» — весь украиноязычный контент стал отображаться по префиксу /uk/, а по оснвному урлу — стала отображаться именно английская версия. Русскоязычная — по префиксу /ru/.

Хотя в настройках оставалось установленное и изменённое лишь раз значение поля «Локализация» равное UK.

— — — — - 

Вторая попытка

Далее я взял полностью украиноязычную инсталляцию движка версии 2.15.1 с сайта Олега Васильевича:
uk.instantcms.com.ua/localization/new-instalation

Во время инсталяции — СРАЗУ выбрал украинский язык.

Но! После включения галочки мультиязычности — ситуация полностью повторилась.

— — — — - 

Третья попытка

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

Я взял украиноязычную локализацию Инстанта версии 2.14.3 также с сайта Олега Васильевича:
uk.instantcms.com.ua/localization/paket-instalyatsiyi-instantcms-versiyi-2-14-3-ukrayinskoyu-movoyu.html

Очередной раз повторил действия по разворачиванию и первичной настройке сайта.
(Честно говоря, КАЖДЫЙ РАЗ я был уверен, что мультиязычность будет работать корректно, поэтому КАЖДЫЙ РАЗ я не просто разворачивал движок, а прям очень плотно настраивал, прям вылизывал сайт — а потом херяк, оказывается, мультиязычность не работает. Мягко говоря — за… устал).

Но! Получил ровно такой же результат.

— — — — - 

 Loadырь, действительно, есть вероятность, что возможно проблема НЕ в движке, а в нюансах компонента Олега Васильевича. Поскольку я не просто копировал папку с языковым пакетом, а трижды работал с украиноязычной версией через инсталляцию — пакета или прям движка.

И насчёт браузера тоже предположения верные. Я лично предпочитаю использовать весь софт на английском. Браузер и операционная система, в которых я проводил все манипуляции — англоязычные. Но блин, я же создаю сайт НЕ для себя, а для целевой аудитории. А моей целевой аудитории нужен трёхязычный сайт (украинский, английский и русский) с языком по умолчанию — украинским. В общем, если язык браузера у того, кто включает мультиязычность на сайте — как-то влияет на язык по умолчанию (а не опция «Локализация»), то я считаю это скорее багом, чем фичей.

— — — — - 

P.S.: На всякий случай напишу заранее. Коллеги, просьба соблюдать правила сообщества, обсуждать тему по существу, в техническом плане. И не обсуждать конкретные языки и культуры.

Добавлено спустя 3 минуты

Lora, нашёл интересный топик с Вашим участием:
instantcms.ru/forum/angliiskii-po-umolchaniyu.html

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

#14 Как настроить мультиязычный сайт с языком по умолчанию - НЕ английским? 30 марта 2022 в 18:00

Ну так подставьте в private static $language_href_prefix = 'ge';

Lora

Lora, у Вас есть уверенность в том, что это поможет?
Или Вы просто так, на обум говорите?

#15 Как настроить мультиязычный сайт с языком по умолчанию - НЕ английским? 29 марта 2022 в 10:50

В версии 2.14.3 выбор языка по умолчанию работал более корректно.

Владимир Переверзев


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

Увы, но этот глюк — давнишний. :(((((

Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.