Перед созданием новой темы, пожалуйста, ознакомьтесь с FAQ по LinkorCMS

Как узнать логин через php

Пользователь
Сообщений: 8
Здравствуйте, такой вопрос
Что нужно написать в php, чтобы внутри новости или статьи указывался логин (именно логин) автора.
Или как вообще можно данные пользователя получать и присваивать переменным (в пределах php конечно)?
Разработчик
Сообщений: 605
Логин/id/ник создателя статьи (кто ее создал в админке) узнать нельзя, так как информация об этом не особо записывается (разве что аудит это делает, но это не надежный для этих целей инструмент. да и он для контроля последних действий администраторов предназначен).

Данные пользователя лежат в таблице users. Текущей сессией пользователя и, соответственно, данными текущего пользователя занимается класс User. У него есть метод Get(), который может отдать любую информацию о текущем пользователе (а какие ключики к нему - это смотрите метод RegisterData() или как то так). Так же есть модуль ядра users.php, где есть функция GetUserInfo(), которая даст всю информацию о любом пользователе по его id. Что-то более специфичное надо ручками вытаскивать из базы.

Применяя все это, можете добавить в таблицы news и articles новые столбцы, в которые и будете записывать id создателя (можно еще и ник на случай удаления учетной записи). Там лишь нужно отредактировать два запроса, дел на три строчки.
Супер пользователь
Сообщений: 125
или можете просто поменять в самом модуле (admin.php) запись не никнайма, а логин для статьи.
Пользователь
Сообщений: 8
Мартин, Fort, спасибо

А корректным будет такой вывод своего логина на странице пользователя?

<?php
System::database()->Select('users', "`id`='".System::user()->Get('u_id')."'");
$u = System::database()->FetchRow();
$login = SafeDB($u['login'], 30, str);
echo $login;

?>


и еще вопрос, когда создаю свой *.php и кидаю его в папку с сайтом, пишет ошибки при использовании таких строк как:

System::database()->Select

или
System::site()->SetTitle('Название вкладки');


Его (мой файл .php) нужно указать где-то в файлах сайта или я просто что-то не так делаю?

// Мартин: Не мультипостите

-- Изменено "Мартин": 13.02.2016 15:57 --
Супер пользователь
Сообщений: 125
Uchiha_Sasuke:
и еще вопрос, когда создаю свой *.php и кидаю его в папку с сайтом, пишет ошибки при использовании таких строк как:

System::database()->Select

или
System::site()->SetTitle('Название вкладки');


Его (мой файл .php) нужно указать где-то в файлах сайта или я просто что-то не так делаю?

Конечно! Его нужно подключать. В index.php или в init.php
Посмотрите внимательно последовательность подключения всех файлов и найдите самое оптимальное место под ваши нужды. И далее вызов делать из index.php. И лучше скажите зачем вообще нужен новый файл...

-- Изменено "Fort": 13.02.2016 16:28 --
Разработчик
Сообщений: 605
Uchiha_Sasuke:
А корректным будет такой вывод своего логина на странице пользователя?

Да зачем так страдать, если Get('u_login') даст то же самое.

Uchiha_Sasuke:
и еще вопрос, когда создаю свой *.php и кидаю его в папку с сайтом, пишет ошибки при использовании таких строк как:

Почитайте FAQ, я там распинался про работу системы. И мне кажется, что такие беды просто из-за отсутствия опыта в программировании и знания PHP.

Естественно, в стандартной библиотеке PHP нет никакого класса System, его реализует сама система LinkorCMS. Понятное дело, что волшебным образом оно не будет исполняться. Если обладать опытом, то никаких проблем нет в чтении кода системы и понимания работы (а по идее смотреть как сделаны используемые инструменты - это хорошая практика). Максимум какие вопросы могут возникнуть - почему некоторые вещи сделаны именно так (ответы на них не всегда можно дать логически по коду).

Ваш код или должен инициализировать LinkorCMS (то есть, он будет наверняка являться точкой входа), или представлять какую-то подключаемую часть к системе (она его подключит и исполнит), или быть встроенным в какую-то часть системы (раз вы приделываете поле с логином у новости, то логично изменять код модуля новостей).
Гости не могут отвечать на темы. Войдите или Зарегистрируйтесь.
Здесь присутствуют
(пользователей: 0, гостей: 1)
Быстрый переход: