Zau4man

Zau4man

+1110
Репутация
19741
Рейтинг
#1 Как из любого ЭКШЕНА получить данные в любой ШАБЛОН? 10 декабря 2024 в 17:40

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

  1. public function actionSubcatsView(){
  2. dump('Список категорий');
  3. }

Вот про это в документации docs.instantcms.ru/dev/controllers/actions

Просто вы же в виджете хотите потом эту json строку разбирать, подготавливать и отправлять в шаблон виджета.

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

Но я не настаиваю. Просто делюсь мнением.

#2 Как из любого ЭКШЕНА получить данные в любой ШАБЛОН? 10 декабря 2024 в 16:19

 Andrew Lutz, экшн может вызвать только контроллер, поэтому примерно так 

  1. $controller = cmsCore::getController('content');
  2. dump($controller->runAction('subcats_view'));

Этим методом github.com/instantsoft/icms2/blob/1bc44cd4bc7e31ea501646b9121b9a0810ca9c57/system/core/controller.php#L444

Но имхо так делать не стоит. Сделайте отдельный компонент, в нем нужный метод для отдачи данных массива 

  1. public function returnSubcats() {
  2. return [
  3. 'test' => 'Ok Ok Ok'
  4. ];
  5. }

и уже в виджете получите эти категории примерно так

  1. $controller = cmsCore::getController('ваш_контроллер');
  2. dump($controller->returnSubcats());

минуя рендер в шаблон

О том как устроены контроллеры в движке можно посмотреть в документации docs.instantcms.ru/dev/controllers

#3 Zauth: авторизация с помощью соц. сетей 10 декабря 2024 в 15:13

Сделал в языковом файле

В 2.17.0 тоже будет поправлено.

#4 Поиск html теги и переход к результату 7 декабря 2024 в 19:10

а как Вы думаете по второму пункту ?

No Name

тут надо менять ссылку на результаты поиска, добавляя в нее фрагмент

  1. #:~:text=искомый_текст

Теория на эту тему mgearon.com/html/text-fragments/

Откройте файл templates/ваш_шаблон/controllers/search/index.tpl.php

и ПОСЛЕ

  1. <?php foreach($search_data['items'] as $item){

добавьте строку

  1. $item['url'] = $item['url'] . '#:~:text=' . urlencode($query);

и будет вам прокрутка

Изображение

Изображение

Но все не работает, если запрос пользователя более менее сложный, или задан с ошибкой, например тут

Изображение

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

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

Изображение

#5 Выравнивание изображений 7 декабря 2024 в 18:46

 geminisf, именно так, как предлагает  pupsik

Изображение является инлайн-элементом, и оно не может управлять своим выравниванием. Только его родитель, например, через text-align: center;

но тогда и весь текст станет по центру.

#6 Не появляется содержимое страницы перехода по внешней ссылке 7 декабря 2024 в 18:42

У меня ноль идей... 

#7 Поиск html теги и переход к результату 7 декабря 2024 в 09:00

1. А это зачем? Зачем решать проблему, которую сами себе создаете. Обычный пользователь, которых 99%, не будет заниматься этим...

#8 Выравнивание изображений 7 декабря 2024 в 08:59

 geminisf, нужны еще подробности. Так тема умрет, не ленитесь подробнее описывать проблему.

Покажите скриншот, какое изображение собираетесь выравнивать. Оно внутри поля типа html? Или это поле типа изображение, или изображения? У вас modern без правок или вы делали свой шаблон вывода типа контента.

#9 Не появляется содержимое страницы перехода по внешней ссылке 7 декабря 2024 в 08:57

Тут не получится «вылечить» без ссылки на сайт с возможностью повторить проблему.

#10 Zauth: авторизация с помощью соц. сетей 6 декабря 2024 в 08:13

Давайте сделаем. Сейчас используются иконки из набора svg, которые есть в modern.

И кнопки входа выглядят так

Изображение

По высоте они проходят :)

Что надо добавить по гайдлайнам :)

1. надо добавить название сервиса справа от значка

1.1. Почта Mail
1.2. Одноклассники

что напишем у остальных? 

2. Поправим цвета на фирменные

1.1. #0077ff
1.2. #ff7700

Какие у остальных?

3. Иконки оставляем? или где-то можно найти брендовые png-шки?

#11 Zauth: авторизация с помощью соц. сетей 5 декабря 2024 в 17:02

не подскажите, файл, в котором поменять иконки…

RSN

Подскажу. templates\modern\controllers\zauth\list.tpl.php

Но лучше не править этот файл, а создать новый, типа list_custom.tpl.php 

А затем выбрать его в настройках компонента. Такая опция есть давным-давно.

#12 Как единственному классу присвоить несколько через сss? 4 декабря 2024 в 08:10

Видимо в такие моменты верстают скриптами, но я стараюсь их избегать

Happy

а как их избежать, если загрузка идет средствами js? Т.е. изначально блок пустой. Потом загрузили 2 фото, и там появилось 2 блока. Кроме как с помощью js класс блока не обновить. Есть css функции developer.mozilla.org/en-US/docs/Web/CSS/CSS_Functions Есть даже функция подсчета. Но как ее использовать для стилизации. Не вижу вариантов без Js

#13 Как единственному классу присвоить несколько через сss? 3 декабря 2024 в 07:34

но нет разделяющих классов в основном контейнере

Happy

так добавьте их в верстку. Там где идет foreach для изображений, сделайте count($images) чтобы получить количество изображений.

И добавьте нужный класс к контейнеру с изображениями.

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

Примерно так

Изображение

#14 [ЗАКРЫТО] Как сделать заголовок h1 на всю ширину экрана? 29 ноября 2024 в 20:05
#15 [ЕСТЬ РЕШЕНИЕ] "Редактировать категорию" - дополнительное поле. 29 ноября 2024 в 12:33

 Andrew Lutz, пойдет. Под разное содержимое надо подбирать свой тип полей. Для текста — text, для небольших строк — varchar и т.п.

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

Про типы данных в mysql www.mysql.ru/docs/man/Column_types.html

🍪Мы используем файлы cookie для работы сайта. Читать подробнее.