Menu

sildar / Blog: Recent posts

Уведомление

modules\apps\contacts\contacts-web\src\main\java\com\liferay\contacts\web\internal\notifications\ContactsCenterUserNotificationHandler.java

Posted by safiullinib 2025-01-27

События

Тут пример события Logout, срабатывает перед выходом из сеанса. Деавторизация.
\modules\apps\click-to-chat\click-to-chat-web\src\main\java\com\liferay\click\to\chat\web\internal\events\LogoutPreAction.java

Posted by safiullinib 2025-01-27

Создание Gradle проекта в Eclipse

eclipse 2024-12 + gradle 8.12 + java 21.05

  1. mkdir fileSearchAndReplace
  2. cd fileSearchAndReplace
  3. gradle init
  4. type : Application
  5. implementation language: Java
  6. Java version: 21
  7. Project name: fileSearchAndReplace
  8. application structure: Single application project
  9. build script DSL: Groovy
  10. test framework: JUnit 4
  11. Generate build using new APIs and behavior: Не знаю
  12. Потом в eclipse импортируешь как gradle project
Posted by safiullinib 2025-01-23

git push

First time using Git
cd myproject
git init
# add all your files.  Users can specify file names or directories instead of '.'
git add .
git commit -a -m 'Initial commit'
git remote add origin ssh://sss@git.code.sf.net/p/sss/del
git push -u origin master
Existing repository using Git
cd myproject
git remote add origin ssh://sss@git.code.sf.net/p/sss/del
git push -u origin master
Posted by safiullinib 2024-12-08

Installing Blade CLI

Не знаю причину, но в один ясный день Liferay IDE отказался создавать mvc портлеты. Временный выход, работать через Blade CLI

Linux https://www.youtube.com/watch?v=wRluHYtmiRE
curl -L https://raw.githubusercontent.com/liferay/liferay-blade-cli/master/cli/installers/local | sh

Windows https://www.youtube.com/watch?v=KOu0vwroQ18

  1. Устанавливаем jpm4j ( https://github.com/jpm4j/jpm4j.installers )
  2. Устанавливаем blade CLI
    2.1 jpm install -f https://releases.liferay.com/tools/blade-cli/latest/blade.jar
    2.2 blade version

    blade version 3.3.0.201811151753
    Run 'blade update' to update to version 7.0.1... read more

Posted by safiullinib 2024-09-18

После установки, часть 3, Зарезервированные учетные данные

Это необходимо, так как могут зарегистрировать такие экранные имена (screenName, nik), как admin, administrator и т.д.
Что бы этого не было, идем в админку -> Instance Settings -> User Authentication
А там уже видно (Reserved Credentials).

Posted by safiullinib 2024-09-13

Включение ImageMagick и GhostScript предоставляет возможность предпросмотра документов.

В разделе "Панель управления" -> "Администрирование сервера" -> "Внешние сервисы" нужно включить и задать правильный путь к GhostScript и ImageMagick.

Windows

  1. Качаем отсюда GhostScript ( https://ghostscript.com/releases/ ), точнее отсюда ( https://ghostscript.com/releases/gsdnld.html )
  2. Качаем ImageMagick ( https://imagemagick.org/script/download.php )

После установки этих программ, в админке лайфрея пишем что-то вроде "C:\Program Files\gs\gs10.03.1\bin;C:\Program Files\ImageMagick-7.1.1-Q16-HDRI"... read more

Posted by safiullinib 2024-09-12

Используем лямбду

btnLogout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mAuth.signOut();
                Intent intent = new Intent(MainActivity.this, LoginActivity.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
            }
        });

можно писать так:

btnLogout.setOnClickListener(v -> {
            mAuth.signOut();
            Intent intent = new Intent(MainActivity.this, LoginActivity.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(intent);
        });
Posted by safiullinib 2024-01-11 Labels: Java android

Смена activity

Intent intent = new Intent(getApplicationContext(), MainActivity.class);

//чтобы очистить весь стек (кнопка назад работать не будет грубо)
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
setResult(RESULT_OK, null);
startActivity(intent);
LoginActivity.this.finish();
Posted by safiullinib 2024-01-11 Labels: android studio

Чаты

  1. https://my.livechatinc.com/settings/chat-page - 14 дней бесплатно
  2. https://www.tidio.com/panel/register - Не смог зарегистрироваться
  3. https://www.zendesk.com/login/#login - сайт не открывается
  4. https://dashboard.tawk.to/ - то что надо, бесплатно, русифицирован, гибкая настройка
Posted by safiullinib 2023-12-21

Простая форма отправки <aui:form

<%@ include file="/META-INF/resources/init.jsp" %>
<%
    //String backURL = ParamUtil.getString(request, "backURL", String.valueOf(renderResponse.createRenderURL()));
    //renderResponse.setTitle("AAAAAAAAAAAAA");
    //portletDisplay.setShowBackIcon(true);
    //portletDisplay.setURLBack(backURL);
%>
<portlet:actionURL name="/parser/parse_to_start" var="parserActionURL" />
<clay:container-fluid
    cssClass="container-form-lg"
>
    <aui:form action="<%= parserActionURL %>" method="post" name="fm">
        <aui:input name="redirect" type="hidden" value="<%= currentURL %>" />
        <clay:sheet>
            <h2 class="sheet-title">
                <liferay-ui:message key="parsing" />
            </h2>
            <div class="form-group">
                <%-- <aui:input label="folder" name="folderName" type="resource" value="123" /> --%>
                <aui:input name="url" label="URL adress" placeholder="https://site.ru/music/all_authors.php"/>
                <aui:input name="mainElement" label="Main Element" placeholder="#all_authors_list div.col-md-2.col-sm-3.col-6"/>
                <aui:input name="specificElement" label="specific element" placeholder=".author_label" />
                <aui:input name="linkText" label="Text Link" placeholder=""/>
            </div>
            <clay:sheet-footer>
                <aui:button type="submit" />
                <aui:button href="<%= currentURL %>" type="cancel" />
            </clay:sheet-footer>
        </clay:sheet>
    </aui:form>
</clay:container-fluid>
Posted by safiullinib 2023-12-03

Как спарсить сайт?

build.gradle:

dependencies {
    compileOnly group: "com.liferay.portal", name: "release.portal.api"
    implementation group: "org.jsoup", name: "jsoup", version: "1.14.3"
    cssBuilder group: "com.liferay", name: "com.liferay.css.builder", version: "3.1.4"
}

===================================================
~~~
/**

Posted by safiullinib 2023-12-03 Labels: org.jsoup Liferay 7.4 PermissionChecker Permission

gradle.properties

liferay.workspace.bundle.dist.include.metadata = true
liferay.workspace.modules.dir = modules
liferay.workspace.themes.dir = themes
liferay.workspace.wars.dir = wars
microsoft.translator.subscription.key = 
liferay.workspace.product = portal-7.4-ga103
target.platform.index.sources = false
org.gradle.java.home=C:\\java\\jdk-11.0.19
Posted by safiullinib 2023-12-02

Как посмотреть, какая версия API Liferay лежит в резозиториях

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

https://repo.maven.apache.org/maven2/com/liferay/portal/release.portal.api/

Сейчас на дворе версия Liferay Portal 7.4 GA105, но пока мы не можем с этим работать. Смотрим выше приведенную ссылку, и узнаем, что на данный момент пока 7.4.3.103-ga103... read more

Posted by safiullinib 2023-12-02

Инструкция по интернет-магазину.

1.. На гостевом сайте от админа создадим сайт из шаблона (Ускорителя) "Minium". Конечно, и без него можно начать, но все муторно создавать новые роли, каналы, и т.д.
2.. Создать организацию для клиента, например "MilkOrg".
3.. Привязать к этой организации будущего администратора, например "userMilk", с e-mail адресом "admin@milkorg.org".
4.. userMilk сделать администратором организации "MilkOrg". (Я добавил роли "Organization Administrator", "Organization Owner", "Organization Content Reviewer").
5.. Для организации "MilkOrg создаем пустой сайт и добавим пару страниц. Ну вот теперь у нас есть полноценный сайт с URL адресом http://localhost:8080/web/milkorg
6.. Далее, к администратору сайта userMilk добавляем еще дополнительные роли (Регулярные (Category Manager, Discount Manager, Operations Manager, Power User,Sales Agent))
7.. Далее, к администратора сайта userMilk привязываем с сайтом организации. Для этого идем в настройках аккаунта админа в вкладку Memberships -> Select Sites -> Liferay. Этот момент я не совсем понял, зачем нужно сначала привязать с сайтом "Liferay", но без этого не дает привязать с сайтом "MilkOrg. Сохраняем.
8.. Переходим на вкладку Roles. Там юзеру уже можем добавлять роли сайта (Site Administrator, Site Content Reviewer, Site Owner).
9.. В админке магазина создаем новый канал milkorgChannel. В вкладке Type канал привязываем с сайтом MilkOrg

Posted by safiullinib 2023-11-29

liferay-ide-updatesite-4.0.0-ga1

Официально еще не объявили, но в гитхабе есть обновление Liferay IDE 4 GA1
Я просто на днях преобрел новый ноутбук на win11. Мои действия были таковы:

  1. Скачал jdk-11.0.22 и jdk-17.0.11
  2. Скачал apache-maven-3.9.6
  3. В системных переменных установил
    3.1 JAVA_HOME = C:\java\jdk-11.0.22
    3.2 MAVEN_HOME = C:\apache-maven-3.9.6
    3.3 M2_HOME = C:\apache-maven-3.9.6
    3.4 path = C:\java\jdk-11.0.22\bin;C:\apache-maven-3.9.6\bin;C:\Program Files\Git\bin
  4. Перезагрузка компьютера
  5. Отредактировал C:\apache-maven-3.9.6\bin\mvn.cmd
    5.1 Между строк "@REM ==== START VALIDATION ====" и "if not "%JAVA_HOME%"=="" goto OkJHome" добавил строку "set JAVA_HOME=C:\java\jdk-17.0.11"
    6.
    git clone https://github.com/liferay/liferay-ide.git
    git checkout aa81b93d48c9b241161306eea7bc8828a502fce8 (18 ноября 2023 г.)
    mvn clean Verified -DskipTests
  1. Скачал eclipse-jee-2023-09-R-win32-x86_64 (К сожелению, не смог установит liferay-ide-updatesite-4.0.0-ga1 на более поздние версии eclipse)
  2. Ну вроде все работает, и без ошибок.... read more
Posted by safiullinib 2023-11-29 Labels: liferay-ide-updatesite-4.0.0-ga1

Запуск мавена (maven) под определенную версию JAVA

Иногда бывает, что mvn надо запускать под определённую джаву, но системную JAVA_HOME не можете трогать, так как используется на других проектах. В таком случаем случаем редактируем C:\maven\bin\mvn.cmd (У вас путь мавена может быть другим).
И между строк @REM ==== START VALIDATION ==== и if not "%JAVA_HOME%"=="" goto OkJHome пишем свою желаемую версию jdk.
Например:
~~~
@REM ==== START VALIDATION ====
set JAVA_HOME=C:\java\jdk-17.0.8
if not "%JAVA_HOME%"=="" goto OkJHome
~~~... read more

Posted by safiullinib 2023-11-29 Labels: maven apache-maven-3.9.5 JAVA

Новое DDM поле для web content

Истоник тут.
Но он не работает в Liferay 7.4

И так, там всего 6 java файлов:
1.. CustomFieldDDMFormFieldRenderer исправляем из (modules/apps/dynamic-data-mapping/dynamic-data-mapping-service) com.liferay.dynamic.data.mapping.internal.render.DDMFormFieldFreeMarkerRenderer.java
2.. CustomFieldDDMFormFieldTypeSettings -

Posted by safiullinib 2023-11-28 Labels: DDM Liferay 7.4

Сетка совместимости.

Liferay IDE 3.9.8 GA9 - по умолчанию использует eclipse 4.12 (Last revised May 23, 2019)

  • Однако этот IDE работает без единого нарекания в eclipse 4.20 (https://archive.eclipse.org/eclipse/downloads/drops4/R-4.20-202106111600/)
  • Eclipse 4.24 тоже работает https://archive.eclipse.org/eclipse/downloads/drops4/R-4.24-202206070700/
    Возможно, работает и наиболее поздних версиях, не проверял.... read more
Posted by safiullinib 2023-11-22 Labels: Eclipse Liferay-IDE Liferay Ide 3.9.8 GA9

asset publisher template - web content - mp3 songs

~~~
<#if entries?has_content>
<#assign portletFileRepositoryUtil = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"] />
<#assign dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"] />
<#assign dateFormat = "dd MMM yyyy - HH:mm:ss" />
<#assign ddmFieldLocalService = serviceLocator.findService("com.liferay.dynamic.data.mapping.service.DDMFieldLocalService")/>... read more

Posted by safiullinib 2023-11-21

Внешние программы для лайфрея 7.4 после установки, часть 2, nginx

Для увеличения максимального размера файла на загрузку в Nginx, необходимо изменить значение директивы client_max_body_size. Тут я разрешил до 400 МБайт.

~~~
server {
server_name f127.ru www.f127.ru;
client_max_body_size 400M;
location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_read_timeout 1800;
proxy_connect_timeout 1800;
proxy_send_timeout 1800;
send_timeout 1800;
proxy_pass http://127.0.0.1:8080;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/f127.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/f127.ru/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
~~~ ... read more

Posted by safiullinib 2023-11-05 Labels: liferay 7.4 liferay 7.3 almalinux 9.2 nginx

Внешние программы для лайфрея 7.4 после установки, часть 1, ffmpeg version 5.1.3

Подробнее тут, https://f700.ru/web/sildar_org/liferay/-/asset_publisher/fGwSEpiXTPKX/content/%D0%BF%D0%B5%D1%80%D0%B2%D0%B8%D1%87%D0%BD%D1%8B%D0%B5-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8-liferay-7.4.3-%D1%87%D0%B0%D1%81%D1%82%D1%8C-%D1%82%D1%80%D0%B8

  1. FFmpeg
    В качестве инструкции взял этот сайт https://computingforgeeks.com/install-use-ffmpeg-on-rocky-alma-9/

    dnf install epel-release
    dnf config-manager --set-enabled crb
    dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm
    dnf install --nogpgcheck https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm
    dnf install ffmpeg ffmpeg-devel
    ffmpeg -version... read more

Posted by safiullinib 2023-11-04 Labels: Liferay 7.4.3 almalinux 9.2 ffmpeg 5.1.3

bootstap video slider

Подробнее тут, https://f700.ru/web/sildar_org/liferay/-/asset_publisher/fGwSEpiXTPKX/content/bootstap-video-slider
~~~
<#assign portletFileRepositoryUtil = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"] />
<#assign dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"] />
<#assign dlFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") /> ... read more

Posted by safiullinib 2023-10-27 Labels: liferay
MongoDB Logo MongoDB