Spade
Mini Shell
home/lmsyaran/public_html/modules/mod_phocacart_search/helper.php000064400000003040151167217330021417
0ustar00<?php
/* @package Joomla
* @copyright Copyright (C) Open Source Matters. All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
* @extension Phoca Extension
* @copyright Copyright (C) Jan Pavelka www.phoca.cz
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
*/
defined('_JEXEC') or die;
class ModPhocaCartSearchHelper
{
public static function getAjax() {
jimport('joomla.application.module.helper');
if (!JComponentHelper::isEnabled('com_phocacart')) {
echo '<div class="alert alert-error
alert-danger">'.JText::_('Phoca Cart Error') .
' - ' . JText::_('Phoca Cart is not installed on your
system').'</div>';
return;
}
JLoader::registerPrefix('Phocacart', JPATH_ADMINISTRATOR
. '/components/com_phocacart/libraries/phocacart');
$lang = JFactory::getLanguage();
$lang->load('com_phocacart');
$module = JModuleHelper::getModule('phocacart_search');
$params = new JRegistry();
$params->loadString($module->params);
$search = new PhocacartSearch();
$search->ajax = 1;
$search->search_options = $params->get(
'search_options', 0 );
$search->hide_buttons = $params->get( 'hide_buttons',
0 );
$search->display_inner_icon = $params->get(
'display_inner_icon', 0 );
$search->load_component_media = $params->get(
'load_component_media', 1 );
$search->placeholder_text = $params->get(
'placeholder_text', '' );
$search->display_active_parameters = $params->get(
'display_active_parameters', 0 );
echo $search->renderSearch();
}
}
home/lmsyaran/public_html/modules/mod_articles_categories/helper.php000064400000002025151167370630022146
0ustar00<?php
/**
* @package Joomla.Site
* @subpackage mod_articles_categories
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Helper for mod_articles_categories
*
* @since 1.5
*/
abstract class ModArticlesCategoriesHelper
{
/**
* Get list of articles
*
* @param \Joomla\Registry\Registry &$params module parameters
*
* @return array
*
* @since 1.5
*/
public static function getList(&$params)
{
$options = array();
$options['countItems'] = $params->get('numitems',
0);
$categories = JCategories::getInstance('Content', $options);
$category = $categories->get($params->get('parent',
'root'));
if ($category !== null)
{
$items = $category->getChildren();
$count = $params->get('count', 0);
if ($count > 0 && count($items) > $count)
{
$items = array_slice($items, 0, $count);
}
return $items;
}
}
}
home/lmsyaran/public_html/modules/mod_articles_popular/helper.php000064400000006117151167411320021501
0ustar00<?php
/**
* @package Joomla.Site
* @subpackage mod_articles_popular
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
JLoader::register('ContentHelperRoute', JPATH_SITE .
'/components/com_content/helpers/route.php');
JModelLegacy::addIncludePath(JPATH_SITE .
'/components/com_content/models', 'ContentModel');
/**
* Helper for mod_articles_popular
*
* @since 1.6
*/
abstract class ModArticlesPopularHelper
{
/**
* Get a list of popular articles from the articles model
*
* @param \Joomla\Registry\Registry &$params object holding the
models parameters
*
* @return mixed
*/
public static function getList(&$params)
{
// Get an instance of the generic articles model
$model = JModelLegacy::getInstance('Articles',
'ContentModel', array('ignore_request' => true));
// Set application parameters in model
$app = JFactory::getApplication();
$appParams = $app->getParams();
$model->setState('params', $appParams);
$model->setState('list.start', 0);
$model->setState('filter.published', 1);
// Set the filters based on the module params
$model->setState('list.limit', (int)
$params->get('count', 5));
$model->setState('filter.featured',
$params->get('show_front', 1) == 1 ? 'show' :
'hide');
// This module does not use tags data
$model->setState('load_tags', false);
// Access filter
$access =
!JComponentHelper::getParams('com_content')->get('show_noauth');
$authorised =
JAccess::getAuthorisedViewLevels(JFactory::getUser()->get('id'));
$model->setState('filter.access', $access);
// Category filter
$model->setState('filter.category_id',
$params->get('catid', array()));
// Date filter
$date_filtering = $params->get('date_filtering',
'off');
if ($date_filtering !== 'off')
{
$model->setState('filter.date_filtering', $date_filtering);
$model->setState('filter.date_field',
$params->get('date_field', 'a.created'));
$model->setState('filter.start_date_range',
$params->get('start_date_range', '1000-01-01
00:00:00'));
$model->setState('filter.end_date_range',
$params->get('end_date_range', '9999-12-31
23:59:59'));
$model->setState('filter.relative_date',
$params->get('relative_date', 30));
}
// Filter by language
$model->setState('filter.language',
$app->getLanguageFilter());
// Ordering
$model->setState('list.ordering', 'a.hits');
$model->setState('list.direction', 'DESC');
$items = $model->getItems();
foreach ($items as &$item)
{
$item->slug = $item->id . ':' . $item->alias;
/** @deprecated Catslug is deprecated, use catid instead. 4.0 */
$item->catslug = $item->catid . ':' .
$item->category_alias;
if ($access || in_array($item->access, $authorised))
{
// We know that user has the privilege to view the article
$item->link =
JRoute::_(ContentHelperRoute::getArticleRoute($item->slug,
$item->catid, $item->language));
}
else
{
$item->link =
JRoute::_('index.php?option=com_users&view=login');
}
}
return $items;
}
}
home/lmsyaran/public_html/modules/mod_search/helper.php000064400000001111151170000060017350
0ustar00<?php
/**
* @package Joomla.Site
* @subpackage mod_search
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Helper for mod_search
*
* @since 1.5
*/
class ModSearchHelper
{
/**
* Display the search button as an image.
*
* @return string The HTML for the image.
*
* @since 1.5
*/
public static function getSearchImage()
{
return JHtml::_('image', 'searchButton.gif',
'', null, true, true);
}
}
home/lmsyaran/public_html/joomla35/modules/mod_whosonline/helper.php000064400000005176151172304320021750
0ustar00<?php
/**
* @package Joomla.Site
* @subpackage mod_whosonline
*
* @copyright (C) 2006 Open Source Matters, Inc.
<https://www.joomla.org>
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Helper for mod_whosonline
*
* @since 1.5
*/
class ModWhosonlineHelper
{
/**
* Show online count
*
* @return array The number of Users and Guests online.
*
* @since 1.5
**/
public static function getOnlineCount()
{
$db = JFactory::getDbo();
// Calculate number of guests and users
$result = array();
$user_array = 0;
$guest_array = 0;
$whereCondition =
JFactory::getConfig()->get('shared_session', '0') ?
'IS NULL' : '= 0';
$query = $db->getQuery(true)
->select('guest, client_id')
->from('#__session')
->where('client_id ' . $whereCondition);
$db->setQuery($query);
try
{
$sessions = (array) $db->loadObjectList();
}
catch (RuntimeException $e)
{
$sessions = array();
}
if (count($sessions))
{
foreach ($sessions as $session)
{
// If guest increase guest count by 1
if ($session->guest == 1)
{
$guest_array ++;
}
// If member increase member count by 1
if ($session->guest == 0)
{
$user_array ++;
}
}
}
$result['user'] = $user_array;
$result['guest'] = $guest_array;
return $result;
}
/**
* Show online member names
*
* @param mixed $params The parameters
*
* @return array (array) $db->loadObjectList() The names of the
online users.
*
* @since 1.5
**/
public static function getOnlineUserNames($params)
{
$whereCondition =
JFactory::getConfig()->get('shared_session', '0') ?
'IS NULL' : '= 0';
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->quoteName(array('a.username',
'a.userid', 'a.client_id')))
->from('#__session AS a')
->where($db->quoteName('a.userid') . ' != 0')
->where($db->quoteName('a.client_id') . ' ' .
$whereCondition)
->group($db->quoteName(array('a.username',
'a.userid', 'a.client_id')));
$user = JFactory::getUser();
if (!$user->authorise('core.admin') &&
$params->get('filter_groups', 0) == 1)
{
$groups = $user->getAuthorisedGroups();
if (empty($groups))
{
return array();
}
$query->join('LEFT', '#__user_usergroup_map AS m ON
m.user_id = a.userid')
->join('LEFT', '#__usergroups AS ug ON ug.id =
m.group_id')
->where('ug.id in (' . implode(',', $groups) .
')')
->where('ug.id <> 1');
}
$db->setQuery($query);
try
{
return (array) $db->loadObjectList();
}
catch (RuntimeException $e)
{
return array();
}
}
}
home/lmsyaran/public_html/j3/modules/mod_articles_categories/helper.php000064400000002025151175146240022457
0ustar00<?php
/**
* @package Joomla.Site
* @subpackage mod_articles_categories
*
* @copyright Copyright (C) 2005 - 2020 Open Source Matters, Inc. All
rights reserved.
* @license GNU General Public License version 2 or later; see
LICENSE.txt
*/
defined('_JEXEC') or die;
/**
* Helper for mod_articles_categories
*
* @since 1.5
*/
abstract class ModArticlesCategoriesHelper
{
/**
* Get list of articles
*
* @param \Joomla\Registry\Registry &$params module parameters
*
* @return array
*
* @since 1.5
*/
public static function getList(&$params)
{
$options = array();
$options['countItems'] = $params->get('numitems',
0);
$categories = JCategories::getInstance('Content', $options);
$category = $categories->get($params->get('parent',
'root'));
if ($category !== null)
{
$items = $category->getChildren();
$count = $params->get('count', 0);
if ($count > 0 && count($items) > $count)
{
$items = array_slice($items, 0, $count);
}
return $items;
}
}
}
home/lmsyaran/public_html/j3/modules/mod_emergencyconsultant/helper.php000064400000046015151201303470022532
0ustar00<?php
/*----------------------------------------------------------------------------------|
www.vdm.io |----/
Vast Development Method
/-------------------------------------------------------------------------------------------------------/
@version 2.0.3
@build 14th September, 2023
@created 18th October, 2016
@package Demo
@subpackage helper.php
@author Llewellyn van der Merwe <https://www.vdm.io/>
@copyright Copyright (C) 2015. All Rights Reserved
@license GNU/GPL Version 2 or later -
http://www.gnu.org/licenses/gpl-2.0.html
____ _____ _____ __ __ __ __ ___ _____ __ __ ____
_____ _ _ ____ _ _ ____
(_ _)( _ )( _ )( \/ )( ) /__\ / __)( _ )( \/ )( _ \(
_ )( \( )( ___)( \( )(_ _)
.-_)( )(_)( )(_)( ) ( )(__ /(__)\ ( (__ )(_)( ) ( )___/
)(_)( ) ( )__) ) ( )(
\____) (_____)(_____)(_/\/\_)(____)(__)(__) \___)(_____)(_/\/\_)(__)
(_____)(_)\_)(____)(_)\_) (__)
/------------------------------------------------------------------------------------------------------*/
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
class ModEmergencyConsultantHelper
{
public static function do_step0($input, $cb_user)
{
$topic = $input->get('topic', null, 'string');
if (!$topic)
{
jfactory::getapplication()->enqueuemessage('یکی از
موضوعات را انتخاب کنید', 'warning');
return;
}
$emergency_request_time = (int)
$cb_user->get('cb_emergency_request_time', 0);
$time = time();
$offset = 900;
if (($emergency_request_time + $offset) >= $time)
{
jfactory::getapplication()->enqueuemessage("جهت ثبت
درخواست مجدد باید 15 دقیقه از درخواست قبلی
شما بگذرد", 'warning');
return;
}
else
{
$cb_user->set('cb_emergency_request_time', $time);
}
$user = jfactory::getuser();
$current_user_id = $user->get('id', 0,
'int');
$current_user_name = $user->get('name');
$current_user_username = $user->get('username');
$userIds[] = intval($current_user_id);
$sendTo = $input->get('sendto', 0,
'INT');
if ($sendTo)
{
$userIds[] = $sendTo;
}
$userDetails = self::getUserDetails($userIds, ['user_id',
'firstname', 'lastname',
'cb_mobilenumber']);
$current_user_phone_number = $current_user_id != 0 ?
$userDetails[$current_user_id]->cb_mobilenumber : '';
$groups = $user->get('groups');
$errorfake = "";
if (in_array("10", $groups))
{
$errorfake = "*این درخواست از سمت یک مشاور
جهت آزمایش سامانه بوده است. لطفا بخش
اورژانس سامانه را آزمایش نکنید.فیلم
آموزشی موجود است به آن مراجعه کنید، نیازی
به زدن دکمه پذیرفتن نیست.*";
}
// dump($groups,"groups");
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('title')
->from('#__usergroups')
->where('id IN (' . implode(', ', $groups) .
')');
$db->setQuery($query);
$usergroups = implode(' ', $db->loadColumn());
// $usergroupnames="نقش واقعی فرد:
".$usergroups;
// $timezone = (array)jFactory::getUser()->getTimezone();
// date_default_timezone_set($timezone['timezone']);
// $time = date('H:i:s');
// $emergency_start_time=
$cb_user->get('cb_emergency_start_time',
'00:00:00')== '00:00:00' ? '00:00:00':
$cb_user->get('cb_emergency_start_time');
// $emergency_end_time=
$cb_user->get('cb_emergency_end_time', '00:00:00')==
'00:00:00' ? '23:59:59':
$cb_user->get('cb_emergency_start_time');
$params =
JComponentHelper::getParams('com_reservation');
$category_rules = $params->get('category_rule');
foreach ($category_rules as $category_rule)
{
if ($category_rule->cat_rule == 'eplanrule')
{
$emergency_catid = $category_rule->catid;
}
}
// $db = JFactory::getDbo();
// $query = $db->getQuery(true);
//
// $query->select('c.id as cbid, cb_queue_consultants,
cb_balechatid, cb_emergency_start_time, cb_emergency_end_time');
// $query->from($db->quoteName('#__comprofiler',
'c'));
// $query->join('INNER',
$db->quoteName('#__reservation_consultant', 'rc') .
' ON ' . $db->quoteName('rc.userid') . ' =
' . $db->quoteName('c.id'));
// $query->join('INNER',
$db->quoteName('#__reservation_plan', 'p') . '
ON ' . $db->quoteName('rc.id') . ' = ' .
$db->quoteName('p.consultantid'));
//
$query->where($db->quoteName('c.cb_is_emergency') . '=
1');
// $query->where($db->quoteName('p.catid') .
'='. $emergency_catid);
//
$query->where('TIME_FORMAT('.$db->quoteName('c.cb_emergency_start_time').',
\'%H:%i:%s\')' . '<=\''.
$time.'\'');
//
$query->where('TIME_FORMAT('.$db->quoteName('c.cb_emergency_end_time').',
\'%H:%i:%s\')' . '>=\''.
$time.'\'');
// $query->where($db->quoteName('c.cb_balechatid')
. 'is not null');
// $query->where($db->quoteName('p.published') .
'= 1');
//
// $db->setQuery($query);
// $results = $db->loadObjectList('cbid');
// sent to specefic user
$sendto = $input->get('sendto', 0);
$sendto = $sendto ? "&sendto=" . $sendto : "";
// $sendto= "&sendto=941";
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL =>
'https://erammoshaver.ir/index.php?option=com_comprofiler&view=pluginclass&plugin=cbautoactions&action=action&actions=125&Itemid=147'
. $sendto,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET'
));
$results = json_decode(curl_exec($curl));
curl_close($curl);
// $file_name = __DIR__ . '/files_log.txt';
// file_put_contents($file_name, "var = " . print_r($results,
true) . "\n", FILE_APPEND);
// echo '<br><pre style="direction:
ltr;">';
// var_dump($results);
//
var_dump('https://erammoshaver.ir/index.php?option=com_comprofiler&view=pluginclass&plugin=cbautoactions&action=action&actions=125&Itemid=147'.$sendto);
// echo '</pre><br>';
// exit();
$text = '';
//custom text for out of que bale message
if ($sendto)
{
$text .= " {$errorfake}درخواست اختصاصی مشاوره
اورژانسی فقط برای شما به صورت *{$topic}* توسط
*{$current_user_name}* ارسال شده است.
چنانچه امکان پاسخگویی دارید تایید
لازم را بدهید و پس از تایید شما، کاربر
مربوطه باید فرآیند پرداخت را انجام بدهد.
در صورتی که فرآیند پرداخت موفق بود برای
شما پیام ارسال می شود که فرآیند مشاوره را
آغاز کنید. ";
}
else
{
$text .= " {$errorfake} مشاوره اورژانسی با
موضوع {$topic} توسط {$current_user_name} درخواست شده
است.
ترتیب پیشنهاد مشاور به مراجعه کننده
بر اساس ترتیب پذیرفتن این مراجعه کننده
است. 15 دقیقه برای پذیرفتن این مراجعه
کننده وقت است.";
}
if (!empty($results))
{
$data = [];
foreach ($results as $result)
{
$consultant_user_id = $result->id;
$data[] = [
"chat_id" => $result->cb_balechatid,
// "chat_id" => '2048243497',
// "text" =>
$text.'-'.$result->cb_balechatid,
"text" => $text,
"reply_markup" => [
"inline_keyboard" => [
[['text' => "پذیرفتن",
"callback_data" =>
"emergency_accept|{$current_user_id}|{$consultant_user_id}"]]
]
]
];
}
$text = <<<EOD
درخواست اورژانسی جدید
موضوع: {$topic}
نام: {$current_user_name}
شناسه کاربر: {$current_user_id}
نقش واقعی کاربر: {$usergroups}
شماره موبایل: {$current_user_phone_number}
نام کاربری: {$current_user_username}
EOD;
if ($sendTo)
{
$consultant = $userDetails[$sendTo];
$consultantStr = "{$consultant->firstname}
{$consultant->lastname} ({$consultant->cb_mobilenumber})";
$text .= "\nمشاور: $consultantStr";
}
$data[] = [
"chat_id" => '@emergencyreq',
// "text" => "کاربر با شناسه
{$current_user_id} و نام {$current_user_name} درخواست
اورژانسی ارسال کرد *{$usergroupnames}* نام کاربری
مخاطب: *{$current_user_username}*"
"text" => $text
];
$filename = __DIR__ . '/log.txt';
// file_put_contents($filename, "count = " .
print_r(count($data), true) . "\n", FILE_APPEND);
// file_put_contents($filename, "data = " . print_r($data,
true) . "\n", FILE_APPEND);
// echo '<pre>';
// var_dump($data);
// echo '</pre>';
// exit();
$bale_response = self::send_bale_message($data);
$time = time();
$cb_user->set('cb_emergency_step', 1);
$cb_user->set('cb_emergency_topic', $topic);
return $cb_user->store();
}
jfactory::getapplication()->enqueuemessage("در حال حاضر
مشاوری آماده پذیرش درخواست مشاوره در
زمینه <b>{$topic}</b> نیست. لطفا مدتی بعد
تلاش کنید.", 'warning');
}
public static function
notifyOtherConsultantsClientChooseSomeoneElse($cb_user,
$selectedConsultant) {
// $cb_user->set('cb_queue_consultants',
serialize(array('3324', '941', '947'))); //
for test and debug
$otherConsultants =
unserialize($cb_user->get('cb_queue_consultants',
''));
$selectedConsKey = array_search($selectedConsultant,
$otherConsultants);
if ($selectedConsKey !== false)
{
unset($otherConsultants[$selectedConsKey]);
}
if ($otherConsultants)
{
$message = <<<EOD
این مراجعه کننده پلن مشاوره اورژانس
را از یکی از مشاورین دیگر خریداری کرد. شما
می توانید از حالت آمادگی جهت مشاوره خارج
شوید.
EOD;
$otherConsultants = array_map('intval', $otherConsultants);
$otherConsultantsDetail = self::getUserDetails($otherConsultants,
['user_id', 'cb_balechatid']);
$data = array();
foreach ($otherConsultantsDetail as $key => $consultant)
{
// for test and debug
// $message = <<<EOD
// consUserId: {$consultant->user_id}
// {$cb_user->name}، مشاور دیگه ای رو برای
گرفتن مشاوره انتخاب کردن.
// این مراجعه کننده پلن مشاوره
اورژانس را از یکی از مشاورین دیگر خریداری
کرد. شما می توانید از حالت آمادگی جهت
مشاوره خارج شوید.
// EOD;
$data[] = [
"chat_id" => $consultant->cb_balechatid,
"text" => $message
];
}
self::send_bale_message($data);
}
}
public static function do_step2($do, $cb_user, $selectedConsultant)
{
if ($do == 'start')
{
self::notifyOtherConsultantsClientChooseSomeoneElse($cb_user,
$selectedConsultant);
$cb_user->set('cb_emergency_step', 0);
$cb_user->set('cb_queue_consultants', '');
$cb_user->set('cb_emergency_topic', '');
$cb_user->store();
$start_url =
jfactory::getApplication()->input->get('start_url',
'', 'string');
header("Location: {$start_url}");
exit();
}
elseif ($do == 'find_next')
{
$emergency_consultants =
unserialize($cb_user->get('cb_queue_consultants'));
array_push($emergency_consultants,
array_shift($emergency_consultants));
$cb_user->set('cb_queue_consultants',
serialize($emergency_consultants));
return $cb_user->store();
}
else
{
$cb_user->set('cb_emergency_step', 0);
$cb_user->set('cb_queue_consultants', '');
$cb_user->set('cb_emergency_topic', '');
return $cb_user->store();
}
}
public static function emergency_consultant($cb_user,
$get_emergency_consultant_from_cbuser_object = null)
{
$params =
JComponentHelper::getParams('com_reservation');
$category_rules = $params->get('category_rule');
foreach ($category_rules as $category_rule)
{
if ($category_rule->cat_rule == 'eplanrule')
{
$emergency_catid = $category_rule->catid;
}
}
if (!$get_emergency_consultant_from_cbuser_object)
{
$emergency_consultant_id =
unserialize($cb_user->get('cb_queue_consultants'))[0];
}
else
{
$emergency_consultant_id = $cb_user->get('id');
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('p.*');
$query->from($db->quoteName('#__reservation_consultant',
'c'));
$query->join('INNER',
$db->quoteName('#__reservation_plan', 'p') . '
ON ' . $db->quoteName('c.id') . ' = ' .
$db->quoteName('p.consultantid'));
$query->where($db->quoteName('c.userid') . '='
. $db->quote($emergency_consultant_id));
$query->where($db->quoteName('p.catid') . '=' .
$db->quote($emergency_catid));
$query->where($db->quoteName('p.published') . '=
1');
$db->setQuery($query);
$emergency_consultant_plan = $db->loadObject();
return [$emergency_consultant_id, $emergency_consultant_plan];
}
public static function calc_step($cb_user)
{
$emergency_step = $cb_user->get('cb_emergency_step', 0);
return (int) $emergency_step;
}
public static function get_topics($cb_user)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select('fieldlabel');
$query->from($db->quoteName('#__comprofiler_fields',
'f'));
$query->join('INNER',
$db->quoteName('#__comprofiler_field_values', 'fv')
. ' ON ' . $db->quoteName('f.fieldid') . ' =
' . $db->quoteName('fv.fieldid'));
$query->where($db->quoteName('f.name') . '=' .
$db->quote('cb_userexpertisearea'));
$db->setQuery($query);
$results = $db->loadObjectList();
return $results;
}
public static function send_bale_message($data = [])
{
$params = json_decode(jpluginhelper::getPlugin('chat',
'send_by_bale')->params);
$bot_token = $params->bot_token;
$getupdates_url = "https://tapi.bale.ai/bot" . $bot_token .
"/getupdates";
$sendmessage_url = "https://tapi.bale.ai/bot" . $bot_token .
"/sendMessage";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $sendmessage_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:
application/json'));
$responses = [];
foreach ($data as $item)
{
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($item));
$response = curl_exec($curl);
// $err = curl_error($curl);
$responses[] = json_decode($response);
}
curl_close($curl);
return $responses;
}
public static function is_time_over_reset_it($cb_user)
{
// $emergency_request_time =
(int)$cb_user->get('cb_emergency_request_time', 0);
// $time = time();
//
// $offset = 900;
// if (($emergency_request_time + $offset) >= $time)
// {
// $cb_user->set('cb_emergency_step', 0);
// $cb_user->set('cb_queue_consultants',
'');
// $cb_user->set('cb_emergency_topic',
'');
// jfactory::getapplication()->enqueuemessage("جهت
ثبت درخواست مجدد باید 15 دقیقه از درخواست
قبلی شما بگذرد", 'warning');
// return;
// }
// else
// {
// $cb_user->set('cb_emergency_request_time',
$time);
// }
//
// return $cb_user->store();
$time = time();
$emergency_request_time =
$cb_user->get('cb_emergency_request_time', time());
$offset = 900;
if (($emergency_request_time + $offset) < $time)
{
$cb_user->set('cb_emergency_step', 0);
$cb_user->set('cb_queue_consultants', '');
$cb_user->set('cb_emergency_topic', '');
$cb_user->store();
return true;
}
return false;
}
public static function getAjax()
{
include_once(JPATH_ADMINISTRATOR .
'/components/com_comprofiler/plugin.foundation.php');
$user = jfactory::getuser();
$current_user_id = $user->get('id', 0, 'int');
$cbUser = &CBuser::getInstance((int) $current_user_id);
$cb_user = $cbUser->getUserData();
$emergency_step = $cb_user->get('cb_emergency_step', null);
if ($emergency_step == 2)
return true;
return false;
// $queue_consultants=
$cb_user->get('cb_queue_consultants', null);
//
// if (empty($queue_consultants))
// return false;
//
// return true;
}
public static function consultantsInQueueAjax()
{
$app = jfactory::getapplication();
$return_data = [];
include_once(JPATH_ADMINISTRATOR .
'/components/com_comprofiler/plugin.foundation.php');
$user = jfactory::getuser();
$current_user_id = $user->get('id', 0, 'int');
$cbUser = &CBuser::getInstance((int) $current_user_id);
$cb_user = $cbUser->getUserData();
$queue_consultants =
unserialize($cb_user->get('cb_queue_consultants'));
$consultant_ids = $app->input->get('consultant_ids');
$to = $app->input->get('to');
$from = $app->input->get('from');
$direction = $app->input->get('direction');
$new_consultant_ids = array_filter($queue_consultants, function ($item)
use ($consultant_ids) {
if (!in_array($item, $consultant_ids)) return true;
});
if (!empty($new_consultant_ids))
{
if ($direction == 'right') $to = $from + 1;
else $to = count($queue_consultants) - 1;
$new_consultants = [];
foreach ($queue_consultants as $queue_consultant)
{
$cbUserIns = &CBuser::getInstance((int) $queue_consultant);
$consultant_user = $cbUserIns->getUserData();
$res = self::emergency_consultant($consultant_user, true);
$new_consultants[] = [
'cb_user' => $consultant_user,
'emergency_plan' => $res[1],
'emergency_consultant_id' => $queue_consultant,
];
}
ob_start();
include(JPATH_SITE .
'/modules/mod_emergencyconsultant/tmpl/carousel.php');
$carousel = ob_get_contents();
ob_end_clean();
$return_data['status'] = true;
$return_data['carousel'] = $carousel;
return $return_data;
}
$return_data['status'] = false;
return $return_data;
}
public static function getUserDetails(array $userIds, array $colList)
{
if (!in_array('user_id', $colList))
{
$colList[] = 'user_id';
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select(implode(', ', $colList))
->from('#__comprofiler')
->where('user_id IN (' . implode(', ', $userIds)
. ')');
$db->setQuery($query);
return $db->loadObjectList('user_id');
}
}