Помогите из скрипта сделать модуль

Есть скрипт вывода данных - нужно сделать модуль

#31 4 апреля 2013 в 06:51
Максим Шорин, это было в первоначальном скрипте. Не знаю какую смысловую нагрузку несло это условие, но я убрал. Я же говорил что все не так плохо. Когда то давно я программировал, но с веб-программированием первый раз столкнулся. Да и вообще давно не занимался этим.
#32 4 апреля 2013 в 07:55
итак...
Во-первых, ВСЕХ С ПРАЗДНИКОМ!
Во-вторых, как и обещал...
Собственно сам скрипт
  1. <?php
  2. function mod_vetotden($module_id){
  3. $h=date("dm");
  4. $d=date("d.m.Y");
  5. if(file_exists("modules/mod_vetotden/$h.txt")){
  6. {$f=file("modules/mod_vetotden/$h.txt");
  7. for($i=0;$i<count($f);$i++)
  8. {list($date)=split("::",$f[$i]);
  9. $k=1+$i;
  10. echo "$date<br>";}}
  11. }
  12. else{
  13. echo 'ничего не произошло';
  14. }
  15. return true;
  16. }
  17. ?>
Думаю описание уже не нужно! Модуль в таком "деревянном виде" готов на 100% (включая установщик)
Почему работа с файлами? Мне так удобнее на данный момент!
Почему много файлов, а не один с датами? Мне так удобнее, да и не только мне, думаю, если кто-то еще установит!
Готов выслушать критику!
И еще...
Стоит ли ради этих "полутора строк кода" заводить блог?
#33 4 апреля 2013 в 07:56
Модуль на моем сайте in-army.com/ в левой колонке
#34 4 апреля 2013 в 09:17
Найди различия:

  1. function mod_vetotden($module_id) {
  2.  
  3. $h = date('dm');
  4.  
  5. if (file_exists(PATH . 'modules/mod_vetotden/' . $h . '.txt')) {
  6.  
  7. $f = file(PATH . 'modules/mod_vetotden/' . $h . '.txt');
  8.  
  9. for ($i = 0; $i < count($f); $i++) {
  10.  
  11. list($date) = split("::", $f[$i]);
  12. echo $date . '<br />';
  13. }
  14. } else {
  15.  
  16. echo 'ничего не произошло';
  17. }
  18. return true;
  19. }
А вообще код в цикле меня тоже смущает. Что то там не то по логике, особо не вникал.
#35 4 апреля 2013 в 09:58

Найди различия:

Anor
Итак...
1. Убрал лишнюю строчку
  1. $d=date("d.m.Y");
Согласен. Не увидел, что смысловой нагрузки она не несет!
2. Табуляции при циклах, условиях и прочих вложенностях в коде...
Поймите, это мой первый рабочий скрипт на php (пусть основа взята с готового, пусть с использованием миллиона советов, но я его доделывал и я его понимаю). Это мой первый модуль для InstanCMS. И красота кода на текущий момент стоит у меня на последнем месте!
3. Самое интересное
разница между
  1. if(file_exists("modules/mod_vetotden/$h.txt")){
и
  1. if (file_exists(PATH . 'modules/mod_vetotden/' . $h . '.txt')) {
в чем разница? более правильный синтаксис? РЕЗУЛЬТАТ ОДИН!
Хотя, если я не прав, поправьте пожалуйста!
#36 4 апреля 2013 в 10:20
Правильно путь указывать от корня. Изначально он указан относительный.
Возможно в данном случае это роли не играет, но в других скриптах это может привести к фатальным ошибкам.
Нужно просто это принять за правило.
#37 4 апреля 2013 в 10:23
NetBeans IDE здорово помогает в вылавливании ошибок и недочетов.
Негоже в блокнотике писать, от этого почти все ошибки.
Вот лишнюю строчку $k=1+$i; до сих пор вы не заметили наверно.
#39 4 апреля 2013 в 10:26

Вот лишнюю строчку $k=1+$i; до сих пор вы не заметили наверно.

Anor
и правда не заметил! спасибо!

NetBeans IDE здорово помогает в вылавливании ошибок и недочетов.

Anor
спасибо за совет! правда, пишу в блокноте (хоть и ++)
#40 4 апреля 2013 в 10:30

Еще очень помогает придерживаться вот этих соглашений:

Anor
это я читал, но это следующий этап!
Если я напишу, что-то достойное паблика
#41 4 апреля 2013 в 10:34
А по вашему моду можно сделать вот так:
  1. function mod_vetotden($module_id) {
  2.  
  3. if (file_exists(PATH . 'modules/mod_vetotden/' . date('dm') . '.txt')) {
  4.  
  5. echo file_get_contents(PATH . 'modules/mod_vetotden/' . date('dm') . '.txt');
  6.  
  7. } else {
  8.  
  9. echo 'ничего не произошло';
  10. }
  11. return true;
  12. }
Только файл с данными привести вот к такому виду:
  1. <p>text 1</p>
  2. <p>text 2</p>
  3. <p>text 3</p>
#42 4 апреля 2013 в 10:43
А вот так вообще кошерно:
  1. function mod_vetotden($module_id) {
  2.  
  3. $file = PATH . '/modules/mod_vetotden/' . date('dm') . '.txt';
  4.  
  5. if (file_exists($file)) {
  6.  
  7. echo file_get_contents($file);
  8.  
  9. } else {
  10.  
  11. echo 'ничего не произошло';
  12. }
  13. return true;
  14. }
Я бы остановился на этом варианте.
Хотя можно еще проверку сделать на отсутствие данных в файле.
#43 4 апреля 2013 в 10:45

А по вашему моду можно сделать вот так:

Anor
Конечно, так удобнее! Меньше переменных, массивов и прочего, меньше кода...
Но это уже оптимизация!
Когда нибудь я тоже дойду до оптимального кода )))
А пока спасибо за советы и помощь!
#44 4 апреля 2013 в 10:47
я одно понять не могу...
чем
  1. '/modules/mod_vetotden/' . date('dm') . '.txt'
лучше чем
  1. "modules/mod_vetotden/$h.txt"
?
#45 4 апреля 2013 в 10:52
Понятливостью. что есть $h можно сразу и не понять. Не заметить даже при беглом просмотре кода.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.