<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

В рамках упражнений курса Вы параллельно со мной будете создавать свою большую программу на Java, что даст Вам необходимую практику, после которой для Вас уже не будет разницы, какого размера создавать программы.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Написание модуля для Joomla 2.5!
03.02.2013 21:41:11 Написание модуля для Joomla 2.5! Сообщение #1
WhiteEasyBoy

WhiteEasyBoy

Новичок

Новичок

Дата регистрации:
03.02.2013 21:23:13

Сообщений: 3

Здравствуйте!
Вторые сутки бьюсь над скриптом, ничего не выходит!
Идея скрипта такова:
Это модуль для Joomlы. Необходимо создать модуль, который выводит на сайте таблицу с расписанием. В таблице всего две колонки - Время и название трансляции матча. Необходимо, чтобы время (которое прошло или равно текущему) становилось неактивным (ячейка закрашивалась темным прозрачным фоном), а время , которое еще не наступило - было активным (ячейка закрашивалась оранжевым прозрачным фоном)
Я реализовал этот модуль в обход базы данных - написал в модуле форму для заполнения, а сам скрипт - php команды для вывода таблицы, причем там в каждой ячейке с помощью php идет сравнение времени и ячейка закрашивается определенным цветом. НО! Таблица выводится полностью как запрограммирована (т.е. есть 7 строк и выводятся все 7, несмотря на то, что админ заполнил всего 3 поля, причем пустые поля тоже закрашиваютя)А надо чтобы таблица выводилась в цикле с помощью БД! Это я тоже реализовал, однако прикрутить скрипт замены цвета фона уже не получается. Короче нужно чтобы в таблице выводились только заполненые поля и закрашивались определенным цветом в зависимости от времени и чтобы это был модуль. Вот такая замаруха.
Жаль у вас нельзя выкладывать файлы, я бы выложил архив модуля. Ну даладно приведу ниже код:
файл XML


<?xml version ="1.0" encoding ="utf-8"?>
<extension type = "module" version = "2.5.0" method="upgrade">
<name>Raspisanie</name>
<author>Alexey Noskovich</author>
<authorUrl>http://www.site.ru</authorUrl>
<version>1.0</version>
<description>Raspisanie</description>
<files>
<filename module = "mod_raspisanie">mod_raspisanie.php</filename>
<filename>mod_raspisanie.xml</filename>
</files>
<config>
<fields name="params">
<fieldset name ="basic">
<field name = "description" type = "text" size="40px" label = "Введите название/описание блока"/>
<field name = "timematch" type = "text" label = "1.Время (формат-23:59)" description ="Укажите время начала трансляции матча"/>
<field name = "title" type = "textarea" cols="30" rows="2" label = "Название матча" description = "Укажите название матча"/>
<field name = "timematch1" type = "text" label = "2.Время" description ="Укажите время начала трансляции матча"/>
<field name = "title1" type = "textarea" cols="30" rows="2" label = "Название матча" description = "Укажите название матча"/>
<field name = "timematch2" type = "text" label = "3.Время" description ="Укажите время начала трансляции матча"/>
<field name = "title2" type = "textarea" cols="30" rows="2" label = "Название матча" description = "Укажите название матча"/>
<field name = "timematch3" type = "text" label = "4.Время" description ="Укажите время начала трансляции матча"/>
<field name = "title3" type = "textarea" cols="30" rows="2" label = "Название матча" description = "Укажите название матча"/>
<field name = "timematch4" type = "text" label = "5.Время" description ="Укажите время начала трансляции матча"/>
<field name = "title4" type = "textarea" cols="30" rows="2" label = "Название матча" description = "Укажите название матча"/>
<field name = "timematch5" type = "text" label = "6.Время" description ="Укажите время начала трансляции матча"/>
<field name = "title5" type = "textarea" cols="30" rows="2" label = "Название матча" description = "Укажите название матча"/>
<field name = "timematch6" type = "text" label = "7.Время" description ="Укажите время начала трансляции матча"/>
<field name = "title6" type = "textarea" cols="30" rows="2" label = "Название матча" description = "Укажите название матча"/>

</fieldset>
<fieldset name ="advanced">

<field name = "tablealign" type = "text" label = "Выравнивание таблицы на странице" description = "Выравнивание может принимать три значения - left, right, center или Вы можете указать обсолютное позиционирование в таблице стилей"/>
<field name = "tablewidth" type = "text" label = "Ширина всей таблицы (в % или в px)" description = "Укажите ширину всей таблицы в процентах или в пикселях"/>
<field name = "width1" type = "text" label = "Ширина первого столбца (в % или в px)" description ="Укажите ширину первого столбца в процентах или в пикселях"/>
<field name = "width2" type = "text" label = "Ширина второго столбца (в % или в px)" description = "Укажите ширину второго столбца в процентах или в пикселях"/>
<field name = "info" type = "textarea" label = "Дополнительная информация!" value = "Форматирование стилей таблицы производить в файле syule.css! Там три класса, меняйте их свойства на свой вкус и цвет "/>

</fieldset>
</fields>
</config>
</extension>


Файл php

<link href="css/style.css" rel="stylesheet" type="text/css" />
<?php
defined('_JEXEC') or die ("Restricted access";
$description = $params->get("description";
$timematch = $params->get("timematch";
$title = $params->get("title";
$timematch1 = $params->get("timematch1";
$title1 = $params->get("title1";
$timematch2 = $params->get("timematch2";
$title2 = $params->get("title2";
$timematch3 = $params->get("timematch3";
$title3 = $params->get("title3";
$timematch4 = $params->get("timematch4";
$title4 = $params->get("title4";
$timematch5 = $params->get("timematch5";
$title5 = $params->get("title5";
$timematch6 = $params->get("timematch6";
$title6 = $params->get("title6";


$tablewidth = $params->get("tablewidth";
$width1 = $params->get("width1";
$width2 = $params->get("width2";
$tablealign = $params->get("tablealign";

$time = date("H:i";
$class1 = "unactive";
$class2 ="active";
$class3 = "default";
?>
<p>
<h4 align="center"><? echo $description ?></h4>
<table class="img_border" width="<? echo $tablewidth; ?>" align="<? echo $tablealign; ?>">
<tbody>
<tr>
<td class="<?
if ($timematch <= $time) {echo $class1;}
else if ($timematch > $time) {echo $class2;}
else if ($timematch == "" {echo $class3;}
?>" width="<? echo $width1; ?>"><? echo $timematch; ?></td>
<td width="<? echo $width2; ?> style="padding-left: 20px;"><? echo $title ?></td>
</tr>
<tr>
<td class="<?
if ($timematch1 <= $time) {echo $class1;}
else if ($timematch1 > $time) {echo $class2;}
else if ($timematch1 == "" {echo $class3;}
?>" width="<? echo $width1; ?>"><? echo $timematch1; ?></td>
<td width="<? echo $width2; ?> style="padding-left: 20px;"><? echo $title1 ?></td>
</tr>
<tr>
<td class="<?
if ($timematch2 <= $time) {echo $class1;}
else if ($timematch2 > $time) {echo $class2;}
else if ($timematch2 == "" {echo $class3;}
?>" width="<? echo $width1; ?>"><? echo $timematch2; ?></td>
<td width="<? echo $width2; ?> style="padding-left: 20px;"><? echo $title2 ?></td>
</tr>
<tr>
<td class="<?
if ($timematch3 <= $time) {echo $class1;}
else if ($timematch3 > $time) {echo $class2;}
else if ($timematch3 == "" {echo $class3;}
?>" width="<? echo $width1; ?>"><? echo $timematch3; ?></td>
<td width="<? echo $width2; ?> style="padding-left: 20px;"><? echo $title3 ?></td>
</tr>
<tr>
<td class="<?
if ($timematch4 <= $time) {echo $class1;}
else if ($timematch4 > $time) {echo $class2;}
else if ($timematch4 == "" {echo $class3;}
?>" width="<? echo $width1; ?>"><? echo $timematch4; ?></td>
<td width="<? echo $width2; ?> style="padding-left: 20px;"><? echo $title4 ?></td>
</tr>
<tr>
<td class="<?
if ($timematch <= $time) {echo $class1;}
else if ($timematch5 > $time) {echo $class2;}
else if ($timematch5 == "" {echo $class3;}
?>" width="<? echo $width1; ?>"><? echo $timematch5; ?></td>
<td width="<? echo $width2; ?> style="padding-left: 20px;"><? echo $title5 ?></td>
</tr>
<tr>
<td class="<?
if ($timematch6 <= $time) {echo $class1;}
else if ($timematch6 > $time) {echo $class2;}
else if ($timematch6 == "" {echo $class3;}
?>" width="<? echo $width1; ?>"><? echo $timematch6; ?></td>
<td width="<? echo $width2; ?> style="padding-left: 20px;"><? echo $title6 ?></td>
</tr>
</tbody>
</table>

Файл стилей

.default {
background: none #FFFFFF;
}
.unactive {
background: url(transparent.png) repeat;
}

.active {
background: url(recommended_bg1.png) repeat;
}


И не могли бы вы исправить мой логин на WhiteEasyBoy, я ошибся при регистрации.
Спасибо.
Профиль Ответить
04.02.2013 13:15:38 Написание модуля для Joomla 2.5! Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

В цикле надо всё делать, а не создавать кучу if и 7 строк. А уже в цикле проверять, заполнено поле или нет, и если не заполнено, то выходить из цикла, больше строк не будет.
Логин поменял.
Профиль Ответить
04.02.2013 16:55:57 Написание модуля для Joomla 2.5! Сообщение #3
WhiteEasyBoy

WhiteEasyBoy

Новичок

Новичок

Дата регистрации:
03.02.2013 21:23:13

Сообщений: 3

Михаил здравствуйте. Так в том то и все дело, что в цикле php конструкции не работают! Ну например :

<?php
do
{
printf ("<tr><td class='<?if ($myrow['timematch'] < $time) {$class = $class1;}
else if ($myrow['timematch"'] > $time) {$class = $class2;}?>
'>%s</td><td>%s</td></tr>", $myrow["timematch"], $myrow["title"] );
}
while ($myrow = mysql_fetch_array ($result));
}
?>


Не сработает! Пробывал выносить результат в переменную , вот так :

<?
$class1 = "unactive";
$class2 ="active";

if ($myrow["timematch"] < $time) {$class = $class1;}
else if ($myrow["timematch"] > $time) {$class = $class2;}
do
{
printf ("<tr><td class='$class'>%s</td><td>%s</td></tr>", $myrow["timematch"], $myrow["title"] );
}
while ($myrow = mysql_fetch_array ($result));
}
?>


Результат - выводит только один стиль форматирования, который сработал от определения значения первого столбца и этот класс автоматом присвоился другим столбцам, несмотря на то, что вних другие значения соответствующие другому условию.
Профиль Ответить
04.02.2013 20:55:17 Написание модуля для Joomla 2.5! Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Думаю, что if надо как-то внутрь цикла поместить. А вообще странно, что возникают такие ошибки, рекомендую вот это почитать: http://myrusakov.ru/how-programming.html
И начать заново, двигаясь малюсенькими шажочками.
Профиль Ответить
04.02.2013 21:24:52 Написание модуля для Joomla 2.5! Сообщение #5
WhiteEasyBoy

WhiteEasyBoy

Новичок

Новичок

Дата регистрации:
03.02.2013 21:23:13

Сообщений: 3

Да уж. Я так и делал как написано в статье - после каждой команды выводил переменные, убеждался что все передается. Однако результат один - скрипт не работает полноценно. Увы.
Профиль Ответить