alkov
-
Публикации
29 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем alkov
-
-
-
Всем привет. Собственно вопрос в сабже. Я так понял что вывод спойлера задаётся в файле parse.class.php вот здесь
function build_spoiler($title = "") { global $lang; $title = trim( $title ); $title = stripslashes( $title ); $title = str_replace( "&amp;", "&", $title ); $title = preg_replace( "/java script:/i", "javascript: ", $title ); $id_spoiler = md5( microtime() ); if( ! $title ) { return "<!--dle_spoiler--><div class=\"title_spoiler\"><a href=\"java script:ShowOrHide('" . $id_spoiler . "')\"><!--spoiler_title-->" . $lang['spoiler_title'] . "<!--spoiler_title_end--></a></div><div id=\"" . $id_spoiler . "\" class=\"text_spoiler\" style=\"display:none;\"><!--spoiler_text-->"; } else { return "<!--dle_spoiler $title --><div class=\"title_spoiler\"><a href=\"java script:ShowOrHide('" . $id_spoiler . "')\"><!--spoiler_title-->" . $title . "<!--spoiler_title_end--></a></div><div id=\"" . $id_spoiler . "\" class=\"text_spoiler\" style=\"display:none;\"><!--spoiler_text-->"; } }
а сам вид в CSS.
Как сделать что-бы до нажатия на заголовок выводилась картинка с (+), а после нажатия с (-).
-
вот сваял галерею на основе движка. Оцените...
-
Якуш, спасибо конечно, но я уже сам разобрался. Тоже навскидку. Но всё равно, БИГ СЕНКС за внимание !!!
-
Требуется маленькая модификация модуля feedback.php. Загвоздка вот в чём. Нужно, что-бы при заходе под админским акаунтом, в полях Заголовок и Сообщение автоматически выводилась уже готовая заранее написанная информация. Проблема в том, что в этом модуле не поддерживается тег [group=]. Остальные же юзеры при заходе под своим аккаунтом видели бы просто пустые поля.
Помощникам заранее огромное спасибо.
Позднее...
Как говорится, если гора не идёт к Мухаммеду...
Вообщем вставил в feedback.php следующий код
if ( stristr( $tpl->copy_template, "[group=" ) ) { $tpl->copy_template = preg_replace( "#\\[group=(.+?)\\](.*?)\\[/group\\]#ies","check_group('\\1', '\\2')", $tpl->copy_template); }
и в шаблоне feedback.tpl заработал тег [group].
Скорее всего по аналогии можно модифицировать и другие модули.
Спасибо (сам себе). Можно закрыть тему.
-
Чего то у меня проблема с форумом, не могу создать новую тему. Поэтому с разрешения топикстартера спрошу здесь.
Требуется маленькая модификация модуля feedback.php. Загвоздка вот в чём. Нужно, что-бы при заходе под админским акаунтом, в полях Заголовок и Сообщение автоматически выводилась уже готовая заранее написанная информация. Проблема в том, что в этом модуле не поддерживается тег [group=]. Остальные же юзеры при заходе под своим аккаунтом видели бы просто пустые поля.
Помощникам заранее огромное спасибо.
-
Я бы не сказал, что проблема в нулёном движке. Скорее всего взлом провели через сторонний модуль. Недавно столкнулся с аналогичной проблемой. На сайте стоял старый движок, 5.2 (нулл) и почти год всё было чисто. По логам иногда замечал странную активность, но попытки были безрезультатными. Стукнуло в голову поставить галерею стороннего разработчика, MG2 называется (minigal), так не прошло и пары дней, как заработал iframe с трояном в index.php и во всех файлах движка. Помогла тотальная смена паролей к ftp и к админке (кстати защищена средствами .htaccess). Ну и движок обновил заодно на последнюю версию (каюсь, тоже нулл). Так что в движке я уверен на все сто процентов (даже в нулле, смотря кем сделан).
-
Dream, в NAVIGATION.TPL убираешь всё, что стоит под тегами [prev-link][/prev-link] и [next-link][/next-link] включая эти теги ( то есть оставляешь только тег {pages} )
El1teGuard, в LASTCOMMENTS.PHP
//################################################################################ #################################### // Навигация по новостям //################################################################################ #################################### $tpl->load_template('navigation.tpl'); //---------------------------------- // Previous link //---------------------------------- if($cstart > 0){ $prev = $cstart / $number; $prev_page = $PHP_SELF."?cstart=".$prev."&".$user_query; $tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]'si", "<a href=\"".$prev_page."\">\\1</a>"); }else{ $tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]'si", "<span>\\1</span>"); $no_prev = TRUE; } //---------------------------------- // Pages //---------------------------------- if($number){ $count_all = $row_count['count']; $pages_count = @ceil($count_all/$number); $pages_start_from = 0; $pages = ""; $pages_per_section = 3; if($pages_count > 10) { for($j = 1; $j <= $pages_per_section; $j++) { if($pages_start_from != $cstart) { $pages .= "<a href=\"$PHP_SELF?cstart=$j&$user_query\">$j</a> "; } else { $pages .= " <span>$j</span> "; } $pages_start_from += $number; } if(((($cstart / $number) + 1) > 1) && ((($cstart / $number) + 1) < $pages_count)) { $pages .= ((($cstart / $number) + 1) > ($pages_per_section + 2)) ? '... ' : ' '; $page_min = ((($cstart / $number) + 1) > ($pages_per_section + 1)) ? ($cstart / $number) : ($pages_per_section + 1); $page_max = ((($cstart / $number) + 1) < ($pages_count - ($pages_per_section + 1))) ? (($cstart / $number) + 1) : $pages_count - ($pages_per_section + 1); $pages_start_from = ($page_min - 1) * $number; for($j = $page_min; $j < $page_max + ($pages_per_section - 1); $j++) { if($pages_start_from != $cstart) { $pages .= "<a href=\"$PHP_SELF?cstart=$j&$user_query\">$j</a> "; } else { $pages .= " <span>$j</span> "; } $pages_start_from += $number; } $pages .= ((($cstart / $number) + 1) < $pages_count - ($pages_per_section + 1)) ? '... ' : ' '; } else { $pages .= '... '; } $pages_start_from = ($pages_count - $pages_per_section) * $number; for($j=($pages_count - ($pages_per_section - 1)); $j <= $pages_count; $j++) { if($pages_start_from != $cstart) { $pages .= "<a href=\"$PHP_SELF?cstart=$j&$user_query\">$j</a> "; } else { $pages .= " <span>$j</span> "; } $pages_start_from += $number; } } else { for($j=1;$j<=$pages_count;$j++) { if($pages_start_from != $cstart) { $pages .= "<a href=\"$PHP_SELF?cstart=$j&$user_query\">$j</a> "; } else { $pages .= " <span>$j</span> "; } $pages_start_from += $number; } } $tpl->set('{pages}', $pages); } //---------------------------------- // Next link //---------------------------------- if($number < $count_all and $i < $count_all){ $next_page = $i / $number + 1; $next = $PHP_SELF."?cstart=".$next_page."&".$user_query; $tpl->set_block("'\[next-link\](.*?)\[/next-link\]'si", "<a href=\"".$next."\">\\1</a>"); }else{ $tpl->set_block("'\[next-link\](.*?)\[/next-link\]'si", "<span>\\1</span>"); $no_next = TRUE; } if (!$no_prev or !$no_next){ $tpl->compile('content'); } $tpl->clear();
в C_NAVIGATION.PHP//################################################################################ #################################### // Навигация //################################################################################ #################################### $tpl->load_template('navigation.tpl'); //---------------------------------- // Previous link //---------------------------------- if($cstart > 1){ $prev = $cstart - 1; if ($config['allow_alt_url'] == "yes") $tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]'si", "<a href=\"".$link_page.$prev.",".$news_name.".html\">\\1</a>"); else $tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]'si", "<a href=\"$PHP_SELF?cstart=".$prev."&$user_query\">\\1</a>"); }else{ $tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]'si", "<span>\\1</span>"); $no_prev = TRUE; } //---------------------------------- // Pages //---------------------------------- if($number){ $count_all = $comments_num; $pages_count = @ceil($count_all/$number); $pages_start_from = 1; $pages = ""; for($j=1;$j<=$pages_count;$j++) { if($pages_start_from != $cstart) { if ($config['allow_alt_url'] == "yes") $pages .= "<a href=\"".$link_page.$j.",".$news_name.".html\">$j</a> "; else $pages .= "<a href=\"$PHP_SELF?cstart=$j&$user_query\">$j</a> "; } else { $pages .= " <span>$j</span> "; } $pages_start_from ++; } } $tpl->set('{pages}', $pages); //---------------------------------- // Next link //---------------------------------- if($cstart < $pages_count){ $next_page = $cstart + 1; if ($config['allow_alt_url'] == "yes") $tpl->set_block("'\[next-link\](.*?)\[/next-link\]'si", "<a href=\"".$link_page.$next_page.",".$news_name.".html\">\\1</a>"); else $tpl->set_block("'\[next-link\](.*?)\[/next-link\]'si", "<a href=\"$PHP_SELF?cstart=$next_page&$user_query\">\\1</a>"); }else{ $tpl->set_block("'\[next-link\](.*?)\[/next-link\]'si", "<span>\\1</span>"); $no_next = TRUE;} if (!$no_prev or !$no_next){ $tpl->compile('content'); } $tpl->clear();
в SEARCH.PHP//################################################################################ #################################### // Навигация по новостям //################################################################################ #################################### if ($found_result > 0) { $tpl->load_template('navigation.tpl'); //---------------------------------- // Previous link //---------------------------------- if(isset($search_start) and $search_start != "" and $search_start > 0){ $prev = $search_start / $config_search_numbers; $prev_page = "<a name=\"prevlink\" id=\"prevlink\" onClick=\"java script:list_submit($prev); return(false)\" href=#>"; $tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]'si", $prev_page."\\1</a>"); }else{ $tpl->set_block("'\[prev-link\](.*?)\[/prev-link\]'si", "<span>\\1</span>"); $no_prev = TRUE; } //---------------------------------- // Pages //---------------------------------- if($config_search_numbers){ $pages_count = @ceil($count_result/$config_search_numbers); $pages_start_from = 0; $pages = ""; $pages_per_side = ($config['pages_per_section']-1) / 2; $pages_to_display = ($config['pages_per_section'] * 3) + 1; if($pages_count > $pages_to_display) { for($j = 1; $j <= $config['pages_per_section']; $j++) { if($pages_start_from != $search_start) { $pages .= "<a onClick=\"java script:list_submit($j); return(false)\" href=#>$j</a> "; } else { $pages .= " <span>$j</span> "; } $pages_start_from += $config_search_numbers; } if(((($search_start / $config_search_numbers) + 1) > ($pages_per_side + 1)) && ((($search_start / $config_search_numbers) + 1) < ($pages_count - $pages_per_side))) { $pages .= ((($search_start / $config_search_numbers) + 1) > ($config['pages_per_section'] + $pages_per_side + 1)) ? '... ' : ' '; $page_min = ((($search_start / $config_search_numbers) + 1) > ($config['pages_per_section'] + $pages_per_side)) ? (($search_start / $config_search_numbers) - $pages_per_side + 1) : ($config['pages_per_section'] + 1); $page_max = ((($search_start / $config_search_numbers) + 1) < ($pages_count - ($config['pages_per_section'] + $pages_per_side - 1))) ? (($search_start / $config_search_numbers) + $pages_per_side + 1) : ($pages_count - $config['pages_per_section']); $pages_start_from = ($page_min - 1) * $config_search_numbers; for($j = $page_min; $j < $page_max + 1; $j++) { if($pages_start_from != $search_start) { $pages .= "<a onClick=\"java script:list_submit($j); return(false)\" href=#>$j</a> "; } else { $pages .= " <span>$j</span> "; } $pages_start_from += $config_search_numbers; } $pages .= ((($search_start / $config_search_numbers) + 1) < $pages_count - ($config['pages_per_section'] + $pages_per_side)) ? '... ' : ' '; } else { $pages .= '... '; } $pages_start_from = ($pages_count - $config['pages_per_section']) * $config_search_numbers; for($j=($pages_count - ($config['pages_per_section'] - 1)); $j <= $pages_count; $j++) { if($pages_start_from != $search_start) { $pages .= "<a onClick=\"java script:list_submit($j); return(false)\" href=#>$j</a> "; } else { $pages .= " <span>$j</span> "; } $pages_start_from += $config_search_numbers; } } else { for($j=1;$j<=$pages_count;$j++) { if($pages_start_from != $search_start) { $pages .= "<a onClick=\"java script:list_submit($j); return(false)\" href=#>$j</a> "; } else { $pages .= " <span>$j</span> "; } $pages_start_from += $config_search_numbers; } } $tpl->set('{pages}', $pages); } //---------------------------------- // Next link //---------------------------------- if($config_search_numbers < $count_result and $to_num < $count_result){ $next_page = $to_num / $config_search_numbers + 1; $next = "<a name=\"nextlink\" id=\"nextlink\" onClick=\"java script:list_submit($next_page); return(false)\" href=#>"; $tpl->set_block("'\[next-link\](.*?)\[/next-link\]'si", $next."\\1</a>"); } else { $tpl->set_block("'\[next-link\](.*?)\[/next-link\]'si", "<span>\\1</span>"); $no_next = TRUE; } if (!$no_prev or !$no_next){ $tpl->compile('content'); } $tpl->clear();
-
Хочу поставить последнюю точку в этой теме, она начиналась не для того, что бы разводить демагогию и выяснять, кто кул мен, а кто падонок. Пусть каждый останется при своём мнении, морали пусть нам читают мама с папой, и все будут двигаться по жизни как знают и умеют.
З.Ы. Мой адрес: Германия, Берлин, Барбаросса штр. 20, 10776. Так что про "покупку" предустановленного софта в этой стране я немного, но знаю. Гутен нахт фюр аллес.
-
celsoft, а Windows XP (2000, Ме, 98, 95...) на Вашем компьютере дома легальная? Или Вы не уважаешь труд программистов Microsoft? И весь софт у Вас лицензионный? Скажите честно? Даю руку на отсечение, что хоть одна шароварная программа с кряком у Вас присутствует на диске... И сколько фильмов, скачанных через Осла или в Торренте вы посмотрели на компьютере. Или Вы ходите ТОЛЬКО в кинотеатр? А все до единой песни, присутствующие в папке МР3 Вы тоже приобрели? Почему спрашивается? Ответ Вы сами можете дать. Так что Ваше излияние по поводу воровства как то здесь неуместно и чтение морали на эту тему звучит как то смешно. Кто то платит, а кто-то пользуется бесплатно. Включая и меня, и Вас и всех до единого пользователей этого форума.
Борьба с нелегальным софтом направлена на распространителей онного, а не на пользователей, тем более с получением какой-то выгоды от последних. Помниться когда-то у той же Майкрософт была аналогичная акция - пользователь нелицензионной винды сообщал где он её приобрёл с предоставлением квитанции или чека и получал лицензию. БЕСПЛАТНО. И о тяжёлом труде программистов там не упоминалось.
P.S. В случае, если у Вас стоит фриварная версия Linux - сорри.
-
Отличный маркетинговый ход!
Теперь осталось сделать акцию "Приведи клиента - получи вторую лицензию бесплатно" и будет вообще классно!
Ну да, сам celsoft признался в хитрости этого шага
Да посути дела мы покупаем рекламные площадки на три недели, реклама тоже стоит денег, поэтому и идет взаимная компенсация затрат -
Ну это конечно понятно, но дело не только в количестве но и в качестве. Реклама, рассчитанная даже на 10 человек - это тоже реклама. Я тут видел в одной из тем проскочило предложение насчёт техподдержки. Сообщение на главной вкупе с копирайтами может заменить 1000 посетителей (о последних мы позаботимся со временем )? Если да, то сайт в подписи. Если нет - то всё равно спасибо, что прочитали.
Danila, я не говорил о заработке владельца сайта и способах приобрести лицензию. Я говорил о том, что у сайта с посещаемостью от 1000 посетителей в сутки есть возможность для роста ( это достаточно высокая посещаемость), и владельцу такого ресурса нет никакого смысла пользоваться нуленными версиями без возможности технической поддержки. И поверь, если сайт с интересной тематикой, грамотно сделан и идёт в ногу со временем - рекламодатели найдутся ( вспомни как nnm.ru начинал). Не всё сразу приходит. Я говорил о рекламе движка.
-
Позволю себе маленькое замечание в связи с проводящейся акцией. (http://forum.pc-soft.ru/index.php?showtopic=31884)
Пункты 1 и 3 выглядят заманчиво, но вот пункт номер 2 наводит на некоторые размышления. Я думаю, что владелец сайта с посещаемостью 1000 человек в сутки может себе позволить приобрести лицензию и это будет выглядеть логично. Нуллы в основном ставят начинающие, которые ещё не определились, что они хотят от своего сайта, и таких сайтов большинство. Если посчитать, допустим, что n-ое количество владельцев посещаемых ресурсов согласятся с условиями, то получается, что только на одном сайте объявление на главной за три недели просмотрит 21000 человек. Умножив это количество человек на n-ое количество сайтов получим неплохую рекламу движку, и поэтому последующее предоставление лицензии окупается сторицей. Я пользуюсь нуленной версией, никакой прибыли от сайта не получаю и приобретать лицензию не собираюсь, но я уважаю труд людей, разработавших этот движок, поэтому копирайты разработчиков находятся на причитающихся им местам. Как только я увижу, что появилась реальная возможность заработать на своём проекте, лицензию приобрету незамедлительно.
если честно, ни на что пока не жаловался....пользущимся действительно надежным, быстрым и безопасным скриптом, которым не могут похвастаться пользователи Null версий.Так что если существует возможность пропустить 2 пункт, что немаловажно для простых пользователей, то почему бы и нет...
-
Вот блин, странная штука - жизнь. Как назло, г-н celsoft как-бы предвидел почти все, задаваемые сегодня вопросы на форуме и заранее на них ответил... Поиск рулит !!!
http://dle-news.ru/2006/12/11/perenos_sajj...a_khosting.html
И если немного подумать головой (а для чего в принципе нам её бог дал? Не об стену же ею убивать себя?), то на описанном примере можно произвести обратное действие.
-
ну ка, ну ка, по моему я уже встречал эту ошибку, вот здесь вроде http://4dle.ru/. Ну да, тот же самый путь домашней директории. У вас что, один и тот же сайт?
-
хе хе, этот человек случайно не с форума vbulletin.net.ru ?Так, человек, взявшийся за работу, подставил по ходу. Таким образом, см. первый пост. Оплата щедрая. -
Да понятно что это название группы. И понятно, что в админке можно поменять название группы. Но если я хочу, что-бы в профиле пользователя отображалось Группа: Vip, а в комментах Vip-юзверь? Поможет ли в этом случае переименование группы? Ладно, главное что половину заданного вопроса, открывшего эту тему мы решили.
-
Alkov, Akela - спасибо!!! Все получилось!
Для версии 5.2. вот это не нужно...
я знаю, что можно сделать так, как описано в первом решении. Это просто маленькая модификация, которая позволяет выводить статус пользователя в том виде, в каком хочет администратор, а не стандартно.
Кстати, Тибет, прЯкольная тематика у твоего сайта...
З.Ы. Давай, выкладывай модуль "Послать на фик", будем доводить его до...ума.
-
Akela, по поводу этого
$user_group[$member_id['user_group']]['group_name']
ты прав, не досмотрел. А так всё остальное должно работать.
-
Касательно первого вопроса. Тут не совсем в шаблоне дело. По порядку.
1. Открываешь /engine/modules/show.full.php и ищешь там следующую строку
if ($row['is_register'] AND $row['icq']) $tpl->set('{icq}', stripslashes($row['icq'])); else $tpl->set('{icq}', '--');
2. Сразу после неё вставляешь$tpl->set('{status}', $user_group[$member_id['user_group']]['group_name']);
3. Редактируешь comments.tpl (удаляешь все ненужные теги), и прописываешь в требуемом местеСтатус: {status}
Можно сделать немножко по-другому, ну что-бы выводилось не название группы, в которой состоит посетитель, а именно статус в зависимости от группы, к которой он принадлежит. Например создали группу VIP, а для каждого члена этой группы будет выводится Vip-member (или ВИП-Юзверь, по желанию). Для этого для начала необходимо добавить в языковой файл \language\Russian\website.lng название желаемого статуса, например'user_vip' => "Vip-Юзверь"
Затем в том-же show.full.php добавляем в запрос поле user_group$sql_result = $db->query("SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, date, autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . PREFIX . "_users.email, reg_date, signature, foto, fullname, land, icq, user_group, xfields FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_users ON " . PREFIX . "_comments.user_id=" . PREFIX . "_users.user_id WHERE " . PREFIX . "_comments.post_id = '$news_id' order by date ".$config['comm_msort']." LIMIT ".$cstart.",".$config['comm_nummers'])
затем междуwhile($row = $db->get_row($sql_result)){ $i++; и $row['date'] = strtotime($row['date']);
вставляемswitch($row['user_group']){ case 1: $ulvl = $lang['user_adm']; break; case 2: $ulvl = $lang['user_re']; break; case 3: $ulvl = $lang['user_ed']; break; case 4: $ulvl = $lang['user_mem']; break; case 5: $ulvl = $lang['user_vip']; break; } if ($row['banned'] == 'yes') $ulvl = $lang['user_ban'];
(подразумевается, что группа VIP имеет в таблице порядковый номер 5). И последнее, послеif ($row['is_register'] AND $row['icq']) $tpl->set('{icq}', stripslashes($row['icq'])); else $tpl->set('{icq}', '--');
вставляем$tpl->set('{status}', $ulvl);
Естественно в шаблоне comments.tpl используем тег {status} для вывода желаемого.
Fenita la komedia...
P.S. А по поводу второго модуля, то я так и не понял ценность его практического применения. Кстати, IP так-же меняется и при быстром DSL и ADSL подключении, и при кабельном тоже. Есть очень мало конечных пользователей, имеющих статический IP. В основной своей массе провайдер раздаёт своим клиентам адреса из выделенного ему пула (списка). Так, для справки...
-
По первому вопросу: скинь мне на мыло (отослал тебе в ПМ) или дай ссылку на шаблон под названием comments.tpl. Там делов на полминуты.
И кстати предназначение второго модуля мне обрисовывается в немного прикольном свете. Я вижу это так. Админ создаёт специальную группу (или группы), которые получают привиллегированный статус на сайте. Потом ставит мод, который ведёт статистику по этим элитным пользователям. Допустим, что у некоторого, отдельно взятого модератора инет с выходом через Dial-up, и естественно каждый раз он заходит на сайт с разными IP. И вот тут его ждёт сюрприз от админа - БАН не отходя от кассы. Вот такой прикольный модуль. И для чего?
-
1. мод выводит статус юзера в комментах (журналист, модератор, посетитель и тд). Пример (здесь доп.полей больше, мне нужен только статус): http://www.natahaus.ru/2007/01/03/simptomy...nojj_atlas.html
А можно и бесплатно. Пиши в личку.
-
Сейчас мы друг у друга расплачемся на плече... Ладно, решение найдено, поэтому воздержимся от ненужного флуда. Всем спасибо, тема закрыта.
-
-CannabiS-, ну тогда давай твой вебмани. А хотя не надо. Приятно делать добрые весчи...
Создание мультиязычного сайта DLE на базе модуля Multi-language
в Готовые Моды, Хаки, Локализаторы, Советы
Опубликовано:
Этот модуль поддерживает RTL?