Огоревал я, наконец, модуль администрирования. Что он позволяет делать:
1. Работа с файлом config.php
2. Работа с шаблонами (скинами).
3. Работа со статическими страницами.
4. Сделал простейший инсталлятор модуля
1. Работа с файлом config.php
Теперь редактировать этот файл можно из Админпанели. Редактировать, разумеется, не все, а только определения констант, и только там, где значения задаются строками, числами либо логическими константами true/false. При этом обязательно создается бекап файла, а в новом файле помечается каждая строка, которая была изменена.
2. Работа с шаблонами (скинами).
Кроме того, что можно посмотреть список установленных шаблонов, можно тут же задать активный шаблон. Но смена активного шаблона не ограничивается тем, что просто меняется значение в config.php. Если под текущий активный шаблон устанавливались дополнительные модули, то, как правило, заливались дополнительные темплейты для Смарти в папку actions. Так админпанель проверяет содержимое этой папки для текущего шаблона, сравнивает с содержимым аналогичной папки выбранного шаблона, и, если будет на то добро админа, копирует необходимые темплейты в выбранный шаблон (возможно, немного путанно объясняю, но кто пробовал менять шаблоны, тот поймет).
Кстати, в файле style.css просматриваются комментарии и если встречается коммент вида:
/*
Theme Name: <Название темы>
Theme URI: <Ссылка страницу темы, если есть>
Description: <Описание темы, текст так же может содержать ссылки>.
Version: <версия темы (они же могут меняться, дорабатываться)>
Author: <Имя (никнейм) автора>
Author URI: <Ссылка на сраницу автора>
*/
, то инфа из него используется для отображения в списке скинов. И, между прочим, я очень советую всем разработчикам скинов такие комменты писать (подробнее об этом здесь: livestreet.ru/blog/1625.html)
3. Работа со статическими страницами.
Тут ничего революционного нет, функционал (и бОльшая часть кода) взята из соотвествующего модуля. Просто мне показалось логичным включить его в админпанель.
4. Сделал простейший инсталлятор модуля (ну очень простейший, поэтому не пинайте, пожалуйста, сильно). Заливаем исходники в папку update/modules, и запускаем install.php. И все файлы модуля по нужным папкам сами будут раскиданы.
Да, и вот еще — модуль бесплатный. Во всяком случае, пока. И дело не в том, что мне денег совсем не надо или я время свое не ценю. Просто я считаю, что он еще слишком сырой, чтоб денег за него брать.
UPD. Известные проблемы:
1. Нет проверки по дате изменения файлов, проверяется только наличие файла
UPD 2. Появилось первое сообщение, что инсталлятор не сработал. Пока причину не понял, но если вдруг такое случается, то можно выполнить установку руками. Для этого из инсталлятора копируем соотвественно папки (со всем подпапками) classes и config. То же самое и с папкой templates, только вот содержимое из templates/skin/default надо скопировать в папку активного шаблона.
(Была ошибка в путях инсталлятора, сейчас она исправлена и исправленый вариант залит на сайт ЛС)
UPD 3 Можно поставить ссылку на админку так:
1. Находим в шаблонах нужной темы файл header_top.tpl
2. В файле находим подобные строки:
Да, работа с пользователями — это следующий шаг, самому надо :)
Я вообще сначала только переключение шаблонов сделал, потом конфиг, потом страницы. На этом решил остановиться и опубликовать модуль, чтоб хоть какие-то отзывы получить и дальше с их учетом двигаться.
Пытаюсь поставить но что то никак не могу, при попытке перейти по адресу как написано в ридми: Перейти по адресу http://<ваш_сайт>/admin/ и кликнуть по ссылке «upgrade»
Выдает 404 ошибку.
Странно это, в принципе там просто создание папок и копирование файлов. Если что-то не проходит, то ошибку должно было выдать. Но буду думать, что там могло быть.
А пока см. UPD 2 в теле топика, как установить модуль руками. Сложного в этом ничего нет, но хотелось все еще упростить. Попробуй руками, и дай знать, получилось ли, нет ли.
Считаю, что этот инсталлятор делать вообще не целесообразно, у меня к примеру права на все папки — 644 (на случай воруй-убивай), тупо скопировать те же файлы — будет тот же эффект.
Warning: opendir(Z:/home/localhost/www/uploads/addons/admin/install) [function.opendir]: failed to open dir: No error in Z:\home\localhost\www\update\modules\admin\install.php on line 3
Совет seoweb помог? При смене скина сам набор шаблонов не трогается, только проверяется файл с меню админки и файлы шаблонов для actions. И, если необходимо, дописываются. Т.е. по логике возврат скина должен все венуть на место. Вот разве что действительно скомпилированные файлы еще чистить…
Большое спасибо за работу, хорошее дело делаете :)
С нетерпением жду модуля для работы с пользователями, особенно хотелось бы иметь инструменты для выявления повторных аккаунтов, виртуалов и им подобных.
Вы противоречите сами себе, потому не до конца понимаете разницы между терминами CMS и UGC. Это две разные концепции, первая из них подразумевает иерархию писатель-читатель, а во второй каждый является писателем.
В блогосоциальных сетях изначально не стоят такие задачи, которые решают системы управления контентом. Потому и нет инструментов, их реализующих.
Рискну предположить, пока на на странице «о проекте» есть текст «LiveStreet представляет из себя бесплатный(GPLv2) движок для блого-социальных сетей.» рассчитывать на превращение ЛС в «полноценную CMS» не стоит.
Что могу сказать. Век живи — век учись.
Для конечного пользователя концепция саморегулирующегося сообщества (UGC) и социальная сеть, как расширение CMS дают разные возможности. Я писал с точки зрения администрирования и посчитал данный модуль полезным (как в CMS ;))
Пока читал, наткнулся на интересную статью: www.newsland.ru/News/Detail/id/105527/cat/65/
Вот такой модуль «UCM» мог бы понравиться многим.
Я морочу? Я просто удивился, и решил, что упустил что-то очень важное. Причем, говорю почти серьезно, т.к. в архитектуру ЛС въехал как-то не сразу. И, возможно, до сих пор всех нюансов не уловил. Но изначально хотелось написать именно расширение (модуль), не трогая оригинальных текстов и базовых таблиц.
Ну модуль этот не только с юзерами работает. Начал я вообще с того, что админку для управления страницами решил поудобней сделать. Потом переключение скинов «налету», потом вообще правку конфига… Так одно за другим и потянулось.
Но отчасти, пожалуй, так — админ получает более расширенный функционал работы с профилями.
А захотелось написать потому что а) не хватало админского инструментария, сведенного в одно место, б) чтоб лучше понять, как устроен ЛС
а у меня трабла возникла, может, и детская — инсталлятор пишет:
Warning: mkdir() [function.mkdir]: Отказано в доступе in /update/modules/admin/install.php on line 36
Вообще, судя по тексту ошибки — нет прав на создание папки. Какой именно — трудно сказать. Если не критично по времени, то погоди немного — скоро (а конкретней — сегодня) собираюсь новую версию модуля выложить. Там инсталлятор чуть умнее, а в функционал модуля добавлена работа с юзерами (просмотр инфы и возможность бана, как на время, так и навечно).
Вообще мне интересна такая вещь, как определение не добросовестных пользователей.
Объясню. При пользовании модуля Cron можно теоретически заминусить юзера и он удалится. Есть люди, которые могут минусить все его комменты и тп. Вот определение таковых было бы полезно и раздача им «затычек» на недельку к примеру.
Насчет причин бана, не скажу что это особенно важно, администрация может банить без оглашения таковых) Я так думаю =)
И если никак не сделать так, что бы при наведении на значок «черной метки» всплывала причина у каждого конкретного юзера, то пусть будет как будет. Я человек далекий от коддинга, просто идей у меня много))))
пробежать по базе. посмотреть отрицательные оценки юзера.
1. если больше N минусов адресованы одному и тому же юзеру, то выдать его в результате.
2. если больше N минусов к «в целом положительным постам» выдать юзера в результате
Охота на ведьм не принесёт пользы проекту. Лучше создать такие условия, когда минусовать всех подряд будет невыгодно. Например, при отрицательном голосовании за карму вычитать и часть кармы минусующего, при минусовании топиков и каментов уменьшать силу голосующего.
Похожий алгоритм реализован на хабре и даже на одном из сайтов на ЛС.
Мужики, надо отделять мух от котлет. Настройки, позволяющие админу задавать чего и сколько будет плюсоваться/минусоваться — это одна песня. Инструмент, позволяющий админу собирать ту или иную статистику — другая. А вот политика, которую админ будет реализовывать, используя оба эти инструмента — это уже совсем-совсем другая пестня.
Срать сливать можно и нужно толпой. Я не предлагаю вычитать из кармы минусующего столько же кармы, насколько он понижает оппоненту, нужно искать какой-то баланс.
Карма — это карма и есть, а срать сливать — тоже всё-такие дело, не угодное Будде. Войны могут быть справедливыми, но они всегда сеют разрушения и печаль с обеих сторон.
Думаю у себя в дальнейшем ввести именно такую, описанную выше формулу, выводящую кармадрочество на невиданный доселе уровень изощрённости. По совету Ларисы об изменении формулы никому не скажу :-)
Все установилось, но при попытке любых изменений пишет, что «Ошибка создания бэкап-файла»:
Warning: copy(config/config.php.bak) [function.copy]: failed to open stream: Отказано в доступе in .../classes/actions/ActionAdmin.class.php on line 497
Посмотрел сейчас — у меня права на папку стоят 755, на файл — 644. Но для разных хостеров могут быть различные варианты. Конечно, в какой-то степени это компенсируется запретом, установленным в .htaccess
Но окончательное решение за владельцем сайта. И тут уж приходится выбирать — если запрещаем скрипту писать в папки, то выбрасываем админку и все ковыряем ручками.
Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in /classes/modules/admin/Admin.class.php on line 66
хз, посмотрел строку, пока не могу разобраться в чём проблема…
Не переведен файл локализации модуля. Есть два решения проблемы:
1. Тупо скопировать файл локализации, назвав его english.php. Тогда все будет работать, но админка будет на русском.
2. Перевести фал локализации на английский. Более долгий, но более грамотный путь. Но с этим я бы не советовал спешить, т.к. в конце недели планирую выдать новую версию модуля — опять переводить придется.
68 комментариев
Я вообще сначала только переключение шаблонов сделал, потом конфиг, потом страницы. На этом решил остановиться и опубликовать модуль, чтоб хоть какие-то отзывы получить и дальше с их учетом двигаться.
Выдает 404 ошибку.
А пока см. UPD 2 в теле топика, как установить модуль руками. Сложного в этом ничего нет, но хотелось все еще упростить. Попробуй руками, и дай знать, получилось ли, нет ли.
Я поставил на «чистый» ЛС — проблем не было. Как еще проверить — не знаю.
3.0 или 3.1?
Апгрейд еще не делал
Modle installed successfully
А по ссылке разумеется 404 страничка:)
С нетерпением жду модуля для работы с пользователями, особенно хотелось бы иметь инструменты для выявления повторных аккаунтов, виртуалов и им подобных.
В блогосоциальных сетях изначально не стоят такие задачи, которые решают системы управления контентом. Потому и нет инструментов, их реализующих.
Рискну предположить, пока на на странице «о проекте» есть текст «LiveStreet представляет из себя бесплатный(GPLv2) движок для блого-социальных сетей.» рассчитывать на превращение ЛС в «полноценную CMS» не стоит.
Для конечного пользователя концепция саморегулирующегося сообщества (UGC) и социальная сеть, как расширение CMS дают разные возможности. Я писал с точки зрения администрирования и посчитал данный модуль полезным (как в CMS ;))
Пока читал, наткнулся на интересную статью:
Вот такой модуль «UCM» мог бы понравиться многим.
Что вы мне голову морочите? :-)
я уверен, что разница вам уже известна
А почему вы хотели написать модуль? Я так понимаю, он должен заместить собой профили?
Но отчасти, пожалуй, так — админ получает более расширенный функционал работы с профилями.
А захотелось написать потому что а) не хватало админского инструментария, сведенного в одно место, б) чтоб лучше понять, как устроен ЛС
Warning: mkdir() [function.mkdir]: Отказано в доступе in /update/modules/admin/install.php on line 36
или это хостинг надоть смотреть?
некритично) буду ждать — судя по отзывам вещь классная)))
Надеюсь что понятно выразился)
Объясню. При пользовании модуля Cron можно теоретически заминусить юзера и он удалится. Есть люди, которые могут минусить все его комменты и тп. Вот определение таковых было бы полезно и раздача им «затычек» на недельку к примеру.
Насчет причин бана, не скажу что это особенно важно, администрация может банить без оглашения таковых) Я так думаю =)
И если никак не сделать так, что бы при наведении на значок «черной метки» всплывала причина у каждого конкретного юзера, то пусть будет как будет. Я человек далекий от коддинга, просто идей у меня много))))
А каков алгоритм «определения таковых»?
1. если больше N минусов адресованы одному и тому же юзеру, то выдать его в результате.
2. если больше N минусов к «в целом положительным постам» выдать юзера в результате
на вскидку что-то такое придумывается
Похожий алгоритм реализован на хабре и даже на одном из сайтов на ЛС.
хотя… если текущая оценка топика >= 0 то при нажатии минус снять N силы\кармы голосующего…
Карма — это карма и есть, а срать сливать — тоже всё-такие дело, не угодное Будде. Войны могут быть справедливыми, но они всегда сеют разрушения и печаль с обеих сторон.
Думаю у себя в дальнейшем ввести именно такую, описанную выше формулу, выводящую кармадрочество на невиданный доселе уровень изощрённости. По совету Ларисы об изменении формулы никому не скажу :-)
Warning: copy(config/config.php.bak) [function.copy]: failed to open stream: Отказано в доступе in .../classes/actions/ActionAdmin.class.php on line 497
Но окончательное решение за владельцем сайта. И тут уж приходится выбирать — если запрещаем скрипту писать в папки, то выбрасываем админку и все ковыряем ручками.
хз, посмотрел строку, пока не могу разобраться в чём проблема…
1. Тупо скопировать файл локализации, назвав его english.php. Тогда все будет работать, но админка будет на русском.
2. Перевести фал локализации на английский. Более долгий, но более грамотный путь. Но с этим я бы не советовал спешить, т.к. в конце недели планирую выдать новую версию модуля — опять переводить придется.