public function make() { $dir = system::getInstance()->get('dir'); if (system::getInstance()->isLatinOrNumeric($dir) && system::getInstance()->length($dir) > 0 && user::getInstance()->get('id') > 0 && $_FILES['img'] != null) { $isIframe = $_POST["iframe"] ? true : false; $idarea = $_POST["idarea"]; $obj = extension::getInstance()->call(extension::TYPE_HOOK, 'file'); if (!is_object($obj)) { exit; } $result = $obj->uploadImage('/' . $dir . '/', $_FILES['img']); $fulllink = property::getInstance()->get('script_url') . "/upload/{$dir}/" . $result; if ($isIframe) { if ($result != null) { echo '<html><body>OK<script>window.parent.$("#' . $idarea . '").insertImage("' . $fulllink . '","' . $fulllink . '").closeModal().updateUI();</script></body></html>'; } else { echo '<html><body>ERROR<script>window.parent.alert("Image upload error.");</script></body></html>'; } } else { header("Content-type: text/javascript"); if ($result != null) { $json_response = array('status' => '1', 'msg' => 'ok', 'image_link' => $fulllink, 'thumb_link' => $fulllink); } else { $json_response = array('status' => '0', 'msg' => 'error'); } echo stripslashes(json_encode($json_response)); } } }
public function make() { $comment_count = extension::getInstance()->getConfig('last_count', 'lastcomments', 'modules', 'int'); if ($comment_count < 1) { $comment_count = 1; } $stmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_mod_comments WHERE `pathway` != '' AND moderate = '0' ORDER BY `time` DESC LIMIT 0,?"); $stmt->bindParam(1, $comment_count, PDO::PARAM_INT); $stmt->execute(); $res = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt = null; if (sizeof($res) > 0) { // have comments in db $max_comment_char_size = extension::getInstance()->getConfig('text_length', 'lastcomments', 'modules', 'int'); $prepared_userlist = system::getInstance()->extractFromMultyArray('author', $res); user::getInstance()->listload($prepared_userlist); $params = array(); foreach ($res as $result) { $comment_text = extension::getInstance()->call(extension::TYPE_HOOK, 'bbtohtml')->nobbcode($result['comment']); $params['comment'][] = array('user_id' => $result['author'], 'user_name' => user::getInstance()->get('nick', $result['author']), 'user_avatar' => user::getInstance()->buildAvatar('small', $result['author']), 'uri' => $result['pathway'], 'preview' => system::getInstance()->altsubstr($comment_text, 0, $max_comment_char_size), 'date' => system::getInstance()->toDate($result['time'], 'd'), 'guest_name' => system::getInstance()->nohtml($result['guest_name'])); } $render = template::getInstance()->twigRender('modules/lastcomments/lastcomments.tpl', array('local' => $params)); template::getInstance()->set(template::TYPE_MODULE, 'lastcomments', $render); } }
public function make() { $post_id = (int) system::getInstance()->get('id'); $user_id = (int) user::getInstance()->get('id'); $message = system::getInstance()->nohtml(system::getInstance()->post('message')); // thank unknown tester for detect XSS vuln $time_between_posts = extension::getInstance()->getConfig('wall_post_delay', 'user', 'components', 'int'); if ($post_id > 0 && $user_id > 0 && system::getInstance()->length($message) > 0 && permission::getInstance()->have('global/write')) { $stmt = database::getInstance()->con()->prepare("SELECT time FROM " . property::getInstance()->get('db_prefix') . "_user_wall_answer WHERE poster = ? ORDER BY id DESC LIMIT 1"); $stmt->bindParam(1, $user_id, PDO::PARAM_INT); $stmt->execute(); $res = $stmt->fetch(); $last_post_time = $res['time']; $stmt = null; $current_time = time(); if ($current_time - $last_post_time >= $time_between_posts) { $stmt = database::getInstance()->con()->prepare("INSERT INTO " . property::getInstance()->get('db_prefix') . "_user_wall_answer (wall_post_id, poster, message, time) VALUES(?, ?, ?, ?)"); $stmt->bindParam(1, $post_id, PDO::PARAM_INT); $stmt->bindParam(2, $user_id, PDO::PARAM_INT); $stmt->bindParam(3, $message, PDO::PARAM_STR); $stmt->bindParam(4, $current_time, PDO::PARAM_INT); $stmt->execute(); $stmt = null; } } api::getInstance()->call('front', 'wallview')->make(); // refresh list }
public function make() { $params = array(); $news_count = extension::getInstance()->getConfig('new_count', 'news_new', extension::TYPE_MODULE, 'int'); if ($news_count < 1) { $news_count = 1; } $stmt = database::getInstance()->con()->prepare("SELECT a.id,a.title,a.link,b.path FROM " . property::getInstance()->get('db_prefix') . "_com_news_entery a," . property::getInstance()->get('db_prefix') . "_com_news_category b\n WHERE a.category = b.category_id AND a.display > 0 ORDER BY a.date DESC LIMIT 0,?"); $stmt->bindParam(1, $news_count, \PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetchAll(\PDO::FETCH_ASSOC); $stmt = null; foreach ($result as $row) { $full_path = null; $image = null; if (property::getInstance()->get('use_multi_language')) { $full_path .= '/' . language::getInstance()->getUseLanguage(); } $full_path .= '/news/'; if ($row['path'] != null) { $full_path .= $row['path'] . '/'; } $full_path .= $row['link']; $serial_title = system::getInstance()->altstripslashes(unserialize($row['title'])); if (file_exists(root . '/upload/news/poster_' . $row['id'] . '.jpg')) { $image = 'poster_' . $row['id']; } $params['latest'][] = array('title' => $serial_title[language::getInstance()->getUseLanguage()], 'image' => $image, 'pathway' => $full_path); } $tmp = template::getInstance()->twigRender('modules/news_new/list.tpl', array('local' => $params)); template::getInstance()->set(template::TYPE_MODULE, 'news_new', $tmp); }
public function make() { $component_news = extension::getInstance()->call(extension::TYPE_COMPONENT, 'news'); if (!is_object($component_news)) { return; } template::getInstance()->set(template::TYPE_CONTENT, 'body', $component_news->viewCategory(true)); }
public function make() { $comment_way = system::getInstance()->nohtml(system::getInstance()->post('pathway')); $comment_position = (int) system::getInstance()->post('comment_position'); $load_all = system::getInstance()->post('comment_all') === "true" ? true : false; // to bool :D $result = extension::getInstance()->call(extension::TYPE_MODULE, 'comments')->buildCommentTemplate($comment_way, $comment_position, $load_all); echo $result; }
public function show() { $captcha_type = extension::getInstance()->getConfig('captcha_type', 'captcha', 'hooks'); if ($captcha_type == "recaptcha") { require_once root . "/resource/recaptcha/recaptchalib.php"; return recaptcha_get_html(extension::getInstance()->getConfig('captcha_publickey', 'captcha', 'hooks')); } return property::getInstance()->get('script_url') . '/resource/ccaptcha/captcha.php'; }
private function buildTagCloud() { $tag_count = extension::getInstance()->getConfig('tag_count', 'tagcloud', 'modules', 'int'); $stmt = database::getInstance()->con()->prepare("SELECT SQL_CALC_FOUND_ROWS tag, COUNT(*) AS count FROM " . property::getInstance()->get('db_prefix') . "_mod_tags WHERE object_type = 'news' GROUP BY tag ORDER BY count DESC LIMIT 0,?"); $stmt->bindParam(1, $tag_count, PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt = null; return template::getInstance()->twigRender('modules/tagcloud/cloud.tpl', array('local' => $result)); }
/** * Search and replace URL's for site mirrors * @param $text * @param bool $special_syntax * @return array|mixed */ public function fix($text, $special_syntax = true) { if (!system::getInstance()->contains(';', property::getInstance()->get('source_url'))) { // if only single url is defined return $text; } if (is_array($text)) { $result = array(); foreach ($text as $language => $i_text) { $result[$language] = $this->fix($i_text); } return $result; } else { if (!$special_syntax) { $text = system::getInstance()->nohtml($text); $bbobject = extension::getInstance()->call(extension::TYPE_HOOK, 'bbtohtml'); if (is_object($bbobject)) { $text = $bbobject->nobbcode($text); } } $available_url = system::getInstance()->altexplode(';', property::getInstance()->get('source_url')); $used_url = property::getInstance()->get('script_url'); $result = str_replace($available_url, $used_url, $text); if (property::getInstance()->get('user_friendly_url')) { // if url/index.php/ is used // url/index.php/ to url/ $no_humanurls = $used_url . '/index.php/'; $result = str_replace($no_humanurls, $used_url . '/', $result); } else { // try to set links to non-user friendly model /index.php/lang/ from /lang/ foreach (language::getInstance()->getAvailable() as $s_lang) { $source_human_urls = $used_url . '/' . $s_lang . '/'; $replacement_human_urls = $used_url . '/index.php/' . $s_lang . '/'; $result = str_replace($source_human_urls, $replacement_human_urls, $result); } } // if disabled multi-lang // /ru/page.html to /page.html, /index.php/ru/page.html to /index.php/page.html if (!property::getInstance()->get('use_multi_language')) { $to_replace = array(); $replacement = null; foreach (language::getInstance()->getAvailable() as $s_lang) { $to_replace[] = $used_url . '/index.php/' . $s_lang . '/'; $to_replace[] = $used_url . '/' . $s_lang . '/'; } if (property::getInstance()->get('user_friendly_url')) { $replacement = $used_url . '/'; } else { $replacement = $used_url . '/index.php/'; } $result = str_replace($to_replace, $replacement, $result); } return $result; } }
public function make() { $page_id = extension::getInstance()->getConfig('news_id', 'static_on_main', 'modules', 'int'); $show_date = extension::getInstance()->getConfig('show_date', 'static_on_main', 'modules', 'boolean'); // call to component static pages and display it $page_content = extension::getInstance()->call(extension::TYPE_COMPONENT, 'static'); if (!is_object($page_content)) { return; } template::getInstance()->set(template::TYPE_CONTENT, 'body', $page_content->display('', $page_id, $show_date, true)); }
public function make() { $id = (int) system::getInstance()->get('id'); $user_id = user::getInstance()->get('id'); if ($user_id < 1 || $id < 1 || !extension::getInstance()->getConfig('enable_useradd', 'news', extension::TYPE_COMPONENT, 'bol') || !extension::getInstance()->call(extension::TYPE_COMPONENT, 'news')->checkNewsOwnerExist($user_id, $id)) { return; } $fpath = root . '/upload/news/poster_' . $id . '.jpg'; if (file_exists($fpath)) { @unlink($fpath); } }
private function viewSettings() { $params = array(); if (system::getInstance()->post('submit')) { if (admin::getInstance()->saveExtensionConfigs()) { $params['notify']['save_success'] = true; } } $params['extension']['title'] = admin::getInstance()->viewCurrentExtensionTitle(); $params['config']['item_per_page'] = extension::getInstance()->getConfig('item_per_page', 'feed', extension::TYPE_COMPONENT, 'int'); return template::getInstance()->twigRender('components/feed/settings.tpl', $params); }
public function make() { $params = array(); if (system::getInstance()->post('submit')) { if (admin::getInstance()->saveExtensionConfigs()) { $params['notify']['save_success'] = true; } } $params['extension']['title'] = admin::getInstance()->viewCurrentExtensionTitle(); $params['config']['new_count'] = extension::getInstance()->getConfig('new_count', 'news_new', extension::TYPE_MODULE, 'int'); return template::getInstance()->twigRender('modules/news_new/settings.tpl', $params); }
public function make() { csrf::getInstance()->buildToken(); $params = array(); if (system::getInstance()->post('submit') && csrf::getInstance()->check()) { if (admin::getInstance()->saveExtensionConfigs()) { $params['notify']['save_success'] = true; } } $params['extension']['title'] = admin::getInstance()->viewCurrentExtensionTitle(); $params['config']['captcha_type'] = extension::getInstance()->getConfig('captcha_type', 'captcha', extension::TYPE_HOOK, 'str'); $params['config']['captcha_publickey'] = extension::getInstance()->getConfig('captcha_publickey', 'captcha', extension::TYPE_HOOK, 'str'); $params['config']['captcha_privatekey'] = extension::getInstance()->getConfig('captcha_privatekey', 'captcha', extension::TYPE_HOOK, 'str'); return template::getInstance()->twigRender('hooks/captcha/settings.tpl', $params); }
private function viewUpload() { $file = $_FILES['files']; $news_id = (int) system::getInstance()->get('id'); if ($file['size'] < 1 || !is_int($news_id) || $news_id < 1) { return; } $dir = self::FILES_PATH . $news_id . '/'; $full_img = extension::getInstance()->call(extension::TYPE_HOOK, 'file')->uploadImage($dir . 'orig/', $file); if (!$full_img) { return; } $full_path = root . '/upload' . $dir . 'orig/' . $full_img; $dx = extension::getInstance()->getConfig('gallery_dx', 'news', extension::TYPE_COMPONENT, 'int'); $dy = extension::getInstance()->getConfig('gallery_dy', 'news', extension::TYPE_COMPONENT, 'int'); $thumb_img = extension::getInstance()->call(extension::TYPE_HOOK, 'file')->uploadResizedImage($dir . 'thumb/', $full_path, $dx, $dy, $full_img); $output[] = array('name' => $full_img, 'url' => property::getInstance()->get('script_url') . '/upload' . $dir . 'orig/' . $full_img, 'thumbnailUrl' => property::getInstance()->get('script_url') . '/upload' . $dir . 'thumb/' . $thumb_img); echo json_encode(array('files' => $output)); }
/** * Get comment list * @param null $way * @param int $end * @param bool $show_all * @return array */ public function getCommentsParams($way = null, $end = 0, $show_all = false) { $userid = user::getInstance()->get('id'); $stmt = null; if (is_null($way)) { $way = router::getInstance()->getUriString(); } if ($show_all) { $stmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_mod_comments WHERE pathway = ? AND moderate = '0' ORDER BY id DESC"); $stmt->bindParam(1, $way, PDO::PARAM_STR); $stmt->execute(); } else { $comment_count = extension::getInstance()->getConfig('comments_count', 'comments', 'modules', 'int'); if ($end < 1) { $end = 1; } $end *= $comment_count; $stmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_mod_comments WHERE pathway = ? AND moderate = '0' ORDER BY id DESC LIMIT 0,?"); $stmt->bindParam(1, $way, PDO::PARAM_STR); $stmt->bindParam(2, $end, PDO::PARAM_INT); $stmt->execute(); } $result = $stmt->fetchAll(PDO::FETCH_ASSOC); user::getInstance()->listload(system::getInstance()->extractFromMultyArray('author', $result)); $params = array(); foreach ($result as $item) { $poster_id = $item['author']; $can_edit = false; $can_delete = false; $editconfig = extension::getInstance()->getConfig('edit_time', 'comments', 'modules', 'int'); if ($userid > 0) { if ($poster_id == $userid && time() - $item['time'] <= $editconfig || permission::getInstance()->have('comment/edit')) { $can_edit = true; } if (permission::getInstance()->have('comment/delete')) { $can_delete = true; } } $params[] = array('author_id' => $poster_id, 'author_nick' => user::getInstance()->get('nick', $poster_id), 'author_avatar' => user::getInstance()->buildAvatar('small', $poster_id), 'comment_text' => extension::getInstance()->call(extension::TYPE_HOOK, 'bbtohtml')->bbcode2html($item['comment']), 'comment_date' => system::getInstance()->toDate($item['time'], 'h'), 'unixtime' => $item['time'], 'comment_id' => $item['id'], 'can_edit' => $can_edit, 'can_delete' => $can_delete, 'guest_name' => system::getInstance()->nohtml($item['guest_name'])); } $stmt = null; return $params; }
public function make() { $params = array(); $params['captcha_full'] = extension::getInstance()->getConfig('captcha_type', 'captcha', 'hooks') == "recaptcha" ? true : false; $params['captcha'] = extension::getInstance()->call(extension::TYPE_HOOK, 'captcha')->show(); if (system::getInstance()->post('dofeedback')) { $poster_name = system::getInstance()->nohtml(system::getInstance()->post('topic_name')); $topic_title = system::getInstance()->nohtml(system::getInstance()->post('topic_title')); $topic_text = system::getInstance()->nohtml(system::getInstance()->post('topic_body')); $poster_email = user::getInstance()->get('id') > 0 ? user::getInstance()->get('email') : system::getInstance()->post('topic_email'); $captcha = system::getInstance()->post('captcha'); $date = time(); if (!filter_var($poster_email, FILTER_VALIDATE_EMAIL)) { $params['notify']['wrong_email'] = true; } if (system::getInstance()->length($topic_title) < 3 || system::getInstance()->length($topic_title) > 70) { $params['notify']['wrong_title'] = true; } if (system::getInstance()->length($poster_name) < 3 || system::getInstance()->length($poster_name) > 50) { $params['notify']['wrong_name'] = true; } if (system::getInstance()->length($topic_text) < 10) { $params['notify']['wrong_text'] = true; } if (!extension::getInstance()->call(extension::TYPE_HOOK, 'captcha')->validate($captcha)) { $params['notify']['wrong_captcha'] = true; } if (sizeof($params['notify']) == 0) { $stmt = database::getInstance()->con()->prepare("INSERT INTO " . property::getInstance()->get('db_prefix') . "_com_feedback (`from_name`, `from_email`, `title`, `text`, `time`) VALUES (?, ?, ?, ?, ?)"); $stmt->bindParam(1, $poster_name, PDO::PARAM_STR); $stmt->bindParam(2, $poster_email, PDO::PARAM_STR); $stmt->bindParam(3, $topic_title, PDO::PARAM_STR); $stmt->bindParam(4, $topic_text, PDO::PARAM_STR); $stmt->bindParam(5, $date, PDO::PARAM_INT); $stmt->execute(); $params['notify']['success'] = true; } } meta::getInstance()->add('title', language::getInstance()->get('feedback_form_title')); $render = template::getInstance()->twigRender('components/feedback/form.tpl', array('local' => $params)); template::getInstance()->set(template::TYPE_CONTENT, 'body', $render); }
public function make() { if ($_FILES['upload'] == null) { return null; } $type = (int) system::getInstance()->get('type'); $result = false; $save_folder = false; $allow_ext = system::getInstance()->altexplode(';', property::getInstance()->get('upload_allowed_ext')); foreach ($allow_ext as $key => $value) { // no dots $nodot = str_replace('.', '', $value); if (system::getInstance()->length($nodot) > 0) { $allow_ext[$key] = $nodot; } } switch ($type) { case 1: if (permission::getInstance()->have('admin/imagebrowser')) { $result = extension::getInstance()->call(extension::TYPE_HOOK, 'file')->uploadImage('/images/', $_FILES['upload']); $save_folder = 'images'; } break; case 2: if (permission::getInstance()->have('admin/flashbrowser')) { $result = extension::getInstance()->call(extension::TYPE_HOOK, 'file')->uploadFile('/flash/', $_FILES['upload'], array('swf')); $save_folder = 'flash'; } break; default: if (permission::getInstance()->have('admin/filebrowser')) { $result = extension::getInstance()->call(extension::TYPE_HOOK, 'file')->uploadFile('/other/', $_FILES['upload'], $allow_ext); $save_folder = 'other'; } break; } if (!$result || !$save_folder) { echo '<html><body><script type="text/javascript">window.parent.CKEDITOR.tools.callFunction("' . $_GET['CKEditorFuncNum'] . '", "", "' . language::getInstance()->get('fileupload_api_error') . '");</script></body></html>'; } else { echo '<html><body><script type="text/javascript">window.parent.CKEDITOR.tools.callFunction("' . $_GET['CKEditorFuncNum'] . '", "' . property::getInstance()->get('script_url') . '/upload/' . $save_folder . '/' . $result . '");</script></body></html>'; } }
public function make() { $params = array(); if (system::getInstance()->post('submit')) { if (admin::getInstance()->saveExtensionConfigs()) { $params['notify']['save_success'] = true; } } $params['extension']['title'] = admin::getInstance()->viewCurrentExtensionTitle(); $params['config']['show_date'] = extension::getInstance()->getConfig('show_date', 'static_on_main', extension::TYPE_MODULE, 'int'); $params['config']['news_id'] = extension::getInstance()->getConfig('news_id', 'static_on_main', extension::TYPE_MODULE, 'int'); $stmt = database::getInstance()->con()->prepare("SELECT `id`, `title` FROM " . property::getInstance()->get('db_prefix') . "_com_static ORDER BY `id` DESC"); $stmt->execute(); $resultAll = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($resultAll as $row) { $serial_title = unserialize($row['title']); $params['staticpages'][] = array('id' => $row['id'], 'title' => $serial_title[language::getInstance()->getUseLanguage()]); } $stmt = null; return template::getInstance()->twigRender('modules/static_on_main/settings.tpl', $params); }
/** * Set in body position static page for $pathway * @param string $pathway * @param int $id * @param boolean $show_date * @param boolean $is_main * @return string|null */ public function display($pathway, $id = null, $show_date = true, $is_main = false) { $stmt = null; if (is_null($id)) { $stmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_com_static WHERE pathway = ?"); $stmt->bindParam(1, $pathway, PDO::PARAM_STR); $stmt->execute(); } else { $stmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_com_static WHERE id = ?"); $stmt->bindParam(1, $id, PDO::PARAM_INT); $stmt->execute(); } if ($stmt != null && ($result = $stmt->fetch())) { $serial_title = unserialize($result['title']); $serial_text = unserialize($result['text']); $serial_keywords = unserialize($result['keywords']); $serial_description = unserialize($result['description']); if (system::getInstance()->length($serial_title[language::getInstance()->getUseLanguage()]) < 1 || system::getInstance()->length($serial_text[language::getInstance()->getUseLanguage()]) < 1) { return null; } $urlfix_object = extension::getInstance()->call(extension::TYPE_HOOK, 'urlfixer'); if (is_object($urlfix_object)) { $serial_text = $urlfix_object->fix($serial_text); } if ($pathway) { meta::getInstance()->add('title', $serial_title[language::getInstance()->getUseLanguage()]); meta::getInstance()->add('keywords', $serial_keywords[language::getInstance()->getUseLanguage()]); meta::getInstance()->add('description', $serial_description[language::getInstance()->getUseLanguage()]); } $params = array('title' => $serial_title[language::getInstance()->getUseLanguage()], 'text' => $serial_text[language::getInstance()->getUseLanguage()], 'date' => system::getInstance()->toDate($result['date'], 'd'), 'show_date' => $show_date, 'is_main' => $is_main, 'pathway' => property::getInstance()->get('url') . '/static/' . $pathway); if (system::getInstance()->get('print') == 'true') { template::getInstance()->justPrint(template::getInstance()->twigRender('components/static/print.tpl', array('local' => $params))); } return template::getInstance()->twigRender('components/static/page.tpl', array('local' => $params)); } return null; }
public function canEdit($comment_id) { if (permission::getInstance()->have('global/owner')) { // no limits for full admin return true; } if (user::getInstance()->get('id') < 1) { return false; } if (!permission::getInstance()->have('global/write')) { return false; } $userid = user::getInstance()->get('id'); $stmt = database::getInstance()->con()->prepare("SELECT author,time FROM " . property::getInstance()->get('db_prefix') . "_mod_comments WHERE id = ?"); $stmt->bindParam(1, $comment_id, PDO::PARAM_INT); $stmt->execute(); if ($result = $stmt->fetch()) { $editconfig = extension::getInstance()->getConfig('edit_time', 'comments', 'modules', 'int'); if ($result['author'] != $userid || time() - $result['time'] > $editconfig && !permission::getInstance()->have('comment/edit')) { return false; } } return true; }
public function viewCategory() { $way = router::getInstance()->shiftUriArray(); $item_type = 'all'; if (in_array($way[0], array('all', 'top'))) { $item_type = array_shift($way); } $pop_array = $way; $last_item = array_pop($pop_array); $page_index = 0; $page_video_count = extension::getInstance()->getConfig('count_video_page', 'video', 'components', 'int'); $total_video_count = 0; $cat_link = null; if (system::getInstance()->isInt($last_item)) { $page_index = $last_item; $cat_link = system::getInstance()->altimplode("/", $pop_array); } else { $cat_link = system::getInstance()->altimplode("/", $way); } $select_coursor_start = $page_index * $page_video_count; $category_select_array = array(); $category_list = null; $fstmt = null; $page_title = null; $page_desc = null; if (extension::getInstance()->getConfig('multi_category', 'video', 'components', 'boolean')) { $fstmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_com_video_category WHERE path like ?"); $path_swarm = "{$cat_link}%"; $fstmt->bindParam(1, $path_swarm, PDO::PARAM_STR); $fstmt->execute(); } else { $fstmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_com_video_category WHERE path = ?"); $fstmt->bindParam(1, $cat_link, PDO::PARAM_STR); $fstmt->execute(); } while ($fresult = $fstmt->fetch()) { $category_select_array[] = $fresult['category_id']; if ($cat_link == $fresult['path']) { $serial_name = system::getInstance()->nohtml(unserialize($fresult['name'])); $serial_desc = unserialize($fresult['desc']); $page_title = language::getInstance()->get('video_view_category') . ': '; if ($item_type == 'top') { $page_title .= language::getInstance()->get('vide_view_top'); } else { $page_title .= $serial_name[language::getInstance()->getUseLanguage()]; } $seo_title = $page_title; $seo_desc = $page_desc = $serial_desc[language::getInstance()->getUseLanguage()]; if ($page_index > 0) { $seo_title .= " - " . language::getInstance()->get('video_page_title') . ' ' . ($page_index + 1); $seo_desc .= " - " . language::getInstance()->get('video_page_title') . ' ' . ($page_index + 1); } meta::getInstance()->add('title', $seo_title); meta::getInstance()->add('description', $seo_desc); } } $category_list = system::getInstance()->altimplode(',', $category_select_array); $theme_array = array(); $fstmt = null; if (system::getInstance()->isIntList($category_list)) { $max_preview_length = 150; $time = time(); $stmt = database::getInstance()->con()->prepare("SELECT COUNT(*) FROM " . property::getInstance()->get('db_prefix') . "_com_video_entery WHERE category in ({$category_list}) AND date <= ? AND display = 1"); $stmt->bindParam(1, $time, PDO::PARAM_INT); $stmt->execute(); if ($countRows = $stmt->fetch()) { $total_video_count = $countRows[0]; } $stmt = null; $order_column = 'a.date'; if ($item_type == 'top') { $order_column = 'a.views'; } $stmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_com_video_entery a,\n\t\t\t\t\t\t\t\t\t\t\t\t " . property::getInstance()->get('db_prefix') . "_com_video_category b\n\t\t\t\t\t\t\t\t\t\t\t\t WHERE a.category in ({$category_list}) AND a.date <= ?\n\t\t\t\t\t\t\t\t\t\t\t\t AND a.category = b.category_id\n\t\t\t\t\t\t\t\t\t\t\t\t AND a.display = 1\n\t\t\t\t\t\t\t\t\t\t\t\t ORDER BY a.important DESC, {$order_column} DESC LIMIT ?,?"); $stmt->bindParam(1, $time, PDO::PARAM_INT); $stmt->bindParam(2, $select_coursor_start, PDO::PARAM_INT); $stmt->bindParam(3, $page_video_count, PDO::PARAM_INT); $stmt->execute(); if (sizeof($category_select_array) > 0) { while ($result = $stmt->fetch()) { $lang_text = system::getInstance()->altstripslashes(unserialize($result['text'])); $lang_title = system::getInstance()->altstripslashes(unserialize($result['title'])); $lang_keywords = system::getInstance()->altstripslashes(unserialize($result['keywords'])); $video_short_text = $lang_text[language::getInstance()->getUseLanguage()]; if (system::getInstance()->length($lang_title[language::getInstance()->getUseLanguage()]) < 1) { // do not add the empty title video continue; } if (system::getInstance()->contains('<hr />', $video_short_text)) { $video_short_text = strstr($video_short_text, '<hr />', true); } elseif (system::getInstance()->length($video_short_text) > $max_preview_length) { $video_short_text = system::getInstance()->sentenceSub(system::getInstance()->nohtml($video_short_text), $max_preview_length) . "..."; } if ($result['path'] == null) { $video_full_link = $result['link']; } else { $video_full_link = $result['path'] . "/" . $result['link']; } $tagPrepareArray = system::getInstance()->altexplode(',', $lang_keywords[language::getInstance()->getUseLanguage()]); $tag_array = array(); foreach ($tagPrepareArray as $tagItem) { $tag_array[] = trim($tagItem); } $comment_count = 0; if (is_object(extension::getInstance()->call(extension::TYPE_HOOK, 'comment'))) { $comment_count = extension::getInstance()->call(extension::TYPE_HOOK, 'comment')->getCount('/' . language::getInstance()->getUseLanguage() . '/video/' . $video_full_link); } $cat_serial_text = system::getInstance()->altstripslashes(unserialize($result['name'])); $video_view_id = $result['id']; $image_poster_root = root . '/upload/video/poster_' . $video_view_id . '.jpg'; $image_poster_url = false; if (file_exists($image_poster_root)) { $image_poster_url = property::getInstance()->get('script_url') . '/upload/video/poster_' . $video_view_id . '.jpg'; } $theme_array[] = array('tags' => $tag_array, 'title' => $lang_title[language::getInstance()->getUseLanguage()], 'text' => $video_short_text, 'date' => system::getInstance()->toDate($result['date'], 'h'), 'unixtime' => $result['date'], 'category_url' => $result['path'], 'category_name' => $cat_serial_text[language::getInstance()->getUseLanguage()], 'author_id' => $result['author'], 'author_nick' => user::getInstance()->get('nick', $result['author']), 'full_video_uri' => $video_full_link, 'comment_count' => $comment_count, 'view_count' => $result['views'], 'poster' => $image_poster_url, 'important' => $result['important']); } } $stmt = null; } if ($item_type == 'top') { $page_link = $cat_link == null ? "video/top" : "video/top/" . $cat_link; } else { $page_link = $cat_link == null ? "video" : "video/" . $cat_link; } $pagination = template::getInstance()->showFastPagination($page_index, $page_video_count, $total_video_count, $page_link); $full_params = array('local' => $theme_array, 'pagination' => $pagination, 'page_title' => $page_title, 'page_desc' => $page_desc, 'page_link' => $cat_link, 'video_sort_type' => $item_type); return template::getInstance()->twigRender('/components/video/short_view.tpl', $full_params); }
private function viewWebmoney() { if (!extension::getInstance()->getConfig('balance_use_webmoney', 'user', extension::TYPE_COMPONENT, 'boolean')) { exit("Webmoney API disabled"); } $wm_cfg_purse = extension::getInstance()->getConfig('balance_wm_purse', 'user', extension::TYPE_COMPONENT, 'str'); $wm_cfg_mul = extension::getInstance()->getConfig('balance_wm_mul', 'user', extension::TYPE_COMPONENT, 'float'); $wm_cfg_secret = extension::getInstance()->getConfig('balance_wm_secretkey', 'user', extension::TYPE_COMPONENT, 'str'); $real_ip = system::getInstance()->getRealIp(); $ip_array_routes = system::getInstance()->altexplode('.', $real_ip); array_pop($ip_array_routes); $ip_masc = system::getInstance()->altimplode('.', $ip_array_routes); $wm_ips = array('212.118.48', '212.158.173', '91.200.28', '91.227.52'); if (!in_array($ip_masc, $wm_ips)) { logger::getInstance()->log(logger::LEVEL_WARN, 'Call to Webmoney REST_API from wrong ip: ' . $real_ip . ' masc: ' . $ip_masc); return null; } $pre_request = system::getInstance()->post('LMI_PREREQUEST'); $wm_seller_purse = system::getInstance()->post('LMI_PAYEE_PURSE'); // seller purse (must be our) $wm_payment_amount = system::getInstance()->post('LMI_PAYMENT_AMOUNT'); // payment price amount $wm_item_id = (int) system::getInstance()->post('LMI_PAYMENT_NO'); // user id $wm_test_mode = system::getInstance()->post('LMI_MODE'); // is test? $wm_paym_id = system::getInstance()->post('LMI_SYS_INVS_NO'); // webmoney payment id $wm_trans_id = system::getInstance()->post('LMI_SYS_TRANS_NO'); // webmoney transaction id $wm_trans_date = system::getInstance()->post('LMI_SYS_TRANS_DATE'); // date in strange format $wm_hash_trans = system::getInstance()->post('LMI_HASH'); // hash sum, can be null before 200OK response is checked $wm_buyer_wmpurse = system::getInstance()->post('LMI_PAYER_PURSE'); // client wm purse $wm_buyer_wmid = system::getInstance()->post('LMI_PAYER_WM'); // client WMID if ($pre_request == 1) { // its a pre-request, validation before pay if ($wm_seller_purse != $wm_cfg_purse) { exit("Seller purse is invalid"); } if (!user::getInstance()->exists($wm_item_id)) { exit("User id: " . $wm_item_id . " not exist"); } echo "YES"; } else { // its a result request after payment if ($wm_hash_trans == null) { // didnt know why, but webmoney make 2 requests if PREREQUEST is disabled. exit("Hash sum is null"); } $totaldata = $wm_seller_purse . $wm_payment_amount . $wm_item_id . $wm_test_mode . $wm_paym_id . $wm_trans_id . $wm_trans_date . $wm_cfg_secret . $wm_buyer_wmpurse . $wm_buyer_wmid; $calchash = strtoupper(hash('sha256', $totaldata)); if ($calchash != $wm_hash_trans || $wm_seller_purse != $wm_cfg_purse) { logger::getInstance()->log(logger::LEVEL_NOTIFY, 'Wrong balance recharge webmoney from ip: ' . $real_ip . '. Hash gen: ' . $calchash . ' get: ' . $wm_hash_trans . '. All data json: ' . json_encode(system::getInstance()->post())); return null; } $money_to_balance = $wm_payment_amount * $wm_cfg_mul; if ($money_to_balance <= 0) { return null; } user::getInstance()->addBalance($wm_item_id, $money_to_balance); $payparam = array('from_wm_purse' => $wm_buyer_wmpurse, 'from_wm_id' => $wm_buyer_wmid, 'date' => $wm_trans_date, 'sys_invs_id' => $wm_paym_id, 'sys_trans_id' => $wm_trans_id, 'amount' => $money_to_balance); user::getInstance()->putLog($wm_item_id, 'balance.wmadd', $payparam, 'Recharge balance via webmoney'); } }
public function make() { $params = array(); $item_count = extension::getInstance()->getConfig('discus_count', 'news_top_discus', extension::TYPE_MODULE, 'int'); if ($item_count < 1) { $item_count = 1; } $day_unixlimit = extension::getInstance()->getConfig('discus_days', 'news_top_discus', extension::TYPE_MODULE, 'int'); $day_unixlimit *= 60 * 60 * 24; $day_diff = $day_unixlimit === 0 ? 0 : time() - $day_unixlimit; $stmt = database::getInstance()->con()->prepare("SELECT pathway,COUNT(*) as count FROM " . property::getInstance()->get('db_prefix') . "_mod_comments WHERE moderate = 0 AND time >= ? GROUP BY `pathway` ORDER BY count DESC LIMIT 0,?"); $stmt->bindParam(1, $day_diff, \PDO::PARAM_INT); $stmt->bindParam(2, $item_count, \PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetchAll(\PDO::FETCH_ASSOC); $stmt = null; $article_url = array(); $article_cat = array(); $main_cat = false; $comment_key_count = array(); foreach ($result as $item) { $comment_key_count[$item['pathway']] = $item['count']; } foreach (system::getInstance()->extractFromMultyArray('pathway', $result) as $uri_string) { $uri = system::getInstance()->altexplode('/', $uri_string); if (property::getInstance()->get('use_multi_language')) { array_shift($uri); } // remove /ru/ or /en/. array_shift($uri); // remove /news/ if (sizeof($uri) === 1) { $article_url[] = system::getInstance()->altimplode('/', $uri); $main_cat = true; } else { $article_url[] = array_pop($uri); $article_cat[] = system::getInstance()->altimplode('/', $uri); } } $article_link_list = "'" . system::getInstance()->altimplode('\',\'', $article_url) . "'"; $article_cat_list = null; if ($main_cat) { $article_cat_list .= "'',"; } $article_cat_list .= "'" . system::getInstance()->altimplode('\',\'', $article_cat) . "'"; $stmt = database::getInstance()->con()->query("SELECT a.title,a.link,b.path FROM " . property::getInstance()->get('db_prefix') . "_com_news_entery a," . property::getInstance()->get('db_prefix') . "_com_news_category b\n WHERE a.link IN ({$article_link_list}) AND b.path in ({$article_cat_list}) AND a.category = b.category_id"); $news_result = $stmt->fetchAll(\PDO::FETCH_ASSOC); $stmt = null; $news_data = array(); foreach ($news_result as $row) { $full_path = null; if (property::getInstance()->get('use_multi_language')) { $full_path .= '/' . language::getInstance()->getUseLanguage(); } $full_path .= '/news/'; if ($row['path'] != null) { $full_path .= $row['path'] . '/'; } $full_path .= $row['link']; if ($comment_key_count[$full_path] > 0) { $serial_title = unserialize($row['title']); $news_data[$full_path] = array('title' => $serial_title[language::getInstance()->getUseLanguage()]); } } foreach ($comment_key_count as $item_path => $item_repeat) { if (sizeof($news_data[$item_path]) > 0) { $params['top'][] = array('title' => $news_data[$item_path]['title'], 'comments' => $item_repeat, 'pathway' => $item_path); } } $tmp = template::getInstance()->twigRender('modules/news_top_discus/list.tpl', array('local' => $params)); template::getInstance()->set(template::TYPE_MODULE, 'news_top_discus', $tmp); }
private function viewVideoEdit() { $params = array(); $video_id = (int) system::getInstance()->get('id'); $params['extension']['title'] = admin::getInstance()->viewCurrentExtensionTitle(); $params['langs']['all'] = language::getInstance()->getAvailable(); $params['langs']['current'] = property::getInstance()->get('lang'); $params['video']['categorys'] = extension::getInstance()->call(extension::TYPE_COMPONENT, 'video')->getCategoryArray(); if (system::getInstance()->post('save')) { $editor_id = user::getInstance()->get('id'); $title = system::getInstance()->nohtml(system::getInstance()->post('title')); $category_id = system::getInstance()->post('category'); $pathway = system::getInstance()->nohtml(system::getInstance()->post('pathway')) . ".html"; $display = system::getInstance()->post('display_content') == "on" ? 1 : 0; $important = system::getInstance()->post('important_content') == "on" ? 1 : 0; $text = system::getInstance()->post('text'); $description = system::getInstance()->nohtml(system::getInstance()->post('description')); $keywords = system::getInstance()->nohtml(system::getInstance()->post('keywords')); $video_code = system::getInstance()->post('videocode'); $date = system::getInstance()->post('current_date') == "on" ? time() : system::getInstance()->toUnixTime(system::getInstance()->post('date')); if (strlen($video_code) < 1) { $params['notify']['nocode'] = true; } if (strlen($title[property::getInstance()->get('lang')]) < 1) { $params['notify']['notitle'] = true; } if (!system::getInstance()->isInt($category_id)) { $params['notify']['nocat'] = true; } if (strlen($pathway) < 1 || !extension::getInstance()->call(extension::TYPE_COMPONENT, 'video')->checkVideoWay($pathway, $video_id, $category_id)) { $params['notify']['wrongway'] = true; } if (strlen($text[property::getInstance()->get('lang')]) < 1) { $params['notify']['notext'] = true; } if (sizeof($params['notify']) == 0) { $serial_title = serialize(system::getInstance()->altaddslashes($title)); $serial_text = serialize(system::getInstance()->altaddslashes($text)); $serial_description = serialize(system::getInstance()->altaddslashes($description)); $serial_keywords = serialize(system::getInstance()->altaddslashes($keywords)); $stmt = database::getInstance()->con()->prepare("UPDATE " . property::getInstance()->get('db_prefix') . "_com_video_entery SET code = ?, title = ?, text = ?, link = ?,\n\t\t\t\t\t\tcategory = ?, date = ?, description = ?, keywords = ?, display = ?, important = ? WHERE id = ?"); $stmt->bindParam(1, $video_code, PDO::PARAM_STR); $stmt->bindParam(2, $serial_title, PDO::PARAM_STR); $stmt->bindParam(3, $serial_text, PDO::PARAM_STR); $stmt->bindParam(4, $pathway, PDO::PARAM_STR); $stmt->bindParam(5, $category_id, PDO::PARAM_INT); $stmt->bindParam(6, $date, PDO::PARAM_INT); $stmt->bindParam(7, $serial_description, PDO::PARAM_STR); $stmt->bindParam(8, $serial_keywords, PDO::PARAM_STR); $stmt->bindParam(9, $display, PDO::PARAM_INT); $stmt->bindParam(10, $important, PDO::PARAM_INT); $stmt->bindParam(11, $video_id, PDO::PARAM_INT); $stmt->execute(); $stmt = null; $stmt = database::getInstance()->con()->prepare("DELETE FROM " . property::getInstance()->get('db_prefix') . "_mod_tags WHERE `object_type` = 'video' AND `object_id` = ?"); $stmt->bindParam(1, $video_id, PDO::PARAM_INT); $stmt->execute(); $stmt = null; foreach ($keywords as $keyrow) { $keyrow_array = system::getInstance()->altexplode(',', $keyrow); foreach ($keyrow_array as $objectkey) { $objectkey = system::getInstance()->altlower(trim($objectkey)); $stmt = database::getInstance()->con()->prepare("INSERT INTO " . property::getInstance()->get('db_prefix') . "_mod_tags(`object_id`, `object_type`, `tag`) VALUES (?, 'video', ?)"); $stmt->bindParam(1, $video_id, PDO::PARAM_INT); $stmt->bindParam(2, $objectkey, PDO::PARAM_STR); $stmt->execute(); $stmt = null; } } $params['notify']['success'] = true; if ($_FILES['videoimage']['size'] > 0) { $dx = extension::getInstance()->getConfig('poster_dx', 'video', extension::TYPE_COMPONENT, 'int'); $dy = extension::getInstance()->getConfig('poster_dy', 'video', extension::TYPE_COMPONENT, 'int'); $save_name = 'poster_' . $video_id . '.jpg'; extension::getInstance()->call(extension::TYPE_HOOK, 'file')->uploadResizedImage('/video/', $_FILES['videoimage'], $dx, $dy, $save_name); } } } $stmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_com_video_entery WHERE id = ?"); $stmt->bindParam(1, $video_id, PDO::PARAM_INT); $stmt->execute(); if ($result = $stmt->fetch()) { $params['video']['id'] = $video_id; $params['video']['title'] = system::getInstance()->altstripslashes(unserialize($result['title'])); $params['video']['text'] = system::getInstance()->altstripslashes(unserialize($result['text'])); $params['video']['pathway'] = system::getInstance()->noextention($result['link']); $params['video']['cat_id'] = $result['category']; $params['video']['date'] = system::getInstance()->toDate($result['date'], 'h'); $params['video']['description'] = system::getInstance()->altstripslashes(unserialize($result['description'])); $params['video']['keywords'] = system::getInstance()->altstripslashes(unserialize($result['keywords'])); $params['video']['display'] = $result['display']; $params['video']['important'] = $result['important']; $params['video']['code'] = $result['code']; if (file_exists(root . '/upload/video/poster_' . $video_id . '.jpg')) { $params['video']['poster_path'] = '/upload/video/poster_' . $video_id . '.jpg'; $params['video']['poster_name'] = 'poster_' . $video_id . '.jpg'; } } else { system::getInstance()->redirect($_SERVER['PHP_SELF'] . '?object=components&action=static'); } return template::getInstance()->twigRender('components/video/edit.tpl', $params); }
private function viewCommentList() { csrf::getInstance()->buildToken(); $params = array(); if (system::getInstance()->post('deleteSelected') && csrf::getInstance()->check()) { $toDelete = system::getInstance()->post('check_array'); if (is_array($toDelete) && sizeof($toDelete) > 0) { $listDelete = system::getInstance()->altimplode(',', $toDelete); if (system::getInstance()->isIntList($listDelete)) { database::getInstance()->con()->query("DELETE FROM " . property::getInstance()->get('db_prefix') . "_mod_comments WHERE id IN (" . $listDelete . ")"); } } } $params['extension']['title'] = admin::getInstance()->viewCurrentExtensionTitle(); $filter = (int) system::getInstance()->get('filter'); $index = (int) system::getInstance()->get('index'); $db_index = $index * self::ITEM_PER_PAGE; $stmt = null; if ($filter == self::FILTER_MODERATE) { $stmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_mod_comments WHERE moderate = 1 ORDER BY id DESC LIMIT ?," . self::ITEM_PER_PAGE); $stmt->bindParam(1, $db_index, PDO::PARAM_INT); $stmt->execute(); } else { $stmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_mod_comments ORDER BY id DESC LIMIT ?," . self::ITEM_PER_PAGE); $stmt->bindParam(1, $db_index, PDO::PARAM_INT); $stmt->execute(); } $resultFetch = $stmt->fetchAll(PDO::FETCH_ASSOC); $authors_ids = system::getInstance()->extractFromMultyArray('author', $resultFetch); if (sizeof($authors_ids) > 1) { // 2 or more user::getInstance()->listload(system::getInstance()->extractFromMultyArray('author', $resultFetch)); } foreach ($resultFetch as $row) { $params['comments']['list'][] = array('id' => $row['id'], 'user_id' => $row['author'], 'user_name' => user::getInstance()->get('nick', $row['author']), 'comment' => extension::getInstance()->call(extension::TYPE_HOOK, 'bbtohtml')->nobbcode($row['comment']), 'guest_name' => system::getInstance()->nohtml($row['guest_name']), 'moderate' => $row['moderate'], 'date' => system::getInstance()->toDate($row['time'], 'h'), 'uri' => $row['pathway']); } $params['pagination'] = template::getInstance()->showFastPagination($index, self::ITEM_PER_PAGE, $this->getTotalCommentCount($filter), '?object=modules&action=comments&filter=' . $filter . '&index='); return template::getInstance()->twigRender('modules/comments/list.tpl', $params); }
private function viewFeedMain() { $params = array(); $way = router::getInstance()->shiftUriArray(); meta::getInstance()->add('title', language::getInstance()->get('feed_global_title')); $item_per_page = extension::getInstance()->getConfig('item_per_page', 'feed', extension::TYPE_COMPONENT, 'int'); if ($item_per_page < 1) { $item_per_page = 1; } $index = (int) $way[1]; $db_index = $index * $item_per_page; $stmt = database::getInstance()->con()->prepare("SELECT a.item_title,a.item_id,a.target_list,a.item_date,b.title FROM " . property::getInstance()->get('db_prefix') . "_com_feed_item a,\n " . property::getInstance()->get('db_prefix') . "_com_feed_list b WHERE b.id = a.target_list ORDER BY a.item_date DESC LIMIT ?,?"); $stmt->bindParam(1, $db_index, \PDO::PARAM_INT); $stmt->bindParam(2, $item_per_page, \PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetchAll(\PDO::FETCH_ASSOC); $stmt = null; foreach ($result as $row) { $cat_title = unserialize($row['title']); $params['rssfeed'][] = array('title' => system::getInstance()->nohtml($row['item_title']), 'id' => $row['item_id'], 'cat_title' => $cat_title[language::getInstance()->getUseLanguage()], 'cat_id' => $row['target_list'], 'date' => system::getInstance()->toDate($row['item_date'], 'h')); } // get total count for pagination $stmt = database::getInstance()->con()->query("SELECT COUNT(*) FROM " . property::getInstance()->get('db_prefix') . "_com_feed_item"); $res = $stmt->fetch(); $stmt = null; $total_count = $res[0]; $params['pagination'] = template::getInstance()->showFastPagination($index, $item_per_page, $total_count, 'feed/list'); return template::getInstance()->twigRender('components/feed/stream.tpl', $params); }
/** * Add line to stream logs user activity * @param string $type * @param int|string $caster_id * @param string $target_url * @param null|string $preview_text * @param bool $save_syntax * @return bool */ public function add($type, $caster_id, $target_url, $preview_text = null, $save_syntax = true) { if (strlen($type) < 1) { return false; } if (system::getInstance()->isInt($caster_id)) { if (!user::getInstance()->exists($caster_id)) { return false; } } else { if (system::getInstance()->length($caster_id) < 1) { return false; } } if (!system::getInstance()->prefixEquals($target_url, property::getInstance()->get('url'))) { return false; } if (!$save_syntax) { $preview_text = system::getInstance()->nohtml($preview_text); $bbobject = extension::getInstance()->call(extension::TYPE_HOOK, 'bbtohtml'); if (is_object($bbobject)) { $preview_text = $bbobject->nobbcode($preview_text); } } if (system::getInstance()->length($preview_text) > 25) { $preview_text = system::getInstance()->sentenceSub($preview_text, 25) . '...'; } $date = time(); $stmt = database::getInstance()->con()->prepare("INSERT INTO " . property::getInstance()->get('db_prefix') . "_com_stream (`type`, `caster_id`, `target_object`, `text_preview`, `date`) VALUES (?, ?, ?, ?, ?)"); $stmt->bindParam(1, $type, \PDO::PARAM_STR); $stmt->bindParam(2, $caster_id, \PDO::PARAM_STR); $stmt->bindParam(3, $target_url, \PDO::PARAM_STR); $stmt->bindParam(4, $preview_text, \PDO::PARAM_STR | \PDO::PARAM_NULL); $stmt->bindParam(5, $date, \PDO::PARAM_INT); $stmt->execute(); return true; }
private function viewMenuManage() { $menu_id = (int) system::getInstance()->get('id'); $params = array(); $params['extension']['title'] = admin::getInstance()->viewCurrentExtensionTitle(); $stmt = database::getInstance()->con()->prepare("SELECT * FROM " . property::getInstance()->get('db_prefix') . "_mod_menu_header WHERE menu_id = ?"); $stmt->bindParam(1, $menu_id, \PDO::PARAM_INT); $stmt->execute(); if ($stmt->rowCount() != 1) { return null; } $result = $stmt->fetch(\PDO::FETCH_ASSOC); $stmt = null; $menu_serial_name = unserialize($result['menu_name']); $params['modhead']['data'] = array('name' => $menu_serial_name[language::getInstance()->getUseLanguage()], 'tag' => $result['menu_tag'], 'id' => $menu_id); $stmt = database::getInstance()->con()->prepare("SELECT g.*, d.* FROM `" . property::getInstance()->get('db_prefix') . "_mod_menu_gitem` as g\n LEFT OUTER JOIN `" . property::getInstance()->get('db_prefix') . "_mod_menu_ditem` as d\n ON g.g_id = d.d_owner_gid\n WHERE g.g_menu_head_id = ?\n ORDER BY g.g_priority ASC, d.d_priority ASC"); $stmt->bindParam(1, $menu_id, \PDO::PARAM_INT); $stmt->execute(); $resultItems = $stmt->fetchAll(\PDO::FETCH_ASSOC); foreach ($resultItems as $row) { $serial_gname = unserialize($row['g_name']); $serial_dname = unserialize($row['d_name']); $g_url = $row['g_url']; $d_url = $row['d_url']; $callback = extension::getInstance()->call(extension::TYPE_MODULE, 'menu'); if (is_object($callback)) { $g_url = $callback->urlRelativeToAbsolute($g_url); $d_url = $callback->urlRelativeToAbsolute($d_url); } if ($params['modmenu']['item'][$row['g_id']]['id'] == null) { // general item is not defined $params['modmenu']['item'][$row['g_id']]['id'] = $row['g_id']; $params['modmenu']['item'][$row['g_id']]['name'] = $serial_gname[language::getInstance()->getUseLanguage()]; $params['modmenu']['item'][$row['g_id']]['priority'] = $row['g_priority']; $params['modmenu']['item'][$row['g_id']]['url'] = $g_url; } if ($row['d_id'] > 0) { $params['modmenu']['item'][$row['d_owner_gid']]['depend_array'][] = array('id' => $row['d_id'], 'name' => $serial_dname[language::getInstance()->getUseLanguage()], 'url' => $d_url, 'priority' => $row['d_priority'], 'depend_id' => $row['d_owner_gid']); } } return template::getInstance()->twigRender('modules/menu/manage.tpl', $params); }
<?php /** |==========================================================| |========= @copyright Pyatinskii Mihail, 2013-2014 ========| |================= @website: www.ffcms.ru =================| |========= @license: GNU GPL V3, file: license.txt ========| |==========================================================| */ // system are not installed or file is missed if (!file_exists(root . "/config.php")) { exit("System are not installed or file config.php is missed. Run <a href='/install/'>Installer</a>."); } else { require_once root . '/config.php'; } \engine\property::getInstance()->init(); // processing of URI for multi-language and friendly url's \engine\timezone::getInstance()->init(); // prepare tz_data worker date_default_timezone_set(\engine\property::getInstance()->get('time_zone')); // default timezone from configs \engine\language::getInstance()->init(); \engine\database::getInstance()->init(); // init database PDO connect \engine\user::getInstance()->init(); \engine\router::getInstance()->init(); \engine\extension::getInstance()->init(); // init extension controller \engine\template::getInstance()->init(); echo \engine\admin::getInstance()->make();