Здравствуйте.
По мере создания сайта возникла потребность в мультиблогах. Выбор свой остановил на данном движке.
Сайт делается на Joomla.
На форуме русскоязычной поддержки проскакивала тема по интеграции LifeType с Joomla/
http://joomlaforum.ru/index.php/topic,20108.0.html, люди заинтересовались, ТС пропал, всё повисло.
Можно-ли действительно прикрутить этот движок к Joomla?
И как грамотнее это реализовать?
Павел Наумов
17.8.2009, 8:38
Приветствую!
Судя по приведенной теме нужна поэтапная установка?
Ставите Joomla сначала, затем в папку, например blogs, заливаете двиг лайфтайпа в нее, устанавливаете.
Затем в папке /config/ папки с блогами открываете файл userdata.properties.php, страете все что есть в нем и вставляете:
Код
$config = Array(
// general
"provider" => "JoomlaUserDataProvider",
"createBlogIfNotExisting" => true,
// Joomla db connection
"host" => "localhost",
"database" => "testerj",
"user" => "root",
"password" => "",
"prefix" => "jos_",
"useNewJoomlaAuth" => true,
// This string gets appended to the username and results
// in "Username's Weblog"
"blogtitle_postfix" => "'s Weblog"
);
Если кодировка utf-8, то нужно в файле class/dao/userdata/joomlauserdataprovider.class.php
заменить
Код
$query = "SET NAMES '".$dbcharset."';";
на
Код
$dbcharset = "utf8";
$query = "SET NAMES '".$dbcharset."';";
Должно работать
Павел спасибо.
Попробую потестить всё на локалке.
О результатах обязательно отпишусь
Павел Наумов
17.8.2009, 8:52
Не забудьте еще создать таблицу в БД с блогами:
Код
CREATE TABLE `lt_joomla_users` (
`id` int(10) unsigned NOT NULL auto_increment,
`joomla_id` int(10) unsigned NOT NULL,
`about` text,
`properties` text NOT NULL,
`resource_picture_id` int(10) NOT NULL default '0',
`blog_site_admin` int(10) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `joomla_id` (`joomla_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;
Павел, а базу для LifeType надо отдельную создавать? а потом делать запрос к БД Joomla&
Я сделал так - в корне джумлы создал папку Blog, в неё залил LifeType, при инстале указал БД джумлы, сейчас оба движка работают на одной базе, но логиниться приходится с разных форм.
Хотелось-бы чтобы на пользователя, регистрирующегося на сайте, автоматом заводился блог.
Такое возможно?
Павел Наумов
17.8.2009, 17:09
База может быть одна. Префиксы разные ведь оставили? В частности для лайфтайпа по-умолчанию lt_
Если меняли, то и в создаваемой таблице тоже нужно сменить.
При правильной настройке блог создается в момент создания пользователя жумлы
Павел приветствую.
Вчерашняя возня так и не дала результатов.
По порядку: ( всё на Денвере)
База данных общая
префиксы Joomla jos_
префиксы LifeType lt_
сделал запрос к БД, создалась ещё одна таблица - lt_joomla_users
В файле userdata.properties.php прописал код:
$config = Array(
// general
"provider" => "JoomlaUserDataProvider",
"createBlogIfNotExisting" => true,
// Joomla db connection
"host" => "localhost",
"database" => "joomla",
"user" => "joomla",
"password" => "joomla",
"prefix" => "jos_",
"useNewJoomlaAuth" => true,
// This string gets appended to the username and results
// in "Username's Weblog"
"blogtitle_postfix" => "'s Weblog"
);
После всего этого не могу зайти в админ панель LifeType
Может я что не так делаю?
Павел Наумов
18.8.2009, 10:10
А блоги создаются при регистрации в жумле?
Попробуйте сделать такую хитрость:
Верните userdata.properties.php из дистрибутива
Войдите под админом в панель лайфтайпа
Перепишите (не разлогиниваясь в лайфтайпе) файл userdata.properties.php под жумла-провайдера
Зарегистрируйте в жумле юзера (он должен появится среди пользователей блогов) который будет использоваться как админ лайфтайпа
Дайте ему права админа.
При регистрации в Джумле, блоги создаются в Лайфтипе. Это работает.
Но ни как админ, ни как пользователь зайти в блоги не могу, ни от куда.
Попробовал сделать как вы написали выше, безрезультатно, Лайфтип не даёт сделать подмену.
Вобщем сейчас всё работает кроме авторизации.
Павел Наумов
18.8.2009, 14:12
Владимир, что значит "Лайфтип не даёт сделать подмену"?
Авторизация не проходит в любой блог, созданный вместе с пользователем жумлы?
Цитата(Павел Наумов @ 18.8.2009, 17:12)
«Авторизация не проходит в любой блог, созданный вместе с пользователем жумлы?
Совершенно верно
Павел Наумов
18.8.2009, 14:51
Дайте ссылку на дистрибутив жумлы, который у Вас стоит. Попробую на локалке развернуть, настроить.
Версия лайфтайпа какая?
Павел Наумов
18.8.2009, 15:17
Хорошо. Вечером поставлю и попробую настроить
Павел Наумов
18.8.2009, 20:27
Владимир, я сейчас поставил на локалке связку жумла (ту что Вы указали) и лайфтайп 1.2.8 (кстати, рекомендую скачать 1.2.9. - там исправлены некоторые ошибки)
Все нормально встало и заработало.
Возможно Вы забыли указать свои настройки доступа к БД в коде файла userdata.properties.php:
Код
<?php
$config = Array(
// general
"provider" => "JoomlaUserDataProvider",
"createBlogIfNotExisting" => true,
// Joomla db connection
"host" => "localhost",
"database" => "test",
"user" => "root",
"password" => "",
"prefix" => "jos_",
"useNewJoomlaAuth" => true,
// This string gets appended to the username and results
// in "Username's Weblog"
"blogtitle_postfix" => "'s Weblog"
);
?>
Приветствую Павел.
В настройках userdata.properties.php всё указывал нормально. Странно.
Попробую всё переустановить и запустить.
Ссылочку на LifeType 1.2.9 можете дать?
Павел Наумов
19.8.2009, 15:19
Как всё сделаю, сразу отпишусь.
И всё же не получается.
По порядку, что я делал:
Переустановил LifeType, при установке указал БД Joomla.
Сейчас база одна для двух двигов, но с разными префиксами jos_ и lt_.
Выполнил запрос к БД
CREATE TABLE `lt_joomla_users` (
`id` int(10) unsigned NOT NULL auto_increment,
`joomla_id` int(10) unsigned NOT NULL,
`about` text,
`properties` text NOT NULL,
`resource_picture_id` int(10) NOT NULL default '0',
`blog_site_admin` int(10) NOT NULL default '0',
PRIMARY KEY (`id`),
UNIQUE KEY `joomla_id` (`joomla_id`)
) ENGINE=MyISAM AUTO_INCREMENT=1;
Затем в файле userdata.properties.php указал свои настройки БД
<?php
$config = Array(
// general
"provider" => "JoomlaUserDataProvider",
"createBlogIfNotExisting" => true,
// Joomla db connection
"host" => "
localhost",
"database" => "
joomla",
"user" => "
joomla",
"password" => "
joomla",
"prefix" => "
jos_",
"useNewJoomlaAuth" => true,
// This string gets appended to the username and results
// in "Username's Weblog"
"blogtitle_postfix" => "'s Weblog"
);
?>
(Жирным указан доступ к БД Joomla)
Всё, должно заработать?
Нифига
Перезапускаю сервер. Для пользователей зарегеных до переустановки создались блоги, пробую нового пользователя создать - в джумле создаётся, в лайфтайпе нет.
Не могу понять в чём у меня ошибка?
Может последовательность действий не правильная?
Может в кодах что-то не дописываю?
Павел Наумов
19.8.2009, 18:58
Владимир, странная ситуация... вроде все правильно сделали.
Давайте я еще раз опишу процедуру установки, так как я делал вчера.
У меня денвер в качестве локального сервера.
1. Создал новую БД через пхпадмина в кодировке utf-8 с именем test
2. В папку home/test.ru/www (корень виртуального домена test.ru) залил жумлу
3. создал папку blog в корне (home/test.ru/www/blog) и залил туда лайфтайп 1.2.8. (принципиальной разницы к версии 1.2.9. для данной операции нет)
4. Запустил установку жумлы, установил ее
5. Запустил установку лайфтайпа, установил его (БД в обоих случаях одна, кодировка utf-8)
6. Вошел в админку лайфтайпа.
7. Через пхпадмина добавил таблице в БД.
8. Переписал файл userdata.properties.php в котором указал актуальные данные для доступа к БД (у меня имя базы test, имя пользователя root пароля нет. Выше я выложил его)
9. Зарегистрировался в жумле как обычный пользователь, активировал учетку
10. Через админку лайфтайпа вижу нового пользователя и его блог, дал ему права админа
Все. Больше никаких действий с кодом или чем-то другим я не проводил.
В лайфтайпе, соответственно, регистрация отключается автоматически, т.к. теперь все пользователи создаются через жумлу
Здравствуйте Павел.
Всё нормально проходит до 10 пункта, захожу в администрирование вижу нового пользователя и не могу присвоить права админа выдаёт ошибку "Ошибка при обновлении пользователя "%s""
В Joomla все пользователи активируются, а в LifeType так и нет.
Павел Наумов
20.8.2009, 19:22
Ну уже прогресс, раз создаются :-)
Права как даете?
Администрирование
пользователь
ставлю галочку - администратор
Павел Наумов
20.8.2009, 19:40
Владимир, у Вас денвер стоит?
Попробуйте сделать архив БД и папки с файлами и выложите куда-нибудь.
Я разверну на своем и посмотрю что там не так
А иначе это гадание получится
Павел Наумов
21.8.2009, 14:22
С системами
та, которая является корневым каталогом для жумлы
ну и соответственно все подпапки
К сожалению я пока не имею возможность выложить файлы.
Буду продолжать танцевать, с бубнами.
Павел здравствуйте.
Установил движок на хостинг.
Вся установка прошла нормально, но, когда захожу в панель администрирования вылазит
Parse error: parse error, unexpected '(' in /www/......................../tmp/1/%%FE^FEA^FEA975DF%%menutabs.template.php on line 8
с чем это связано?
Павел Наумов
28.8.2009, 19:31
В ошибке ясно сказано: найдена непарная скобка. Вероятно правили шаблон админки (templates/admin/menutabs.template)
Смотрите код шаблона на наличие непарных скобок, в частности строку 8
Нет, шаблон админки не трогал.
Переустановил движок, ошибка повторяется.
вот 8 строка
if (eval('$_foo = $this->_tpl_vars[\'option\']; $_foo = $_foo->getAttribute(\'ignoreTab\'); return $_foo;') != 1 && eval('$_foo = $this->_tpl_vars[\'menu\']; $_foo = $_foo->userCanSee; return $_foo;') ( $this->_tpl_vars['option'] , $this->_tpl_vars['user'] )):
вроде все скобки парные
Павел Наумов
29.8.2009, 16:17
Владимир, Вы привели код кэша...
Проверьте код самого шаблона templates/admin/menutabs.template
Вот таким он должен быть:
Код
<ul id="tablist">
{assign var=options value=$menu->getOpts($showOpt)}
{foreach from=$options item=option}
{if $option->getAttribute("ignoreTab") != 1 && $menu->userCanSee( $option, $user )}
{assign var=name value=$option->name}
<li {if $name==$showOpt} id="tab_active" {/if}>
<a {if $name==$showOpt} id="tab_current" {/if} href="{$option->getAttribute("url")}">{$locale->tr($name)}</a>
</li>
{/if}
{/foreach}
</ul>
Да, вот код шаблона
<ul id="tablist">
{assign var=options value=$menu->getOpts($showOpt)}
{foreach from=$options item=option}
{if $option->getAttribute("ignoreTab") != 1 && $menu->userCanSee( $option, $user )}
{assign var=name value=$option->name}
<li {if $name==$showOpt} id="tab_active" {/if}>
<a {if $name==$showOpt} id="tab_current" {/if} href="{$option->getAttribute("url")}">{$locale->tr($name)}</a>
</li>
{/if}
{/foreach}
</ul>
выделенным 8 строка
На локалке, на Денвере всё работало нормально.
Павел Наумов
29.8.2009, 17:04
Ну если на локалке все работало нормально, то могу предположить, что не все файлы загрузились корректно.
А блог отображается без ошибок?
Павел Наумов
29.8.2009, 17:23
Вот эта строка некорректная:
if (eval('$_foo = $this->_tpl_vars[\'option\']; $_foo = $_foo->getAttribute(\'ignoreTab\'); return $_foo;') != 1 && eval('$_foo = $this->_tpl_vars[\'menu\']; $_foo = $_foo->userCanSee; return $_foo;') ( $this->_tpl_vars['option'] , $this->_tpl_vars['user'] )):
Скиньте весть код этого файла
Да, блог отображается нормально.
В панель управления захожу нормально, а как пытаюсь что нибудь отредактировать вылазит ошибка.
Вот весь код
<?php /* Smarty version 2.6.22, created on 2009-08-29 16:54:24
compiled from ./templates/admin/menutabs.template */ ?>
<ul id="tablist">
<?php $this->assign('options', eval('$_foo = $this->_tpl_vars[\'menu\']; $_foo = $_foo->getOpts($this->_tpl_vars[\'showOpt\']); return $_foo;')); ?>
<?php $_from = $this->_tpl_vars['options']; if (!is_array($_from) && !is_object($_from)) { settype($_from, 'array'); }if (count($_from)):
foreach ($_from as $this->_tpl_vars['option']):
?>
<?php if (eval('$_foo = $this->_tpl_vars[\'option\']; $_foo = $_foo->getAttribute(\'ignoreTab\'); return $_foo;') != 1 && eval('$_foo = $this->_tpl_vars[\'menu\']; $_foo = $_foo->userCanSee; return $_foo;') ( $this->_tpl_vars['option'] , $this->_tpl_vars['user'] )): ?>
<?php $this->assign('name', eval('$_foo = $this->_tpl_vars[\'option\']; $_foo = $_foo->name; return $_foo;')); ?>
<li <?php if ($this->_tpl_vars['name'] == $this->_tpl_vars['showOpt']): ?> id="tab_active" <?php endif; ?>>
<a <?php if ($this->_tpl_vars['name'] == $this->_tpl_vars['showOpt']): ?> id="tab_current" <?php endif; ?> href="<?php echo eval('$_foo = $this->_tpl_vars[\'option\']; $_foo = $_foo->getAttribute(\'url\'); return $_foo;'); ?>
"><?php echo eval('$_foo = $this->_tpl_vars[\'locale\']; $_foo = $_foo->tr($this->_tpl_vars[\'name\']); return $_foo;'); ?>
</a>
</li>
<?php endif; ?>
<?php endforeach; endif; unset($_from); ?>
</ul>
Павел,решение нашёл.
Взял файл menutabs.template.php с локалки, и заменил им файл на хостинге, всё заработало.
Спасибо за помощь
Упс. Ошибочка. Ничего не поменялось
Павел Наумов
29.8.2009, 18:54
Файл кэша некорректно сформирован.
Попробуйте все же перезалить папку class
Проверил всю папку class.
Сравнил с файлами на локалке, нашёл два пустых:
class\action\viewarticleaction.class.php
class\template\smarty\internals\core.write_compiled_include.php
Заменил, переустановил, но ошибка так и не ушла
Павел Наумов
30.8.2009, 19:51
Владимир, присутствие пустых файлов уже говорит о том, что загрузка происходила с ошибками.
Попробуйте все же заново залить поверх имеющихся.
Здравствуйте Павел!
С версией 1.2.9 так ничего сделать и не получилось.
Поставил на сервер 1.2.8 - движок заработал.
Интегрировать ещё не пробовал, пока разбирался с настройками и т.п.
По ходу возни у меня вылезла проблемка, не могу зайти в админ панель - пишет не правильный логин и пароль. Не пойму в чём дело, из плагинов поставил только каптчу на форму коментов.
Да сам блог
http://nazorke.ru/Blog
Павел Наумов
4.10.2009, 17:15
Добрый вечер, Владимир!
Плагины точно не могут сбить пароль
Восстановление пробовали?
Странно что 1.2.9 у Вас не заработал. Вроде там нет кардинальных изменений - исправлены ошибки только.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.