kphp Опубликовано 18 февраля, 2022 Жалоба Поделиться Опубликовано 18 февраля, 2022 (изменено) 1 заходим в system открыть там файл mod.php вставляем туда //тавары case "groups_shop": include ENGINE_DIR.'/modules/groups_shop.php'; break; 2 ищем в корне сайта файл htaccess Вставляем туда #Тавары RewriteCond %{QUERY_STRING} ^act=([a-z]+) RewriteRule ^(.*)public_shop([0-9]+) $1index.php?go=groups_shop&public_id=$2 [QSA,L] RewriteCond %{QUERY_STRING} ^page=([0-9]+) RewriteRule ^(.*)public_shop([0-9]+) $1index.php?go=groups_shop&public_id=$2 [QSA,L] RewriteRule ^public_shop([0-9]+)(/?)+$ index.php?go=groups_shop&public_id=$1 [L] 3 заходим в templates\Default\public открыть там файл main.tpl вставляем туда [shop]<a href="/public_shop{id}" onClick="Page.Go(this.href); return false" class="fl_l" style="text-decoration:none"><div class="albtitle" style="border-bottom:0px">{shop-num} <b id="langForum">Товары</b></div></a> [shop_privacy]<a href="/public_shop{id}?act=new" onClick="Page.Go(this.href); return false" class="fl_r {no}" style="text-decoration:none"><div class="albtitle" style="border-bottom:0px;color:#ddd">Добавить товар</div></a>[/shop_privacy] <div class="clear"></div>{shops} <br><div class="clear"></div>[/shop] 4 заходим в templates\Default\public\edit открыть там файл general.tpl ищем <div class="texta"> </div> <div class="html_checkbox" id="comments" onClick="myhtml.checkbox(this.id)" style="margin-bottom:8px">Комментарии включены</div> <div class="mgclr clear"></div> после ставим <div class="texta"> </div> <div class="html_checkbox" id="shop" onClick="myhtml.checkbox(this.id)" style="margin-bottom:8px">Товары</div> <div class="mgclr clear"></div> тамже ищем <input type="hidden" id="intog" value="{val_intog}" /> <div class="mgclr"></div> <div class="texta">{translate=groups_28}</div> <div class="sett_privacy" onClick="groups.privacyOpen('forum')" id="forum_lnk_wall1" style="margin-top: 3px;">{val_forums_text}</div> <div class="sett_openmenu no_display" id="privacyMenu_forum" style="margin-top: 3px;margin-left: 255px;width: 272px;"> <div id="selected_p_wall_lnk_wall1" class="sett_selected" onClick="groups.privacyClose('forum')">{val_forums_text}</div> <div class="sett_hover" onClick="groups.setPrivacy('forum', 'Открытые', '2', 'forum_lnk_wall1')">{translate=groups_29}</div> <div class="sett_hover" onClick="groups.setPrivacy('forum', 'Ограниченные', '3', 'forum_lnk_wall1')">{translate=groups_30}</div> </div> <input type="hidden" id="forum" value="{val_forum}" /> после ставим <div class="mgclr"></div> <div class="texta">Товары:</div> <div class="sett_privacy" onClick="groups.privacyOpen('shop')" id="shop_lnk_wall1" style="margin-top: 3px;">{val_shop_text}</div> <div class="sett_openmenu no_display" id="privacyMenu_shop" style="margin-top: 3px;margin-left: 255px;width: 272px;"> <div id="selected_p_wall_lnk_wall1" class="sett_selected" onClick="groups.privacyClose('shop')">{val_shop_text}</div> <div class="sett_hover" onClick="groups.setPrivacy('shop', 'Открытые', '2', 'shop_lnk_wall1')">Открытые (Видят все пользователи)</div> <div class="sett_hover" onClick="groups.setPrivacy('shop', 'Ограниченные', '3', 'shop_lnk_wall1')">Ограниченные (Видят только подписчики)</div> </div> <input type="hidden" id="shop" value="{val_shop}" /> 5 заходим в templates\Default\js открыть там файл profile.js и вставляем туда Спойлер //Тавары var public_shop = { New: function(i){ if($('#title_n').val() != 0){ if($('#text').val() != 0 || $('#vaLattach_files').val() != 0){ butloading('forum_sending', 70, 'disabled'); $.post('/index.php?go=groups_shop&act=new_send', {public_id: i, cat: $('#cat_n').val(), url: $('#url_n').val(), cena: $('#cena_n').val(), title: $('#title_n').val(), text: $('#text').val(), attach_files: $('#vaLattach_files').val()}, function(d){ Page.Go('/public_shop'+i+'?act=view&id='+d); }); } else setErrorInputMsg('text'); } else setErrorInputMsg('title_n'); }, Page: function(p){ if($('#load_forum_page_lnk').text() == lang_199){ textLoad('load_forum_page_lnk'); $.post('/index.php?go=groups_shop&public_id='+p, {a: '1', page: page}, function(d){ page++; $('#ForumPage').append(d); $('#load_forum_page_lnk').text(lang_199); if(!d){ $('#'+$('.forum_bg2:last').attr('id')).css('margin-bottom', '-15px'); $('#forum_page_lnk').hide(); $('#load_forum_page_lnk').text(''); } }); } }, SendMsg: function(i){ if($('#fast_text_1').val() != 0){ butloading('msg_send', 56, 'disabled'); $.post('/index.php?go=groups_shop&act=add_msg', {fid: i, msg: $('#fast_text_1').val(), answer_id: $('#answer_comm_id1').val()}, function(d){ updateNum('#msgNumJS', 1); langNumric('langMsg', $('#msgNumJS').text(), lang_200, lang_201, lang_202, lang_200, lang_200); $('#msg').append(d); $('#fast_text_1').val('').focus(); butloading('msg_send', 56, 'enabled', lang_box_send); $('#answer_comm_for_1').html(''); $('#answer_comm_id1').val(''); }); } else setErrorInputMsg('fast_text_1'); }, MsgPage: function(f){ if($('#load_forum_msg_lnk').text() == lang_203){ textLoad('load_forum_msg_lnk'); $.post('/index.php?go=groups_shop&act=prev_msg', {fid: f, first_id: $('.forum_msg_border2:first').attr('id'), page: page}, function(d){ page++; $('#msgPrev').html(d+$('#msgPrev').html()); $('#load_forum_msg_lnk').text(lang_203); if(!d){ $('#load_forum_msg_lnk').text(lang_204).css('background', '#fff'); $('#forum_msg_lnk').attr('onClick', 'public_shop.HidePage('+f+')'); } }); } }, HidePage: function(f){ $('#forum_msg_lnk').attr('onClick', 'public_shop.MsgPage('+f+')'); $('#load_forum_msg_lnk').text(lang_203).css('background', 'rgb(233, 237, 241)'); $('#msgPrev').html(''); page = 1; }, EditText: function(){ at = $('#attach').html(); $('#teckText, #editLnk').hide(); $('#editTextTab').show(); $('#editText').focus(); }, CloseEdit: function(){ $('#teckText, #editLnk, #editClose').show(); $('#editTextTab').hide(); }, SaveEdit: function(i){ $('#editClose').hide(); butloading('saveedit', 55, 'disabled'); $.post('/index.php?go=groups_shop&act=saveedit', {text: $('#editText').val(), fid: i}, function(d){ if(!at) at = ''; $('#teckText').html(d+'<span id="attach">'+at+'</span>'); Forum.CloseEdit(); butloading('saveedit', 55, 'enabled', lang_box_save); }); }, EditTitle: function(){ settings.privacyClose('msg'); $('#titleTeck').hide(); $('#editTitle').show(); $('#title').focus(); }, CloseEditTitle: function(){ $('#titleTeck').show(); $('#editTitle').hide(); }, SaveEditTitle: function(f){ if($('#title').val() != 0){ Forum.CloseEditTitle(); $('#editTitleSaved').text($('#title').val()); $.post('/index.php?go=groups_shop&act=savetitle', {fid: f, title: $('#title').val()}); } else setErrorInputMsg('title'); }, Fix: function(f){ settings.privacyClose('msg'); if($('#fix_text').text() == lang_205){ $('#fix_text').text(lang_206); $('.forum_infos_div').html(lang_207).fadeIn('fast'); } else { $('#fix_text').text(lang_205); $('.forum_infos_div').html(lang_208).fadeIn('fast'); } $.post('/index.php?go=groups_shop&act=fix', {fid: f}); }, Status: function(f){ settings.privacyClose('msg'); if($('#status_text').text() == lang_209){ $('#status_text').text(lang_210); $('.forum_infos_div').html(lang_211).fadeIn('fast'); $('.forum_addmsgbg').hide(); } else { $('#status_text').text(lang_209); $('.forum_infos_div').html(lang_212).fadeIn('fast'); $('.forum_addmsgbg').show(); } $.post('/index.php?go=groups_shop&act=status', {fid: f}); }, DelBox: function(f, p){ settings.privacyClose('msg'); Box.Show('del_forthe', 350, lang_title_del_photo, '<div style="padding:15px;" id="del_status_text_forum">'+lang_213+'</div>', lang_box_canсel, lang_box_yes, 'public_shop.StartDelete('+f+', '+p+')'); }, StartDelete: function(f, p){ $('#box_loading').show(); ge('box_butt_create').disabled = true; $('#del_status_text_forum').text(lang_214); $.post('/index.php?go=groups_shop&act=del', {fid: f}, function(d){ Page.Go('/public_shop'+p); }); }, DelMsg: function(i){ $('#'+i).html('<span class="color777">'+lang_215+'</span>'); updateNum('#msgNumJS'); langNumric('langMsg', $('#msgNumJS').text(), lang_200, lang_201, lang_202, lang_200, lang_200); $.post('/index.php?go=groups_shop&act=delmsg', {mid: i}); }, CreateVote: function(f){ if($('#vote_title').val() !=0){ if($('#vote_answer_1').val() != 0){ butloading('savevote', 75, 'disabled', ''); $.post('/index.php?go=groups_shop&act=createvote', {fid: f, vote_title: $('#vote_title').val(), vote_answer_1: $('#vote_answer_1').val(), vote_answer_2: $('#vote_answer_2').val(), vote_answer_3: $('#vote_answer_3').val(), vote_answer_4: $('#vote_answer_4').val(), vote_answer_5: $('#vote_answer_5').val(), vote_answer_6: $('#vote_answer_6').val(), vote_answer_7: $('#vote_answer_7').val(), vote_answer_8: $('#vote_answer_8').val(), vote_answer_9: $('#vote_answer_9').val(), vote_answer_10: $('#vote_answer_10').val()}, function(d){ Page.Go(location.href); }); } else setErrorInputMsg('vote_answer_1'); } else setErrorInputMsg('vote_title'); }, RemoveForAttach: function(){ $('#attach_block_vote').hide(); $('#vote_title, #vote_answer_1, #vote_answer_2').val(''); $('#addNewAnswer').html('<a class="cursor_pointer" onClick="Votes.AddInp()">'+lang_198+'</a>'); $('#addDelAnswer').html(lang_197); $('#attatch_vote_title').text(''); $('#answerNum').val('2'); for(i = 2; i <= 10; i++) $('#div_inp_answr_'+i).remove(); }, VoteDelBox: function(f){ Box.Show('del_forthe', 350, lang_title_del_photo, '<div style="padding:15px;" id="del_status_text_forum">'+lang_216+'</div>', lang_box_canсel, lang_box_yes, 'public_shop.StartVoteDelete('+f+')'); }, StartVoteDelete: function(f){ Box.Close(); $('#voteblockk').hide(); $('#votelnk').html('<div class="sett_hover" onClick="settings.privacyClose(\'msg\'); $(\'#attach_block_vote\').slideDown(100); $(\'#vote_title\').focus()">'+lang_217+'</div>'); $.post('/index.php?go=groups_shop&act=delvote', {fid: f}); } } тамже находим var val_forum = $('#forum').val(); ниже ставим var val_shop = $('#shop').val(); тамже ищем $.post('/?go=groups&act=saveinfo', {id: id, title: title, descr: descr, comments: comments, country: country, city: city, catid: catid, subcatid: subcatid, adres_page: adres_page, val_wall1: val_wall1, val_forum: val_forum, после ставим val_shop: val_shop, вэтайже строчке ищем discussion: $('#discussion').val(), после нее ставим shop: $('#shop').val(), тамже ищем $('#privacyMenu_wall1','#privacyMenu_intog','#privacyMenu_forum',').fadeOut(120); после вставить #privacyMenu_shop' тамже ищем if(oi != 'privacyMenu_wall1' && oi != 'privacyMenu_intog' && oi != 'privacyMenu_forum' && oi != 'wall_lnk_wall1' && oi != 'intog_lnk_wall1'&& oi != 'forum_lnk_wall1') внее вставить && oi != 'shop_lnk_wall1' && oi != 'privacyMenu_shop' 6 заходим в system\modules открыть там файл groups.php ищем там //################### Сохранение отредактированых данных группы ###################// case "saveinfo": NoAjaxQuery(); $id = intval($_POST['id']); $comments = intval($_POST['comments']); после ставим $shop = intval($_POST['shop']); тамже находим $val_forum = intval($_POST['val_forum']); после ставим $val_shop = intval($_POST['val_shop']); тамже находим if($val_forum <= 0 OR $val_forum > 3) $val_forum = 1; после ставим if($val_shop <= 0 OR $val_shop > 3) $val_shop = 1; тамже находим $user_privacy = "val_wall1|{$val_wall1}||val_intog|{$val_intog}||val_forum|{$val_forum}||"; после ставим val_shop|{$val_shop}|| тамже находим $db->query("UPDATE `".PREFIX."_communities` SET title = '{$title}', descr = '{$descr}', country = '{$country}', city = '{$city}', category = '{$catid}', subcategory = '{$subcatid}', country_city_name = '{$country_city_name}', comments = '{$comments}', после ставим shop = '{$shop}', тамже находим //Проверка на админа $row = $db->super_query("SELECT id, title, album, и ставим в запрос shop, тамже находим //Обсуждения if($row['discussion']) $tpl->set('{settings-discussion}', 'discussion'); else $tpl->set('{settings-discussion}', 'none'); после ставим //Товары if($row['shop']) $tpl->set('{settings-shop}', 'shop'); else $tpl->set('{settings-shop}', 'none'); тамже ищем // Приватность группы $rowd = xfieldsdataload($row['privacy']); после ставим $tpl->set('{val_shop}', $rowd['val_shop']); $tpl->set('{val_shop_text}', strtr($rowd['val_shop'], array('2' => 'Открытые (Видят все пользователи', '3' => 'Ограничены (Видят только подписчики)'))); 7 заходим в system\modules открыть там файл public.php ищем $row = $db->super_query("SELECT id, title, descr, group_real, album, adsens, public_rating, traf, ulist, flist, photo, date, admin, feedback, comments, real_admin, rec_num, del, data_del, ban, ban_list, adres, audio_num, forum_num, после ставим shop_num, shop, тамже ищем // Приватность if($user_privacy_loting['val_wall1'] == 1){ $tpl->set_block("'\\[wall_privacy\\](.*?)\\[/wall_privacy\\]'si",""); } else { $tpl->set('[wall_privacy]', ''); $tpl->set('[/wall_privacy]', ''); } if($user_privacy_loting['val_wall1'] == 3 and $public_admin == false) { $tpl->set_block("'\\[wall_privacy_admin\\](.*?)\\[/wall_privacy_admin\\]'si",""); } else { $tpl->set('[wall_privacy_admin]', ''); $tpl->set('[/wall_privacy_admin]', ''); после ставим if($user_privacy_loting['val_shop'] == 3){ $tpl->set_block("'\\[shop_privacy\\](.*?)\\[/shop_privacy\\]'si",""); } else { $tpl->set('[shop_privacy]', ''); $tpl->set('[/shop_privacy]', ''); } тамже ищем //Обсуждения if($row['discussion']){ $tpl->set('{settings-discussion}', 'discussion'); $tpl->set('[discussion]', ''); $tpl->set('[/discussion]', ''); } else { $tpl->set('{settings-discussion}', 'none'); $tpl->set_block("'\\[discussion\\](.*?)\\[/discussion\\]'si",""); } после ставим //тавары if($row['shop']){ $tpl->set('{settings-shop}', 'shop'); $tpl->set('[shop]', ''); $tpl->set('[/shop]', ''); } else { $tpl->set('{settings-shop}', 'none'); $tpl->set_block("'\\[shop\\](.*?)\\[/shop\\]'si",""); } тамже ищем $row_last_user = $db->super_query("SELECT user_search_pref FROM `".PREFIX."_users` WHERE user_id = '{$row_forum['lastuser_id']}'"); $last_userX = explode(' ', $row_last_user['user_search_pref']); $row_last_user['user_search_pref'] = gramatikName($last_userX[0]).' '.gramatikName($last_userX[1]); $row_forum['title'] = stripslashes($row_forum['title']); $msg_num = $row_forum['msg_num'].' '.gram_record($row_forum['msg_num'], 'msg'); $last_date = megaDateNoTpl($row_forum['lastdate']); $thems .= "<div class=\"forum_bg\"><div class=\"forum_title cursor_pointer\" onClick=\"Page.Go('/forum{$row['id']}?act=view&id={$row_forum['fid']}'); return false\">{$row_forum['title']}</div><div class=\"forum_bottom\">{$msg_num}. {$lang['lang_1190']} <a href=\"/u{$row_forum['lastuser_id']}\" onClick=\"Page.Go(this.href); return false\">{$row_last_user['user_search_pref']}</a>, {$last_date}</div></div>"; } $tpl->set('{thems}', $thems); } else $tpl->set('{thems}', '<div class="wall_none">'.$lang['lang_1191'].'</div>'); выше ставим if(!$row['shop_num']) $row['shop_num'] = ''; $tpl->set('{shop-num}', $row['shop_num']); if($row['shop_num'] AND $row['shop']){ $sql_shop = $db->super_query("SELECT fid, title, lastuser_id, url, cena, lastdate, msg_num FROM `".PREFIX."_communities_shop` WHERE public_id = '{$row['id']}' ORDER by `fixed` DESC, `lastdate` DESC, `fdate` DESC LIMIT 0, 5", 1, "groups_shop/shop{$row['id']}"); foreach($sql_shop as $row_shop){ тамже ищем $row_last_user = $db->super_query("SELECT user_search_pref FROM `".PREFIX."_users` WHERE user_id = '{$row_shop['lastuser_id']}'"); $last_userX = explode(' ', $row_last_user['user_search_pref']); $row_last_user['user_search_pref'] = gramatikName($last_userX[0]).' '.gramatikName($last_userX[1]); ниже ставим $row_shop['title'] = stripslashes($row_shop['title']); $msg_num = $row_shop['msg_num'].' '.gram_record($row_shop['msg_num'], 'msg'); $last_date = megaDateNoTpl($row_shop['lastdate']); $thems .= "<div class=\"page_market_item cursor_pointer\"> <a onClick=\"Page.Go('/public_shop{$row['id']}?act=view&id={$row_shop['fid']}'); return false\"> <img class=\"page_market_item_img cursor_pointer\" src=\"{$row_shop['url']}\"> </a> <a class=\"page_market_item_link cursor_pointer\" onClick=\"Page.Go('/public_shop{$row['id']}?act=view&id={$row_shop['fid']}'); return false\"> <div class=\"page_market_item_title cursor_pointer\">{$row_shop['title']}</div> </a> <div class=\"page_market_price cursor_pointer\">{$row_shop['cena']} грн.</div> </div>"; } $tpl->set('{shops}', $thems); } else $tpl->set('{shops}', '<div class="wall_none">В сообществе ещё нет товаров.</div>'); заходим в базу даных во вкалдку vii_communities саздаем там 2 поле shop_num mediumint 8 shop tinyint 1 делаем sql запрос Спойлер CREATE TABLE `vii_communities_shop` ( `fid` int(11) UNSIGNED NOT NULL, `public_id` int(11) UNSIGNED NOT NULL, `fuser_id` int(11) UNSIGNED NOT NULL, `title` varchar(65) NOT NULL, `cena` varchar(65) NOT NULL, `text` text NOT NULL, `url` text NOT NULL, `cat` text NOT NULL, `attach` text NOT NULL, `fdate` varchar(10) NOT NULL, `msg_num` mediumint(8) UNSIGNED NOT NULL, `lastdate` varchar(10) NOT NULL, `lastuser_id` int(11) UNSIGNED NOT NULL, `fixed` tinyint(2) UNSIGNED NOT NULL, `status` tinyint(2) UNSIGNED NOT NULL, `vote` mediumint(8) UNSIGNED NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `vii_communities_shop_msg` ( `mid` int(11) UNSIGNED NOT NULL, `fid` int(11) UNSIGNED NOT NULL, `muser_id` int(11) UNSIGNED NOT NULL, `msg` text NOT NULL, `attach` text NOT NULL, `mdate` varchar(10) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; эта в ланги либа переведеш 'shop_1' => 'Товары', 'shop_2' => 'Добавить товар', 'shop_3' => 'Товары сообщества', 'shop_4' => 'Стоимость (.грн)', 'shop_5' => 'Обложка товара', 'shop_6' => 'Создать товар', 'shop_7' => 'Закрепить товар', 'shop_8' => 'Закрыть товар', 'shop_9' => 'Открыть товар', 'shop_10' => 'Удалить товар', 'shop_11' => 'Товар', 'shop_12' => 'Категория товара', 'shop_13' => 'Написать продавцу', 'shop_14' => 'Просмотр товара', 'shop_15' => 'Цена', скринов нету не помню из какой сборки вырезал [Модуль] товары для групп как вк.zip Изменено 18 февраля, 2022 пользователем kphp Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения