Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Zero108

Настройка приложения Musicbox 2.0.4

Рекомендованные сообщения

Подскажите, пожалуйста, как сделать сортировку по названию композиций (song_title - название поля с названием композиции в базе данных) всегда, по умолчанию, вот на такой странице. Сейчас при каждом обновлении сортировка рандомная.

 

Шаблон такой:

 

{{$rowIds = array();}}
{{foreach $rows as $row}}
{{$idField = $row::$databaseColumnId;}}
{{$rowIds[] = $row->$idField;}}
{{endforeach}}
{{if count( $rows )}}
<table class="ipsTable">
<tbody>
	{{foreach $rows as $row}}
	{{$idField = $row::$databaseColumnId;}}
		{{if $row->mapped('moved_to')}}
			{{if $movedTo = $row->movedTo()}}
				<tr>
					<td>
						<i class="fa fa-arrow-left ipsType_large"></i>				
					</td>
					<td>
						<h4 class='ipsDataItem_title ipsType_break'>
							<em><a href='{$movedTo->url()}' title='{lang="go_to_new_location"}'>{wordbreak="$row->mapped('title')"}</a></em>
						</h4>
						<div class='ipsDataItem_meta'>
							<p class='ipsType_reset ipsType_light ipsType_blendLinks'>{lang="moved_to" sprintf="$movedTo->container()->url(), $movedTo->container()->_title"}</p>
						</div>
					</td>		
					<td>
						<div class='ipsPos_right' style='padding-right: 15px;'>
							{{if $table && $table->canModerate()}}
								<span class='ipsCustomInput'>
									<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->tableStates()}}{$row->tableStates()}{{endif}}'>
									<span></span>
								</span>
							{{endif}}								
						</div>
					</td>					
				</tr>
			{{endif}}
		{{else}}
			<tr>			
				<td style='padding-left: 0px !important;'>	
					<div id='songRowInfo' class='ipsSpacer_bottom'>
						<a href="{$row->url()}" rel='loadAjaxPage' data-section='Songs' title='{$row->title}'>
							<div class="song-play-icon" style='margin-left: 10px; margin-right: 10px'></div>
						</a>

						<div class='ipsPos_left'>
						{{if $table}}
							{{if $row->mapped('locked')}}
								<i class="fa fa-lock"></i>
							{{endif}}
							{{if $row->mapped('pinned')}}
								<span data-ipsTooltip title='{lang="pinned"}'><i class='fa fa-thumb-tack'></i></span>
							{{endif}}			
							{{if $row->hidden() === -1 || $row->hidden() === 1}}
								<span>
									{{if $row->hidden() === -1}}
										<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{$row->hiddenBlurb()}'><i class='fa fa-eye-slash'></i></span>
									{{elseif $row->hidden() === 1}}
										<span class="ipsBadge ipsBadge_icon ipsBadge_small ipsBadge_warning" data-ipsTooltip title='{lang="pending_approval"}'><i class='fa fa-warning'></i></span>
									{{endif}}										
								</span>
							{{endif}}
						{{endif}}
						{{if $row->mapped('title')}}								
							<a class='ipsType_normal' rel='loadAjaxPage' data-section='Songs' href='{$row->url()}' title='{$row->title} - {$row->singers()}'>
								{wordbreak="$row->mapped('title')"}
							</a>	
							{{if \IPS\Application::appIsEnabled( 'nexus' ) and settings.mbconf_nexus_on}}
								<span class="songPrice">
									{{if $price = $row->price()}}{$price|raw}{{else}}{lang="song_free"}{{endif}}
								</span>
							{{endif}}
							<br>
							<span class='ipsType_blendLinks ipsType_light'>{$row->artistLinks($row->singers())|raw}</span>
						{{else}} 
							<em class="ipsType_light">{lang="content_deleted"}</em>
						{{endif}}
						</div>
					</div>					
				</td>
				<td>
					<span class='ipsType_light ipsResponsive_hidePhone' data-ipstooltip title='{lang="musicbox_views"}'>
						<i class="fa fa-headphones"></i> {number="$row->views"}
					</span>	
					<div class='ipsPos_right'>
						<span class='ipsResponsive_hidePhone'>{template="songActions" app="musicbox" group="global" params="$row"}</span>
						{{if $table && $table->canModerate()}}
							  
							{{$idField = $row::$databaseColumnId;}}
							<span class='ipsCustomInput ipsPos_right'>
								<input type='checkbox' data-role='moderation' name="moderate[{$row->$idField}]" data-actions="{expression="implode( ' ', $table->multimodActions( $row ) )"}" data-state='{{if $row->tableStates()}}{$row->tableStates()}{{endif}}'>
								<span></span>
							</span>
						{{endif}}									
					</div>
					{{if $row->container()->bitoptions['rating']}}
						<div class='ipsPos_right ipsResponsive_hideTablet ipsResponsive_hidePhone' style='margin-top:-3px !important; margin-right:30px !important;' data-ipsTooltip title='{lang="musicbox_top_avg_rating"}: {number="$row->rating_average"}'>
							{template="rating" group="global" location="front" app="core" params="'small', $row->rating_average"}
						</div>
					{{endif}}						
				</td>				
			</tr>
		{{endif}}
	{{endforeach}}
</tbody>
</table>	
{{endif}}

 

Ссылка на приложение.

 

Файл такой:

artists.php

Поделиться сообщением


Ссылка на сообщение
Файл такой:

 

 

		$select = \IPS\Db::i()->select( '*', 'musicbox_artists', $where, 'RAND()', array( ( $page - 1 ) * $perpage, $perpage ), NULL, NULL, \IPS\Db::SELECT_SQL_CALC_FOUND_ROWS );

RAND() заменить на artist_name

Но, судя по файлу, это для https://www.a108.net/listen/performers/

Подскажите, пожалуйста, как сделать сортировку по названию композиций (song_title - название поля с названием композиции в базе данных) всегда, по умолчанию, вот на такой странице.

Не вижу там рандомной сортировки композиций.
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Спасибо, это тоже пригодилось. Исправил аналогично RAND() в файле profile.php на song_title.

Поделиться сообщением


Ссылка на сообщение

Вот тут еще осталось по title отсортировать? Какую переменную заменить на song_title или что-то еще?

Прицепленный файл точно тот (проверил - если его удаляешь, то страница не работает).

view.php

Поделиться сообщением


Ссылка на сообщение
Прицепленный файл точно тот (проверил - если его удаляешь, то страница не работает).
Тут нет нужного.

 

\applications\musicbox\sources\Song\Song.php

'song_playlist_pos ASC'

Поделиться сообщением


Ссылка на сообщение

Немного не понял. В этом файле в одном месте уже написано следующее:

 

			foreach( \IPS\Db::i()->select( '*', 'musicbox_songs', "find_in_set('{$this->id}',song_inPlaylist) <> 0", 'song_playlist_pos ASC')  as $s )

Поделиться сообщением


Ссылка на сообщение
07/02/18 10:22 (изменено)

Вот сделал так: 'song_playlist_pos DESC'

 

Теперь сортирует в обратном порядке и то не везде. В начале списка по-порядку идет, а потом в разнобой:

 

178 Aindra_Das_-_(2004_10.28)_Kirtan_After_Damodarastaka - Shripad Aindra das

179 Aindra_Das_-_(2009_03.16)_Varsana_Kirtan_01 - Shripad Aindra das

180 Aindra_Das_-_(2004_10.29)_Kirtan - Shripad Aindra das

Изменено пользователем Zero108

Поделиться сообщением


Ссылка на сообщение

Немного не понял.

Я написал, что нужно изменить.

 

'song_playlist_pos ASC'

сортировка по позициям.

Замените на

'song_title ASC'

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Еще одна страница, где хотелось бы отсортировать названия групп маркеров по названию.

Поделиться сообщением


Ссылка на сообщение

Еще одна страница, где хотелось бы отсортировать названия групп маркеров по названию.

 

Так там Membermap, а мы тут о Musicbox говорим.

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...