• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь DLE music service 2 <title>

diabl

Боцман
Регистрация
24 Мар 2009
Сообщения
438
Реакции
157
Проблема заключается в модуле DLE music service 2 в <title>

Нужно сделать так что бы к каждому треку и категории был свой <title>

Значит в engine/engine.php

Подставил $mcat [$cid]['name']

elseif ($do == 'music') $nam_e=$mcat [$cid]['name'] ;

Получилось что показывает в <title>Названия категории</title>


Код категории нашёл в этом куске

// Просмотр выбранной категории
case 'category' :

$cid = intval( $_REQUEST['cid'] );
if ( $mcat[$cid] != FALSE ) $mtitle .= ' :: ' . $mcat[$cid]['name'];




А вот названия трека не получается!


PHP:
<?php
/*
=====================================================
 DleMusic Service v2.0 by Flexer
-----------------------------------------------------
 E-Mail: flx0@ya.ru - ICQ: 209-75-40
-----------------------------------------------------
 Copyright (c) 2009, FleXer [ flx0@ya.ru ]
=====================================================
 Данный код защищен авторскими правами
=====================================================
*/
if( ! defined( 'DATALIFEENGINE' ) ) {
	die( "Hacking attempt!" );
}
require_once ENGINE_DIR . '/data/mservice.php';
require_once ENGINE_DIR . '/modules/mservice/functions.php';
require_once ENGINE_DIR . '/classes/parse.class.php';
$parse = new ParseFilter( );
$parse->safe_mode = true;
$mtitle = 'Музыкальный архив';
$THEME = $config['http_home_url'] . 'templates/' . $config['skin'];

// Проверка, включен на модуль?
if ( $mscfg['online'] != 1 ) $stop[] = 'В данный момент музыкальный архив выключен';

// Система кеширования категорий
$mcat = get_vars ( "mservice_category" );
if (! is_array ( $mcat )) {
	$mcat = array ();
	$db->query ( "SELECT * FROM " . PREFIX . "_mservice_category ORDER BY posi ASC, cid ASC" );
	while ( $row = $db->get_row () ) {
		$mcat[$row['cid']] = array ();
		foreach ( $row as $key => $value ) {
			$mcat[$row['cid']][$key] = stripslashes ( $value );
		}
	}
	set_vars ( "mservice_category", $mcat );
	$db->free( );
}

switch ( $_REQUEST['act'] ) {

// Форма добавление нового трека
case 'addfile' :

$mtitle .= ' :: Добавление трека';

if ( $user_group[$member_id['user_group']]['mservice_addfile'] != 1 ) $stop[] = 'У Вас нет прав для публикации треков';

$category = GetAllCategories( $mcat );
$allow_comments_ajax = true;
$config['allow_comments_wysiwyg'] = "yes";
include_once ENGINE_DIR . '/editor/comments.php';

if ( $user_group[$member_id['user_group']]['mservice_captcha'] == 1 ) {
  $captcha = <<<HTML
<script language='JavaScript' type="text/javascript">
<!--
function reload () {
var rndval = new Date().getTime();
document.getElementById('dle-captcha').innerHTML = '<a onclick="reload(); return false;" href="#" title="Нажмите, если не видно изображения"><img src="{$config[http_home_url]}engine/modules/antibot.php?rndval=' + rndval + '" border="0" alt="{$lang[sec_image]}" /></a>';}
//-->
</script>
<tr><td style="padding-top:10px;">Защитный код:</td><td style="padding-top:10px;"><span id="dle-captcha"><a onclick="reload(); return false;" href="#" title="Нажмите, если не видно изображения"><img src="{$config[http_home_url]}engine/modules/antibot.php" alt="{$lang[sec_image]}" border="0" /></a></span></td></tr>
<tr><td style="padding-top:10px;">Введите код:</td><td style="padding-top:10px;"><input name="sec_code" class="f_input" style="width:119px;" maxlength="20" /> *</td></tr>
HTML;
} else $captcha = '';

$file_types = @str_replace( ",", ", ", $mscfg['filetypes'] );
$file_size = formatsize( $mscfg['maxfilesize'] * 1024 );

if ( $config['allow_alt_url'] == 'yes' ) $rlnk = $config['http_home_url'] . 'music/rules.html';
  else $rlnk = $config['http_home_url'] . 'index.php?do=music&act=rules';

$mcontent = <<<HTML
<script type="text/javascript">
function viewRTracks( ) {
	var ajax = new dle_ajax();
	ajax.onShow ('');
	var varsString = '';
	ajax.setVar( "act", 4 );
  ajax.setVar( "title", document.getElementById('track_name').value );
	ajax.requestFile = dle_root + "engine/modules/mservice/ajax.php";
	ajax.method = 'POST';
	ajax.element = 'related-tracks-layer';
	ajax.sendAJAX(varsString);
  ajax.onCompletion ( document.getElementById('related-tracks-layer').style.display = 'block' );
}
</script>

<form action="" method="post" enctype="multipart/form-data">
<input type="hidden" name="act" value="doaddfile" />
<table class="stext">

<tr><td colspan="2"><div style="border: 1px solid rgb(158, 158, 158); padding: 5px; background: rgb(255, 255, 204) none;margin-top:10px;margin-right:10px;display:none;" id="related-tracks-layer"></div></td></tr>
<tr><td style="padding-top:10px;">Исполнитель</td><td style="padding-top:10px;"><input type="text" name="artist" class="f_input" maxlength="80" /> <font color="red">*</font></td></tr>

<tr><td style="padding-right:60px;">Название трека</td><td><input type="text" id="track_name" maxlength="80" name="name" class="f_input" /> <font color="red">*</font>
 <input style="height:18px; font-family:tahoma; font-size:11px; border:1px solid #DFDFDF; background: #FFFFFF; padding-bottom:4px;" title="Найти и отобразить похожие треки" onclick="viewRTracks( ); return false;" type="button" value="Найти похожие треки" />
</td></tr>

<tr><td style="padding-top:10px;">Категория</td><td style="padding-top:10px;"><select style="width:303px;" name="category"><option value="0">-- выберите из списка --</option>{$category}</select> <font color="red">*</font></td></tr>

<tr><td style="padding-top:10px;">Загрузка файла</td><td style="padding-top:10px;"><input type="file" name="file" size="44" /> <font color="red">*</font><br>Разрешённые типы: {$file_types}; размер не более: {$file_size}</td></tr>
{$captcha}
</table>
<br /><input type="checkbox" name="rules" onClick="AllowSubmit();" value="1" /> <span class="stext">Я согласен с <a href="{$rlnk}">правилами сервиса</a> *</span>
<br /><br /><input type="submit" value="  Опубликовать аудио трек  " class="bbcodes" />
</form>
HTML;

break;

// Сохранение аудио трека и добавление его в базу данных
case 'doaddfile' :

$name = $parse->process( $parse->remove( $_POST['name'] ) );
$artist = $parse->process( $parse->remove( $_POST['artist'] ) );
$category = intval( $_POST['category'] );
$rules = intval( $_POST['rules'] );

$parse->wysiwyg = true;
$descr = $parse->BB_Parse( $parse->process( $_POST['comments'] ) );

if ( $user_group[$member_id['user_group']]['mservice_addfile'] != 1 ) $stop[] = 'У Вас нет прав для публикации аудио треков';
if ( $name == '' ) $stop[] = 'Вы не ввели название аудио трека';
if ( $artist == '' ) $stop[] = 'Вы не ввели исполнителя аудио трека';
if ( $category == 0 OR $category == '' ) $stop[] = 'Вы не выбрали категорию';
if ( $_FILES['file']['size'] == FALSE ) $stop[] = 'Вы не выбрали файл трека для загрузки на сервер';
if ( $user_group[$member_id['user_group']]['mservice_captcha'] == 1 ) {
  if ( $_POST['sec_code'] != $_SESSION['sec_code_session'] OR ! $_SESSION['sec_code_session'] ) $stop[] = 'Вы ввели неверный защитный код с изображения';
}
if ( $rules != 1 ) $stop[] = 'Продолжение невозможно т.к. Вы не согласны с правилами нашего сервиса';

$allowed_files = explode( ',', strtolower( $mscfg['filetypes'] ) );
$tfile = end( explode( ".", totranslit( $_FILES['file']['name'] ) ) );
$file_allow = FALSE;
for ( $f = 0; $f < count( $allowed_files ); $f ++ ) {
  if ( $tfile == $allowed_files[$f] ) $file_allow = TRUE;
}
if ( $file_allow == FALSE ) $stop[] = 'Вы не можете загружать файлы такого типа';
if ( $_FILES['file']['size'] > $mscfg['maxfilesize'] * 1024 ) $stop[] = 'Выбранный Вами файл слишком большой';

if ( count( $stop ) == 0 ) {

$time = time( );
$filename = md5( $time + rand( 0, 1000 ) ) . '.' . $tfile;
@move_uploaded_file( $_FILES['file']['tmp_name'], ROOT_DIR . '/uploads/mservice/' . $filename );

if ( $user_group[$member_id['user_group']]['mservice_newtrack_approve'] == 1 )
$db->query( "INSERT INTO " . PREFIX . "_mservice ( time, title, rating, approve, vote_num, category, artist, download, description, filename, uploader, view_count ) VALUES ( '$time', '$name', '0', '1', '0', '$category', '$artist', '0', '$descr', '$filename', '$member_id[user_id]', '0' )" );
  else $db->query( "INSERT INTO " . PREFIX . "_mservice ( time, title, rating, approve, vote_num, category, artist, download, description, filename, uploader, view_count ) VALUES ( '$time', '$name', '0', '0', '0', '$category', '$artist', '0', '$descr', '$filename', '$member_id[user_id]', '0' )" );

$db->query( "UPDATE " . PREFIX . "_mservice_category SET count = count + 1 WHERE cid = '$category'" );

// Удаляем кеш для категорий
@unlink( ENGINE_DIR . '/cache/system/mservice_category.php' );
clear_cache( );

$row = $db->super_query( "SELECT mid FROM " . PREFIX . "_mservice WHERE filename = '$filename'" );

if ( $config['allow_alt_url'] == 'yes' ) $vlnk = $config['http_home_url'] . 'music/' . $row['mid'] . '-' . totranslit( $artist ) . '-' . totranslit( $name ) . '.html';
  else $vlnk = $config['http_home_url'] . 'index.php?do=music&act=view&mid=' . $row['mid'];

if ( $user_group[$member_id['user_group']]['mservice_newtrack_approve'] == 1 ) {
$mcontent = <<<HTML
<div class="stext">Выбранный Вами аудио трек ( {$artist} - {$name} ) - был успешно сохранён на сервере и добавлен в базу данных!<br /><a href="{$vlnk}">Перейти к странице с аудио треком...</a></div>
HTML;
} else {
$mcontent = <<<HTML
<div class="stext">Выбранный Вами аудио трек ( {$artist} - {$name} ) - был успешно сохранён на сервере и добавлен в базу данных! Обратите внимание, Ваш трек будет доступен в музыкальном архиве только после того как пройдёт модерацию.</div>
HTML;
}

}

break;

// Правила сервиса
case 'rules' :

$mtitle .= ' :: Правила сервиса';
$row = $db->super_query( "SELECT template FROM " . PREFIX . "_static WHERE name = 'dlemusic-service-rules'" );
$mcontent = $row['template'] . '<br />';

break;

// Главная страница модуля
default :
if ( count( $stop ) == 0 ) {


$c = 0; $i = 0;
foreach ( $mcat as $cat ) {

$c ++; $i ++;
if ( $config['allow_alt_url'] == 'yes' ) $plnk = $config['http_home_url'] . 'music/category-' . $cat['cid'] . '.html';
  else $plnk = $config['http_home_url'] . 'index.php?do=music&act=category&cid=' . $cat['cid'];

$tpl->load_template( 'mservice/category.tpl' );
$tpl->set( '{THEME}', $THEME );
$tpl->set( '{name}', '<a href="' . $plnk . '" title="' . $cat['name'] . '">' . $cat['name'] . '</a>' );
$tpl->set( '{count}', $cat['count'] );
$tpl->set( '{preview}', '<a href="' . $plnk . '" title="' . $cat['name'] . '"><img src="' . $config['http_home_url'] . 'uploads/mservice/category/' . $cat['preview'] . '" alt="Предпросмотр" border="0" /></a>' );
$tpl->compile( 'mservice_block' );
$mcontent .= $tpl->result['mservice_block'];
$tpl->result['mservice_block'] = FALSE;




}



}
break;

// Просмотр выбранной категории
case 'category' :

$cid = intval( $_REQUEST['cid'] );
if ( $mcat[$cid] != FALSE ) $mtitle .= ' :: ' . $mcat[$cid]['name'];
if ( $config['allow_alt_url'] == 'yes' ) {
  $_1 = $config['http_home_url'] . 'music/addfile.html';
} else {
  $_1 = $config['http_home_url'] . 'index.php?do=music&act=addfile';
}

if ( $_REQUEST['page'] == FALSE ) $page = 1;
  else $page = intval( $_REQUEST['page'] );
$limit = ( $page * $mscfg['track_page_lim'] ) - $mscfg['track_page_lim'];

$db->query( "SELECT mid, time, title, artist, download, view_count, rating, vote_num FROM " . PREFIX . "_mservice WHERE category = '$cid' AND approve = '1' ORDER BY time " . $mscfg['track_time_sort'] . " LIMIT " . $limit . "," . $mscfg['track_page_lim'] );
if ( $db->num_rows() == 0 ) $stop[] = 'К сожелению в данной категории ещё нет аудио треков. <a href="' . $_1 . '">Но Вы можете это исправить</a>.';

if ( count( $stop ) == 0 ) {

if ( $mscfg['allow_letter_navig'] == 1 ) $mcontent = EchoLetterNavigator( );

$mcontent .= <<<HTML
<script type="text/javascript">
function RateTrack( rate, mid ) {
	var ajax = new dle_ajax();
	ajax.onShow ('');
	var varsString = "go_rate=" + rate;
	ajax.setVar( "mid", mid );
	ajax.setVar( "skin", dle_skin );
	ajax.requestFile = dle_root + "engine/modules/mservice/ajax-rating.php";
	ajax.method = 'GET';
	ajax.element = 'ratig-layer-' + mid;
	ajax.sendAJAX(varsString);
}
//-->
</script>

HTML;
$c = 0; $i = 0;

while ( $row = $db->get_row( ) ) {

$c ++; $i ++;
if( strlen( $row['title'] ) > $mscfg['track_title_substr'] ) $title = substr( $row['title'], 0, $mscfg['track_title_substr'] ) . "...";
		else $title = $row['title'];
if( strlen( $row['artist'] ) > $mscfg['track_artist_substr'] ) $artist = substr( $row['artist'], 0, $mscfg['track_artist_substr'] ) . "...";
		else $artist = $row['artist'];

$tpl->load_template( 'mservice/tracklist.tpl' );
$tpl->set( '{THEME}', $THEME );
$tpl->set( '{views}', $row['view_count'] );
$tpl->set( '{downcount}', $row['download'] );
$tpl->set( '{date}', langdate( 'j F Y - H:i', $row['time'] ) );
$tpl->set( '{rating}', ShowTrackRating( $row['mid'], $row['rating'], $row['vote_num'], $mscfg['allow_addrank_story'] ) );
$tpl->set( '{artist}', $artist );
$tpl->set( '{title}', $title );

if ( $config['allow_alt_url'] == 'yes' ) {
  $tpl->set( '{view_link}', $config['http_home_url'] . 'music/' . $row['mid'] . '-' . totranslit( $row['artist'] ) . '-' . totranslit( $row['title'] ) . '.html' );
} else {
  $tpl->set( '{view_link}', $config['http_home_url'] . 'index.php?do=music&act=view&mid=' . $row['mid'] );
}

$tpl->compile( 'tracklist' );
$mcontent .= $tpl->result['tracklist'];

if ( $db->num_rows( ) != $c ) $style = "";
  else $style = FALSE;


$tpl->result['tracklist'] = FALSE;

}
$mcontent .= '';


// Постраничная навигация

$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_mservice WHERE category = '$cid' AND approve = '1'" );
$count = $row['count'];
$count_d = $count / $mscfg['track_page_lim'];

for ( $t = 0; $count_d > $t; $t ++ ) {
$t2 = $t + 1;
if ( $config['allow_alt_url'] == 'yes' ) $plink = $config['http_home_url'] . 'music/category-' . $cid . '-page-' . $t2 . '.html';
  else $plink = $config['http_home_url'] . 'index.php?do=music&act=category&cid=' . $cid . '&page=' . $t2;
if ( $t2 == $page ) $pages .= "<span>{$t2}</span> ";
else $pages .= "<a href='{$plink}'>{$t2}</a> ";
$array[$t2] = 1;
}

if ( $config['allow_alt_url'] == 'yes' ) {
  $link = $config['http_home_url'] . 'music/category-' . $cid . '-page-';
  $seo_mode = '.html';
} else {
  $link = $config['http_home_url'] . 'index.php?do=music&act=category&cid=' . $cid . '&page=';
  $seo_mode = '';
}

$npage = $page - 1;
if ( isset($array[$npage]) ) $prev_page = ' <a href="'. $link . $npage . $seo_mode . '">Назад</a> ';
  else $prev_page = '<span>Назад</span> ';
$npage = $page + 1;
if ( isset($array[$npage]) ) $next_page = ' <a href="'. $link . $npage . $seo_mode . '">Далее</a>';
  else $next_page = ' <span>Далее</span>';

if ( $count > $mscfg['track_page_lim'] ) {
$mcontent .= <<<HTML
<br /><div class="navigation" align="center" style="margin-bottom:10px; margin-top:10px;">{$prev_page}{$pages}{$next_page}</div>
HTML;
}

// Конец

}

break;

// Просмотр "полной новости" :))
case 'view' :

$mid = intval( $_REQUEST['mid'] );
$row = $db->super_query( "SELECT * FROM " . PREFIX . "_mservice WHERE mid = '$mid' AND approve = '1'" );
if ( $row['mid'] == FALSE ) $stop[] = 'Запрашиваемый аудио трек не найден, возможно его не когда не существовало, либо он был удалён';

if ( count( $stop ) == 0 ) {

$mtitle .= ' :: ' . $mcat[$row['category']]['name'] . ' :: ' . $row['artist'] . ' - ' . $row['title'];
if ( $config['allow_alt_url'] == 'yes' ) {
  $play = $config['http_home_url'] . 'music/play-' . $mid . '.html';
} else {
  $play = $config['http_home_url'] . 'engine/modules/mservice/playning.php?id=' . $mid;
}
if ( $mscfg['mfp_type'] == 2 ) $play_hg = 130; else $play_hg = 100;
if ( $mscfg['mfp_type'] == 3 and $mscfg['playning_allow_visual'] == 1 ) $play_hg = 380;

$mcontent .= <<<HTML
<script type="text/javascript">
<!--
function GetFileHashes( ) {
var ajax = new dle_ajax();
ajax.onShow ( '' );
var varsString = "";
ajax.setVar( "act", '1' );
ajax.setVar( "mid", '{$mid}' );
ajax.requestFile = dle_root + "engine/modules/mservice/ajax.php";
ajax.method = 'POST';
ajax.element = 'mservice_ajax';
ajax.sendAJAX( varsString );
}
function ReadID3v2Tags( ) {
var ajax = new dle_ajax();
ajax.onShow ( '' );
var varsString = "";
ajax.setVar( "act", '2' );
ajax.setVar( "mid", '{$mid}' );
ajax.requestFile = dle_root + "engine/modules/mservice/ajax.php";
ajax.method = 'POST';
ajax.element = 'mservice_ajax';
ajax.sendAJAX( varsString );
}
function DownloadTrack( ) {
var ajax = new dle_ajax();
ajax.onShow ( '' );
var varsString = "";
ajax.setVar( "act", '3' );
ajax.setVar( "mid", '{$mid}' );
ajax.requestFile = dle_root + "engine/modules/mservice/ajax.php";
ajax.method = 'POST';
ajax.element = 'mservice_ajax';
ajax.sendAJAX( varsString );
}
function reload () {
var rndval = new Date().getTime();
document.getElementById('dle-captcha').innerHTML = '<a onclick="reload(); return false;" href="#" title="Нажмите, если не видно изображения"><img src="{$config[http_home_url]}engine/modules/antibot.php?rndval=' + rndval + '" border="0" alt="{$lang[sec_image]}" /></a>';
}
function RateTrack( rate, mid ) {
	var ajax = new dle_ajax();
	ajax.onShow ('');
	var varsString = "go_rate=" + rate;
	ajax.setVar( "mid", mid );
	ajax.setVar( "skin", dle_skin );
	ajax.requestFile = dle_root + "engine/modules/mservice/ajax-rating.php";
	ajax.method = 'GET';
	ajax.element = 'ratig-layer-' + mid;
	ajax.sendAJAX(varsString);
}
function playTrack( ) {
  window.open( "{$play}", "playning", "location=0,status=0,height=50,scrollbars=0,width=500,height={$play_hg}" );
}
//-->
</script>
HTML;

$db->query( "UPDATE " . PREFIX . "_mservice SET view_count = view_count + 1 WHERE mid = '$mid'" );

$tpl->load_template( 'mservice/viewtrack.tpl' );

$artist = $row['artist'];

$tpl->set( '{THEME}', $THEME );
$tpl->set( '{title}', $row['title'] );
$tpl->set( '{artist}', buildArtistBio( $artist ) );
$tpl->set( '{views}', $row['view_count'] );
$tpl->set( '{downcount}', $row['download'] );

$tpl->set( '{rating}', ShowTrackRating( $row['mid'], $row['rating'], $row['vote_num'], 1 ) );
$tpl->set( '{date}', langdate( 'j F Y - H:i', $row['time'] ) );

$uploader = $db->super_query( "SELECT name FROM " . PREFIX . "_users WHERE user_id = '$row[uploader]'" );
if ( $config['allow_alt_url'] == 'yes' ) {
  $_1 = $config['http_home_url'] . 'user/' . $uploader['name'];
  $cat_link = $config['http_home_url'] . 'music/category-' . $row['category'] . '.html';
} else {
  $_1 = $config['http_home_url'] . 'index.php?subaction=userinfo&user=' . $uploader['name'];
  $cat_link = $config['http_home_url'] . 'index.php?do=music&act=category&cid=' . $row['category'];
}

$tpl->set( '{category}', '<a href="' . $cat_link . '">' . $mcat[$row['category']]['name'] . '</a>' );


$tpl->set( '{uploader}', '<a href="' . $_1 . '">' . $uploader['name'] . '</a>  [ <a href="' . $config['http_home_url'] . 'index.php?do=pm&doaction=newpm&user=' . $row['uploader'] . '">сообщение</a> ]' );


$tpl->set( '{filesize}', formatsize( @filesize( ROOT_DIR . '/uploads/mservice/' . $row['filename'] ) ) );
$tpl->set( '{filetype}', strtoupper( end( explode( '.', $row['filename'] ) ) ) );
$tpl->set( '{player}', BuildAudioPlayer( $row['filename'], $row['artist'], $row['title'] ) );
$tpl->set( '{play}', '<a href="#" onClick="playTrack( ); return false;">Прослушать</a>' );

if ( $mscfg['allow_get_apic'] == 1 ) $tpl->set( '{album-logo}', '<img src="' . $config['http_home_url'] . 'engine/modules/mservice/getapic.php?f=' . $row['filename'] . '" border="0" class="album_logo" alt="Логотип альбома" />' );
  else $tpl->set( '{album-logo}', '<img src="' . $config['http_home_url'] . 'templates/' . $config['skin'] . '/mservice/images/audio_big.png" border="0" class="album_logo" alt="Логотип альбома" />' );

if ( $row['description'] != '' ) {
$tpl->set( '{comment}', $row['description'] );
$tpl->set_block( "'\\[comment\\](.*?)\\[/comment\\]'si", "\\1" );
} else $tpl->set_block( "'\\[comment\\](.*?)\\[/comment\\]'si", "" );

// Треки исполнителя
if ( $mscfg['allow_tracks_of'] == 1 ) {
$art = addslashes( $row['artist'] );
$titl = addslashes( $row['title'] );
  $db->query( "SELECT mid, title FROM " . PREFIX . "_mservice WHERE artist = '$art' AND title != '$titl' LIMIT 0," . $mscfg['limit_tracks_of'] );
  if ( $db->num_rows( ) == 0 ) $tpl->set( '{tracks-of}', '<span class="stext">Другие треки исполнителя не найдены...</span>' );
    else {
      while( $row = $db->get_row( ) ) {
        if ( $config['allow_alt_url'] == 'yes' ) $link_to_track = $config['http_home_url'] . 'music/' . $row['mid'] . '-' . totranslit( $artist ) . '-' . totranslit( $row['title'] ) . '.html';
          else $link_to_track = $config['http_home_url'] . 'index.php?do=music&act=view&mid=' . $row['mid'];
        $tracks_of .= '&raquo; <a href="' . $link_to_track . '" title="' . $artist . ' - ' . $row['title'] . '">' . $artist . ' - ' . $row['title'] . '</a><br />';
      }
      $tpl->set( '{tracks-of}', $tracks_of );
    }
}
// Конец

$tpl->compile( 'viewtrack' );
$mcontent .= $tpl->result['viewtrack'];
$tpl->result['viewtrack'] = FALSE;

}

break;

// 20-тка лучших треков
case 'best20' :

$mtitle .= ' :: 20-тка лучших треков';

if ( $mscfg['best20_allow'] == 1 ) {

$db->query( "SELECT mid, time, title, artist, download, view_count, rating, vote_num FROM " . PREFIX . "_mservice WHERE approve = '1' ORDER BY download DESC, rating DESC LIMIT 0,20" );
if ( $db->num_rows() == 0 ) $stop[] = 'К сожелению в данной категории ещё нет аудио треков. <a href="' . $_1 . '">Но Вы можете это исправить</a>.';

if ( count( $stop ) == 0 ) {

$mcontent .= <<<HTML
<div class="mservice_viewtrack"><span class="stext">На данный странице расположенны самые популярные 20 треков, находящиеся в нашем каталоге! Данные высчитываются по средствам сбора информации об скачиваниях и рейтинга треков.</span></div><br />
<script type="text/javascript">
function RateTrack( rate, mid ) {
	var ajax = new dle_ajax();
	ajax.onShow ('');
	var varsString = "go_rate=" + rate;
	ajax.setVar( "mid", mid );
	ajax.setVar( "skin", dle_skin );
	ajax.requestFile = dle_root + "engine/modules/mservice/ajax-rating.php";
	ajax.method = 'GET';
	ajax.element = 'ratig-layer-' + mid;
	ajax.sendAJAX(varsString);
}
//-->
</script>

HTML;
$c = 0; $i = 0;

while ( $row = $db->get_row( ) ) {

$c ++; $i ++;
if( strlen( $row['title'] ) > $mscfg['track_title_substr'] ) $title = substr( $row['title'], 0, $mscfg['track_title_substr'] ) . "...";
		else $title = $row['title'];
if( strlen( $row['artist'] ) > $mscfg['track_artist_substr'] ) $artist = substr( $row['artist'], 0, $mscfg['track_artist_substr'] ) . "...";
		else $artist = $row['artist'];

$tpl->load_template( 'mservice/tracklist.tpl' );
$tpl->set( '{THEME}', $THEME );
$tpl->set( '{views}', $row['view_count'] );
$tpl->set( '{downcount}', $row['download'] );
$tpl->set( '{rating}', ShowTrackRating( $row['mid'], $row['rating'], $row['vote_num'], $mscfg['allow_addrank_story'] ) );
$tpl->set( '{date}', langdate( 'j F Y - H:i', $row['time'] ) );
$tpl->set( '{artist}', $artist );
$tpl->set( '{title}', $title );

if ( $config['allow_alt_url'] == 'yes' ) {
  $tpl->set( '{view_link}', $config['http_home_url'] . 'music/' . $row['mid'] . '-' . totranslit( $row['artist'] ) . '-' . totranslit( $row['title'] ) . '.html' );
} else {
  $tpl->set( '{view_link}', $config['http_home_url'] . 'index.php?do=music&act=view&mid=' . $row['mid'] );
}

$tpl->compile( 'tracklist' );
$mcontent .= $tpl->result['tracklist'];

if ( $db->num_rows( ) != $c ) $style = "";
  else $style = FALSE;


$tpl->result['tracklist'] = FALSE;

}
$mcontent .= '';

}
} else $stop[] = 'Данный модуль отключен администратором';

break;

// Случайный трек
case 'random' :

if ( $mscfg['random_track'] == 1 ) {
$db->query( "SELECT mid, title, artist FROM " . PREFIX . "_mservice WHERE approve = '1' ORDER BY mid ASC" );
while ( $row = $db->get_row( ) ) $array_rand[$row['mid']] = $row['artist'] . '|' . $row['title'];
$rand = rand( 1, $db->num_rows( ) );
list( $track_artist, $track_title ) = explode( '|', $array_rand[$rand] );
if ( $config['allow_alt_url'] == 'yes' ) @header( "Location: " . $config['http_home_url'] . 'music/' . $rand . '-' . totranslit( $track_artist ) . '-' . totranslit( $track_title ) . '.html' );
  else @header( "Location: " . $config['http_home_url'] . 'index.php?do=music&act=view&mid=' . $rand );
} else $stop[] = 'Данный модуль отключен администратором';

break;

// Навигационный алфавит
case 'letter' :

$letter = $parse->process( $_REQUEST['letter'] );
$mtitle .= ' :: Все треки начинающиеся на - ' . $letter;

if ( $_REQUEST['page'] == FALSE ) $page = 1;
  else $page = intval( $_REQUEST['page'] );
$limit = ( $page * $mscfg['track_page_lim'] ) - $mscfg['track_page_lim'];

//$db->query( "SELECT mid, time, title, artist, download, view_count, rating, vote_num FROM " . PREFIX . "_mservice WHERE title REGEXP '^$letter' AND approve = '1' LIMIT " . $limit . "," . $mscfg['track_page_lim'] );

$db->query( "SELECT mid, time, title, artist, download, view_count, rating, vote_num FROM " . PREFIX . "_mservice WHERE artist REGEXP '^$letter' AND approve = '1' ORDER BY artist ASC LIMIT " . $limit . "," . $mscfg['track_page_lim'] );

if ( $db->num_rows() == 0 ) $stop[] = 'Не найден ни один аудио трек начинающийся на - ' . $letter . '.';

if ( count( $stop ) == 0 ) {

if ( $mscfg['allow_letter_navig'] == 1 ) $mcontent = EchoLetterNavigator( );

$mcontent .= <<<HTML
<script type="text/javascript">
function RateTrack( rate, mid ) {
	var ajax = new dle_ajax();
	ajax.onShow ('');
	var varsString = "go_rate=" + rate;
	ajax.setVar( "mid", mid );
	ajax.setVar( "skin", dle_skin );
	ajax.requestFile = dle_root + "engine/modules/mservice/ajax-rating.php";
	ajax.method = 'GET';
	ajax.element = 'ratig-layer-' + mid;
	ajax.sendAJAX(varsString);
}
//-->
</script>

HTML;
$c = 0; $i = 0;

while ( $row = $db->get_row( ) ) {

$c ++; $i ++;
if( strlen( $row['title'] ) > $mscfg['track_title_substr'] ) $title = substr( $row['title'], 0, $mscfg['track_title_substr'] ) . "...";
		else $title = $row['title'];
if( strlen( $row['artist'] ) > $mscfg['track_artist_substr'] ) $artist = substr( $row['artist'], 0, $mscfg['track_artist_substr'] ) . "...";
		else $artist = $row['artist'];

$tpl->load_template( 'mservice/tracklist.tpl' );
$tpl->set( '{THEME}', $THEME );
$tpl->set( '{views}', $row['view_count'] );
$tpl->set( '{downcount}', $row['download'] );
$tpl->set( '{date}', langdate( 'j F Y - H:i', $row['time'] ) );
$tpl->set( '{rating}', ShowTrackRating( $row['mid'], $row['rating'], $row['vote_num'], $mscfg['allow_addrank_story'] ) );
$tpl->set( '{artist}', $artist );
$tpl->set( '{title}', $title );

if ( $config['allow_alt_url'] == 'yes' ) {
  $tpl->set( '{view_link}', $config['http_home_url'] . 'music/' . $row['mid'] . '-' . totranslit( $row['artist'] ) . '-' . totranslit( $row['title'] ) . '.html' );
} else {
  $tpl->set( '{view_link}', $config['http_home_url'] . 'index.php?do=music&act=view&mid=' . $row['mid'] );
}

$tpl->compile( 'tracklist' );
$mcontent .= $tpl->result['tracklist'];

if ( $db->num_rows( ) != $c ) $style = "";
  else $style = FALSE;


$tpl->result['tracklist'] = FALSE;

}
$mcontent .= '';

// Постраничная навигация

$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_mservice WHERE title REGEXP '^$letter' AND approve = '1'" );
$count = $row['count'];
$count_d = $count / $mscfg['track_page_lim'];

for ( $t = 0; $count_d > $t; $t ++ ) {
$t2 = $t + 1;
if ( $config['allow_alt_url'] == 'yes' ) $plink = $config['http_home_url'] . 'music/letter-' . $letter . '-page-' . $t2 . '.html';
  else $plink = $config['http_home_url'] . 'index.php?do=music&act=letter&letter=' . $letter . '&page=' . $t2;
if ( $t2 == $page ) $pages .= "<span>{$t2}</span> ";
else $pages .= "<a href='{$plink}'>{$t2}</a> ";
$array[$t2] = 1;
}

if ( $config['allow_alt_url'] == 'yes' ) {
  $link = $config['http_home_url'] . 'music/letter-' . $letter . '-page-';
  $seo_mode = '.html';
} else {
  $link = $config['http_home_url'] . 'index.php?do=music&act=letter&letter=' . $letter . '&page=';
  $seo_mode = '';
}

$npage = $page - 1;
if ( isset($array[$npage]) ) $prev_page = ' <a href="'. $link . $npage . $seo_mode . '">Назад</a> ';
  else $prev_page = '<span>Назад</span> ';
$npage = $page + 1;
if ( isset($array[$npage]) ) $next_page = ' <a href="'. $link . $npage . $seo_mode . '">Далее</a>';
  else $next_page = ' <span>Далее</span>';

if ( $count > $mscfg['track_page_lim'] ) {
$mcontent .= <<<HTML
<br /><div class="navigation" align="center" style="margin-bottom:10px; margin-top:10px;">{$prev_page}{$pages}{$next_page}</div>
HTML;
}

// Конец

}

break;

// Поиск по архиву, форма
case 'search' :

$category = GetAllCategories( $mcat );

$mtitle .= ' :: Поиск';
$mcontent = <<<HTML
<div class="mservice_viewtrack">
<form action="" method="post">
<input type="hidden" name="act" value="dosearch" />
<table class="stext">


<tr><td style="padding-right:0px;">Поиск:</td><td><select name="type"><option value="1"{$select_1}>По исполнителю</option><option value="2"{$select_2}>По названию трека</option></select>  <input type="text" name="text" value="{$text}" style="height:14px;width:200px" class="f_input" /> <input type="submit" value="  Начать поиск  " class="bbcodes" /></td></tr>


</table>

</form>
</div>
HTML;

break;

// Обработка входящих данных и начало поиска
case 'dosearch' :

$type = intval( $_REQUEST['type'] );
$text = $parse->remove( $parse->process( $_REQUEST['text'] ) );
$mtitle .= ' :: Поиск';

if ( $type == 0 or $type == '' ) $stop[] = 'Вы не выбрали тип поиска';
if ( $text == '' ) $stop[] = 'Вы не ввели текст для поиска';
if ( strlen( $text ) < 3 ) $stop[] = 'Введённый для поиска текст не может быть короче чем 4 символа';


if ( count( $stop ) == 0 ) {

if ( $type == 1 ) $where_1 = "artist REGEXP '$text'";
  else $where_1 = "title REGEXP '$text'";

  

if ( $_REQUEST['page'] == FALSE ) $page = 1;
  else $page = intval( $_REQUEST['page'] );
$limit = ( $page * $mscfg['track_page_lim'] ) - $mscfg['track_page_lim'];

$db->query( "SELECT mid, time, title, artist, download, view_count, rating, vote_num FROM " . PREFIX . "_mservice WHERE {$where_1}{$where_2} AND approve = '1' LIMIT {$limit}," . $mscfg['track_page_lim'] );
if ( $db->num_rows( ) == 0 ) $stop[] = 'Поиск по музыкальному архиву не дал ни каких результатов';


if ( $type == 1 ) $select_1 = ' selected="selected"';
elseif ( $type == 2 ) $select_2 = ' selected="selected"';

$mcontent .= <<<HTML
<div class="mservice_viewtrack">
<form action="" method="post">
<input type="hidden" name="act" value="dosearch" />
<table class="stext">
<tr><td style="padding-right:0px;">Поиск:</td><td><select name="type"><option value="1"{$select_1}>По исполнителю</option><option value="2"{$select_2}>По названию трека</option></select>  <input type="text" name="text" value="{$text}" style="height:14px;width:200px" class="f_input" /> <input type="submit" value="  Начать поиск  " class="bbcodes" /></td></tr>

</table>
</form>
</div><br />
<script type="text/javascript">
function RateTrack( rate, mid ) {
	var ajax = new dle_ajax();
	ajax.onShow ('');
	var varsString = "go_rate=" + rate;
	ajax.setVar( "mid", mid );
	ajax.setVar( "skin", dle_skin );
	ajax.requestFile = dle_root + "engine/modules/mservice/ajax-rating.php";
	ajax.method = 'GET';
	ajax.element = 'ratig-layer-' + mid;
	ajax.sendAJAX(varsString);
}
//-->
</script>

HTML;
$c = 0; $i = 0;

while ( $row = $db->get_row( ) ) {

$c ++; $i ++;
if( strlen( $row['title'] ) > $mscfg['track_title_substr'] ) $title = substr( $row['title'], 0, $mscfg['track_title_substr'] ) . "...";
		else $title = $row['title'];
if( strlen( $row['artist'] ) > $mscfg['track_artist_substr'] ) $artist = substr( $row['artist'], 0, $mscfg['track_artist_substr'] ) . "...";
		else $artist = $row['artist'];

$tpl->load_template( 'mservice/tracklist.tpl' );
$tpl->set( '{THEME}', $THEME );
$tpl->set( '{views}', $row['view_count'] );
$tpl->set( '{downcount}', $row['download'] );
$tpl->set( '{date}', langdate( 'j F Y - H:i', $row['time'] ) );
$tpl->set( '{rating}', ShowTrackRating( $row['mid'], $row['rating'], $row['vote_num'], $mscfg['allow_addrank_story'] ) );
$tpl->set( '{artist}', $artist );
$tpl->set( '{title}', $title );

if ( $config['allow_alt_url'] == 'yes' ) {
  $tpl->set( '{view_link}', $config['http_home_url'] . 'music/' . $row['mid'] . '-' . totranslit( $row['artist'] ) . '-' . totranslit( $row['title'] ) . '.html' );
} else {
  $tpl->set( '{view_link}', $config['http_home_url'] . 'index.php?do=music&act=view&mid=' . $row['mid'] );
}

$tpl->compile( 'tracklist' );
$mcontent .= $tpl->result['tracklist'];

if ( $db->num_rows( ) != $c ) $style = "";
  else $style = FALSE;


$tpl->result['tracklist'] = FALSE;

}
$mcontent .= '';

// Постраничная навигация

$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_mservice WHERE {$where_1}{$where_2} AND approve = '1'" );
$count = $row['count'];
$count_d = $count / $mscfg['track_page_lim'];

for ( $t = 0; $count_d > $t; $t ++ ) {
$t2 = $t + 1;
if ( $config['allow_alt_url'] == 'yes' ) $plink = $config['http_home_url'] . 'music/search-' . $category . '-' . $type . '-' . $t2 . '-' . $text . '.html';
  else $plink = $config['http_home_url'] . 'index.php?do=music&act=dosearch&category=' . $category . '&type=' . $type . '&page=' . $t2 . '&text=' . $text;
if ( $t2 == $page ) $pages .= "<span>{$t2}</span> ";
else $pages .= "<a href='{$plink}'>{$t2}</a> ";
$array[$t2] = 1;
}

if ( $config['allow_alt_url'] == 'yes' ) {
  $link = $config['http_home_url'] . 'music/search-' . $category . '-' . $type . '-';
  $seo_mode = '-' . $text . '.html';
} else {
  $link = $config['http_home_url'] . 'index.php?do=music&act=dosearch&category=' . $category . '&type=' . $type . '&page=';
  $seo_mode = '&text=' . $text;
}

$npage = $page - 1;
if ( isset($array[$npage]) ) $prev_page = ' <a href="'. $link . $npage . $seo_mode . '">Назад</a> ';
  else $prev_page = '<span>Назад</span> ';
$npage = $page + 1;
if ( isset($array[$npage]) ) $next_page = ' <a href="'. $link . $npage . $seo_mode . '">Далее</a>';
  else $next_page = ' <span>Далее</span>';

if ( $count > $mscfg['track_page_lim'] ) {
$mcontent .= <<<HTML
<br /><div class="navigation" align="center" style="margin-bottom:10px; margin-top:10px;">{$prev_page}{$pages}{$next_page}</div>
HTML;
}

// Конец

}

break;

}

$tpl->load_template( 'mservice/global.tpl' );
$tpl->set( '{mtitle}', $mtitle );

if ( count( $stop ) == 0 ) $tpl->set( '{mservice}', '<style type="text/css">@import url(' . $THEME . '/mservice/css/styles.css);</style>' . AddHeaderForPage( ) . '<br />' . $mcontent );
  else {
    for ( $e = 0; $e < count( $stop ); $e ++ ) $errors .= '<li>' . $stop[$e] . '</li>';
    $tpl->set( '{mservice}', '<b>Были обнаружены следующие ошибки:</b><br /><br /><ul style="padding-left:20px;margin:0px;">' . $errors . '</ul>' );
  }

$tpl->compile( 'content' );
$db->free( );
$tpl->clear( );
?>

Нужна Ваша помощь!

Добавлено через 3 минуты
Я так понял мне нужно вставить этот код:

PHP:
$mtitle .= ' :: ' . $mcat[$row['category']]['name'] . ' :: ' . $row['artist'] . ' - ' . $row['title'];

Но когда я вставил, получилось что то вроде ::
Не пойму что не так
 
получаеться тебе надо вставить не
$mtitle .= ' :: ' . $mcat[$row['category']]['name'] . ' :: ' . $row['artist'] . ' - ' . $row['title'];

а

$mtitle .= ' :: ' . $row['artist'] . ' - ' . $row['title'];

что то вроде этого
 
получаеться тебе надо вставить не
$mtitle .= ' :: ' . $mcat[$row['category']]['name'] . ' :: ' . $row['artist'] . ' - ' . $row['title'];
а
$mtitle .= ' :: ' . $row['artist'] . ' - ' . $row['title'];
что то вроде этого

Это не то :(
 
diabl - ты скачай модуль от софтера, он тоже похоже называется как и этот модуль, я был заказчиком, там как раз была такая функция! но вот не все функции были как в этом модуле, также немного сырой сам модуль был, вот я и не использовал, потом автор выложил также его на паблик на продажу, так что поищи его и там посмотри в коде! и дерзай!
 
Так и не решился вопрос - что бы к каждому треку и категории был свой TITLE ? Или есть решение?
 
Назад
Сверху