Создал свою вкладку в Community Builder и в ней два поля, формата Date. Пользователь, зарегистрировавшись, заполняет эти поля. Мне нужно написать модуль, который берет из базы эти данные и работает с ними. Я не силен в php, учусь, пытаюсь разобраться. В сети много инфы как работать с данными, теоретически я знаю как выполнить мою задачу, но я не могу сделать самого простого - получить эти данные из базы! Помогите, пожалуйста, дайте образец рабочего кода, который получает данные из полей описаных выше и, например, вычитает первую дату из второй, а затем выводит разницу? (дальше я бы уже сам разобрался)
Надо собирать вас всех в кучу и сжигать на костре )))) шучу )))) только что же была тема, там разбирал работу с СВ. По написанию плагинов рекомендую прочесть доки с официального сайта.
Я читал ту тему. В ней еще есть такие слова: "Думаю, что вопросов будет очень много. Рекомендую учить матчасть, но если в чем то не разберетесь - пишите". Вот и написал что мне непонятно Этот код: <?php defined('_JEXEC') or die('Direct Access to this location is not allowed.'); $user = JFactory::getUser(); print "\n Текущий пользователь \n"; class ModMyHelper { /** * Returns a list of post items */ public function getItems($userCount) { // get a reference to the database $db = &JFactory::getDBO(); // get a list of $userCount randomly ordered users $query = 'SELECT a.name FROM `#__users` AS a LIMIT ' . $userCount . ''; $db->setQuery($query); $items = ($items = $db->loadObjectList())?$items:array(); return $items; } //end getItems } //end SimplestForumLatestPostsHelper foreach ($user as $key => $value) { if (is_string($value)) { print "<p> Свойство пользователя $key = $value</p>\n"; } else { print "<p> Свойство $key - это не строка</p>\n"; } } // - мой код // - мой код ?> Вроде выводит все о текущем юзере, но не выводит поля которые я создал в стартопике Хотя, по идее, эти поля относятся именно к текущему пользователю.
минутку, вы понимаете что вы делаете ? Вы получаете объект текущего пользователя $user, он у вас 1, затем вы пытаетесь его перебрать в цикле ... нах ??? ведь он же у вас 1 !!! По поводу ваших вновь созданных полей - эти поля вы создаете с помощью СВ и соответственно они лежат в таблице СВ, если не ошибаюсь - "jos_community". Делайте перекрестный запрос и получайте данные.
Я еще учусь. Не знаю как сделать "перекрестный запрос". Не сочтите за труд, дайте образец рабочего кода, который получает данные из полей описаных выше? (дальше я бы уже сам разобрался)
Код (PHP): $user = JFactory::getUser(); $query = "SELECT * FROM jos_community where user_id = {$user["id"]}"; $db = &JFactory::getDBO(); $db->setQuery($query); $items = $db->loadObjectList(); echo "<pre>"; print_r($items); print_r($user); echo "</pre>"; зайдите в вашу СУБД и посмотрите, если в БД такая таблица "jos_community", если есть, то все будет работать
В БД такой записи нет, там есть rus_comprofiler_fields и в нем есть нужные поля. Я перепробовал все записи из БД, но всегда результат работы вашего скрипта такой: Текущий пользователь Fatal error: Cannot use object of type JUser as array in Zhome\localhost\www\my_site\ru\modules\mod_my\helper.php on line 7 в седьмой строке скрипта это: $query = "SELECT * FROM jos_community where user_id = {$user["id"]}"; Моих знаний не хватает чтобы понять в чем ошибка. Я пробовал тут менять jos_community на rus_comprofiler_fields и другие, но всегда ошибка.
просто я ввел вас в заблуждение ))) Код (PHP): $query = "SELECT * FROM rus_comprofiler_fields where user_id = {$user->id}";
Спасибо. Теперь выдает все поля и желаемые в том числе... Буду разбираться как правильно вычленить только то что нужно