Жопа кота

4 заметки с тегом

joomla

Удаленная публикация постов Joomla

В joomla 4 появился rest API теперь новости можно публиковать удаленно .
Код класса который швыряет JSON в Joomla

import java.io.BufferedWriter;;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;


public class RePostreJ4 {
    private static String TOKEN_KEY = "X-Joomla-Token";
    private static String TYPE_KEY = "Content-Type";
    private static String TYPE_VALUE = "application/json;charset=UTF-8";
    private static String LANGUAGE ="\"language\":\"*\"";
    private String tokenValue;
    private String alias;
    private Integer catid;
    private  String metadesc;
    private String metakey;
    private FTPLoader ftp;
    private ParserText pt;



    private  String title = "";
    private String articletext= "";

    public RePostreJ4(String tokenValue, Integer catid, String metadesc, String metakey,ParserText pt) {
        this.tokenValue = tokenValue;
        this.catid = catid;
        this.metadesc = metadesc;
        this.metakey = metakey;
        this.pt = pt;
        this.title = pt.namePost;
        this.articletext = pt.getTextContent();

        this.alias = FTPLoader.Translator.translitor(pt.fileName);

    }
    public void goPost(String siteName){//Это отправляет пост запрос
        try {
            URL url = new URL(siteName+"/api/index.php/v1/content/articles");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("POST");

            conn.setRequestProperty("Accept-Charset", "UTF-8");
            conn.setRequestProperty("Content-Language", "ru-RU");

            conn.setRequestProperty(TYPE_KEY,TYPE_VALUE);
            conn.setRequestProperty(TOKEN_KEY,tokenValue);
            conn.setDoOutput(true);
            BufferedWriter out = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(), "UTF-8"));
            out.write(jsonCreater());
            out.flush();
            out.close();
            System.out.println(conn.getResponseMessage());

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    private String jsonCreater(){ //Этот метод создает строку JSON
        StringBuilder sb = new StringBuilder("{\"alias\":\"");
        sb.append(alias+"\",\"articletext\":\""+clear(articletext)+"\",\"catid\":"+catid+","+LANGUAGE+",\"metadesc\":\""+metadesc
                +"\",\"metakey\":\""+metakey+"\",\"title\": \""+title+"\"}");
        System.out.println(sb);
        return sb.toString();
    }
    private String clear(String stroka){//Это нужен так как если в строке будет " JSON сломаеться
        return stroka.replace("\"","'");
    }


}

Теперь можно постить посты удаленно, и геморрой проходит.

 Нет комментариев    40   2022   API   java   joomla

Обратный прокси ssl и joomla

Геморрой в том что сертификат ssl для сайта получает обратный прокси а joomla даже не в курсе что соединение должно работать по ssl по этому если включить режим https в joomla то будет циклическая пере адресация, а если этого не сделать то смешанный контент и часть сайта не будет отображаться. Есть много способов лечения этого геморроя ковырять конфиги нджинкса и апача. Либо изменениями исходников joomla. Но самый простой способ лечение этого геморроя всего в одну строку такой.

Добавляем строку в файл configuration.php следующей строкой за

<?php

вставляем код $_SERVER[’HTTPS’]=’on’; что бы начало файла выгладило как то так

<?php
$_SERVER['HTTPS']='on';
class JConfig {
        public $offline = '0';

Некорректный токен безопасности Joomla 3x

При создании материала или категории появляется сообщение «Последний запрос был отклонен, поскольку он содержит некорректный токен безопасности. Пожалуйста, обновите страницу и попробуйте еще раз.»
Что странно при этом авторизация проходит нормально. А в логе сервера что то вроде

Character set ’utf8mb4’ is not a compiled character set and is not specified in the

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

Решение: Использовать ВПН

joomla 1.index.php

Иногда случается такое что в один прекрасный момент ваш сайт на джумле не работает, а у некоторых файлов дописана цифра 1.

Это вышло из за того что у вас не правильно указанны пути к «Путь к каталогу логов *» и «Путь к каталогу временных файлов» по этому как то так получается что джумла дописывает сама 1. перед названием файлов при обновлении.

Как узнать пути я уже писал тут http://gemorr.online/all/put-k-faylu-na-hostinge/