JComments 2.3 - New
  • MaiwendMaiwend Февраль 2012
    И так, вышла новая версия самого народного компонента комментариев для Joomla.
    Новый компонент поддерживает все версии Joomla, в том числе и Joomla 2.5.

    Но вот незадача, Joostina он не поддерживает ни 1.4, ни 1.3, видимо нас уже списали :)

    Процесс установки прежний, удаляем старый компонент (комментарии и настройки сохраняются), ставим новый.
    После установки на Joostina выскакивает ошибка:
    Fatal error: Cannot redeclare class JCache in /storage/home/srv/includes/libraries/cache/cache.php on line 23

    Если кто-то знает как его можно адаптировать на наш движок, будет очень здорово.

    Подробности релиза здесь:
    http://www.joomlatune.ru/jcomments-230-released.html
  • abasiaabasia Февраль 2012
    Вопрос решается, благодаря GoDr
    http://joomlaforum.ru/index.php/topic,202841.msg1069700.html#msg1069700
  • MaiwendMaiwend Февраль 2012
    Я бы даже сказал он решен, нужно добавить проверку на подключен ли класс JCache и все.
  • MaiwendMaiwend Февраль 2012
    в смысле в месте где жустина подкулючает это класс, должна стоять проверка, а не подключен ли он. Об этом говорит Смарт.
  • GoDrGoDr Февраль 2012
    да ёмаё.. :) где это есть то??? что-то совсем туплю...
  • MaiwendMaiwend Февраль 2012
    Мне каца он предлагает сделать как у него, что бы жуська перед тем как класс подрубать проверяла не подрублен ли он уже.

    В файле /components/com_jcomments/libraries/joomlatune/joomla/jcache.php есть проверка на наличие класса с именем JCache:

    Код
    if (!class_exists('JCache')) {
  • GoDrGoDr Февраль 2012
    может я что не догоняю....
    класс подключается тут
    joostina.php
    2839: mosMainFrame::addLib('cache');

    если там сделать условие, то будет эта бяка
    Fatal error: Call to undefined method JCache::setCaching() in Z:\home\j14.qqq\www\includes\joostina.php on line 2862
  • GoDrGoDr Февраль 2012
    так как класс то якобы подключен, но этого метода в нём то нет...
  • GoDrGoDr Февраль 2012
    другоq вариант подключить класс сразу в index.php после подключения joostina.php
    но как это правильно?
  • MaiwendMaiwend Февраль 2012
    Это оно if (!class_exists('JCache')) {
    выдает ошибку?
  • GoDrGoDr Февраль 2012
    если так сделатьif (!class_exists('JCache')) mosMainFrame::addLib('cache');
    Но это явно не правильно.. файл заглушки - всего-лишь заглушка, так что или заглушку менять или поставить загрузку кеша в самое начало

    ps
    хотя проще сам компонент малость поменять.. Что-то я не уверен что так много народа до сих пор на Joomla 1.0 .. но может я и не прав.. В любом случае на 1.0 это не повлияет.. Компонент хороший, не хочется просто так отказаться

    я поставил подключение класса сразу в index.php перед
    // триггер событий onAfterStart
    ($mosConfig_mmb_system_off == 0) ? $_MAMBOTS->trigger('onAfterStart') : null;
    проблема исчезает, но конечно появляются undefined




  • MaiwendMaiwend Февраль 2012
    И правда предложенная проверка не работает. Тоже пробовал делать.
  • GoDrGoDr Февраль 2012
    надо ещё подумать малость.. нужен кодер типа бостона :) коорый движок лучше знает

    некоторые вещи пока не понятны.. Но менять движок под компонент - просто глупо.. нужно найти решение в заглушке
    Отредактированно GoDr в 2012-02-22 13:58:47
  • abasiaabasia Февраль 2012
    Нужно компонент адаптировать к движку (форкнуть) и зарелизить тут, smart всё равно поддерживать для joostina уже не будет, думаю он будет не против если ответственность за него тут на себя возьмём не заморачивая его вопросами. Какой смысл менять в движке из-за одного компонента, чтоб на других проблемы полезли.
    Отредактированно abasia в 2012-02-22 14:11:29
  • GoDrGoDr Февраль 2012
    сделал подключение mosCache() на фронте и в админке..
    а админке при выборке Компоненты--JComments или Компоненты--JComments--Комментарии выдаёт это
    Notice: Trying to get property of non-object in Z:\home\j14.qqq\www\includes\joostina.php on line 1157

    Notice: Trying to get property of non-object in Z:\home\j14.qqq\www\includes\joostina.php on line 1158

    Notice: Trying to get property of non-object in Z:\home\j14.qqq\www\includes\joostina.php on line 1159

    Notice: Trying to get property of non-object in Z:\home\j14.qqq\www\includes\joostina.php on line 1160
  • ArkadiyArkadiy Февраль 2012
    Посмотрел Jcomments на 1.4, не работает множество разных вещей - не сохраняются настройки, кеш конфликтует, нотисы в строке 1157, 1158 и тп из-за неправильного обращения за пользователем, на фронте капча не работает, комментарии не отрпавляются. Вывод один - либо хакать (Смарт нам тут не помощник, он совместимость с джустиной не обещал), либо пользоваться старым 2.2.
  • GoDrGoDr Февраль 2012
    я его хакнул :)
    как и сказал, поменял название класса в компоненте и удалил одно (на мой взгляд) не нужную строчку. никаких нотисов, всё отлично работает, всё настраивается.. Я конечно не всё проверил, но то что проверил ничего не нашёл.

    так что не вижу смысла искать компромисс. Что-то мы друг друга не допоняли со Смартом :) Там и нужно было поменять одну букву, и главное, это изменение вообще никак не коснулась бы работоспособности. :)

    Не дело подгонять движок под компонент.. Да ещё мы тут с товарищами обсудили.. У нас есть же система комментариев (в 1.4), просто к ней нужно пару функций и "пушистости" добавить :)




  • GoDrGoDr Февраль 2012
    что лучше, выложить хакнутутю версию или описать как хакнуть?
  • abasiaabasia Февраль 2012
    Описать как хакнуть, приложив хакнутую версию :)
  • ArkadiyArkadiy Февраль 2012
    Кардинальных различий между 2.2 и 2.3 нет, по этому я даже и не думал новую версию приспосабливать, а 2.2 работет как часы.
  • GoDrGoDr Февраль 2012
    Если честно, то толком не смотрел что там нового и особенного... :) Но пусть будет для коллекции
  • ArkadiyArkadiy Февраль 2012
    Лучше не стоит, у меня на свежей установке не заработало, хотя все нотисы устранил.
  • GoDrGoDr Февраль 2012
    Хак:

    jcomments.class.php
    это
    1642: $cache = JCache::getInstance($handler, array('defaultgroup' => $group));

    заменяем на
    1642: $cache = JCacheX::getInstance($handler, array('defaultgroup' => $group));


    jcache.php
    это
    9: if (!class_exists('JCache')) {

    заменяем на
    9: if (!class_exists('JCacheX')) {

    это
    10: class JCache

    заменяем на
    10: class JCacheX

    это
    43: $instance = new JCache($options);

    Заменяем на
    43: $instance = new JCacheX($options);


    admin.jcomments.html.php
    удаляем
    85: $user = JCommentsFactory::getUser();

    удаляем
    264:if ($row->checked_out && ($row->checked_out != $user->id)) {

    удаляем
    266-270:
    } else {
    ?>
    <a href="<?php echo $link; ?>" title="<?php echo JText::_('A_EDIT'); ?>"><?php echo $commentText; ?></a>
    <?php
    }


    Последняя правка можно сказать для пушистости, правка комментариев будет через чакбокс а не по ссылке



    Отредактированно GoDr в 2012-02-25 00:11:21
  • GoDrGoDr Февраль 2012
    Вот хакнутая версия.. можно попробовать
    Отредактированно GoDr в 2012-02-25 00:12:21
  • GoDrGoDr Февраль 2012
    Дурацкий форум.... правильный файл этот
  • GoDrGoDr Февраль 2012
    хотя действительно, есть проблемки с подключением стандартного getUser.. нужно ещё поколдовать.. или выкинуть этот компонент :)

Добро пожаловать!

Похоже, что Вы здесь впервые. Если хотите поучаствовать, нажмите на одну из этих кнопок!

Войти Зарегистрироваться

В теме отметились