46
|
Програмиране / Web development / Re: Имам проблем с браузърите
|
-: Oct 04, 2011, 15:12
|
Когато имаш "частични рендери" на View-то (т.е. композитен модел на View-то) таблиците са *изключително* неизползваеми. Дори при 2-steps View е така. Пример: layouts/index.phtml GeSHi (PHP): <div id="ct-wrap"> <div id="ct"> <div id="north"> <?php echo $this->placeholder('logo'); ?> <?php echo $this->placeholder('menu'); ?> <?php echo $this->placeholder('shopping_cart_bar'); ?> <?php echo $this->placeholder('localization'); ?> </div> <div id="banner"> <?php echo $this->placeholder('banner'); ?> </div> <div id="center-ct"> <div id="navlinks"> <div class="breadcrumb"> <?php echo $this->placeholder('navigation_bar'); ?> <?php echo $this->placeholder('share_buttons'); ?> </div> <div id="west"> <?php echo $this->placeholder('sidebar'); ?> </div> <div id="center"> <?php echo $this->placeholder('site_update'); ?> <?php echo $this->placeholder('series'); ?> <?php echo $this->placeholder('models'); ?> <?php echo $this->placeholder('products'); ?> <?php echo $this->placeholder('details'); ?> <?php echo $this->placeholder('shopping_cart'); ?> <?php echo $this->placeholder('related_products'); ?> <?php echo $this->placeholder('order_form'); ?> <?php echo $this->placeholder('order_completed'); ?> <?php echo $this->placeholder('dealer_login'); ?> <?php echo $this->placeholder('search_form'); ?> <?php echo $this->placeholder('contact_us_form'); ?> <?php echo $this->placeholder('inquery_completed'); ?> <?php echo $this->placeholder('header_sub_content'); ?> <?php echo $this->placeholder('page_content'); ?> <?php echo $this->placeholder('footer_sub_content'); ?> </div> <div id="east"></div> <div id="clear"></div> </div> <div id="south"> <?php echo $this->placeholder('footer'); ?> <?php echo $this->placeholder('dealer_bar'); ?> </div> </div> </div>
Прост контролер: GeSHi (PHP): public function siteUpdateAction() { $request = clone $this->getRequest(); $request->setActionName('index') ->setControllerName('side-bar'); $this->_helper->actionStack($request); $request = clone $this->getRequest(); $request->setActionName('bar') ->setControllerName('shopping-cart'); $this->_helper->actionStack($request); $request = clone $this->getRequest(); $request->setActionName('header-menu') ->setControllerName('page'); $this->_helper->actionStack($request); $request = clone $this->getRequest(); $request->setActionName('footer-menu') ->setControllerName('page'); $this->_helper->actionStack($request); $request = clone $this->getRequest(); $request->setActionName('bar') ->setControllerName('dealer'); $this->_helper->actionStack($request); $this->_helper->_layout->setLayout('index'); $this->view->headTitle($this->view->translation->_('MAIN_PAGE_TITLE')); $this->view->render('index/_site-update.phtml'); $this->view->render('index/_logo.phtml'); $this->view->render('index/_localization.phtml'); $this->view->render('index/_banner.phtml'); }
Мога просто да махна (или пробавя) всеки един от последните 4 реда и това няма да ми счупи layout-a.
|
|
|
47
|
Програмиране / Web development / Re: Имам проблем с браузърите
|
-: Oct 03, 2011, 01:45
|
21 век сме, стига с това подреждане на базата на таблици. Таблиците са за таблични данни.
Да ама не... Таблиците са незаменини при подреждане на страници. Опитай се да направиш с DIV/css някоя по-сложна структура/по-сложно подравняване(таблици в таблица, цепене и обединяване на кутийки) и ще стане абсолютна каша.
Няколко пъти сам се пробвал с DIV/css, само нерви,усилия,време - и накрая нищо, най-много да заприлича на нещо но само с един браузер. Търкам всичко правя си го с таблици за 1 час, слагам им css на таблиците и готово. Навсякъде еднакво, става точно това което искаш, кодът разбирем!
То и затова още ги използват. А DIV елемента с css, според мен е нищо повече за пакетиране на поточен текстов блок - така както върви текста/параграфите в едно списание. Кой ли е измислил, че може да се използва и за подравняване
Колкото до това да се изобразява навсякъде еднакво - мисля че няма универсална рецепта. Трябва много добре да се разбират HTML таговете и CSS, да се използват по стандартни опции и всеки един случай да се разрешава индивидулано.
Като има някъде проблем почваш да четеш, намираш къде е проблема, теглиш една ........ на съответният браузер да ти олекне и продължаваш нататък.
Аз лично ( + тримата дизайнери, с които работя) отдавна не ползвам таблици за layout. Таблиците са за таблични данни - +1
|
|
|
51
|
Сигурност / Системна Сигурност / Re: ssh attack
|
-: Aug 30, 2011, 19:41
|
Не зная дали смяташ че е сериозно, паролите ми обикновенно са такива, за щастие и ги помня
То помненето лесно, но писането трудно ... особено когато не виждаш символите.
|
|
|
52
|
Сигурност / Системна Сигурност / Re: ssh attack
|
-: Aug 30, 2011, 09:37
|
В тези iptables команди има нещо гнило. Никой пакет няма да попадне в последните две правила, понеже -j SSH_WHITELIST вече е пратило пакета в друга верига.
Ако няма изпълнение на -j ACCEPT/DROP/REJECT в тази верига пакетът се праща към следващия ред на поредицата от правила, точно след "скока" към веригата
|
|
|
54
|
Linux секция за начинаещи / Настройка на програми / Re: Пускане на няколко програми с едно действие
|
-: Aug 29, 2011, 10:16
|
Благодаря за отговорите.
@tonitochev - това го правех преди, но не е точно това, което искам. Все пак не мога да пускам *всичко*, което ми трябва за *всички* активни проекти при стартиране.
@task_struct - това звучи много добре. А как се оправя "Активността" с приложенията, които не пускат нова инстанция в случай на съществуваща такава? Прим. NetBeans IDE май не може да пусне втори проект в нова инстанция - просто зарежда проекта в текущата инстанция?
Мислех си, че моя скрипт може да се направи реверсивен - при втори клик на иконата да затваря всички spawn-ати процеси.
|
|
|
55
|
Linux секция за начинаещи / Настройка на програми / Пускане на няколко програми с едно действие
|
-: Aug 26, 2011, 09:39
|
Имам следния проблем - работя по няколко проекта едновременно, като разработката на всеки проект се нуждае от няколко софтуерни продукта - прим. NetBeans IDE, MysqlWorkBench, FF + FireBug, различни документации отворени в браузер. Малко досадно ми е всеки път като трябва да си приготвя обкръжението да ги отварям едно по едно, след това да отварям в тях нужните местоположения на файлове/проекти/линкове. Дойде ми идеята за десктоп икони, които да стартират гореизброените неща и да подават нужните параметри. Тъй като съм малко бос в десктоп областта, си реших проблема по мой си начин: /usr/local/bin/multirun GeSHi (Perl): #!/usr/bin/perl use POSIX; sub afork (\@$&) { my ($data, $max, $code) = @_; my $c = 0; foreach my $data (@$data) { wait unless ++ $c <= $max; exit $code -> ($data) unless $pid; } } afork (@ARGV,10,\&run); sub run { my $data = $_[0]; `$data`; }
За всеки проект си създавам bash скрипт (може и в иконата ама е много дълго). Прим.: GeSHi (Bash): #!/bin/bash /usr/local/bin/multirun \ "/usr/local/netbeans-7.0.1/bin/netbeans /www/site/site1" \ "/usr/bin/mysql-workbench /www/site/site1/site1.mwb" \ "firefox -new-window http://site1.work" \ "opera http://dev.sencha.com/deploy/ext-3.3.1/docs/"
И накрая правя икона сочеща към този скрипт. Решението работи, но се чудех дали няма някакво по-елегантно решение с инструментите на Windows manager-a (Gnome в моя случай).
|
|
|
58
|
Програмиране / Web development / Re: Скрипт за сваляне на списък с непрочетени теми от SMF форум (като линукс-бг)
|
-: Aug 24, 2011, 12:55
|
Намерих си един бъг в XSLT-файла - при една страница, няма пейджър и дава празен линк. Поправено: GeSHi (XML): <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" omit-xml-declaration="no" doctype-public="//Netscape Communications//DTD RSS 0.91//EN" doctype-system="http://my.netscape.com/publish/formats/rss-0.91.dtd" indent="yes" /> <xsl:template match="/"> <rss> <channel> <title>Linux за българи: Форум</title> <xsl:apply-templates select="/html/body//table/tr/td/table/tr[position() > 1]/td[position()=3]/a[position()=1]"/> </channel> </rss> </xsl:template> <xsl:template match="a"> <item> <title><xsl:value-of select="." /></title> <link> <xsl:choose> <xsl:when test="../span/a[last()-1]/@href"> <xsl:value-of select="../span/a[last()-1]/@href" /> </xsl:when> <xsl:otherwise> <xsl:value-of select="./@href" /> </xsl:otherwise> </xsl:choose> </link> </item> </xsl:template> </xsl:stylesheet>
GeSHi (PHP): <?php function getContent() { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://www.linux-bg.org/forum/index.php?action=login2'); curl_setopt ($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_POSTFIELDS, 'user=USERNAME&passwrd=PASSWORD'); curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $store = curl_exec ($ch); curl_setopt($ch, CURLOPT_URL, 'http://www.linux-bg.org/forum/index.php?action=unreadreplies'); $content = curl_exec ($ch); curl_close ($ch); return $content; } $html = getContent(); $dom = new DOMDocument(); @$dom->loadHTML($html); $xslDoc = new DOMDocument(); $xslDoc->load("rss.xsl"); $proc = new XSLTProcessor(); $proc->importStylesheet($xslDoc); header("Content-type: application/rss+xml; encoding=utf-8"); echo $proc->transformToXML($dom);
|
|
|
60
|
Програмиране / Web development / Re: Скрипт за сваляне на списък с непрочетени теми от SMF форум (като линукс-бг)
|
-: Aug 23, 2011, 22:23
|
Малко не толковa PHP rss.xsl GeSHi (XML): <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" omit-xml-declaration="no" doctype-public="//Netscape Communications//DTD RSS 0.91//EN" doctype-system="http://my.netscape.com/publish/formats/rss-0.91.dtd" indent="yes" /> <xsl:template match="/"> <rss> <channel> <title>Linux за българи: Форум</title> <xsl:apply-templates select="/html/body//table/tr/td/table/tr[position() > 1]/td[position() = 3]/a[position() = 1]"/> </channel> </rss> </xsl:template> <xsl:template match="a"> <item> <title><xsl:value-of select="." /></title> <link><xsl:value-of select="../span/a[last()-1]/@href" /></link> </item> </xsl:template> </xsl:stylesheet>
GeSHi (PHP): ... $html = curl_get_links(); $dom = new DOMDocument(); @$dom->loadHTML($html); $xslDoc = new DOMDocument(); $xslDoc->load("rss.xsl"); $proc = new XSLTProcessor(); $proc->importStylesheet($xslDoc); echo $proc->transformToXML($dom);
|
|
|
|