<MyRusakov.ru />

Профессия Web-разработчик

Профессия Web-разработчик

Этот комплект за 8 месяцев превратит Вас в Web-разработчика с нуля. Учиться достаточно 1 час в день.

Начнёте Вы с HTML, CSS и вёрстки сайтов. Потом перейдёте к программированию и JavaScript. Затем изучите PHP, MySQL, SQL, Python. Изучите Web-фреймворки Laravel и Django. Создадите 5 своих сайтов для портфолио.

Комплект содержит:

- 540 видеоуроков

- 110 часов видео

- 1205 заданий для закрепления материала из уроков

- 5 финальных тестов

- 7 сертификатов

- 12 Бонусных курсов

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

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

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

Подписавшись по 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

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