Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 10 Ответов
  • 2188 Просмотров
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
Доброго времени суток
Столкнулся с проблемой " если включен плагин "Профиль пользователя" он в базу вносит данные в ковычках
а потом мненадо вывести их и они опять же выводятся в ковычках
подскажите может кто знает где вставляются эти ковычки в плагине Профиль пользователя
я так подозреваю что гдето в файле /plugins/user/profile/profile.php
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
Вывод полей из Профиль пользователя ?

да оно только там его всё же немного по другому сделали
написали свои запросы в базу и там определённая сортировка
ну вот проблема в том что в базу данные вносятся в "" кавычках, а потом когда делается вывод они так же и выводятся
+ ещё есть проблема там есть поле отвечающее за регион страны по нему сортеруют и если его брать из базы в ковычках то не получается отсортировать правильно
По этому решили что лучше там где данные добавляются в базу не вносились в "" кавычках,
вот и вопрос где добавляются "" ?
Спасибо
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Немного не поняли. Я же привел пример как убрать кавычки.
echo str_replace('"', '',$user->profile_value);
в переменной  $user->profile_value я убрал кавычки.
Или тогда показывайте свою часть кода. Что имеете и что нужно получить на выходе
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
Немного не поняли. Я же привел пример как убрать кавычки.
echo str_replace('"', '',$user->profile_value);
в переменной  $user->profile_value я убрал кавычки.
Или тогда показывайте свою часть кода. Что имеете и что нужно получить на выходе

Изначально я делал по вашему примеру но потом понадобилось отсортировать по статусу, для этого попросили помощи у другова программиста и вот что он сделал
Код
<?php 

    header("Content-Type: text/html; charset=utf-8");

    include  $_SERVER['DOCUMENT_ROOT'] ."/components/com_irb_selects/connect.php" ;
// Функция сортировки массива
function array_msort($array, $cols) {
    $colarr = array();
    foreach ($cols as $col => $order) {
        $colarr[$col] = array();
        foreach ($array as $k => $row) { $colarr[$col]['_'.$k] = strtolower($row[$col]); }
    }
    $eval = 'array_multisort(';
    foreach ($cols as $col => $order) {
        $eval .= '$colarr[\''.$col.'\'],'.$order.',';
    }
    $eval = substr($eval,0,-1).');';
    eval($eval);
    $ret = array();
    foreach ($colarr as $col => $arr) {
        foreach ($arr as $k => $v) {
            $k = substr($k,1);
            if (!isset($ret[$k])) $ret[$k] = $array[$k];
            $ret[$k][$col] = $array[$k][$col];
        }
    }
    return $ret;
}

// Функция вывода компаний
function region($country_id) {
    // Берем список Айдишников Клиентов, подходящих условию региона, лимит я убрал (а вдруг их больше 30?)
$res = mysql_query("SELECT * FROM `joss_user_profiles`
WHERE `profile_value` = ".$country_id, IRB_CONNECT );
// Пока есть Айдишники Клиентов, выполняем цикл
$counter = 0;
while($row = mysql_fetch_assoc($res)) {

// Определим название Клиента (Лимит тут не нужен, а если и нужен то не на 30 позиций а на одну)
$sqlcompany = mysql_query("SELECT `profile_value` FROM `joss_user_profiles` WHERE `user_id` = ".$row['user_id']." AND `profile_key` = 'profile.company'", IRB_CONNECT );
// Пока есть имя - Кладем его в массив
while($rowcompany = mysql_fetch_assoc($sqlcompany)) {
// Декодируем
$name22=json_decode('"'.$rowcompany['profile_value'].'"');
$name11 = ($name22 ? $name22 : ($rowcompany['profile_value']) );
$clients[$counter]['name'] = $name11;
}

// Определим адрес Клиента (по лимиту то же самое что и выше)
$sqladres = mysql_query("SELECT `profile_value` FROM `joss_user_profiles` WHERE `user_id` = ".$row['user_id']." AND `profile_key` = 'profile.address1'", IRB_CONNECT );
// Пока есть адрес - Кладем его в массив
while($rowadres = mysql_fetch_assoc($sqladres)) {
// Декодируем
$adres22=json_decode('"'.$rowadres['profile_value'].'"');
$adres11 = ($adres22 ? $adres22 : ($rowadres['profile_value']) );
$clients[$counter]['adres'] = $adres11;
}

// Определим телефон Клиента (лимит)
$sqlphone = mysql_query("SELECT `profile_value` FROM `joss_user_profiles` WHERE `user_id` = ".$row['user_id']." AND `profile_key` = 'profile.phone'", IRB_CONNECT );
// Пока есть телефон - Кладем его в массив
while($rowphone = mysql_fetch_assoc($sqlphone)) {
$clients[$counter]['phone'] = $rowphone['profile_value'];
}

// Определим почту Клиента (лимит)
$sqlemail = mysql_query("SELECT `email` FROM `joss_users`
WHERE `id` = ".$row['user_id'], IRB_CONNECT );
// Пока есть почта - Кладем ее в массив
while($row2 = mysql_fetch_assoc($sqlemail)) {
$clients[$counter]['email'] = $row2['email'];
}

// Определим сайт Клиента (лимит)
$sqlwebsite= mysql_query("SELECT `profile_value` FROM `joss_user_profiles` WHERE `user_id` = ".$row['user_id']." AND `profile_key` = 'profile.website'", IRB_CONNECT );
// Пока есть сайт - Кладем ее в массив
while($rowwebsite = mysql_fetch_assoc($sqlwebsite)) {
$clients[$counter]['site'] = $rowwebsite['profile_value'];
}

// Определим статус Клиента
$sqlstatus= mysql_query("SELECT `profile_value` FROM `joss_user_profiles` WHERE `user_id` = ".$row['user_id']." AND `profile_key` = 'profile.status'", IRB_CONNECT );
// Пока есть сайт - Кладем ее в массив
while($rowstatus = mysql_fetch_assoc($sqlstatus)) {
$clients[$counter]['status'] = $rowstatus['profile_value'];
}
$counter++;
} // Закончили цикл
// Сортируем массив
$new_clients = array_msort($clients, array('status'=>SORT_ASC, 'name'=>SORT_ASC));
// Формируем вывод данных
$select .= "<div class='clients-list'>";
foreach ($new_clients as $item) {
if($item['status']==1) {
$status_class = "gold";
} elseif ($item['status']==2) {
$status_class = "silver";
} else {
$status_class = "";
}
$select .= "<div class='clients-item ".$status_class."'>";
if($item['name']) {
$select .= "<p><strong style=\"line-height: 25px;\">".$item['name']."</strong></p>";
}
if($item['adres']) {
$select .= "<p>Адрес: ".$item['adres']."</p>";
}
if($item['phone']) {
$select .= "<p>Телефон: ".$item['phone']."</p>";
}
if($item['email']) {
$select .= "<p>E-mail: ".$item['email']."</p>";
}
if($item['site'] !='' AND $item['site'] != 'NULL') {
$select .= "<p>Сайт: ".$item['site']."</p>";
}
$select .= "</div>";
// Плюс добаить картинку статуса в зависомотси от значения $item['status']...
}
$select .= "</div>";
    return  $select;

}
if(!empty($_POST['country_id']))
echo region($_POST['country_id']);
if(!empty($_POST['region_id']))
echo city1($_POST['region_id']);
?>


у него здесь не учитывается что в базе данные в кавычках, по этому я думаю найти где они добавляются в плагине который отвечает за это и убрать
что бы данные вносились в базу без кавычек
или может вы посоветуете другое решение
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
Что такое статус?

http://www.agentplus.com.ua/partners#tabs1
вот сайт на котором это всё делается, там выпадающий список
если например выбрать Одесскую область то покажутся все пользователи этой области и там у одного есть статус Золотой
у этих пользователей я просто в базе по удалял "" кавычки и по этому они нормально выводятся НО теперь когда добавляешь новых они добавляются в "" кавычках
Варианта 2
1) что бы в базу поля добавлялись без "" кавычек или
2) переписывать запрос что бы он понимал что данные в "" кавычках - запрос по выводу приведён выше туда мы передаём ИД региона и он выбирает всех пользователей из этого региона
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
echo str_replace('"', '',$user->profile_value);
в переменной  $user->profile_value я убрал кавычки.

я так понял эта вещь убирает кавычки в нутри переменной,
но а если там название фирмы  "ООО "Тест"" - и мне надо что бы выводилось только ООО "тест"  ? он же и эти кавычки уберёт я так понимаю
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
Код: php-brief
echo trim($text, '"');
Так и не объяснил куда и как дополнительное поле статус вставил

Код
	$new_clients = array_msort($clients, array('status'=>SORT_ASC, 'name'=>SORT_ASC));
// Формируем вывод данных
$select .= "<div class='clients-list'>";
foreach ($new_clients as $item) {
if($item['status']==1) {
$status_class = "gold";
} elseif ($item['status']==2) {
$status_class = "silver";
} else {
$status_class = "";
}

Статус это дополнительное поле, по которому мы дополнительно сортируем
1 выводится у кого статус золото
2 серебро
3 все остальные
прикол в том что значение статуса тоже "" из за этого не получается отсортировать
Сейчас попробую выводить значения как ты написал с помощью trim
но такой вопрос а если он в начале и в конце не находит этого символа то нечего не удаляет правильно ?
Спасибо что помогаешь !
*

Magl

  • Захожу иногда
  • 85
  • 3 / 0
И ещё это всё что ты говоришь убирает при выводе из базы, а можно что бы они вообще не вносились в базу как то сделать ?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод информации в личный кабинет пользователя

Автор zndm

Ответов: 17
Просмотров: 6130
Последний ответ 22.09.2022, 18:51:44
от beliyadm
Материалы пользователя (контакта)

Автор katerina37

Ответов: 5
Просмотров: 1132
Последний ответ 18.02.2022, 11:53:02
от katerina37
Руководство пользователя Joomla! 2.5 + 10 легких шагов к освоению Joomla! 3 (книги в pdf)

Автор Marques

Ответов: 68
Просмотров: 226288
Последний ответ 08.01.2021, 13:41:45
от artemnaum
Определение города пользователя по IP

Автор ria_andy

Ответов: 8
Просмотров: 7188
Последний ответ 05.12.2019, 15:20:40
от nikolaevevge
Как убрать index.php из ссылки в Joomla 2.5.4

Автор Sielena

Ответов: 56
Просмотров: 47753
Последний ответ 25.02.2019, 20:09:43
от zorlyglaiz