Textpattern - на русском языке

форум общения русскоязычных пользователей CMS Текстпаттерн

Вы не зашли.

#1 10-03-2010 19:41:58

Steve O.
веди
Зарегистрирован: 08-01-2010
Сообщений: 29

Удаление Тегов

Здравствуйте товарищи.
Я разработал себе пару простеньких плагинов для вставки Флешек и создания mp3 проигрывателя. Столкнулся с парой проблем. Решил не обсуждать это в разделе плагинов, а тут, где это положено.

1. Проблема.
Хочу между тегами <head> </head>
Разместить некий код. Мне показали пример. Я посмотрел на плагины других разработчиков, у каждого свои методы. Я нашел функцию, в которых возвращается требуемая строка, но в некоторых случаях не находил откуда эта функция вызывается.
Глядя на все это сделал так

Код:

function www_player_head() {
global $prefs, $siteurl, $path_from_root;
$find = '</head>';
$new_head = 'lalalalalalalalalala';
return str_replace ($find, $new_head . $find);
}
www_player_head();

Но ничего не происходит. Помогите пожалуйста. Укажите на ошибки. Заранее спасибо.



2. Проблема
Когда я вставляю в статье свой плагин

Код:

<www_player....

он при парсинге странички заключается в теги <p></p>

Т.е. в готовой страничке исходный код выглядит так

Код:

<p>
<div>........ </div>
<div>........</div>
<object>............</object>
</p>

И валидатор начинает ругаться.
Скажите пожалуйста, как мне избавиться от этих тегов открывающиего и закрывающего <p> </p>

Отредактированно Steve O. (11-03-2010 18:32:22)

Неактивен

 

#2 10-03-2010 20:23:01

Steve O.
веди
Зарегистрирован: 08-01-2010
Сообщений: 29

Re: Удаление Тегов

О! Товарищи! С первой проблемой справился, взяв пример the_ghost

Код:

global $event, $jmdImgSel, $prefs;
ob_start('www_head');

register_callback('www_head', "www_head");

function www_head($buffer) {
    $find = '</head>';
    $new_head = '<script type="text/javascript" src="http://wwwow.ru/swf_object.js"></script>';
    return str_replace($find, $new_head . $find, $buffer);
}

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

А со второй пока не справился.

О! И со второй проблемой справился тем же самым способом.
Поставил вначале и в конце строки идентификатор
www_start_player
....код
www_end_player

В тоге в страничке все выглядело так

<p>www_start_player
... код
www_end_player</p>

А потом вышеперечисленным способом нашел в странице и заменил
'<p>www_start_player' на ''
Тоже самое с закрывающим тегом.

Может это через одно место, но работает.
Мне немного стыдно за такой топорный способ. Посоветуйте пожалуйста, чем все это можно заменить?

Отредактированно Steve O. (10-03-2010 20:58:55)

Неактивен

 

#3 11-03-2010 00:34:08

sbel
веди
Зарегистрирован: 23-01-2010
Сообщений: 15

Re: Удаление Тегов

Steve O. написал:

2. Проблема
Когда я вставляю в статье свой плагин

Код:

<www_player....

он при парсинге странички заключается в теги <p></p>

это делает textpie.
варианты отключение textpie:
1. пишем код так:  ==<www_player....    </www_player>==
2. начать строку с пробела, т.е. "пробел"<www_player....    </www_player>
3. выключить texpie для всей статьи. при написании статьи указать "оставьть текст как есть"

Неактивен

 

#4 11-03-2010 00:54:40

Steve O.
веди
Зарегистрирован: 08-01-2010
Сообщений: 29

Re: Удаление Тегов

А если мне нужно чтобы Текстайл работал для всей статьи, но не работал для моего тега?
3 ввариант отпадает

2 вариант неудобен совершенно

1 вариант тоже не пойдет потому что флешка все равно окажется внутри тега <p> </p> из предыдущего параграфа.

Неактивен

 

#5 11-03-2010 09:59:29

advan
ю
Откуда: Mk
Зарегистрирован: 05-11-2006
Сообщений: 835
Вебсайт

Re: Удаление Тегов

sbel написал:

это делает textpie.

Что есть textpie?


Знакомьтесь на здоровье - http://love.kachok.ru  /  Я в PHP ниПХПуя незнаю! :)

Неактивен

 

#6 11-03-2010 10:26:45

makss
наш
Зарегистрирован: 21-10-2008
Сообщений: 208
Вебсайт

Re: Удаление Тегов

Steve O. написал:

2 вариант неудобен совершенно

дело привычки.  smile

перевод строки, пробел, тег...

Код:

 <txp:www_player playlist="The Best of 2010" >
t: Artist - Track Name u: http://....
t: Artist - Track Name u: http://....
t: Artist - Track Name u: http://....
</txp:www_player>

Steve O. написал:

1 вариант тоже не пойдет потому что флешка все равно окажется внутри тега <p> </p> из предыдущего параграфа.

а зачем предыдущий параграф??
перевод строки, а потом уже ==<...

Код:

==<txp:www_player playlist="The Best of 2010" >
t: Artist - Track Name u: http://....
t: Artist - Track Name u: http://....
t: Artist - Track Name u: http://....
</txp:www_player>==

aks_rss : RSS parser and aggregator | http://makss.uaho.net/plugins/aks_rss
aks_table : Simple tables in TxP (Ctrl+C, Ctrl+V) | http://makss.uaho.net/plugins/aks_table

Неактивен

 

#7 11-03-2010 10:33:55

makss
наш
Зарегистрирован: 21-10-2008
Сообщений: 208
Вебсайт

Re: Удаление Тегов

advan написал:

sbel написал:

это делает textpie.

Что есть textpie?

наверное, имелось в виду textile


aks_rss : RSS parser and aggregator | http://makss.uaho.net/plugins/aks_rss
aks_table : Simple tables in TxP (Ctrl+C, Ctrl+V) | http://makss.uaho.net/plugins/aks_table

Неактивен

 

#8 11-03-2010 12:11:41

the_ghost
ять
Откуда: Минск
Зарегистрирован: 01-05-2007
Сообщений: 1957
Вебсайт

Re: Удаление Тегов

Я тоже постоянно пользуюсь пробелом, когда надо выключить textile для какой-то строки. Абсолютно удобно.


.      Создание шаблонов для Textpatern http://textpattern.ru/forum/viewtopic.php?id=1665 (<txp:make_template quality="best" />)
КОНСУЛЬТАЦИИ по Textpattern - ICQ#8458496, nemiga@gmail.com <txp:if_question><txp:pay /></txp:if_question>
       Список всех тегов - http://textbook.textpattern.net/wiki/in … _Reference

Неактивен

 

#9 11-03-2010 18:30:24

Steve O.
веди
Зарегистрирован: 08-01-2010
Сообщений: 29

Re: Удаление Тегов

Раз уж зашел спор, я хочу пояснить, что я имею в виду.

1. ==....==
Допустим, что в статье я напишу так

Код:

Лялялялялял Тополя траливали!
==<txp:www_player ...>
</txp:player>==

тырым-пырым ололо!

Когда будет сгенерирован HTML код, о будет следующим:

Код:

<p>Лялялялялял Тополя траливали!<br />
<div class=''.....></div>
<div class=''.....></div></p>

<p>тырым-пырым ололо!</p>

Т.е. слой с флешкой оказывается внутри тегов <p></p>

Это первый довод, а второй - я ни разу не видел плагин который нужно было бы прописывать таким вот образом ==.....== это не удобно и как минимум - не солидно. Не только для себя, но и для других юзеров, желающих воспользоваться этим плагином.



2. С пробелом. Для вас-то юзать свои плагины таким образом может и удобно. А если вы его распространяете? Думаете юзер, мало понимающий в технической стороне вашего плагина, станет ставить пробелы? И так же, я не видел ни одного плагина, который бы прописывался таким образом.

В общем, я сильно упростил код своего плагина. Не стал делать идентификаторы, а тупо выискивал в $buffer такие строки '<p><div' и '</div></p>' заменял их на '<div' и '</div>' соответственно.

По любому не повредит, ибо тег <div> невалиден внутри абзаца.

Отредактированно Steve O. (11-03-2010 18:31:16)

Неактивен

 

#10 11-03-2010 20:54:50

the_ghost
ять
Откуда: Минск
Зарегистрирован: 01-05-2007
Сообщений: 1957
Вебсайт

Re: Удаление Тегов

Steve O. написал:

Не стал делать идентификаторы, а тупо выискивал в $buffer такие строки '<p><div' и '</div></p>' заменял их на '<div' и '</div>' соответственно.

По любому не повредит, ибо тег <div> невалиден внутри абзаца.

Слишком "нагло". Я бы сделал атрибут, типа fix_textile=1 и при его наличии удалял этот глюк. А так - я часто пользуюсь пробелом перед вставкой тега - ни разу не чувствовал себя от этого плохо. А вот если какой-то плагин сам удалит часть моей верстки - мало ли кто как сверстал - это будет приличная работа по выискиванию проблемы - уж поверьте.


.      Создание шаблонов для Textpatern http://textpattern.ru/forum/viewtopic.php?id=1665 (<txp:make_template quality="best" />)
КОНСУЛЬТАЦИИ по Textpattern - ICQ#8458496, nemiga@gmail.com <txp:if_question><txp:pay /></txp:if_question>
       Список всех тегов - http://textbook.textpattern.net/wiki/in … _Reference

Неактивен

 

#11 12-03-2010 00:42:54

makss
наш
Зарегистрирован: 21-10-2008
Сообщений: 208
Вебсайт

Re: Удаление Тегов

Steve O. написал:

Раз уж зашел спор, я хочу пояснить, что я имею в виду.

1. ==....==
Допустим, что в статье я напишу так

Код:

Лялялялялял Тополя траливали!
==<txp:www_player ...>
</txp:player>==

тырым-пырым ололо!

прошу прощения, имел в ввиду одно, сказал другое...  я хотел сказать, что нужно добавить дополнительный перевод строки, т.е. должна перед тегом быть пустая строка, т.е. такой код:

Код:

Лялялялялял Тополя траливали!

==<txp:www_player ...>
</txp:player>==

тырым-пырым ололо!

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

Steve O. написал:

Это первый довод, а второй - я ни разу не видел плагин который нужно было бы прописывать таким вот образом ==.....== это не удобно и как минимум - не солидно. Не только для себя, но и для других юзеров, желающих воспользоваться этим плагином.

2. С пробелом. Для вас-то юзать свои плагины таким образом может и удобно. А если вы его распространяете? Думаете юзер, мало понимающий в технической стороне вашего плагина, станет ставить пробелы? И так же, я не видел ни одного плагина, который бы прописывался таким образом.

при чем тут техническая сторона плагина??..
это стандартный textile, если он используется в статьях, то имеет смысл, хоть чуть-чуть почитать о нем.


Steve O. написал:

В общем, я сильно упростил код своего плагина. Не стал делать идентификаторы, а тупо выискивал в $buffer такие строки '<p><div' и '</div></p>' заменял их на '<div' и '</div>' соответственно.

По любому не повредит, ибо тег <div> невалиден внутри абзаца.

не стоит так делать, т.к. вместо одного не валидного кода может получиться другой еще более не валидный.
пример:

Код:

<p>123<div>....  </div></p>

после замены получится открытый тег <p>

<p>123<div>....  </div>

aks_rss : RSS parser and aggregator | http://makss.uaho.net/plugins/aks_rss
aks_table : Simple tables in TxP (Ctrl+C, Ctrl+V) | http://makss.uaho.net/plugins/aks_table

Неактивен

 

#12 12-03-2010 18:56:59

Steve O.
веди
Зарегистрирован: 08-01-2010
Сообщений: 29

Re: Удаление Тегов

Ага, спасибо. На счет замены <p><div убедительно. Вернул уникальные идентификаторы на место.

А на счет ==...== и пробела по прежнему считаю не самым удобным вариантом. Юзер должен получить желаемый код, в каком бы месте статьи, и как бы он не вставил тег.
Мой прием решает эту задачу автоматически. )

Неактивен

 

#13 12-03-2010 19:09:43

froZZen
он
Откуда: vrn - spb
Зарегистрирован: 05-10-2005
Сообщений: 273
Вебсайт

Re: Удаление Тегов

Steve O. написал:

А на счет ==...== и пробела по прежнему считаю не самым удобным вариантом. Юзер должен получить желаемый код, в каком бы месте статьи, и как бы он не вставил тег.

Полностью согласен с предыдущими выступающими.
Юзер, который НЕ УМЕЕТ пользоваться Текстайлом, 100% никогда не воспользуется Вашим плагином.
Грамотному Юзеру использовать плагин стандартными для Текстайла методами (т.е. пробел, ==...==,<notextile>...</notextile>) труда не составит.
Так что не заморачивайтесь.

Неактивен

 

#14 12-03-2010 21:15:19

the_ghost
ять
Откуда: Минск
Зарегистрирован: 01-05-2007
Сообщений: 1957
Вебсайт

Re: Удаление Тегов

Steve O. написал:

Юзер должен получить желаемый код, в каком бы месте статьи, и как бы он не вставил тег.
Мой прием решает эту задачу автоматически. )

Надеюсь последний гвоздь, который убедит вас - теги не только в статьях юзают - ведь можно и в формы вставлять - а там textile нет.


.      Создание шаблонов для Textpatern http://textpattern.ru/forum/viewtopic.php?id=1665 (<txp:make_template quality="best" />)
КОНСУЛЬТАЦИИ по Textpattern - ICQ#8458496, nemiga@gmail.com <txp:if_question><txp:pay /></txp:if_question>
       Список всех тегов - http://textbook.textpattern.net/wiki/in … _Reference

Неактивен

 

#15 13-03-2010 00:17:26

Steve O.
веди
Зарегистрирован: 08-01-2010
Сообщений: 29

Re: Удаление Тегов

froZZen, Я до сих пор не умею полноценно пользоваться Текстайлом. Не могу еще к нему привыкнуть. И в тоже время, я без особых проблем использую более 10 плагинов на своем сайте. У меня не возникает проблем со вставкой тега, с его использованием и валидностью кода. Никаких пробелов и == мне ставить не приходится и лезть лишний раз на форумы, чтобы узнать почему у меня не получается, блин, нормально вставить код.

the_ghost, да и это предусмотрено. Если найден идентификатор флешки без открывающего тега <p> то он будет просто удален. То же самое с закрывающим </p>

Не понятно в чем вы хотите убедить. Что лучше юзать пробелы и == ? Чем сделать ту же операцию самим плагином?

Неактивен

 

#16 13-03-2010 12:34:19

froZZen
он
Откуда: vrn - spb
Зарегистрирован: 05-10-2005
Сообщений: 273
Вебсайт

Re: Удаление Тегов

Steve O. написал:

froZZen, Я до сих пор не умею полноценно пользоваться Текстайлом. Не могу еще к нему привыкнуть. И в тоже время, я без особых проблем использую более 10 плагинов на своем сайте. У меня не возникает проблем со вставкой тега, с его использованием и валидностью кода. Никаких пробелов и == мне ставить не приходится и лезть лишний раз на форумы, чтобы узнать почему у меня не получается, блин, нормально вставить код.

the_ghost, да и это предусмотрено. Если найден идентификатор флешки без открывающего тега <p> то он будет просто удален. То же самое с закрывающим </p>

Не понятно в чем вы хотите убедить. Что лучше юзать пробелы и == ? Чем сделать ту же операцию самим плагином?

Лично я не хочу Вас ни в чем убеждать. Я хочу только сказать: если Вы не пользуетесь Текстайлом, то лучше его отключить и у Вас не будет никаких проблем. smile
Те же, кто им пользуется - знают как отключать его для решения каких-то своих проблем.

Отредактированно froZZen (13-03-2010 12:34:35)

Неактивен

 

#17 13-03-2010 20:13:42

Steve O.
веди
Зарегистрирован: 08-01-2010
Сообщений: 29

Re: Удаление Тегов

Нет. Я пользуюсь Текстайлом, но пока не со всеми сталкивался. Например !..!, "http://....":что-то, h1. h2. *....*, и т.д... самые распространенные. Поэтому и не хочется отключать. А плагин тоже хочется вставить наипростейшим способом без дополнительных елозаний...
В общем, как я понял, на вкус и цвет фломастеры разные )))

Мне например хочется максимально упростить действия юзера.

Неактивен

 

#18 13-03-2010 22:04:19

froZZen
он
Откуда: vrn - spb
Зарегистрирован: 05-10-2005
Сообщений: 273
Вебсайт

Re: Удаление Тегов

Steve O. написал:

Мне например хочется максимально упростить действия юзера.

ИМХО (как профессионального программиста):
Каждая функция должна отвечать только за то для чего она предназначена.
Если функция предназначена для проигрывания музыки, то она должна только проигрывать музыку - именно этого от нее ожидает человек, который ей воспользуется.
Если хотите упростить действия Юзверя, то создайте функцию вставляющую корректно ЛЮБОЙ тэг в Текстайл или еще куда-нибудь.
Вот это будет профессиональный подход. (ИМХО, повторюсь)

Неактивен

 

#19 14-03-2010 00:14:09

makss
наш
Зарегистрирован: 21-10-2008
Сообщений: 208
Вебсайт

Re: Удаление Тегов

froZZen написал:

Каждая функция должна отвечать только за то для чего она предназначена.
Если функция предназначена для проигрывания музыки, то она должна только проигрывать музыку - именно этого от нее ожидает человек, который ей воспользуется.
Если хотите упростить действия Юзверя, то создайте функцию вставляющую корректно ЛЮБОЙ тэг в Текстайл или еще куда-нибудь.

полностью с этим согласен. 1 функция - 1 действие.
и сам стараюсь придерживаться этого.


aks_rss : RSS parser and aggregator | http://makss.uaho.net/plugins/aks_rss
aks_table : Simple tables in TxP (Ctrl+C, Ctrl+V) | http://makss.uaho.net/plugins/aks_table

Неактивен

 

#20 14-03-2010 00:24:51

makss
наш
Зарегистрирован: 21-10-2008
Сообщений: 208
Вебсайт

Re: Удаление Тегов

froZZen написал:

Если хотите упростить действия Юзверя, то создайте функцию вставляющую корректно ЛЮБОЙ тэг в Текстайл или еще куда-нибудь.

кстати...  забиваю себе в ту-ду создание этой функции  smile
после выходных постараюсь найти время на культурное оформление этого плагина.


aks_rss : RSS parser and aggregator | http://makss.uaho.net/plugins/aks_rss
aks_table : Simple tables in TxP (Ctrl+C, Ctrl+V) | http://makss.uaho.net/plugins/aks_table

Неактивен

 

#21 14-03-2010 11:02:04

Steve O.
веди
Зарегистрирован: 08-01-2010
Сообщений: 29

Re: Удаление Тегов

froZZen написал:

Если хотите упростить действия Юзверя, то создайте функцию вставляющую корректно ЛЮБОЙ тэг в Текстайл или еще куда-нибудь.

Так я это и сделал.
Юзверь прописывает мой тег в любом месте статьи или формы. А дальше уже формируемый HTML код, Вставляется корректно, определяя свое положение в страничке.
Задача - валидно вставить флешку, содержащую в себе mp3 плеер. А валидно, потому что многие известные способы ее вставки оказываются невалидными.

К чему придирки? Хотите, чтобы юзверь каждый раз писал == == ? Вместо того, чтобы как полагается прописать тег и не париться?

Такое ощущение, что вы все либо тупые, либо не понимаем друг друга.
Повторюсь. Мой плагин имеет только одну функцию - вставляет флешку в статью, одновременно с этим определяет находится он внутри абзаца или нет, и удаляет теги переноса строки вокруг себя, если они есть. Вот и все.

Что тут плохого? Я не пойму. Вы ЗА то чтобы юзать пробелы и == ==?
Вы где-нибудь видели разработчика, который бы писал плагины так, чтобы их нужно было прописать такими вот способами? По вашему это профессионально?

Неактивен

 

#22 14-03-2010 12:25:27

the_ghost
ять
Откуда: Минск
Зарегистрирован: 01-05-2007
Сообщений: 1957
Вебсайт

Re: Удаление Тегов

Обзываться не хорошо smile В споре, как известно, рождается истина smile

Тут вам пыютаются донести, что подобное поведение, по крайней мере без уведомления об этом пользователя, не сликшом "в духе TXP". А что, если пользователь хочет вставить внутрь параграфа плеер? Вполне вероятно и такое.


.      Создание шаблонов для Textpatern http://textpattern.ru/forum/viewtopic.php?id=1665 (<txp:make_template quality="best" />)
КОНСУЛЬТАЦИИ по Textpattern - ICQ#8458496, nemiga@gmail.com <txp:if_question><txp:pay /></txp:if_question>
       Список всех тегов - http://textbook.textpattern.net/wiki/in … _Reference

Неактивен

 

#23 14-03-2010 16:12:19

Steve O.
веди
Зарегистрирован: 08-01-2010
Сообщений: 29

Re: Удаление Тегов

Да, извините, конечно, немного вспылил. Я чесслово до сих пор не могу понять, зачем впихивать юзеру плагин, который добавит как минимум 4 ошибки в валидаторе? Он конечно может исправить положение, добавив == или пробел. Я всего навсего избавил его от этого.

На счет того, что кто-то захочет вставить флешку в параграф, я решил подумать и сделать дополнительную переменную, которая насильно отключит любые манипуляции с кодом. Но по умолчанию, эта функция будет отключена.

Учился на своем опыте. Когда меня в бешенство приводили плагины, которые уродуют HTML.

Неактивен

 

#24 14-03-2010 17:38:39

the_ghost
ять
Откуда: Минск
Зарегистрирован: 01-05-2007
Сообщений: 1957
Вебсайт

Re: Удаление Тегов

Плагин ничего не "уродует" - просто поведение textile требует изучения smile И иногда может удивить, если говорить о как бы ненужном параграфе. Но все же - поведение textile вполне логично и семантично и отвечает требования W3C. Подобный атрибут я бы сделал "по желанию", с указанием в хелпе плагина на эту мелочь. Поверьте, так будет лучше для всех его пользователей.


.      Создание шаблонов для Textpatern http://textpattern.ru/forum/viewtopic.php?id=1665 (<txp:make_template quality="best" />)
КОНСУЛЬТАЦИИ по Textpattern - ICQ#8458496, nemiga@gmail.com <txp:if_question><txp:pay /></txp:if_question>
       Список всех тегов - http://textbook.textpattern.net/wiki/in … _Reference

Неактивен

 

Board footer

RSS   Rambler's Top100
Powered by PunBB
Textpattern.ru