IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Цель magistra_yoda № 1 - сделать сайт Доску объявлений
magistr_yoda
сообщение 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  


Еда, молодец! Давно уже никакого нормального движняка тут не было! Один срач, епт! Так глядишь и другие чуваки подключатся, опять нормальные дневники заведут, отписываться о сделанном будут! А не просто срать все и вся. Ты подаешь хороший пример! Давно бы так!
Перейти в начало страницы
 
+Цитировать сообщение
magistr_yoda
сообщение 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;
}
Перейти в начало страницы
 
+Цитировать сообщение
magistr_yoda
сообщение 3.5.2012, 7:51
Сообщение #4


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

Группа: Главные администраторы
Сообщений: 9370
Регистрация: 9.5.2008
Из: Классное место
Пользователь №: 1



Репутация:   296  


Роутер пока решил оставить как есть, так как у меня ещё нет ясного понимания как должна быть организована его работа, из за этого путаюсь, а время идёт. Начал делать другие вещи. Нафиг нафиг перфекционизм.
Перейти в начало страницы
 
+Цитировать сообщение
magistr_yoda
сообщение 29.5.2012, 20:06
Сообщение #5


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

Группа: Главные администраторы
Сообщений: 9370
Регистрация: 9.5.2008
Из: Классное место
Пользователь №: 1



Репутация:   296  


Неуспел сделать. Долго провозился с ошибками.
Завтра начинаю жрать рис.
Перейти в начало страницы
 
+Цитировать сообщение
Shubbi
сообщение 29.5.2012, 20:59
Сообщение #6


Очень активный
****

Группа: Пользователи
Сообщений: 468
Регистрация: 29.11.2011
Пользователь №: 3414



Репутация:   16  


Когда будет готов? Приблизительно?
Перейти в начало страницы
 
+Цитировать сообщение
magistr_yoda
сообщение 29.5.2012, 22:48
Сообщение #7


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

Группа: Главные администраторы
Сообщений: 9370
Регистрация: 9.5.2008
Из: Классное место
Пользователь №: 1



Репутация:   296  


Цитата(Shubbi @ 29.5.2012, 20:59) *
Когда будет готов? Приблизительно?


Незнаю, вышла новая версия adsmanager 2.7(с метатегами), я на неё перенёс изменения, которые делал на версии 2.6.5 - некоторые вещи которые работали, сейчас не работают, надо опять ковыряться в коде и искать ошибки.
Перейти в начало страницы
 
+Цитировать сообщение
Shubbi
сообщение 30.5.2012, 22:22
Сообщение #8


Очень активный
****

Группа: Пользователи
Сообщений: 468
Регистрация: 29.11.2011
Пользователь №: 3414



Репутация:   16  


ясно.. значит на месяц задержка?
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Сейчас: 28.3.2024, 19:39

Пикап(pick up), Соблазнение, Отношения, Личностный Рост, Бизнес, Предпринимательство, Лидерство, Менеджмент, Маркетинг, НЛП, Психотехнологии, Уникальные материалы и авторские статьи, Ответы профессионалов, Рекомендации мастеров, Ответы на ваши вопросы, Мотивирующее окружение, Хорошая среда для вас
Добро пожаловать на форум Будь Альфой.


Яндекс.Метрика