получение ID темы из массива данных

Автор Xansen, 11 мая 2012, 21:55:46

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Xansen

Подскажите пожалуйста есть ли в каком нить массиве данных типа context переменная содержащая ID текущей темы?

maestrosite.ru

тема оформления - default, пользовательская, в разделе, итоговая? или тема обсуждения (см. $topic и $context['current_topic'])?
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Xansen

Эм... Мне нужно чтобы я в модуль показа рекламы сделал фильтр для мобильной темы оформления для которой хочу отключить показ рекламы

maestrosite.ru

Проверка на мобильный запрос спасёт? if (WIRELESS)...
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

Xansen

Цитата: maestrosite.ru от 12 мая 2012, 12:20:21
Проверка на мобильный запрос спасёт? if (WIRELESS)...
спасибо за решение, но у меня отдельная тема для Iphone... поэтому мне именно нужно проверять по ID темы...

0daliska

проверьте через var_dump($context); в нужном месте в нужном шаблоне вашей темы все содержимое переменной контекст, да и все... Чего голову сильно ломать?
Надо переменную $topic проверить - проверяйте через функцию var_dump переменную топик... "Делов" на две минуты... Но лучше предварительно форум закрыть, а еще лучше на тестовом на локале баловаться, ну или вывод var_dump($context); по условию только для админов делать :)
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

remingtone


0daliska

ну и чем по-Вашем ему не поможет в этом случае навыки проверки переменной через вар дамп?
Ему надо узнать, есть ли там ай ди текущей темы, замечательно, он это узнает при помощи этой функции в том месте, где ему это надо... А заодно, еще много полезного для разработки узнает, раз уж влезает в код...
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

remingtone

да ничем, Вы написали

Цитата: 0daliska от 12 мая 2012, 23:11:01Надо переменную $topic проверить

- я отреагировал :) извините, если что :)

0daliska

Нет, я написала не так:
Цитата: 0daliska от 12 мая 2012, 23:11:01
Надо переменную $topic проверить - проверяйте через функцию var_dump переменную топик...
Смысл коренным образом меняется, если фразу прочесть не обрезанную... И на примере этого показано, что так можно просмотреть любую подгружаемую внешнюю переменную...
Есть лучше предложения - предлагайте, тем более, не зная где он сие будет в шаблон всовывать, 100% сказать лично я не смогу, без просмотра всех подгружаемых функцией в данное место в шаблоне внешних переменных... Если вопрошающий хочет что-то найти, то пусть сам и смотрит то, что ему надо... А вот как это посмотреть, ему было показано...
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

remingtone

в Load.php 

// Load variables from the current or default theme, global or this user's.
$result = $smcFunc['db_query']('', '
SELECT variable, value, id_member, id_theme
FROM {db_prefix}themes
WHERE id_member' . (empty($themeData[0]) ? ' IN (-1, 0, {int:id_member})' : ' = {int:id_member}') . '
AND id_theme' . ($id_theme == 1 ? ' = {int:id_theme}' : ' IN ({int:id_theme}, 1)'),
array(
'id_theme' => $id_theme,
'id_member' => $member,
)
);


а чуть выше начинается // Load a theme, by ID. туда ИМХО и надо смотреть, там по параметрам, по запросу, по дефолту, по выбору юзера...

0daliska

#11
И можно сразу конкретный пример, как то, что Вы предложили, применить для вывода, например, на главной странице профиля пользователя, выбравшего тему с Id=3, надписи "Моя тема-Красивая"?

Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

remingtone

нет. ну и там по-другому,

// Make any theme changes that are sent with the profile..
function makeThemeChanges($memID, $id_theme)
{
global $modSettings, $smcFunc, $context;

$reservedVars = array(
'actual_theme_url',
'actual_images_url',
'base_theme_dir',
'base_theme_url',
'default_images_url',
'default_theme_dir',
'default_theme_url',
'default_template',
'images_url',
'number_recent_posts',
'smiley_sets_default',
'theme_dir',
'theme_id',
'theme_layers',
'theme_templates',
'theme_url',
);


все та же $id_theme

0daliska

Я, например, через вар дамп уже определила, что требуется в данном случае $settings
Конкретно:
$settings['theme_id'];
Введенный код в шаблоне:
if ($settings['theme_id']== 7)
echo 'My themes is beautiful - This is Core Theme!';

И вот результат в шаблоне коре (ай ди темы=7)
и в теме дефолтной (курве) - смотрите вложения:
Profile.template.php у них общий. Правился только Profile.template.php дефолтной темы
Так что проверка вар дампом переменных куда эффективнее и быстрее, чем попытки отослать к функциям движка... Смотрим переменные в нужном месте и берем то, что надо...
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

remingtone

ну вот видите как, в дискуссиях рождается истина :)  еще и с иллюстрациями :)

0daliska

Это вполне мог сделать и сам вопрошающий и без моих иллюстраций... Тем более вообще бесполезных в контексте... Только время убила...
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

remingtone

ну зато как все Вам будут благодарны, кто-то возможно даже карму поправит Вам, вот я сейчас нажму... :) ребята, нажмем Алиске карму!  O0

Xansen

Спасибо огромное, то что нужно! Плюсанул!

kak2z

#18
И я карму поправил.. за компанию))

ПЫСЫ: только по моему 0daliskу зовут не Алиска.... а по другому) хотя могу ошибаться)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

Цитата: Xansen от 11 мая 2012, 23:48:21
Эм... Мне нужно чтобы я в модуль показа рекламы сделал фильтр для мобильной темы оформления для которой хочу отключить показ рекламы
Каким образом у вас выводится модуль показа? Этот модуль при установке изменения внёс в темы оформления (/Themes/) или в код движка (/Source/)? Если вывод зависит строго от темы оформления, то, возможно стоит, и сам вывод сделать только в шаблоне нужной темы. Предполагаю, что для мобильной темы файлы-шаблоны из defaul-темы не используются. По крайней мере основные.

PS Сравнение с произвольной константой (идентификатором) в коде может подкинуть проблем. В данном случае константа может измениться, или к ней может добавиться другая.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

remingtone

Цитата: maestrosite.ru от 13 мая 2012, 09:21:15Предполагаю, что для мобильной темы файлы-шаблоны из defaul-темы не используются.
у меня такая же тема. во все темы, кроме этой, модуль показа прописывается в код. а эта "чистая", но рекламу отображает