Цель magistra_yoda № 1 - сделать сайт Доску объявлений |
Здравствуйте, гость ( Вход | Регистрация )
Цель magistra_yoda № 1 - сделать сайт Доску объявлений |
29.4.2012, 15:18
Сообщение
#1
|
|
Администратор Группа: Главные администраторы Сообщений: 9370 Регистрация: 9.5.2008 Из: Классное место Пользователь №: 1 Репутация: 296 |
Давно хотел сделать этот сайт, начал, уже часть сделал, но потом забросил.
Сейчас хочу всё доделать. Срок месяц. До 30 мая 2012 года, я опубликую в эту тему, урл своего готового сайта доски объявлений. Также буду отписываться в этот журнал, помере работы над проектом. В качестве площадки выбрал joomla 2.5 и adsmanager последней стабильной версии. То что хочу сделать, выходит за рамки стандартного компонента, поэтому надо руками программировать. Если до 30 мая не успею сделать сайт и стартануть его на хостинге, куплю рис и буду жрать два дня только рисовую кашу без ничего - фубля. |
|
|
29.4.2012, 15:32
Сообщение
#2
|
|
Участник Группа: Пользователи Сообщений: 11 Регистрация: 11.5.2011 Пользователь №: 2818 Репутация: 1 |
Еда, молодец! Давно уже никакого нормального движняка тут не было! Один срач, епт! Так глядишь и другие чуваки подключатся, опять нормальные дневники заведут, отписываться о сделанном будут! А не просто срать все и вся. Ты подаешь хороший пример! Давно бы так!
|
|
|
30.4.2012, 21:34
Сообщение
#3
|
|
Администратор Группа: Главные администраторы Сообщений: 9370 Регистрация: 9.5.2008 Из: Классное место Пользователь №: 1 Репутация: 296 |
Сегодня проектировал роутер адовоменеджера, бля как же нечитабельно и неизменяемо он написан...
Вообще как то по дибильному, используются какие то криворукие массивы, откуда вытаскиваются значения по их порядковому номеру $nbsegments = count($segments);, из за чего если в урл добавляется дополнительный параметр(ы) надо в условии делать поправку на их количество. Нет бы сделали именнованные, тогда бы было просто if($url->catid = 3){... Вот как выглядит говнокод этого роутера Цитата <?php
/** * @package AdsManager * @copyright Copyright © 2010-2011 JoomPROD.com. All rights reserved. * @license GNU/GPL */ jimport( 'joomla.filter.output' ); function getAdsmanagerRouteCategory($id) { $db = &JFactory::getDBO(); $sql = "SELECT name FROM #__adsmanager_categories WHERE id = ".(int)$id; $db->setQuery($sql); $result = str_replace(array(" ",":","/"),array("-","-","-"),$db->loadResult()); $result= JFilterOutput::stringURLSafe($result); $result = substr($result,0,30); return $result; } function getAdsmanagerRouteContent($id) { $db = &JFactory::getDBO(); $sql = "SELECT ad_headline FROM #__adsmanager_ads WHERE id = ".(int)$id; $db->setQuery($sql); $result = str_replace(array(" ",":","/"),array("-","-","-"),$db->loadResult()); $result= JFilterOutput::stringURLSafe($result); $result = substr($result,0,30); return $result; } function getAdsmanagerUser($userid) { $db = &JFactory::getDBO(); $sql = "SELECT username FROM #__users WHERE id = ".(int)$userid; $db->setQuery($sql); $result = str_replace(array(" ",":","/"),array("-","-","-"),$db->loadResult()); $result= JFilterOutput::stringURLSafe($result); $result = substr($result,0,30); return $result; } function AdsmanagerBuildRoute(&$query) { $segments = array(); if (!isset($query['task'])) $t = ""; else $t = $query['task']; switch($t) { case "display": case "": if (!isset($query['view'])) $v = ""; else $v = $query['view']; switch($v) { case "details": $segments[] = $query["catid"]."-".getAdsmanagerRouteCategory($query["catid"]); $segments[] = $query["id"]."-".getAdsmanagerRouteContent($query["id"]); unset($query["id"]); unset($query["catid"]); unset($query["task"]); unset($query["view"]); break; case "expiration": $segments[] = $query["id"]."-".getAdsmanagerRouteContent($query["id"]); $segments[] = JText::_('ADSMANAGER_SEF_EXPIRATION'); unset($query["id"]); unset($query["task"]); unset($query["view"]); break; case "front": unset($query["task"]); unset($query["view"]); break; case "list": if (isset($query["catid"])&&($query["catid"] != 0)) { $segments[] = $query["catid"]."-".getAdsmanagerRouteCategory($query["catid"]); } else if (isset($query["user"])&&($query["user"] != 0)) { $segments[] = JText::_('ADSMANAGER_SEF_USER'); $segments[] = $query["user"]."-".getAdsmanagerUser($query["user"]); } else if (isset($query["user"])) { $segments[] = JText::_('ADSMANAGER_SEF_USER'); } else { $segments[] = JText::_('ADSMANAGER_SEF_ALL_ADS'); } unset($query["user"]); unset($query["catid"]); unset($query["task"]); unset($query["view"]); break; case "login": $segments[] = JText::_('ADSMANAGER_SEF_LOGIN'); unset($query["task"]); unset($query["view"]); break; case "message": $segments[] = $query["catid"]."-".getAdsmanagerRouteCategory($query["catid"]); $segments[] = $query["contentid"]."-".getAdsmanagerRouteContent($query["contentid"]); $segments[] = JText::_('ADSMANAGER_SEF_CONTACT'); unset($query["contentid"]); unset($query["catid"]); unset($query["task"]); unset($query["view"]); break; case "profile": $segments[] = JText::_('ADSMANAGER_SEF_PROFILE'); unset($query["task"]); unset($query["view"]); break; case "result": $segments[] = JText::_('ADSMANAGER_SEF_RESULT'); unset($query["task"]); unset($query["view"]); break; case "rules": $segments[] = JText::_('ADSMANAGER_SEF_RULES'); unset($query["task"]); unset($query["view"]); break; case "search": if (isset($query["catid"])&&($query["catid"] != 0)) { $segments[] = $query["catid"]."-".getAdsmanagerRouteCategory($query["catid"]); } $segments[] = JText::_('ADSMANAGER_SEF_SEARCH'); unset($query["task"]); unset($query["view"]); unset($query["catid"]); break; } break; case "write": if (isset($query["id"])&&($query["id"] != 0)) { if (!isset($query["catid"])) $query["catid"] = 0; $segments[] = $query["catid"]."-".getAdsmanagerRouteCategory($query["catid"]); $segments[] = $query["id"]."-".getAdsmanagerRouteContent($query["id"]); $segments[] = JText::_('ADSMANAGER_SEF_EDIT'); } else { if (isset($query["catid"])) { $segments[] = $query["catid"]."-".getAdsmanagerRouteCategory($query["catid"]); } $segments[] = JText::_('ADSMANAGER_SEF_WRITE'); } unset($query["id"]); unset($query["catid"]); unset($query["task"]); unset($query["view"]); break; break; case "delete": $segments[] = $query["catid"]."-".getAdsmanagerRouteCategory($query["catid"]); $segments[] = $query["id"]."-".getAdsmanagerRouteContent($query["id"]); $segments[] = JText::_('ADSMANAGER_SEF_DELETE'); unset($query["id"]); unset($query["catid"]); unset($query["task"]); unset($query["view"]); break; break; case "save": break; case "saveprofile": break; case "sendmessage": break; case "renew": break; } //unset($query["task"]); //unset($query["view"]); return $segments; } function AdsmanagerParseRoute($segments) { $vars = array(); $lang = JFactory::getLanguage(); $lang->load("com_adsmanager"); //Get the active menu item $menu =& JSite::getMenu(); $item =& $menu->getActive(); $nbsegments = count($segments); if (in_array(JText::_('ADSMANAGER_SEF_RESULT'),$segments)) { $vars["view"] = "result"; } else if (in_array(JText::_('ADSMANAGER_SEF_SEARCH'),$segments)) { $vars["view"] = "search"; $catid = explode( ':', $segments[0] ); $vars['catid'] = (int) $catid[0]; $vars['task'] = "display"; } else if (in_array(JText::_('ADSMANAGER_SEF_EDIT'),$segments)) { $vars["view"] = "edit"; $catid = explode( ':', $segments[0] ); $vars['catid'] = (int) $catid[0]; $id = explode( ':', $segments[1] ); $vars['id'] = (int) $id[0]; $vars['task'] = "write"; } else if (in_array(JText::_('ADSMANAGER_SEF_WRITE'),$segments)) { $vars["view"] = "edit"; $vars['task'] = "write"; $catid = explode( ':', $segments[0] ); $vars['catid'] = (int) $catid[0]; } else if (in_array(JText::_('ADSMANAGER_SEF_DELETE'),$segments)) { $vars["view"] = "edit"; $catid = explode( ':', $segments[0] ); $vars['catid'] = (int) $catid[0]; $id = explode( ':', $segments[1] ); $vars['id'] = (int) $id[0]; $vars['task'] = "delete"; } else if (in_array(JText::_('ADSMANAGER_SEF_EXPIRATION'),$segments)) { $vars["view"] = "expiration"; $id = explode( ':', $segments[0] ); $vars['id'] = (int) $id[0]; $vars['task'] = "display"; } else if (in_array(JText::_('ADSMANAGER_SEF_RULES'),$segments)) { $vars["view"] = "rules"; } else if (in_array(JText::_('ADSMANAGER_SEF_PROFILE'),$segments)) { $vars["view"] = "profile"; } else if (in_array(JText::_('ADSMANAGER_SEF_ALL_ADS'),$segments)) { $vars["view"] = "list"; } else if (in_array(JText::_('ADSMANAGER_SEF_LOGIN'),$segments)) { $vars["view"] = "login"; } else if (in_array(JText::_('ADSMANAGER_SEF_CONTACT'),$segments)) { $vars["view"] = "message"; $catid = explode( ':', $segments[0] ); $vars['catid'] = (int) $catid[0]; $id = explode( ':', $segments[1] ); $vars['contentid'] = (int) $id[0]; $vars['task'] = "display"; } else if (in_array(JText::_('ADSMANAGER_SEF_USER'),$segments)) { $userid = explode( ':', $segments[1] ); $vars['user'] = (int) $userid[0]; $vars['task'] = "display"; $vars['view'] = "list"; } else { if ($nbsegments == 2) { $catid = explode( ':', $segments[0] ); $vars['catid'] = (int) $catid[0]; $id = explode( ':', $segments[1] ); $vars['id'] = (int) $id[0]; $vars["view"] = "details"; } else { $catid = explode( ':', $segments[0] ); $vars['catid'] = (int) $catid[0]; $vars["view"] = "list"; } $vars['task'] = "display"; } return $vars; } |
|
|
3.5.2012, 7:51
Сообщение
#4
|
|
Администратор Группа: Главные администраторы Сообщений: 9370 Регистрация: 9.5.2008 Из: Классное место Пользователь №: 1 Репутация: 296 |
Роутер пока решил оставить как есть, так как у меня ещё нет ясного понимания как должна быть организована его работа, из за этого путаюсь, а время идёт. Начал делать другие вещи. Нафиг нафиг перфекционизм.
|
|
|
29.5.2012, 20:06
Сообщение
#5
|
|
Администратор Группа: Главные администраторы Сообщений: 9370 Регистрация: 9.5.2008 Из: Классное место Пользователь №: 1 Репутация: 296 |
Неуспел сделать. Долго провозился с ошибками.
Завтра начинаю жрать рис. |
|
|
29.5.2012, 20:59
Сообщение
#6
|
|
Очень активный Группа: Пользователи Сообщений: 468 Регистрация: 29.11.2011 Пользователь №: 3414 Репутация: 16 |
Когда будет готов? Приблизительно?
|
|
|
29.5.2012, 22:48
Сообщение
#7
|
|
Администратор Группа: Главные администраторы Сообщений: 9370 Регистрация: 9.5.2008 Из: Классное место Пользователь №: 1 Репутация: 296 |
|
|
|
30.5.2012, 22:22
Сообщение
#8
|
|
Очень активный Группа: Пользователи Сообщений: 468 Регистрация: 29.11.2011 Пользователь №: 3414 Репутация: 16 |
ясно.. значит на месяц задержка?
|
|
|
Сейчас: 25.9.2024, 7:47 |