Перейти к содержимому


Модуль, нужна помощь


Сообщений в теме: 14

#1 jr228

jr228

    Активный участник

  • Пользователи
  • PipPipPip
  • 110 сообщений
  • Пол:Мужчина
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 22 October 2012 - 21:52

Всем привет!:)Давненько тут небыл:)
Вообщем дело обстоит так, я все забыл что изучал в мкпортал, но тут появился проект и надо написать пару модулей для него.
Я сделал к примеру модуль /index.php?ind=module (на этой странице выводится категории)
Дальше выбераем категорию /index.php?ind=module&cat=1 (страница категории, там выводится типо страницы с инфой)
А вот дальше я не знаю как сделать в коде чтобы была страница еще одна типо /index.php?ind=module&cat=1&page=1
Подскажите плиз, на коротком примере:)
Буду признателен!!!

#2 m1racle

m1racle

    Активный участник

  • Пользователи
  • PipPipPip
  • 251 сообщений
  • Форум:Нет
  • Версия MKP:C1.2.2 R0.0.2

Отправлено 22 October 2012 - 22:04

Последуй моему примеру, и используя его, реализуй свой.
switch($mkportals->input['stranica']) {
case '1':
$output="то что загрузится по адресу /index.php?ind=имямодуля&stranica=1";
$name_str="страница 1";
break;

case '2':
$output="то что загрузится по адресу /index.php?ind=имямодуля&stranica=2";
$name_str="страница 2";
break;
default:
$output="то что загрузится по адресу /index.php?ind=имямодуля";
$name_str="страница по умолчанию";
break;
}
$blocks .= $Skin->view_block("$name_str", $output);
$mklib->printpage("1", "1", "$name_str", $blocks);
Если это конечно не то же самое :)

#3 jr228

jr228

    Активный участник

  • Пользователи
  • PipPipPip
  • 110 сообщений
  • Пол:Мужчина
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 22 October 2012 - 22:22

ну вот, а дальше то как?)
в странице 2 еще одна страница, как это сделать?

#4 jr228

jr228

    Активный участник

  • Пользователи
  • PipPipPip
  • 110 сообщений
  • Пол:Мужчина
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 22 October 2012 - 22:22

или в странице 1

#5 wsok

wsok

    Активный участник

  • Неактивированные
  • PipPipPip
  • 48 сообщений
  • Пол:Мужчина
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 23 October 2012 - 22:03

Просмотр сообщенияjr228 (22 October 2012 - 22:22) писал:

ну вот, а дальше то как?)
в странице 2 еще одна страница, как это сделать?

<?php
if (!defined("IN_MKP")) {
   die ("Sorry !! You cannot access this file directly.");
}
$idx = new mk_mymodul;
class mk_mymodul {
var $tpl	   = "";
	var $cache_sections = array();
	function mk_shop() {
global $mkportals, $DB, $std, $print, $mklib, $Skin, $mklib_board;
  
  switch($mkportals->input['op']) {
default:
$this->main();
break;
case "page":
$this->page();
break;
}
   
	}

function main(){
//---- Индекс модуля... например тут список категорий, например в форме селект, и ведут они на линк
index.php?ind=mymodul&op=main&idcat=1
функция в линке ведет сама на себя, но делает активной переменную idcat, в нашем случае значение 1, что происходит?
Если переменная активна, то выводит список страниц из этой категории....заголовки страниц имеют линки вида
index.php?ind=mymodul&op=main&p=12

жмем и попадаем в функцию ниже
}
function page(){
Выводим страницу соответствующую условию:
p == 12
}
}

Как бы такой вариант, уверен можно и чуточку иначе. но смысл примерно тот же )

#6 jr228

jr228

    Активный участник

  • Пользователи
  • PipPipPip
  • 110 сообщений
  • Пол:Мужчина
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 25 October 2012 - 22:18

Цитата

//---- Индекс модуля... например тут список категорий, например в форме селект, и ведут они на линк

тут по-подробнее можно?)

#7 jr228

jr228

    Активный участник

  • Пользователи
  • PipPipPip
  • 110 сообщений
  • Пол:Мужчина
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 25 October 2012 - 22:22

не получается что-то, немогли бы вы просто сделать пример?)

#8 jr228

jr228

    Активный участник

  • Пользователи
  • PipPipPip
  • 110 сообщений
  • Пол:Мужчина
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 25 October 2012 - 23:03


		function page()
	{
	
		$output .= "123";

		if ($p == 12)
		{
		$output .= "1";
		}
		else
		$output .= "2";
		
		$blocks .= $Skin->view_block("$title", $output);
		$mklib->printpage("1", "1", "$title", $blocks);	
	}
по сылке который вы указывали последней должен переходить на страницу 12, но перемещаюсь на главную сайта

#9 Снеговик

Снеговик

    Активный участник

  • Модераторы
  • PipPipPip
  • 1679 сообщений
  • Пол:Мужчина
  • Форум:IPB 2.3.x
  • Версия MKP:C1.2.2 R0.0.2

Отправлено 26 October 2012 - 15:25

<?php
if (!defined("IN_MKP")) {
die ("Sorry !! You cannot access this file directly.");
}
$idx = new mk_mymodul;
class mk_mymodul {
var $tpl = "";
var $cache_sections = array();
function mk_shop() {
global $mkportals, $DB, $std, $print, $mklib, $Skin, $mklib_board;

switch($mkportals->input['op']) {
default:
$this->main();
break;
case "page":
$this->page();
break;
}

}

function main(){
switch($mkportals->input['stranica']) {
case '1':
$output="то что загрузится по адресу /index.php?ind=имямодуля&op=main&stranica=1";
$name_str="страница 1";
break;

case '2':
$output="то что загрузится по адресу /index.php?ind=имямодуля &op=main& &stranica=2";
$name_str="страница 2";
break;
default:
$output="то что загрузится по адресу /index.php?ind=имямодуля&op=main";
$name_str="страница по умолчанию";
break;
}

}

function page(){

}
}


#10 jr228

jr228

    Активный участник

  • Пользователи
  • PipPipPip
  • 110 сообщений
  • Пол:Мужчина
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 26 October 2012 - 23:27

спс снеговик :)Далее возник еще вопрос, как сделать чтобы записи выбранные из бд повторялись именно в таком ввиде.Вот мой код


function onecategory()
{

global $mkportals, $DB, $Skin, $print, $mklib, $mklib_board;
$query = $DB->query("SELECT * FROM my_table ORDER BY `catid` DESC");
$row = $DB->fetch_row($query);
$catid = $row['catid'];
$name2 = $row['name2'];
$name3 = $row['name3'];
$cat_title = $row['cat_title'];

$title.="Test Category";

switch($mkportals->input['catid'])
{
case $category_page:
$output="$name1";
$cat_title="- $cat_title";
break;
default:
$output=
"
<tr class='cats'>
<td id='list'> $name2 </td>
<td id='list'> <a href='/index.php?ind=mymodule&categorys=onecategory&catid=$catid'>Подробнее</a> </td>
</tr>
";
break;
}



$blocks .= $Skin->view_block("$title $cat_title", $output);
$mklib->printpage("1", "1", "$title", $blocks);

}


Сообщение отредактировал jr228: 26 October 2012 - 23:27


#11 Снеговик

Снеговик

    Активный участник

  • Модераторы
  • PipPipPip
  • 1679 сообщений
  • Пол:Мужчина
  • Форум:IPB 2.3.x
  • Версия MKP:C1.2.2 R0.0.2

Отправлено 27 October 2012 - 15:43



function onecategory()
{



$title.="Test Category";

switch($mkportals->input['catid'])
{
case $category_page:
$output="$name1";
$cat_title="- $cat_title";
break;
default:
global $mkportals, $DB, $Skin, $print, $mklib, $mklib_board;
$query = $DB->query("SELECT * FROM my_table ORDER BY `catid` DESC");
while( $row = $DB->fetch_row($query)) {
$catid = $row['catid'];
$name2 = $row['name2'];
$name3 = $row['name3'];
$cat_title = $row['cat_title'];

$output=
"
<tr class='cats'>
<td id='list'> $name2 </td>
<td id='list'> <a href='/index.php?ind=mymodule&categorys=onecategory&catid=$catid'>Подробнее</a> </td>
</tr>
";

}
break;
}



$blocks .= $Skin->view_block("$title $cat_title", $output);
$mklib->printpage("1", "1", "$title", $blocks);

}



#12 Гостья

Гостья

    Активный участник

  • Пользователи
  • PipPipPip
  • 423 сообщений
  • Пол:Женщина
  • Форум:Нет
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 31 October 2012 - 14:46

а ни у кого нету модуля массовой рассылки сообщения пользователям, но чтоб он рассылал от имени сайта, а не от имени форума, к которому прикручен сайт?

#13 jr228

jr228

    Активный участник

  • Пользователи
  • PipPipPip
  • 110 сообщений
  • Пол:Мужчина
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 07 November 2012 - 20:50

Снеговик ты видимо не понял меня :)
Я имел ввиду чтобы было так
Изображение
примерно так :) Это все по страницам

#14 jr228

jr228

    Активный участник

  • Пользователи
  • PipPipPip
  • 110 сообщений
  • Пол:Мужчина
  • Форум:IPB 3.2, IPB 3.1
  • Версия MKP:R1.0.2, R1.0.1

Отправлено 07 November 2012 - 22:42

и как еще сделать чтобы выводились все записи в бд, а не только одна

#15 Снеговик

Снеговик

    Активный участник

  • Модераторы
  • PipPipPip
  • 1679 сообщений
  • Пол:Мужчина
  • Форум:IPB 2.3.x
  • Версия MKP:C1.2.2 R0.0.2

Отправлено 17 November 2012 - 15:22

$idx = new mk_s;
class mk_s {



function mk_s() {

global $mkportals, $mklib, $Skin;


switch($mkportals->input['op']) {



case 'show':
$this->show();
break;

case 'cat':
$this->cat();
break;
default:
$this->main();
break;
}
}

function main() {
global $mkportals, $DB, $std, $print, $mklib, $Skin, $mklib_board;

$output="
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\">
<tr class='cats'>
<td id='list'> КАТЕГОРИИ</td>
</tr>
";

}
// выбираем из бд категории

$query = $DB->query("SELECT * FROM my_table_cat ORDER BY `id` DESC");
while( $row = $DB->fetch_row($query)) {
$id = $row['id'];
$name = $row['name'];


$output="
<tr class='cats'>
<td id='list'> <a href='/index.php?ind=mymodule&amp;op=cat&amp;iden=$id'>$name</a> </td>
</tr>
";

}

$output="
</table>
";


$blocks .= $Skin->view_block("{$mklib->lang['qu_pagetitle']}", $output);
$mklib->printpage("1", "1", $mklib->sitename.$name, $blocks);
}


function cat() {
global $mkportals, $DB, $std, $print, $mklib, $Skin, $mklib_board;
$ide = intval($mkportals->input['iden']);

$output="
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\">

";

}
// выбираем из бд статьи данной категории

$query = $DB->query("SELECT * FROM my_table WHERE catid=$ide ORDER BY `id` DESC");

while( $row = $DB->fetch_row($query)) {
$id = $row['id'];
$name = $row['name'];


$output=
"
<tr class='cats'>
<td id='list'> $name </td>
<td id='list'> <a href='/index.php?ind=mymodule&amp;op=show&amp;ide=$id'>Подробнее</a> </td>
</tr>
";

}

$output="
</table>
";


$blocks .= $Skin->view_block("{$mklib->lang['qu_pagetitle']}", $output);
$mklib->printpage("1", "1", $mklib->sitename.$name, $blocks);
}


function show() {
global $mkportals, $DB, $std, $print, $mklib, $Skin, $mklib_board;
$ide = intval($mkportals->input['ide']);

$output="
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"4\">

";

}
// выводим выбранную статью

$query = $DB->query("SELECT * FROM my_table WHERE id=$ide ");

$row = $DB->fetch_row($query);
$id = $row['id'];
$name = $row['name'];
$descr = $row['descr'];


$output=
"
<tr '>
<td id='list'><h2> $name </h2></td>
</tr>
<tr >
<td id='list'>$descr </td>
</tr>

";




$output="
</table>
";


$blocks .= $Skin->view_block("{$mklib->lang['qu_pagetitle']}", $output);
$mklib->printpage("1", "1", $mklib->sitename.$name, $blocks);
}

}




Ответить



  


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных