Новости Joomla

Компонент Joomla 6: Генератор LLMs.txt.

Компонент Joomla 6: Генератор LLMs.txt.

Компонент Joomla 6: Генератор LLMs.txt.

Ещё один генератор ИИ-файлов llms.txt и llms-full.txt.

Основные особенности/возможности компонента:

  • Генерация по стандарту: Автоматическое создание файла-визитки llms.txt и расширенной версии llms-full.txt с аннотированным списком материалов.
  • Интеллектуальная работа с контентом: Компонент использует мета-описания (Meta Description) из статей и пунктов меню, превращая SEO-настройки сайта в качественный контекст для нейросетей.
  • Просмотреть результат генерации файлов можно сразу в рабочей области компонента. После внесения корректив (через Настройки компонента. При отладке лучше открыть три вкладки в браузере: Настройка — Геренация/Превью — Список Материалов/Категории/Меню.) — проводим перегенерацию, смотрим результат до полной «победы».
  • Автоматизация и безопасность: Синхронизация с sitemap.xml, группировка по категориям и автоматическое создание резервных копий (.bak) при каждой генерации.
  • Гибкое управление: Возможность исключения определенных категорий и/или статей и/или пунктов меню, а также простая настройка через стандартную админпанель Joomla.
  • Подробное руководство/справка: Пошаговая инструкция для пользователя в Настройках компонента для редакторов с базовым знанием администрирования Joomla.

👉 Важно учесть.
1️⃣ Компонент Генератор LLMs.txt изначально составляет базовый список ссылок на основе sitemap.xml и сверяется с ним на предмет: запрета индексации url в robots.txt, тегов noinex/nofollow. Это экономит время на проверку «закрыть от индексации», поскольку компонент генерации Sitemap.xml уже реализовал эту задачу. Посему, формирование ссылок для ИИ имеет комплексный подход, составление грамотного/валидного/релевантного sitemap.xml никто не отменял.

2️⃣ Тексты-описания ссылок формируются из Meta Description com_content (только компонент Материалы) и выбранных пользователем Меню сайта. Важно, чтобы Meta Description были уникальными и релевантными, соответствовали базовому seo. Составленные «на отшибись» Description для ИИ — «не катит» (впрочем, для поисковых систем они тоже «не канали»).

Разработчик - участник нашего сообщества Александр Кузнецов (@newvksan).

Страница расширения

@joomlafeed

#joomla #ии #ai

👩‍💻 WT LLMs для Joomla: llms.txt, llms.json для AI-агентов.

👩‍💻 WT LLMs для Joomla: llms.txt, llms.json для AI-агентов.

Это Joomla-компонент для публикации AI-ready карты сайта и автоматической генерации файлов llms.txt, llms-full.txt и llms.json по концепции llmstxt.org.  Также о концепции llms.txt говорит Google в своей справке Lighthouse. Решение помогает LLM-моделям, AI-агентам, GEO/AI SEO-процессам и внутренним автоматизациям получать структурированные данные о сайте без ручной сборки JSON и Markdown.

С помощью WT LLMs можно:
- создать структурированное описание сайта для AI-агентов;
- управлять профилем сайта, картой интентов и каноническими страницами для этих интентов из админки Joomla;
- генерировать llms.txt и llms.json;
- использовать REST API для автоматического заполнения данных;
- отдавать публичную schema-инструкцию для AI-агентов;

В комплект компонента входит плагин markdown-версии страниц Joomla. Системный плагин Joomla, который добавляет альтернативное Markdown-представление страниц сайта. Он позволяет отдавать содержимое страницы в более чистом текстовом формате, удобном для AI-агентов, LLM, поисковых систем и технических интеграций.
Плагин добавляет в ссылки на AI-файлы.

Пакет подходит для сайтов на Joomla 5+, которым важно сделать контент понятнее для LLM, AI-поиска, ассистентов и будущих систем машинного чтения.

Видео:
- ВК Видео
- RuTube
- YouTube

Ссылки:
Страница расширения
GitHub

@joomlafeed

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

Garun

  • Захожу иногда
  • 304
  • 17 / 3
С 1-го июля в РФ можно схлопотать 300т. штрафа от роскомнадзора за нарушения закона о персональных данных.
Дефолтная форма обратной связи - достаточный повод для выставления санкций.
Есть косвенные данные (E-mail), по которым можно идентифицировать пользователя - этого вполне хватит.

В связи с чем вопросы:

1. Как добавить строку с чекбоксом "Согласен на обработку персональных данных" под строкой "Отправить копию этого сообщения на ваш адрес"?
2. Как сделать текст в строке активной ссылкой на страницу с пользовательским соглашением?
3. Как сделать так, чтобы ссылка была разной для каждой языковой версии сайта?

Прошу прощения, если тема поднималась - но я, увы, не нашёл.

Учитывая тот факт, что вопрос актуален абсолютно для всех сайтов РФ и для разработчиков, прошу коллег поделиться информацией!
Готов к труду и обороне!
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Спойлер
[свернуть]

Если, а так оно и есть, добавляем ко всяким модулям/компонентам/формам, то учитываем имя getElementById('policy') для кнопки формы. Также не забываем про disabled value, чтобы до нажатия на "галочку" кнопка была неактивной.

По желанию добавляем стили для неактивной кнопки.

Привёл просто образный пример.

Для языков разных (разные ссылки) вроде так будет:

Спойлер
[свернуть]
« Последнее редактирование: 01.07.2017, 13:55:32 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
1) пишем плагин для добавления чекблокса на согласие обработки персональных данных
2) переопределяем макет формы и выводим в нем ссылку на на страницу с пользовательским соглашением
3) пользуемся функционалом языковых замщений прямо в админке

Подробно писать как делать плагин мне что-то ниасилю, а по остальным двум пунктам можно нагуглить.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

Garun

  • Захожу иногда
  • 304
  • 17 / 3
Если, а так оно и есть
Вот файл в папке шаблона:
Спойлер
[свернуть]

После
Код
			<?php if ($this->params->get('show_email_copy')) { ?>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<?php echo $this->form->getInput('contact_email_copy'); ?>
<?php echo $this->form->getLabel('contact_email_copy'); ?>
</div>
</div>
</div>
<?php } ?>
Добавил
Код
				<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<?php echo $this->form->getInput('contact_email_agreement'); ?>
<a class="policy" href="policy" target="_blank"><?php echo $this->form->getLabel('contact_email_agreement'); ?></a>
</div>
</div>
</div>
Изменил и языковые файлы.

Строка появилась, но код таков:
Код
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<input name="jform[contact_email_copy]" id="jform_contact_email_copy" value="1" type="checkbox">
<label id="jform_contact_email_copy-lbl" for="jform_contact_email_copy" class="hasPopover" title="" data-content="Отправляет копию данного сообщения на указанный вами адрес." data-original-title="Отправить копию этого сообщения на ваш адрес"> Отправить копию этого сообщения на ваш адрес</label>
</div>
</div>
</div>

<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<input name="jform[contact_email_agreement]" id="jform_contact_email_copy" value="1" type="checkbox">
<a class="policy" href="/policy" target="_blank"><label id="jform_contact_email_copy-lbl" for="jform_contact_email_copy" class="hasPopover" title="" data-content="Согласие с условиями." data-original-title="Политика конфиденциальности">Политика конфиденциальности</label></a>
</div>
</div>
</div>

<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button class="btn btn-primary validate" type="submit">Отправить сообщение</button>
</div>
</div>
Откуда тянется для нового чекбокса "<input name="jform[contact_email_agreement]" id="jform_contact_email_copy" - ума не приложу (((
Готов к труду и обороне!
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Строка появилась, но код таков:
Откуда тянется для нового чекбокса "<input name="jform[contact_email_agreement]" id="jform_contact_email_copy" - ума не приложу (((

Оригинал кода дайте, или он из коробки? Какой адрес файла?

Если дефолтная из контактов, то вы эту правите?
/components/com_contact/views/contact/tmpl/default_form.php
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Вот пожалуйста, код по адресу:

/components/com_contact/views/contact/tmpl/default_form.php строки (включительно) 35-42:

Спойлер
[свернуть]

заменить на:

Спойлер
[свернуть]

Теперь стандартная форма с галочкой для активации и ссылкой в новом окне на Политику.
До нажатия кнопка отправки неактивная.

Осталось только в ленгвичах LPOLICY дописать в любое место (ну или свой тест с переводом):

Спойлер
[свернуть]

И создать стили нужные для .policy (или удалить вообще класс можно).

И желательно переопределить com_contact, чтоб не затиралось при обновлении.

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

Как переопределить com_contact:

Спойлер
[свернуть]
« Последнее редактирование: 01.07.2017, 16:25:08 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Taatshi

  • Гуру
  • 5258
  • 481 / 2
  • Верстаем и кодим. Обращайтесь ;)
vipiusss, ты только забыл сказать, что после каждого обновления движка код придется, с высокой вероятностью, править заново. Ядро трогать нельзя.
ВЕРСТКА, САЙТЫ ПОД КЛЮЧ, УДАЛЕНИЕ ВИРУСОВ, МИГРАЦИЯ НА JOOMLA 3, ОБНОВЛЕНИЕ  |  ОТЗЫВЫ 
Связь: telegram - Taatshi, почта - Taatshi на яндексе, Skype - Taatshi
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
vipiusss, ты только забыл сказать, что после каждого обновления движка код придется, с высокой вероятностью, править заново. Ядро трогать нельзя.

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

И желательно переопределить com_contact, чтоб не затиралось при обновлении.

И да, Taatshi, ты права про плагин, но леньки как-то делать, учитывая разные формы, расширения ...
Переопределил, изменил и забыл.
Добавлю в выше пост, как переопределить com_contact.
« Последнее редактирование: 01.07.2017, 16:11:19 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Missile

  • Завсегдатай
  • 1116
  • 90 / 1
Я просто текст добавила перед формой: отправляя сообщение, Вы соглашаетесь на обработку персональных данных.
Правда, если по уму, то нужно делать так, чтобы без активации чекбокса нельзя было оставить сообщение.
Ну и, чисто по логике (надеюсь на здравомыслие чиновников Роскомнадзора) одни лишь имя и email не могут быть персональными данными. Тем более, валидация ФИО не производится (и не может быть никак произведена).
К тому же, данные из контактной формы Joomla не хранит, емнип.
*

Garun

  • Захожу иногда
  • 304
  • 17 / 3
Цитировать
Дайте в спойлере оригинал кода этого из шаблона, я вам исправлю.
Файл default_form.php не дефолтный - клубный (легальный):

/templates/ja_sugite/html/com_contact/contact/default_form.php

 Я давал выше код оригинала - но повторить не проблема:

Спойлер
[свернуть]
Готов к труду и обороне!
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Замените файл:

Спойлер
[свернуть]
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Garun

  • Захожу иногда
  • 304
  • 17 / 3
надеюсь на здравомыслие чиновников Роскомнадзора
А я не надеюсь.
Уже есть прецеденты на предмет выслужиться - где-то в регионах чиновники тупо по алфавиту проверяют и штрафуют.
Более того - уверен, что принцип избирательного правоприменения будет вовсю применяться для шантажа и вымогательства.
Такими темпами, эта организация скоро заменит и нефть, и газ, став основным источником бюджетных доходов.
Готов к труду и обороне!
*

1-F7

  • Захожу иногда
  • 197
  • 17 / 0
Бред сумасшедший это все.
*

Garun

  • Захожу иногда
  • 304
  • 17 / 3
Бред сумасшедший это все.
Абсолютно согласен.
Никто и никогда не читает этих пользовательских соглашений, всех раздражают эти чекбоксы и дисклеймеры.
Но голосующим в типа парламенте всё это пофиг.
Палатка №6...
Готов к труду и обороне!
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
2 Garun: получилось? Файл верно изменил?
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Garun

  • Захожу иногда
  • 304
  • 17 / 3
2 Garun: получилось? Файл верно изменил?
На локалке всё корректно отображается, Спасибо.
Пытаюсь протестировать на хостинге - но там кажется глюки с почтовой отправкой.
Готов к труду и обороне!
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Я себе переопределил и изменил по выше написанному "мануалу" из стандартной коробки. Глюков нет. Всё отправляется замечательно.
Возможно у вас с формой косяки в самом шаблоне?! Без изменений работает?
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Garun

  • Захожу иногда
  • 304
  • 17 / 3
Нет, тут что-то явно у хостера.
Ошибку отправки выдаёт даже при отправке тестового письма из настроек конфига.
Готов к труду и обороне!
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Абсолютно согласен.
Никто и никогда не читает этих пользовательских соглашений, всех раздражают эти чекбоксы и дисклеймеры.
Но голосующим в типа парламенте всё это пофиг.
Палатка №6...
А вот вы не правы. Согласие на обработку пд норма для любого сайта да и закон не новый. У нас вся проблема в том как он написан и как его будут применять.  Что же до не читающих соглашения и лицензии. Советую читать с чем вы соглашаетесь. А то отрежут губы и пришьют рот к анусу другого человека.
Что же до самой формы без плагина проверки не будет скорее всего но чекбокс добавить можно и так. Либо вообще поставить отдельную форму. Ну и конечно хорошенько подумайте нужна ли вам эта форма вообще.
Я как посетитель не люблю эти формы и если есть просто ссылка на мыло я всегда ей пользуюсь. А если месенджеры или соц сети то вообще шикарно.
Кстати если так уж надо. Я как то кидал тут плагин на добавление полей в стандартные формы компонентов.
Топик был про добавление полей в конфигурацию сайта. Можно его юзать только пару строк добавить по идеи.  Хотя надо будет заняться и таки сделать под эти галочки плагин. Мб в понедельник сделаю.
Какие там две ссылки надо.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Какие там две ссылки надо.

Сссылку _blank на материал (думаю с выбором материала) и неактивная кнопка "Отправить" до "активации" checkboxа.
То что вверху я хаком привёл.
Может проще и умнее придумаете, все будут только рады.
Там ещё я пример приводил, вопрос про мультиязычность был (смена ссылки), пока тоже в виде хака.
« Последнее редактирование: 01.07.2017, 22:13:57 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Сссылку _blank на материал (думаю с выбором материала) и неактивная кнопка "Отправить" до "активации" checkboxа.
То что вверху я хаком привёл.
Да куда это не проблема. Я про правильные названия. "Политика конфиденциальности" и .....
Неактивная кнопка, это пусть сами делают. Хотя можно добавить. Я просто обязательное поле попробую сделать. А кнопка, тут на js надо, а если человек селектор поменяет.. не очень усточивая констркция, хотя попробовать можно. Сначла бэк потом прибомбасы
P.S как же меня прут контейнеры в Firefox когда надо с двух юзеров смотреть самое оно.
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Да не надо там JS.
<input type='checkbox' onchange="document.getElementById('myID').disabled = !this.checked" />
С головой хватает (может толковее и проще есть, я лучше не придумал).

Плагин просто запилить надо+выбор материала. А про текст-в плагине инпут сделать для аля "напишем сами текст".
« Последнее редактирование: 01.07.2017, 22:38:14 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Да не надо там JS.
<input type='checkbox' onchange="document.getElementById('myID').disabled = !this.checked" />
С головой хватает (может толковее и проще есть).

Плагин просто запилить надо+выбор материала. А про текст-в плагине инпут сделать для аля "напишем сами текст".
myid у кнопки может сильно отличаться однако
На фига для переопределение шаблона, а они у половины клубные, делать плагин.  Если можно просто поле добавить в форму. через Jform и тут не нужна активная не активна кнопка. Форма не пройдет.
А шаблоны это пусть люди сами пилят как душе угодно.
Кстати в форму регистрации поле я уже добавил Без вязких переопределений =) По туто checkbox потом надо будет свой тип поля сделать, чтобы удобнее было
« Последнее редактирование: 01.07.2017, 22:47:38 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Поле без переопределений и я добавлял.
Тут фишка, что все и/или на шаблонах, или "не хотим лезть ручками", или не умеем.

Все хотят ПЛАГИН!
Как говорил, Mr.Freeman: "Спать, жрать, с**ть!"
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Поле без переопределений и я добавлял.
Тут фишка, что все и/или на шаблонах, или "не хотим лезть ручками", или не умеем.

Все хотят ПЛАГИН!
Так я и сделал плагин. Который добавляет поля. Поставил и работает и более, если галки нет. То оно во век не отправиться или не зарегиструються ибо тут не только фронт проверка.
Так или в форме котакта тоже готово. Ну если правда шаблон ломаный то поле не доваиться, но и форма не отправиться =) будет орать на поля
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Давай потестим)
У меня есть чистая коробка (была), поставить 3 мин.

но и форма не отправиться =) будет орать на поля

А надо, чтоб отправлялась! В моём варианте точечно можно регулировать! (всегда верил хакам-видно сразу, что код делает;))
« Последнее редактирование: 01.07.2017, 23:13:07 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Ну Давай, только это чистая альфа, Ни настройки ни внешку ни языки я еще не делал. Чисто глака не боле того. И я уже протесил =)
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

vipiusss

  • Гуру
  • 5739
  • 344 / 11
  • Скайп: renor_
Встаёт и на переопределение, и на чистую.
Но надо выбор материала и не активная кнопка для чекбокса.

И зачем такой тултип при наведении админский?
Думаю для поисковиков title с головой.
« Последнее редактирование: 01.07.2017, 23:34:59 от vipiusss »
Миграция, установка, обновление версий Joomla  |  Создание сайтов "под ключ"  |  Эксклюзивные заглушки "offline"  |  Работа с "напильником" над шаблонами и расширениями
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Встаёт и на переопределение, и на чистую.
Но надо выбор материала и не активный чекбокс.
И зачем такой тултип при наведении админский?
Думаю для поисковиков title  с головой.
А это я еще ни делал, я тоолтип вообще откуда-то взял. А вот с ссылками проблема, скоре всего ща свой тип поля сделаю
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Замена данных сайта на данные поддомена

Автор rezchik

Ответов: 5
Просмотров: 1758
Последний ответ 05.02.2024, 11:45:36
от web1
Окно заполнение контактных данных

Автор Vlad1323

Ответов: 1
Просмотров: 1167
Последний ответ 29.03.2023, 16:47:54
от arma
Окно заполнение контактных данных

Автор Vlad1323

Ответов: 0
Просмотров: 987
Последний ответ 29.03.2023, 01:15:03
от Vlad1323
Базы данных

Автор rezchik

Ответов: 7
Просмотров: 1423
Последний ответ 16.02.2023, 22:59:29
от rezchik
Прием заявок через форму обратной связи

Автор timssky

Ответов: 6
Просмотров: 1489
Последний ответ 02.06.2022, 17:33:52
от marksetter