Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 2 Ответов
  • 1823 Просмотров
*

text

  • Захожу иногда
  • 93
  • 0 / 0
J1.0.15, VM 1.0.15, JFish 1.7
При сохранении перевода в окне со списком переводов появляются одинаковые строки (отличие только по времени - поле modified).
Т.е. перевод сохраняется, но при этом добавляется новая строка.
Пример:
--------Нужный текст (самый поздний перевод)---------------------
id 623
language_id int(11)     2
reference_id 33
reference_field product_name
---------Дубликат (ненужный клон)--------------------
id 614
language_id int(11)     2
reference_id 33
reference_field product_name
--------------------------------------------------

Во всех клонах - текст одинаковый.
Если удалять дубликаты - удаляется и текст перевода, который был сохранен последним.
Интересное:
1.если поле title - например "название товара или название статьи" (в списке колонка "Translation") - не заполнять, то клоны не появляются.
Все корректно. Даже если F5 refresh - нажимать - тоже все правильно.


....Но если поле title - например "название товара или название статьи" заполнить - появляются клоны строк товара с одинаковым переводом (но с разным временем).
...если после этого F5 refresh - нажимать, то строки (клоны) сами возникают, не заходя даже в панель для перевода (где перевод заносится).


2. Если выбрать клоны для удаления (и не выделять для удаления самый свежий перевод - т.е самый поздний перевод), то удаляются все свежие, а старый - один - остается.

Сейчас изучаю
administrator\components\com_joomfish\joomfish.class.php


Объясните, пожалуйста, что поменять в коде, чтобы сохранялся перевод без копий перевода по reference_id.
-----------------------------
« Последнее редактирование: 15.10.2011, 16:49:09 от text »
*

text

  • Захожу иногда
  • 93
  • 0 / 0
Re: Дубликаты перевода по reference_id
« Ответ #1 : 15.10.2011, 16:47:28 »
Удалил JoomFish 1.7 (через компоненты - установка) и снова его установил.

Проблема осталась.
Из истории установок:
JF 1.7 -> JF 1.8.2 -> JF 1.7 -> JF 1.7

Заметил следующее:
если не сохраняю название статьи (или другой контент - поле title), то все ок.
если  название статьи сохраняю - появляются дубликаты.

Если F5 нажать - еще копия (один рефреш - одна копия строки).

Думаю, дело в сессии (лог как суперадмин)...
Как справиться - понятия не имею...

administrator\components\com_joomfish\joomfish.class.php - прилагается


Подскажите, пожалуйста, может решали подобное...



[вложение удалено Администратором]
« Последнее редактирование: 15.10.2011, 18:52:54 от text »
*

text

  • Захожу иногда
  • 93
  • 0 / 0
Re: Дубликаты перевода по reference_id
« Ответ #2 : 17.10.2011, 15:46:00 »
Тестировал JFish1.7, JFish 1.8.2 для J1.0.15, VM 1.0.15 на ИЕ 7, 8 + ФФ.
В PHP - начинающий.
Стабильнее оказалась - версия Fish 1.7.

По ходу тестов - траблы одинаковые:
Трабл 1) с решением через БД (нужно запускать после каждого перевода статьи, товара и тп).
При переводе - если поле название статьи (товара, меню) оставлять пустым, то все ок (дубликатов нет),
если тайтл заполнить - появляются клоны...(один сейв - один клон, или один рефреш ф5 на странице обзора контента - один клон).

Трабл 2) с решением (только 1 запрос) через БД.
п.2 описание: ... Странно, но при удалении (если слева ставить галочку рядом с ненужными клонами,
т.е. несвежий перевод) удаляются все отмеченные клоны вместе....со самым свежим переводом и остается .... самый первый перевод.
Т.е вы сделали перевод 17.10 и на странице с переводами остались (после редактирования) клоны за 12.10, 15.10, 16.10 -
 то после нажатия кнопки "Удалить" (все отмеченное галочкой) - останется перевод за 12.10 (т.е самый первый).
Вот пример по инфо из БД:
--
--------Нужный перевод--------------------------
 id 623
language_id int(11)     2
reference_id 33
reference_field product_name
---------Дубликат (ненужный клон)--------------
id 614
language_id int(11)     2
reference_id 33
reference_field product_name

--------------------
---

Итак, удаление идет , видимо, по ID - с сохранением первого перевода - ГЛЮК.
Нужен перевод "последний модифайд" , а не первый.


РЕШЕНИЕ для *Трабл 2* (запуск черех пхпМАдмин) - откопал в инете:
-------------
ALTER TABLE `jos_languages` CHANGE `iso` `iso` VARCHAR( 20 ) NULL DEFAULT NULL;
-------------


...После поиска на форуме нашел похожее решение для *Трабл 1* (удаление всех дубликатов по критериям через пхпМайАдмин):

-----код РУЧНОЙ режим (быстро)------
CREATE TABLE IF NOT EXISTS `temp2011` ( `id` INT(11) );  
INSERT INTO `temp2011` SELECT MAX(`id`) FROM `jos_jf_content` GROUP BY `reference_field`, `reference_id`, `language_id`, `value`;
DELETE FROM `jos_jf_content` WHERE `id` NOT IN ( SELECT `id` FROM `temp2011` );
DROP TABLE `temp2011`;
-------------------
// temp2011 - название таблицы можно поставить другим

Решил поставить автомат, если сохраняем перевод, то запускаем верхний скрипт - через JoomFish.class.phр.
Но Фиш - это Фиш....

----код в файле  JoomFish.class.phр- режим АВТОМАТ (идет очень медленно)------------
--------------------------------
/** Standard constructur
*/
function jfContent( &$db ) {
global $database; //добавил
//---------------
$database->setQuery( "CREATE TABLE IF NOT EXISTS `temp2011` ( `id` INT(11) );" );
$database->query();
            
$database->setQuery( "INSERT INTO `temp2011` (`id`) SELECT MAX(`id`) FROM `#__jf_content` GROUP BY `reference_field`, `reference_id`, `language_id`, `modified` " );
$database->query();


//------ниже код не работает, т.е ни очистка, ни удаление темп20011 через дроп не идет------
$database->setQuery( "DELETE FROM `#_jf_content` (id, language_id, reference_id, reference_table, reference_field, value, original_value, modified, modified_by, published) WHERE `id` NOT IN ( SELECT * FROM `temp2011` " );
$database->query();

$database->setQuery( "DROP TABLE `temp2011`;" );
$database->query();
---------------
-------------------
---------------------------------

Т.е таблица темп2011 создается, наполняется данными (но с очень большими тормозами - скорость загрузки страницы падает в 5-10 раз) - но ... очистка таблицы _jf_content от клонов не происходит, и темп2011 остается в БД.


ВОПРОСЫ:
1) нужно вставить скрипт (в любой файл JFish, все равно какой) для быстрого удаления клонов. Подскажите, кто знает...
2) как публиковать материалы (при условии, что перевод поля *тайтл* пустой)...

« Последнее редактирование: 17.10.2011, 20:46:01 от text »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Статьи без перевода

Автор skey

Ответов: 12
Просмотров: 4900
Последний ответ 07.04.2014, 12:56:35
от webgroupco
[RESOLVED] Joom!Fish создаёт дубликаты в меню и т.д. (Joomla 2.5)

Автор goga_pgasovav

Ответов: 3
Просмотров: 2783
Последний ответ 10.03.2014, 14:03:31
от RazarioAgro
Проблема перевода меню в Joom!Fish

Автор artweek

Ответов: 1
Просмотров: 1596
Последний ответ 18.05.2012, 19:33:54
от crucian
Нету перевода для не авторизованных пользователей

Автор StSet

Ответов: 1
Просмотров: 1674
Последний ответ 05.08.2011, 16:11:21
от StSet
Как прописать два варианта перевода в файле index.php?

Автор Лена)

Ответов: 5
Просмотров: 2638
Последний ответ 28.04.2011, 12:08:09
от b2z