проблема с фильтрами (решено)

Аватар пользователя gumk gumk 24 июля 2008 в 22:23

Создал блок с php кодом (фильтр ввода php), блок должен отображаться через панели2, но вот проблема
print ("текст") ;- отображается
print("$user"); - отображается, а вот
print('<^a href="http://moesait.ru/user/'.($user).'>user<^/a>'); - нет, точнее если ввести просто <^a href="http://moesait.ru/user/4">user<^/a> - тоже не отображается!!! как настроить фильтры?

--НELP--

Комментарии

Аватар пользователя gumk gumk 24 июля 2008 в 22:40

Спасибо, но я данную ссылку как пример привел))), у меня панелями создана страница пользователя, на самом деле мне нужно создать ссылку - "добавить в друзья" и "ссылку отправить сообщение"

Аватар пользователя olk olk 24 июля 2008 в 22:48

Тогда используйте функцию l('title',$url);
print l('добавить в друзья',$url);

Аватар пользователя gumk gumk 24 июля 2008 в 23:37

что-то я туплю, написал так:
<?php
global $user;
$user_id = $user->uid;
$url = "sait.ru/buddy/add/".$user_id."?destination=user%2F".$user_id;
print l('добавить в друзья',$url);
?>

а у меня вместо <?php http://sait.ru/buddy/add/1?destination=user%2F1 ?> (где 1 это $user_id)
генегрируется <?php http://sait.ru/buddy/add/1%3Fdestination%3Duser%252F1 ?>

Аватар пользователя olk olk 24 июля 2008 в 23:39

добавтье в l параметр $html=true
для д5 функция l()

<?php
/**
 * Format an internal Drupal link.
 *
 * This function correctly handles aliased paths, and allows themes to highlight
 * links to the current page correctly, so all internal links output by modules
 * should be generated by this function if possible.
 *
 * param $text
 *   The text to be enclosed with the anchor tag.
 * param $path
 *   The Drupal path being linked to, such as "admin/content/node". Can be an external
 *   or internal URL.
 *     - If you provide the full URL, it will be considered an
 *   external URL.
 *     - If you provide only the path (e.g. "admin/content/node"), it is considered an
 *   internal link. In this case, it must be a system URL as the url() function
 *   will generate the alias.
 * param $attributes
 *   An associative array of HTML attributes to apply to the anchor tag.
 * param $query
 *   A query string to append to the link.
 * param $fragment
 *   A fragment identifier (named anchor) to append to the link.
 * param $absolute
 *   Whether to force the output to be an absolute link (beginning with http:).
 *   Useful for links that will be displayed outside the site, such as in an RSS
 *   feed.
 * param $html
 *   Whether the title is HTML, or just plain-text. For example for making an
 *   image a link, this must be set to TRUE, or else you will see the encoded
 *   HTML.
 * return
 *   an HTML string containing a link to the given path.
 */
function l($text$path$attributes = array(), $query NULL$fragment NULL$absolute FALSE$html FALSE
?>
Аватар пользователя gumk gumk 24 июля 2008 в 23:42

Еще раз спасибо, а где про все эти функции почитать можно, чтобы глупых вопросов больше не задавать?

Аватар пользователя gumk gumk 24 июля 2008 в 23:59

<?php
global $user;
$user_id = $user->uid;
$html=TRUE;
$url = "sait.ru/buddy/add/".$user_id."?destination=user%2F".$user_id;
print l('добавить в друзья', $url, array(), NULL, NULL, FALSE, TRUE);

$url2 = "http://www.drupal.ru/privatemsg/msgto/".$user_id;
print l('отправить личное сообщение',$url2);
?>

не помогает!!! отправить личное сообщение - работает, а в добавить друзья все равно ? = % перекодирует (((

Аватар пользователя olk olk 25 июля 2008 в 0:09
<?php
global $base_url;
print 
l('добавить в друзья'$base_url.'/buddy/add/'.$user_id, array(), 'destination=user/'.$user_id);
?>
Аватар пользователя gumk gumk 25 июля 2008 в 0:31

Огромное спасибо!!!
Можно без $base_url, можно перед buddy слеш убрать

<?php
print l('добавить в друзья','buddy/add/'.$user_id, array(), 'destination=user%2F'.$user_id);
?>

Аватар пользователя gumk gumk 25 июля 2008 в 0:38

Еще одна проблема

global $user;
$user_id = $user->uid;

Вытаскивает ID пользователя который зашел на страницу, а как получить id пользователя, чей профиль просматривается?

Аватар пользователя gumk gumk 25 июля 2008 в 0:50

Можно как-нибудь посмотреть все доступные глобальные переменные?

Аватар пользователя olk olk 25 июля 2008 в 1:22

gumk wrote:
Можно как-нибудь посмотреть все доступные глобальные переменные?

вам действительно этого хочется Lol ?

<?php
drupal_set_message
('<pre>'.print_r($GLOBALS,1).'</pre>');
?>
Аватар пользователя olk olk 25 июля 2008 в 0:58

Ну самое простое вытащить его из урл

<?php
if(arg(0)=='user' && is_numeric(arg(1))) {
$uid=arg(1);
}
?>
Аватар пользователя olk olk 25 июля 2008 в 1:12

Как то можно из алиаса получить путь , сейчас не вспомню да и спать уже хочу Smile если время терпит завтра гляну, а можете сами покопаться в patрauto (на сколько я помню он вроде просто создает синоним) ...соответственно через синоним можно получить истиный путь (вроде даже какая то стандартная функция есть)

Аватар пользователя gumk gumk 25 июля 2008 в 10:12

Использовал
<?php drupal_set_message('

'.print_r($GLOBALS,1).'

'); ?> - полезная штука!

Там выдало такое:

[_GET] => Array
(
[q] => user/2
)
Где 2 - ID пользователя, чья анкета просматривается, это можно использовать?

Аватар пользователя gumk gumk 25 июля 2008 в 10:55

Вот работающий код, для тех у кого были такие-же проблемы, вывод оформите под себя Lol

<?php
$arg=explode('/',$_GET['q']);
if($arg[0]=='user' && is_numeric($arg[1])) {
$uid=$arg[1];
}
print l('добавить в друзья','buddy/add/'.$uid, array(), 'destination=user%2F'.$uid);
global $base_url;
$url2 = $base_url."/privatemsg/msgto/".$uid;
print l('отправить личное сообщение',$url2);
?>

ОГРОМНОЕ САПСИБО OLK

Аватар пользователя neochief neochief 25 июля 2008 в 12:12

$arg=explode('/',$_GET['q']);
if($arg[0]=='user' && is_numeric($arg[1])) {
$uid=$arg[1];
}

if(arg(0)=='user' && is_numeric(arg(1))) {
$uid=arg(1);
}