Унификация и стандартизация для создателей модулей и скинов
1
Есть несколько предложений ко всем, кто создает модули и скины для ЛС. И к ведущему разработчику тоже, конечно.
Читать дальше
Читать дальше
Модуль Админпанель
9
Огоревал я, наконец, модуль администрирования. Что он позволяет делать:
1. Работа с файлом config.php
2. Работа с шаблонами (скинами).
3. Работа со статическими страницами.
4. Сделал простейший инсталлятор модуля
Читать дальше
1. Работа с файлом config.php
2. Работа с шаблонами (скинами).
3. Работа со статическими страницами.
4. Сделал простейший инсталлятор модуля
Читать дальше
Пути к папке UPLOADS и пути к загруженным файлам
Прошу разработчика чуть иначе трактовать путь к папке uploads (константа DIR_UPLOADS в config.php). Надо бы там полный путь задавать, а не относительно расположения корня ЛС. Тогда загружаемые файлы можно было б располагать где угодно.
Зачем это нужно: если я прикручиваю ЛС к стороннему сайту, где уже есть «специально обученная» папка для загрузки файлов, то желательно было бы туда же заливать и файлы юзеров ЛС.
Зачем это нужно: если я прикручиваю ЛС к стороннему сайту, где уже есть «специально обученная» папка для загрузки файлов, то желательно было бы туда же заливать и файлы юзеров ЛС.
Аватары без искажений
57
Уже поднималась тема про искажения в аватарах, возникающие, если исходная картинка не квадратная. Что-то мне это сильно не нравилось, и решил я это исправить.
Ниже даю решение, как создавать квадратные аватары из неквадратных картинок.
Читать дальше
Ниже даю решение, как создавать квадратные аватары из неквадратных картинок.
Читать дальше
Блоги по умолчанию и гуманитарная помощь
1
Уже поднималась тема подписания юзеров по умолчанию на какие-то блоги. Столкнулся с тем, что и мне сейчас это нужно. Думаю, периодически на разных ресурсах такая необходимость будет возникать (например, блоги «О проекте», «Новости» и т.д.).
Собственно предложение: при создании корп. блога админом (именно админом!) должна быть возможность пометить его «Подписка пользователей по умолчанию». И всех новых юзеров на него подписывать.
Собственно предложение: при создании корп. блога админом (именно админом!) должна быть возможность пометить его «Подписка пользователей по умолчанию». И всех новых юзеров на него подписывать.
Конфигурационные переменные и шаблоны Smarty
Возникла такая потребность: использовать в шаблонах значения собственных переменных, которые я задаю в кофиге. Но список переменных и констант, которые передаются в Смарти жестко задан. Можно, конечно, самому править класс Viewer, но это плохой путь — при каждом обновлении версии придется снова и снова лезть руками в системный класс.
Поэтому предлагаю разработчикам следующее: определить глобальную переменную-массив (например, $aCustomVar), и ее скармливать шаблонизатору. Тогда в папку, скажем, /config/modules/custom можно положить config.php, который будет подключаться автоматически, а в нем задаем этот самый массив:
И тогда в своем шаблоне (.tpl) я могу использовать эти переменные:
Поэтому предлагаю разработчикам следующее: определить глобальную переменную-массив (например, $aCustomVar), и ее скармливать шаблонизатору. Тогда в папку, скажем, /config/modules/custom можно положить config.php, который будет подключаться автоматически, а в нем задаем этот самый массив:
$aCustomVar['element1']='bla bla bla';
$aCustomVar['element2']='custom string';И тогда в своем шаблоне (.tpl) я могу использовать эти переменные:
<div>Элемент 1: {$aCustomVar.element1}</div>
<div>Элемент 2: {$aCustomVar.element2}</div>
Авторизация, интеграция и прочие прелести
4
Я уже писал (и не только я), что иногда возникает желание к уже работающему сайту прикрутить социалку. Если речь идет о форуме или еще каком-то ресурсе, где уже есть регистрация, авторизация, то это отдельный разговор, как такое замутить. Но может быть и так, что возникает желание прикрутит ЛС к сайту, где регистрации не было, либо она была примитивной и ею можно пожертвовать. В таком случае разумней использовать систему регистрации/авторизации из ЛС. Немного поковырялся в коде, и вот что накопал (если что навру, пусть меня гуру поправят).
При входе в ЛС в куках создается переменная с именем 'key'. Поэтому из стороннего PHP-кода можно проверять, существует ли $_COOKIE['key']. И если есть, то всю инфу о юзере можно получить из базы из таблицы 'prefix_user' примерно так:
В примере кода ниже никакого запроса нет, просто выводится ключ, если он есть:
PS Показан пример для варианта, когда ЛС живет не в корне, а в папке community
PPS ВНИМАНИЕ! SQL-запрос приводится в качестве очень упрощенного примера! Непосредственное его использование на рабочем сайте может создать угрозу безопасности! Как верно замечено комментаторами ниже, нельзя совать в запрос, что попало без тщательной проверки!
UPD Вышесказанное действительно, если при входе юзера стоит галка «Запомнить меня» и мы хотим воспользоваться этой опцией. А вообще надо проверять сессионную переменную 'user_id' (и в prefix_user можно найти запись по соотвествующему полю).
При входе в ЛС в куках создается переменная с именем 'key'. Поэтому из стороннего PHP-кода можно проверять, существует ли $_COOKIE['key']. И если есть, то всю инфу о юзере можно получить из базы из таблицы 'prefix_user' примерно так:
SELECT * FROM prefix_user WHERE user_key='{$_COOKIE['key']}'
В примере кода ниже никакого запроса нет, просто выводится ключ, если он есть:
<?
if (isset($_COOKIE['key'])) {
?>
User Key: <?=$_COOKIE['key'];?> | <a href="/community/login/exit/">Выйти</a>
<?
} else {
?>
<form action="/community/login/" method="POST">
<h3>Авторизация</h3>
<label for="login">Логин или e-mail</label>
<input type="text" class="input-text" name="login" id="login-input" /><br />
<label for="password">Пароль</label>
<input type="password" name="password" class="input-text" /><br />
<label for="" class="input-checkbox">
<input type="checkbox" name="remember" checked />Запомнить меня</label><br />
<input type="hidden" name="submit_login">
<button type="submit" ">Войти</button>
</form>
<?
}
?>
PS Показан пример для варианта, когда ЛС живет не в корне, а в папке community
PPS ВНИМАНИЕ! SQL-запрос приводится в качестве очень упрощенного примера! Непосредственное его использование на рабочем сайте может создать угрозу безопасности! Как верно замечено комментаторами ниже, нельзя совать в запрос, что попало без тщательной проверки!
UPD Вышесказанное действительно, если при входе юзера стоит галка «Запомнить меня» и мы хотим воспользоваться этой опцией. А вообще надо проверять сессионную переменную 'user_id' (и в prefix_user можно найти запись по соотвествующему полю).