Модераторы: Sardar, Aliance
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> цитата, дубль №2 
:(
    Опции темы
2man
Дата 12.10.2005, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: нет
Всего: 71



Кратко изложу суть проблемы. Я пытаюсь на IPB 2.1.1 вставить кнопку быстрой цитаты, как например у вас тут. Генерю кнопку:
Код

<a onmouseover="copyQ('{$post['name']}','{$post['post_date']}', '{$post['pid']}');" href='javascript:pasteQ();' title='{ipb.lang['tt_reply_to_post']}'><img src="{$ibforums->vars['img_url']}/p_quick_quote.gif" alt="Áûñòðàÿ öèòàòà" width="111" heigth="20" />

Вот. Получается выборка селекции происходит по onmouseover, а по щелчку по кнопке собственно вставка. Прописываю яваскрипт. Он состоит из двух частей:
1. Выборка селекции:
Код

function copyQ(qinf,pid)
{
        txt='';
        if (document.getSelection)
        {
                txt=document.getSelection()
        }
        else if (document.selection)
        {
                txt=document.selection.createRange().text;
        }
        if (txt.replace(" ","") != "")
        {
                txt='[quote='+name+', '+datetime+']\n'+txt+'\n[right][snapback]'+pid+'[/snapback][/right]\n[/quote]\n'
        }
}

2. Вставка селекции:
Код

function pasteQ()
{
        if(document.REPLIER.Post)document.REPLIER.Post.value += txt
}

Я понимаю, что это будет работать исправно только под ИЕ, но не в этом суть, с этим потом разберусь.
Так вот, у меня получается так, что когда я кликаю по кнопке быстрой цитаты, вставляется только содержимое переменной '+text+'. А ник автора, дату и даже тег цитаты не получается.В чем проблема?
Я пробовал еще генерить ник и дату в одну переменную, а потом ее прописывать в topics.php, так у меня ошибку выдает в 4 строке:
Код

//quick quote
               $row['quote_info']    = str_replace(array(" ", "[", "]", "'"),
                                                   array("&nbsp;", "&amp;#091;", "&amp;#093;", "&amp;#039;"),
                                                   $poster['name'] ).','.$std->get_date( $row['post_date'], 'LONG', 1 );
               //quick quote

Добавлено @ 22:41
Да и забыл сказать, ошибку выдает такого типа:
Цитата
Call to a member function on a non-object in z:\home\localhost\www\forums\sources\action_public\topics.php on line 942



--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
sergejzr
Дата 12.10.2005, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



Открой глаза и посмотри. Ну не верю тебе, что ты занимаешься этим скриптом всерьёз, а не просто ищешь готовое решение!
функция получает copyQ(qinf,pid),
а используешь ты потом:
txt='[quote='+name+', '+datetime+']
И чему эти переменные должны по твоему равняться?


Вообще ты мудришь. как раз наоборот, copyQ может быть без аргументов, а в pasteQ они бы не помешали, ведь именно там вставляется текст.

Код

window.txt='';

function copyQ(qinf,pid)
{
        window.txt='';
        if (document.getSelection)
        {
                window.txt=document.getSelection()
        }
        else if (document.selection)
        {
                window.txt=document.selection.createRange().text;
        }
}

function pasteQ(name,datetime)
{
 if(document.REPLIER.Post)
 if (window.txt.replace(" ","") != "")
        {
               document.REPLIER.Post.value +='[quote='+name+', '+datetime+']\n'+window.txt+'\n[right][snapback]'+pid+'[/snapback][/right]\n[/quote]\n'
        }
     
}


Добавлено @ 23:36
[QUOTE=2man, 12.10.2005, 21:39]Да и забыл сказать, ошибку выдает такого типа:[/QUOTE]
И чего с ней делать? Хоть бы строку саму привёл....


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
2man
Дата 13.10.2005, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: нет
Всего: 71



[quote=sergej.z, 12.10.2005, 22:35]И чего с ней делать? Хоть бы строку саму привёл.... [/quote]

[quote=2man, 12.10.2005, 21:39]так у меня ошибку выдает в 4 строке:[/quote]
Код

                                                   $poster['name'] ).','.$std->get_date( $row['post_date'], 'LONG', 1 );


[quote=sergej.z, 12.10.2005, 22:35]функция получает copyQ(qinf,pid),
а используешь ты потом:
txt='[quote='+name+', '+datetime+'][/quote]
smile Точно
Меня глючит или я где-то скобку пропустил:
Код

<a onmouseover="copyQ();" href='javascript:pasteQ('{$post['name']}', '{post['post_date']}', '{$post['pid']}');' title='{ipb.lang['tt_reply_to_post']}'><{P_QUOTE}>

Код

// Выборка селекции БЫСТРАЯ ЦИТАТА
function copyQ()
{
        window.txt='';
        if (document.getSelection)
        {
                window.txt=document.getSelection()
        }
        else if (document.selection)
        {
                window.txt=document.selection.createRange().text;
        }
}
// вставка
function pasteQ(name,datetime)
{
 if(document.REPLIER.Post)
 if (window.txt.replace(" ","") != "")
        {
               document.REPLIER.Post.value +='[quote='+name+', '+datetime+']\n'+window.txt+'\n[right][snapback]'+pid+'[/snapback][/right]\n[/quote]\n'
        }

}

Все же вроде правильно?
Добавлено @ 00:05
Ааааа... postid забылsmile


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
2man
Дата 13.10.2005, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: нет
Всего: 71



Код

document.REPLIER.Post.value +='[quote='+name+', '+datetime+']\n'+window.txt+'\n[right][snapback]'+pid+'[/snapback][/right]\n[/quote]\n'

Вот здесь ошибка. Куда сюда вставить pid?


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
sergejzr
Дата 13.10.2005, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



что за ошибка? Попробуй сперва без pid


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
2man
Дата 13.10.2005, 03:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: нет
Всего: 71



pid is not defined
без него никак не получится, инфа-то берется из поста


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
sergejzr
Дата 13.10.2005, 03:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



дык ты его в функцию передаёшь?

function pasteQ(name,datetime, pid)
?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
2man
Дата 13.10.2005, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: нет
Всего: 71



Ну конечноsmile
Код

function pasteQ(name,datetime,postid)

И в самой кнопке все вставил


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
sergejzr
Дата 13.10.2005, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360



А что у тебя здесь за глюки?
{$post['name']}', '{post['post_date']}', '{$post['pid']}');' title='{ipb.lang['tt_reply_to_post']}

то так напишешь post['post_date'] , то так $post['pid']

короче, давай всю функцию пхп сюда.


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
2man
Дата 13.10.2005, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: нет
Всего: 71



Итак, еще раз. Это кнопка:
Код

<a onmouseover="copyQ();" href="javascript:pasteQ('{$post['name']}', '{$post['post_date']}', '{$post['pid']}');" title='{ipb.lang['tt_reply_to_post']}'><{P_QUOTE}></a>

А это код яваскрипта:
Код

function copyQ()
{
        window.txt='';
        if (document.getSelection)
        {
                window.txt=document.getSelection()
        }
        else if (document.selection)
        {
                window.txt=document.selection.createRange().text;
        }
}
// âñòàâêà
function pasteQ(name,datetime,postid)
{
 if(document.REPLIER.Post)
 if (window.txt.replace(" ","") != "")
        {
               document.REPLIER.Post.value +='[quote='+name+', '+datetime+']\n'+window.txt+'\n[right][snapback]'+pid+'[/snapback][/right]\n[/quote]\n'
        }

}

Ошибка следующая:
pid is not defined в следующей строке:
Код

document.REPLIER.Post.value +='[quote='+name+', '+datetime+']\n'+window.txt+'\n[right][snapback]'+pid+'[/snapback][/right]\n[/quote]\n'



--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
sergejzr
Дата 13.10.2005, 23:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360




pasteQ(name,datetime,postid)
ght][snapback]'+pid+'[/snapback]
найди два отличия


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
2man
Дата 13.10.2005, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: нет
Всего: 71



Точно smile


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
sergejzr
Дата 13.10.2005, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 10
Всего: 360





Тему можно закрывать?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
2man
Дата 14.10.2005, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2007
Регистрация: 6.5.2005
Где: Нижние Чигири

Репутация: нет
Всего: 71



Да, думаю можно закрывать, в Мозилле и Эксплорере работает исправно, Нетскейп тож не ругается. Спасибо за помощьsmile


--------------------
Быстро поднятое - упавшим не считаеся
PM MAIL ICQ MSN   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0940 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.