Нужна помощь по Dle.

igrovik

Писатель
Регистрация
17 Сен 2015
Сообщения
2
Реакции
0
Приветствую всех нужна помощь. Суть проблемы ниже...

Имеется файл в который нужно переменной затолкать ссылку с дополнительного поля.
Пошарив по просторам инета выискал такой код
Код:
if ($value[0] == "your_link") {
$your_link = $xfieldsdata[$value[0]];
}
на данном сайте, вот тема Для просмотра ссылки Войди или Зарегистрируйся .
В которой @Горбушка писал что тот код который предоставлен выше:
вставляется в /engine/modules/show.full.php.

Как я понял сразу после этого:

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

Так вот делаю так, как написано но ничего не происходит. В чем может быть проблема???
Возможно кто-то подскажет.
P/S файлик лежит в корне сайта может его ка-то нужно подключить к /engine/modules/show.full.php.

Если в строку где должна ставится переменная, вставить саму ссылку, то все выводится так как нужно. А как только ссылку заменяю на переменную выдает ошибку
Warning: file_get_contents() [Для просмотра ссылки Войди или Зарегистрируйся]: Filename cannot be empty in C:\OpenServer\domains\proverka\parser.php on line 21
21 строка это и есть тот кусок где стоит переменная.
 
Воу воу воу... Притормози...

Ты переменную используешь в parser.php, а код добавляешь в show.full.php... Ты parser.php вызываешь как? У тебя подтягивается show.full.php чтобы переменная сгенерировалась?

Давай код целиком - сделаем что хочешь.

P.s. file_get_contents() и дополнительное поле... Хм... А о безопасности ты подумал?
 
Воу воу воу... Притормози...

Ты переменную используешь в parser.php, а код добавляешь в show.full.php... Ты parser.php вызываешь как? У тебя подтягивается show.full.php чтобы переменная сгенерировалась?

Давай код целиком - сделаем что хочешь.

P.s. file_get_contents() и дополнительное поле... Хм... А о безопасности ты подумал?

Если бы я был в этом гуру, а так собираю по всему инету куски. Если не сложно объясни в чем опасность?? Да в parser.php . Да Этот код
Код:
if ($value[0] == "your_link") {
$your_link = $xfieldsdata[$value[0]];
}
в show.full
Насчет вызываю если я правильно понял то так {video} . Вот этот вопрос к сожалению не понял : У тебя подтягивается show.full.php чтобы переменная сгенерировалась?

Кидай суда, этого добра тут...

Это код parser.php
Код:
<?php

$filmix = array(
    // Ширина плеера
    'player_width' => 500,
   
    // Высота плеера
    'player_height' => 281,
   
    // Включенные плееры
    'player' => array( 'first', 'second' ),
   
    // Читать по N килобайт в секунду (увеличение приводит к большей нагрузке, уменьшение к снижению нагрузки)
    'traffic' => 512,
   
    // Время жизни кеша, 0 = отключить
    'cache' => 0,
);

$content = file_get_contents($ssilka);

// Определяем позицию строки, до которой нужно все отрезать
$pos = strpos($content, '/pl/');
//Режим хлам

$content=str_replace('','',$content);

//Отрезаем все, что идет до нужной нам позиции
$content = substr($content, $pos);

// Точно таким же образом находим позицию конечной строки
$pos = strpos($content, '"');

// Отрезаем нужное количество символов от нулевого
$content = substr($content, +0, $pos);

//если в тексте встречается текст, который нам не нужен, вырезаем его
$content=str_replace('','',$content);
// выводим спарсенный текст.
//echo $content;
$y = 'http://Доннор.ру';
$e = $y . $content;

// Путь к плееру
    $player_swf = $config['http_home_url'] . '/uploads/swf/uppod.swf';

    // Путь к стилям
    $player_st = $config['http_home_url'] . '/uploads/swf/styles.txt';

    // Код плеера
    $play=$player['first'] = <<<FLASH
<object id="videoplayer1096" width="{$filmix['player_width']}" height="{$filmix['player_height']}">
    <param name="allowFullScreen" value="true" />
    <param name="allowScriptAccess" value="always" />
    <param name="wmode" value="transparent" />
    <param name="movie" value="{$player_swf}" />
    <param name="flashvars" value='st={$player_st}&amp;pl={$e}' />
    <embed src="{$player_swf}" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" flashvars="st={$player_st}&amp;pl={$e} width="{$filmix['player_width']}" height="{$filmix['player_height']}"></embed>
</object>
FLASH;
Данные две строки:
require_once ROOT_DIR . '/parser.php';

$tpl->set("{video}" , $your_link);

Вставляю в /engine/modules/show.full.php
После:
if( ! defined( 'DATALIFEENGINE' ) ) {
die( "Hacking attempt!" );
}

В шаблоне сайта в нужном месте вставляю {video}
 
Последнее редактирование модератором:
Да куда больше то:) Думаю что @Горбушка уже догадался что должно выйти:)
@Горбушка не экстрасенс, но старается, правда...

Рано ты вставляешь...
Ты вставляешь ДО того, как переменная сгенерировалась...

Ты правильно написал, что код надо вставлять после (можно и до, это просто ориентир где переменная уже точно задана:(
PHP:
$tpl->copy_template = str_replace( "[xfvalue_{$value[0]}]", $xfieldsdata[$value[0]], $tpl->copy_template );
Так вот, ты вставляешь примерно так:
PHP:
if ($value[0] == "your_link") {
$ssilka = $xfieldsdata[$value[0]];
require_once ROOT_DIR . '/parser.php';
$tpl->set("{video}" , $play);
}
В результате у тебя {video} в шаблоне заменится на код плеера... Если я правильно понял, как у тебя код работает.

P.s. писалось на память кода... Если криво - запущу IDE и сделаю правильно, но завтра :)
 
@Горбушка не экстрасенс, но старается, правда...

Рано ты вставляешь...
Ты вставляешь ДО того, как переменная сгенерировалась...

Ты правильно написал, что код надо вставлять после (можно и до, это просто ориентир где переменная уже точно задана:(
PHP:
$tpl->copy_template = str_replace( "[xfvalue_{$value[0]}]", $xfieldsdata[$value[0]], $tpl->copy_template );
Так вот, ты вставляешь примерно так:
PHP:
if ($value[0] == "your_link") {
$ssilka = $xfieldsdata[$value[0]];
require_once ROOT_DIR . '/parser.php';
$tpl->set("{video}" , $play);
}
В результате у тебя {video} в шаблоне заменится на код плеера... Если я правильно понял, как у тебя код работает.

P.s. писалось на память кода... Если криво - запущу IDE и сделаю правильно, но завтра :)
Ага ща попробую. Я правильно понял этот код что ты дал вставлять в show.full.php?
 
Может я что-то не то делаю?
if ($value[0] == "your_link") {
$ssilka = $xfieldsdata[$value[0]];
require_once ROOT_DIR . '/parser.php';
$tpl->set("{video}" , $play);
}
Там где your_link - это имя доп поля?
То есть если у меня доп поле называется filmix то мне просто вставить так:
if ($value[0] == "filmix") {
$ssilka = $xfieldsdata[$value[0]];
require_once ROOT_DIR . '/parser.php';
$tpl->set("{video}" , $play);
} ??????
 
Назад
Сверху