Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Интеграция с Joomla
Педагогический форум RusEdu > Форумы поддержки > Поддержка LifeType
VlaDD
Здравствуйте.
По мере создания сайта возникла потребность в мультиблогах. Выбор свой остановил на данном движке.
Сайт делается на Joomla.
На форуме русскоязычной поддержки проскакивала тема по интеграции LifeType с Joomla/
http://joomlaforum.ru/index.php/topic,20108.0.html, люди заинтересовались, ТС пропал, всё повисло.
Можно-ли действительно прикрутить этот движок к Joomla?
И как грамотнее это реализовать?
Павел Наумов
Приветствую!
Судя по приведенной теме нужна поэтапная установка?
Ставите 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."';";

Должно работать smile.gif
VlaDD
Павел спасибо.
Попробую потестить всё на локалке.
О результатах обязательно отпишусь
Павел Наумов
Не забудьте еще создать таблицу в БД с блогами:
Код
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;
VlaDD
Павел, а базу для LifeType надо отдельную создавать? а потом делать запрос к БД Joomla&
Я сделал так - в корне джумлы создал папку Blog, в неё залил LifeType, при инстале указал БД джумлы, сейчас оба движка работают на одной базе, но логиниться приходится с разных форм.
Хотелось-бы чтобы на пользователя, регистрирующегося на сайте, автоматом заводился блог.
Такое возможно?

Павел Наумов
База может быть одна. Префиксы разные ведь оставили? В частности для лайфтайпа по-умолчанию lt_
Если меняли, то и в создаваемой таблице тоже нужно сменить.
При правильной настройке блог создается в момент создания пользователя жумлы
VlaDD
Понял, буду ковырять
VlaDD
Павел приветствую.
Вчерашняя возня так и не дала результатов.
По порядку: ( всё на Денвере)
База данных общая
префиксы 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
Может я что не так делаю?
Павел Наумов
А блоги создаются при регистрации в жумле?
Попробуйте сделать такую хитрость:
Верните userdata.properties.php из дистрибутива
Войдите под админом в панель лайфтайпа
Перепишите (не разлогиниваясь в лайфтайпе) файл userdata.properties.php под жумла-провайдера
Зарегистрируйте в жумле юзера (он должен появится среди пользователей блогов) который будет использоваться как админ лайфтайпа
Дайте ему права админа.
VlaDD
При регистрации в Джумле, блоги создаются в Лайфтипе. Это работает.
Но ни как админ, ни как пользователь зайти в блоги не могу, ни от куда.
Попробовал сделать как вы написали выше, безрезультатно, Лайфтип не даёт сделать подмену.
Вобщем сейчас всё работает кроме авторизации.
Павел Наумов
Владимир, что значит "Лайфтип не даёт сделать подмену"?
Авторизация не проходит в любой блог, созданный вместе с пользователем жумлы?
VlaDD
Цитата(Павел Наумов @ 18.8.2009, 17:12) «
Авторизация не проходит в любой блог, созданный вместе с пользователем жумлы?

Совершенно верно
Павел Наумов
Дайте ссылку на дистрибутив жумлы, который у Вас стоит. Попробую на локалке развернуть, настроить.
Версия лайфтайпа какая?
VlaDD
Joomla - http://joomlaportal.ru/downloads/joomla/Jo...age-Russian.zip
LifeType - 1.2.8
Павел Наумов
Хорошо. Вечером поставлю и попробую настроить
Павел Наумов
Владимир, я сейчас поставил на локалке связку жумла (ту что Вы указали) и лайфтайп 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"
);
?>
VlaDD
Приветствую Павел.
В настройках userdata.properties.php всё указывал нормально. Странно.
Попробую всё переустановить и запустить.
Ссылочку на LifeType 1.2.9 можете дать?
Павел Наумов
http://lifetype.net/snapshots/core-branche...-1.2-latest.zip
Попробуйте поставить заново, должно получиться
VlaDD
Как всё сделаю, сразу отпишусь.
VlaDD
И всё же не получается.
По порядку, что я делал:
Переустановил 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)

Всё, должно заработать?
Нифига angry.gif
Перезапускаю сервер. Для пользователей зарегеных до переустановки создались блоги, пробую нового пользователя создать - в джумле создаётся, в лайфтайпе нет.
Не могу понять в чём у меня ошибка?
Может последовательность действий не правильная?
Может в кодах что-то не дописываю?





Павел Наумов
Владимир, странная ситуация... вроде все правильно сделали.
Давайте я еще раз опишу процедуру установки, так как я делал вчера.
У меня денвер в качестве локального сервера.
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. Через админку лайфтайпа вижу нового пользователя и его блог, дал ему права админа

Все. Больше никаких действий с кодом или чем-то другим я не проводил.
В лайфтайпе, соответственно, регистрация отключается автоматически, т.к. теперь все пользователи создаются через жумлу
VlaDD
Здравствуйте Павел.
Всё нормально проходит до 10 пункта, захожу в администрирование вижу нового пользователя и не могу присвоить права админа выдаёт ошибку "Ошибка при обновлении пользователя "%s""
В Joomla все пользователи активируются, а в LifeType так и нет.
Павел Наумов
Ну уже прогресс, раз создаются :-)
Права как даете?
VlaDD
Администрирование
пользователь
ставлю галочку - администратор
Павел Наумов
Владимир, у Вас денвер стоит?
Попробуйте сделать архив БД и папки с файлами и выложите куда-нибудь.
Я разверну на своем и посмотрю что там не так
А иначе это гадание получится
VlaDD
А папку скакими файлами?
Павел Наумов
С системами smile.gif
та, которая является корневым каталогом для жумлы
ну и соответственно все подпапки
VlaDD
К сожалению я пока не имею возможность выложить файлы. sad.gif
Буду продолжать танцевать, с бубнами.
VlaDD
Павел здравствуйте.
Установил движок на хостинг.
Вся установка прошла нормально, но, когда захожу в панель администрирования вылазит
Parse error: parse error, unexpected '(' in /www/......................../tmp/1/%%FE^FEA^FEA975DF%%menutabs.template.php on line 8
с чем это связано?
Павел Наумов
В ошибке ясно сказано: найдена непарная скобка. Вероятно правили шаблон админки (templates/admin/menutabs.template)
Смотрите код шаблона на наличие непарных скобок, в частности строку 8
VlaDD
Нет, шаблон админки не трогал.
Переустановил движок, ошибка повторяется.
вот 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'] )):
вроде все скобки парные
Павел Наумов
Владимир, Вы привели код кэша...
Проверьте код самого шаблона 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>
VlaDD
Да, вот код шаблона
<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 строка
VlaDD
На локалке, на Денвере всё работало нормально.
Павел Наумов
Ну если на локалке все работало нормально, то могу предположить, что не все файлы загрузились корректно.
А блог отображается без ошибок?
Павел Наумов
Вот эта строка некорректная:
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'] )):

Скиньте весть код этого файла
VlaDD
Да, блог отображается нормально.
В панель управления захожу нормально, а как пытаюсь что нибудь отредактировать вылазит ошибка.
Вот весь код
<?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>
VlaDD
Павел,решение нашёл.
Взял файл menutabs.template.php с локалки, и заменил им файл на хостинге, всё заработало.
Спасибо за помощь smile.gif
VlaDD
Упс. Ошибочка. Ничего не поменялось
Павел Наумов
Файл кэша некорректно сформирован.
Попробуйте все же перезалить папку class
VlaDD
Проверил всю папку class.
Сравнил с файлами на локалке, нашёл два пустых:
class\action\viewarticleaction.class.php
class\template\smarty\internals\core.write_compiled_include.php
Заменил, переустановил, но ошибка так и не ушла
Павел Наумов
Владимир, присутствие пустых файлов уже говорит о том, что загрузка происходила с ошибками.
Попробуйте все же заново залить поверх имеющихся.
VlaDD
Здравствуйте Павел!
С версией 1.2.9 так ничего сделать и не получилось.
Поставил на сервер 1.2.8 - движок заработал.
Интегрировать ещё не пробовал, пока разбирался с настройками и т.п.
По ходу возни у меня вылезла проблемка, не могу зайти в админ панель - пишет не правильный логин и пароль. Не пойму в чём дело, из плагинов поставил только каптчу на форму коментов.
Да сам блог http://nazorke.ru/Blog
Павел Наумов
Добрый вечер, Владимир!
Плагины точно не могут сбить пароль smile.gif
Восстановление пробовали?
Странно что 1.2.9 у Вас не заработал. Вроде там нет кардинальных изменений - исправлены ошибки только.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2024 IPS, Inc.