Склад полезного кода.

Сообщения
82
Реакции
83
Помог
5 раз(а)
Тут предлагаю постить код, который так или иначе может кому-то пригодиться.

Автоматическое создание топиков IPB и XenForo:
Код:

//Находим автолоадер
$fileDir = dirname(__FILE__);
require($fileDir . '/library/XenForo/Autoloader.php');
XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');
XenForo_Application::initialize($fileDir . '/library', $fileDir);
//Берем нужный класс
$writer = XenForo_DataWriter::create('XenForo_DataWriter_Discussion_Thread');
$writer->set('user_id', 1); //Пользователь, под которым будем постить
$writer->set('username', 'robot'); //Отображаемое имя
$writer->set('node_id', 2); //Раздел, где создавать пост
$writer->set('title', 'blaaa'); //Заголовок
$writer->set('prefix_id', 'Разбан'); //Префикс
$postWriter = $writer->getFirstMessageDw(); //Пишем в первый пост (почему-то нет описания, а PhpStorm говорит что метода нет)
$postWriter->set('message', 'qweqweqwe'); // Само сообщение
$writer->save();
Код:

//Инициируем общение с IPS
$ipsInit = ipsRegistry::instance();
$ipsInit->init();
require_once(IPSLib::getAppDir('forums') . '/sources/classes/post/classPost.php');
//Создаем экземпляр класса, который добавит тему на форум
$postClass = new classPost($ipsInit);
$postClass->setForumID(2); //Раздел, где создавать пост
$postClass->setTopicTitle('title'); //Заголовок
$postClass->setPostContent('message'); //Само сообщение
$postClass->setAuthor(1); //Пользователь, под которым будем постить
$postClass->addTopic();
IPB тестировалось только на версии 3.х, на других нужны тесты.
 
Последнее редактирование:
Сообщения
87
Реакции
54
Помог
1 раз(а)
Сообщения
909
Реакции
186
Помог
4 раз(а)
Плавный переход по якорю с учетом верхнего NavBar`a на чистом JS
Может кому-то пригодится
JavaScript:
document.querySelectorAll('a[href*="#"').forEach(link => {

    link.addEventListener('click', function(e) {
        e.preventDefault();

        let href = this.getAttribute('href').substring(1);

        const scrollTarget = document.getElementById(href);
        const topOffset = document.querySelector('.navbar').offsetHeight;
        const elementPosition = scrollTarget.getBoundingClientRect().top;
        const offsetPosition = elementPosition - topOffset;

        window.scrollBy({
            top: offsetPosition,
            behavior: 'smooth'
        });
    });
});
 
Сообщения
909
Реакции
186
Помог
4 раз(а)
Нашел такую вещь, если у кого-то есть получше и посвежее можете приложить Parser SteamID Steam API
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу