Создал блок с 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--
Комментарии
print theme('username',$user);
Спасибо, но я данную ссылку как пример привел))), у меня панелями создана страница пользователя, на самом деле мне нужно создать ссылку - "добавить в друзья" и "ссылку отправить сообщение"
Тогда используйте функцию l('title',$url);
print l('добавить в друзья',$url);
Спасибо!!!
что-то я туплю, написал так:
<?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 ?>
добавтье в 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)
?>
Еще раз спасибо, а где про все эти функции почитать можно, чтобы глупых вопросов больше не задавать?
А где это прописывать?
print l('добавить в друзья', $url, array(), NULL, NULL, FALSE, TRUE)
<?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);
?>
не помогает!!! отправить личное сообщение - работает, а в добавить друзья все равно ? = % перекодирует (((
<?php
global $base_url;
print l('добавить в друзья', $base_url.'/buddy/add/'.$user_id, array(), 'destination=user/'.$user_id);
?>
Огромное спасибо!!!
Можно без $base_url, можно перед buddy слеш убрать
<?php
print l('добавить в друзья','buddy/add/'.$user_id, array(), 'destination=user%2F'.$user_id);
?>
Еще одна проблема
global $user;
$user_id = $user->uid;
Вытаскивает ID пользователя который зашел на страницу, а как получить id пользователя, чей профиль просматривается?
Можно как-нибудь посмотреть все доступные глобальные переменные?
вам действительно этого хочется ?
<?php
drupal_set_message('<pre>'.print_r($GLOBALS,1).'</pre>');
?>
Ну самое простое вытащить его из урл
<?php
if(arg(0)=='user' && is_numeric(arg(1))) {
$uid=arg(1);
}
?>
Pathauto стоит
Как то можно из алиаса получить путь , сейчас не вспомню да и спать уже хочу если время терпит завтра гляну, а можете сами покопаться в patрauto (на сколько я помню он вроде просто создает синоним) ...соответственно через синоним можно получить истиный путь (вроде даже какая то стандартная функция есть)
Спасибо!
http://api.drupal.ru/api/globals/5
Использовал
<?php drupal_set_message('
'); ?> - полезная штука!
Там выдало такое:
[_GET] => Array
(
[q] => user/2
)
Где 2 - ID пользователя, чья анкета просматривается, это можно использовать?
да
<?php
$arg=explode('/',$_GET['q']);
if($arg[0]=='user' && is_numeric($arg[1])) {
$uid=$arg[1];
}
?>
Вот работающий код, для тех у кого были такие-же проблемы, вывод оформите под себя
<?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
$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);
}
Спасибо