• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Дополнительные поля в dle - вывод в скрипт

Статус
В этой теме нельзя размещать новые ответы.

Pimpleks

Создатель
Регистрация
4 Июн 2013
Сообщения
22
Реакции
8
Всем привет. В общем проблема такая.
Нашкрябал код для парсинга по определенной ссылке - если можно так сказать. Т.е ссылка вставляется в доп поле, а как прочитать ее от туда непойму.
Есть файл парсинга, и есть доп поле куда вставляется ссылка , помогите связать их.

Код:
$ssilka = 'а вот ту то как раз та ссылка которая при добавлении новости записывается в доп поле [xfvalue_ssilka]';
$text = file_get_contents('$ssilka');
$data = array();
preg_match('|(.*)|Uis', $text, $message8);

# $message1251[1] будет сожержать строку 'Какой-то текст'
$message1251 = iconv('UTF-8','windows-1251', $message8[1]);
echo "$message1251";
?>

Вот собственно и требую помощи, в пхп не силен, так только править или по инструкции, код выше писал 2 дня)))

вопрос в том что сделать ? как-то добавить код чтобы $ssilka = 'читалась [xfvalue_ssilka]';
или както - запрос делать в бд ? нокак тогда сделать запрос именно той новости какая нужна ? это для меня вообще лес, помогите пожалуйста.

Нужно из доп. поля отправить данные на обработку парсеру, не знаю как еще объяснить
 
Последнее редактирование модератором:
Вот этот код отвечает за дополнительные поля... show.full.php
PHP:
		if( strpos( $tpl->copy_template, "[xfvalue_" ) !== false OR strpos( $tpl->copy_template, "[xfgiven_" ) !== false ) {
			
			$xfieldsdata = xfieldsdataload( $row['xfields'] );
			
			foreach ( $xfields as $value ) {
				$preg_safe_name = preg_quote( $value[0], "'" );

				if ( $value[6] AND !empty( $xfieldsdata[$value[0]] ) ) {
					$temp_array = explode( ",", $xfieldsdata[$value[0]] );
					$value3 = array();

					foreach ($temp_array as $value2) {

						$value2 = trim($value2);
						$value2 = str_replace("'", "'", $value2);

						if( $config['allow_alt_url'] ) $value3[] = "<a href=\"" . $config['http_home_url'] . "xfsearch/" . urlencode( $value2 ) . "/\">" . $value2 . "</a>";
						else $value3[] = "<a href=\"$PHP_SELF?do=xfsearch&amp;xf=" . urlencode( $value2 ) . "\">" . $value2 . "</a>";
					}

					$xfieldsdata[$value[0]] = implode(", ", $value3);

					unset($temp_array);
					unset($value2);
					unset($value3);

				}
				
				if( empty( $xfieldsdata[$value[0]] ) ) {
					$tpl->copy_template = preg_replace( "'\\[xfgiven_{$preg_safe_name}\\](.*?)\\[/xfgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );
					$tpl->copy_template = str_replace( "[xfnotgiven_{$value[0]}]", "", $tpl->copy_template );
					$tpl->copy_template = str_replace( "[/xfnotgiven_{$value[0]}]", "", $tpl->copy_template );
				} else {
					$tpl->copy_template = preg_replace( "'\\[xfnotgiven_{$preg_safe_name}\\](.*?)\\[/xfnotgiven_{$preg_safe_name}\\]'is", "", $tpl->copy_template );
					$tpl->copy_template = str_replace( "[xfgiven_{$value[0]}]", "", $tpl->copy_template );
					$tpl->copy_template = str_replace( "[/xfgiven_{$value[0]}]", "", $tpl->copy_template );
				}

				$xfieldsdata[$value[0]] = stripslashes( $xfieldsdata[$value[0]] );

				if ($config['allow_links'] AND $value[3] == "textarea") $xfieldsdata[$value[0]] = replace_links ( $xfieldsdata[$value[0]], $replace_links['news'] );

				$tpl->copy_template = str_replace( "[xfvalue_{$value[0]}]", $xfieldsdata[$value[0]], $tpl->copy_template );

				if ( preg_match( "#\\[xfvalue_{$preg_safe_name} limit=['\"](.+?)['\"]\\]#i", $tpl->copy_template, $matches ) ) {
					$count= intval($matches[1]);
		
					$xfieldsdata[$value[0]] = str_replace( "</p><p>", " ", $xfieldsdata[$value[0]] );
					$xfieldsdata[$value[0]] = strip_tags( $xfieldsdata[$value[0]], "<br>" );
					$xfieldsdata[$value[0]] = trim(str_replace( "<br>", " ", str_replace( "<br />", " ", str_replace( "\n", " ", str_replace( "\r", "", $xfieldsdata[$value[0]] ) ) ) ));
		
					if( $count AND dle_strlen( $xfieldsdata[$value[0]], $config['charset'] ) > $count ) {
							
						$xfieldsdata[$value[0]] = dle_substr( $xfieldsdata[$value[0]], 0, $count, $config['charset'] );
							
						if( ($temp_dmax = dle_strrpos( $xfieldsdata[$value[0]], ' ', $config['charset'] )) ) $xfieldsdata[$value[0]] = dle_substr( $xfieldsdata[$value[0]], 0, $temp_dmax, $config['charset'] );
						
					}
		
					$tpl->set( $matches[0], $xfieldsdata[$value[0]] );
		
				}
			}
		}
В твоём случае, нужно смотреть примерно так:
PHP:
if ($value[0] == "your_link") {
	$your_link = $xfieldsdata[$value[0]];
}
Пихаем это примерно вот сюда:
PHP:
$tpl->copy_template = str_replace( "[xfvalue_{$value[0]}]", $xfieldsdata[$value[0]], $tpl->copy_template );
Теперь вне этого года доступна переменная $your_link, содержащая твою ссылку...

P.s. вместо your_link необходимо подставить название твоего поля...
P.p.s. делал на память, не тестил, может не работать
 
Извини, пихаем этот код вот сюда, это заменить или после него поставить?
В общем поставил после, но не совсем понял принцып .

Я добавил код, в своем парсере указал так
Код:
<?php
$ssilka = '$your_link';
$text = file_get_contents('$ssilka');
$data = array();
preg_match('|(.*)|Uis', $text, $message8);

# $message1251[1] будет сожержать строку 'Какой-то текст'
$message1251 = iconv('UTF-8','windows-1251', $message8[1]);
echo "$message1251";
?>

Потом создал доп поле с названием your_link.
в шаблоне прописал теги
Код:
[xfgiven_your_link][xfvalue_your_link][/xfgiven_your_link]
Выводит ссылку записанную в поле - но выводит ссылку -ну оно и понятно я же указал доп поле. А парсер какбы остается в стороне.
получается что надо инклуд парсера без доп поля в шаблон вписывать?
А точнее он прописан - значит не работает ((
{include file="za/parser.php"}

Нет не работает, ставил и перед и после и вместо - не выводит ничего, а прописывать поле - выводит ссылку - т.е. обходит скрипт.
 
Последнее редактирование модератором:
Ты полностью опиши что тебе нужно... В {include file="za/parser.php"} естественно переменная не попадёт
 
я добавляю в доп поле ссылку на видео, в этом коде много всего лишнего и оно показывается только на сайте источнике, или вот таким вот парсером, тоесть когда вставляешь ссылку в парсер

Код:
<?php
$ssilka = 'http://site.ru/content-tut';
$text = file_get_contents('$ssilka');
$data = array();
preg_match('|(.*)|Uis', $text, $message8);

# $message1251[1] будет сожержать строку 'Какой-то текст'
$message1251 = iconv('UTF-8','windows-1251', $message8[1]);
echo "$message1251";
?>

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

Дальше идём ниже, как заканчивается код, приведённый в первом посте, вставляешь код:
PHP:
$ssilka = 'http://site.ru/content-tut';
$text = file_get_contents('$ssilka');
preg_match('|(.*)|Uis', $text, $message8);

$message1251 = iconv('UTF-8','windows-1251', $message8[1]);
$tpl->set("{video}" , $message1251);
Дальше в шаблон вставляешь {video}
 
А каким образом я сообщу код видео?
Код:
$ssilka = 'http://site.ru/content-tut';
или написать там как в первом посте
Код:
$ssilka = '$your_link';

Написал все как сказал - указал $your_link в ссылке в коде в шаблоне указал {video} - не выводит ничего
 
Последнее редактирование модератором:
Кавычки удалите... Переменные вне кавычек указываются
 
ааааа спасибо - работает !!!!! вы Просто гуру !!!! Что посоветуете почитать, или чего начать изучение php, с какой версии, начинал на php.su но потом что то забросил. Сейчас хочу начать сначала!!
 
Учился вот по этой книге + практика
Для просмотра ссылки Войди или Зарегистрируйся

Сейчас она уже устарела, но разница 5.0 и 5.5 не велика - нагоняется чтением 2-3 статей в блогах.
Ну и обязательно читаем документацию по движку, пишем полностью свои коды - моды, хаки, можно мелкую CMS тупую сделать...

P.s. благодарность тут выражают кнопкой "мне нравится"
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху