smarty phpnuke

7 отговора 0 прегледа
#1

smarty phpnuke

здравейте

налага ми се да пренапиша кода на един.... няма определение какво точно е, тъй като е смесено smarty, phpnuke и още 2 незнайни същества. всичко вървеше добре докато не стигнах до проблема как да изчистя "кода" генериран от стара версия на fckeditor. и тъй като не мога да пипам нито пхп файловете (кодирани са), нито базата данни която пази генерираниат от fckeditor код, остава да ползвам регулярни изрази които открих из хтмл template-тите, но тъй като с тях съм като дупе и гащи ви моля за помощ да дадете идея как ще проработи това:

{ext->block name='Contacts 1' id=$data.page.id template='default.html' type='block_text'}

това горе пуска няколко реда <DIV, <FONT, <STRONG и други подобни и ми трябва да ги махна.

регулярниат израз който открих е този

{$ttf|regex_replace:"/<TABLE.*?>/":"<table align='center' cellSpacing='2' cellPadding='2' class='ttf'>"}

та как да смеся тва чудо с онова горе та да ми изтие ненужните кодове?

предварителни благодарности

Отговор
в отговор на ghs #2

Re: smarty phpnuke

Ух, голяма боза... Ами твърде малко съм работил със Smarty и подобни, но това горе явно търси <TABLE> или <TABLE ALA="bala"> в $ttf и го заменя с <table align='center' cellSpacing='2' cellPadding='2' class='ttf'>.

Та ако, да речем, в темплейта имаш

{$gosho}

това може да се замени със:

{$gosho|regex_replace:"/<\/?(font|div|strong).*?>/i":""}

Това би трябвало да премахне всички <FONT></FONT>, <DIV></DIV>, <STRONG></STRONG> тагове с главни и малки букви.

А в комбиниран вариант, regex_replace модификатора се слага след името на функцията:

{ext->block|regex_replace:"/<\/?(font|div|strong).*?>/i":"" name='Contacts 1' id=$data.page.id template='default.html' type='block_text'}

(не давам гаранции, че ще проработи :))

---
Life is too short so love the one you got
Cause you might get run over or you might get shot

Редактирано от chernobyl на

Отговор
в отговор на chernobyl #3

Re: smarty phpnuke

мерси

ще пробвам по-късно и ще кажа дали върши работа

Отговор
в отговор на ghs #4

Re: пробвах

но не ги премахва. продължава да вади същите неща

Отговор
в отговор на ghs #5

тогава

ob_start();
$contents = ob_get_contents();
ob_end_clean();

preg_replace('vsi4kite bozi' , $contents);

но е дървено решение

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на ro6avia #6

Re: тогава

в пхп файла не мога да го сложа, тъй както казах е кодиран
а в другият не работи

Отговор
в отговор на ghs #7

Re: тогава

ами направи го отвън - взимаш резултата от изпълнението и след обработка го пращаш към браузера:
$data = file("[линк]");
replace на нещата и
echo $new_data

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на ro6avia #8

Re: тогава

ц и с това не ще ината му. оставям го, пък ако толкова трябва, да си намерят оригиналните файлове и ще го направя.

благодарности

Отговор