Category Archives: Web

Web

php debug na $_FILES

идеята е, че така лесно се дебъгва $_FILES при работа с ajax където не можем да покажем какво се случва през браузъра. Идеята е каквото се случва да се запише във файл. Това е ефективно и като цяло защото позволява записването на масив във файл с един ред :)

file_put_contents('filename.txt', print_r($_FILES, true));

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Скриване на резултати в гугъл сърч по домейн

Идеята е , че при търсене искаме някои резултати от конкретни домейни да не излизат. Ето го и решението:
Необходимо е първо да се инсталира greasemonkey и скрипта: Google Hit Hider by Domain

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

htaccess пренасочване от под домейн към url

Идеята е http://mail.example.com да се пренасочи към http://mail.newdomain.com, но сайта example.com да си работи от съответната root директория.

.htaccess правила:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mail\.example\.com$ [NC]
RewriteRule ^(.*) http://mail.newdomain.com/$1 [L,R]

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

413 Request Entity Too Large в nginx

Защо се случва грешката "413 Request Entity Too Large" в nginx?
В apache2 php е сетнат upload_max_filesize 60 MB , но е забравено в nginx да се сетне client_max_body_size също на 60 MB и затова.

Ето го решението:

Файл: /etc/nginx/sites-enabled/example.com.8133

server
  {
  …
  location /
    {
    …
    client_max_body_size       60m;
    …
    }
  …
  }

Файл: /etc/php5/apache2/php.ini


upload_max_filesize = 60M

/etc/init.d/apache2 reload;
/etc/init.d/nginx reload;

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: -1 (from 1 vote)

ckeditor -- custom toolbar

Ето моите настройки за ckeditor toolbar:

CKEDITOR.replace( 'editor1',{filebrowserBrowseUrl: '/editor/ckfinder/ckfinder.html',
enterMode : CKEDITOR.ENTER_BR,
width: '700px',
language: 'bg',
height: '200px',
toolbarGroups: [
{ name: 'mode', groups: [ 'mode'] },
{ name: 'clipboard', groups: [ 'clipboard', 'undo' ] },
{ name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
{ name: 'colors' },
{ name: 'links' },
{ name: 'styles' },
{ name: 'insert' },
{ name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align' ] }
]
});

Снимка как изглежда:

ckeditor-custom-toolbar-martin

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Carousel image height проблем с Chrome.

Проблема е, че под Chrome и Safari снимките не се зареждат на 100%, а малка част т.е. не определя правилно височината.
Ето какъв е проблема:

carousel chrome height image problem
carousel chrome height image problem

Решение на проблема е един малък css fix:

<style>
.carousel li img{ height:130px; }
</style>

PS: Благодарности на Rimotevst за репорта на проблема.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Правилно Записване на ipaddress v4 в mysql && php

Тип в MySQL:

INT(11) UNSIGNED

Функции за работа от MySQL

INET_ATON и INET_NTOA

Пример:
query : select INET_ATON('127.0.0.1');
result: 2130706433
query : select INET_NTOA('2130706433');
result: 127.0.0.1

Функции за работа с php
ip2long() и long2ip()

Правят същите неща като тези в MySQL, т.е.:

ip2long($arg) -> INET_ATON('$arg')
long2ip($arg) -> INET_NTOA('$arg')

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Експорт на публикации от WordPress ползващ Thrive Content Builder

Експорт на стандартна публикация

<item>
        <title>Заглавие</title>
        <link>ПЪЛНО URL на публикацията(http://…)</link>
        <pubDate>Mon, 08 Dec 2008 06:59:21 +0000</pubDate>
        <dc:creator><![CDATA[admin]]></dc:creator>
        <guid isPermaLink="false">http://mpetrov.net/?p=22</guid>
        <description></description>
        <content:encoded><![CDATA[Content]]></content:encoded>
        <excerpt:encoded><![CDATA[]]></excerpt:encoded>
        <wp:post_id>22</wp:post_id>
        <wp:post_date>2008-12-08 08:59:21</wp:post_date>
        <wp:post_date_gmt>2008-12-08 06:59:21</wp:post_date_gmt>
        <wp:comment_status>open</wp:comment_status>
        <wp:ping_status>open</wp:ping_status>
        <wp:post_name>url на публикацията</wp:post_name>
        <wp:status>publish</wp:status>
        <wp:post_parent>0</wp:post_parent>
        <wp:menu_order>0</wp:menu_order>
        <wp:post_type>post</wp:post_type>
        <wp:post_password></wp:post_password>
        <wp:is_sticky>0</wp:is_sticky>
        <category domain="category" nicename="internet"><![CDATA[Интернет]]></category>
        <wp:postmeta>
            <wp:meta_key>_edit_last</wp:meta_key>
            <wp:meta_value><![CDATA[1]]></wp:meta_value>
        </wp:postmeta>
        <wp:postmeta>
            <wp:meta_key>_wp_old_slug</wp:meta_key>
            <wp:meta_value><![CDATA[име]></wp:meta_value>
        </wp:postmeta>

    </item>

Експорт на публикация от блог ползващ плъгина Thrive Content Builder.

<item>

<content:encoded><![CDATA[]]></content:encoded>

<wp:postmeta>
           <wp:meta_key>tve_save_post</wp:meta_key>
            <wp:meta_value><![CDATA[<p>Content/p>]]></wp:meta_value>
        </wp:postmeta>

</item>

Тук се вижда, че content:encoded е празно и когато този export (xml) се import в друг wordpress без Thrive Content Builder няма да се покаже съдържанието. Според това което прочетох в сайта на Thrive Content Builder трябва да се премести и плъгина което е глупаво като причина защото не е задължително на новия сайт да се ползва този плъгин.

Ето го и решението

Необходимо е съдържанието от tve_save_post да се постави в content:encoded и така стандартна WP инсталация ще може да прочете съдържанието на публикацията, т.е:

<item>
        <title>Заглавие</title>
        <link>ПЪЛНО URL на публикацията(http://…)</link>
        <pubDate>Mon, 08 Dec 2008 06:59:21 +0000</pubDate>
        <dc:creator><![CDATA[admin]]></dc:creator>
        <guid isPermaLink="false">http://mpetrov.net/?p=22</guid>
        <description></description>
        <content:encoded><![CDATA[Content]]></content:encoded>
        <excerpt:encoded><![CDATA[]]></excerpt:encoded>
        <wp:post_id>22</wp:post_id>
        <wp:post_date>2008-12-08 08:59:21</wp:post_date>
        <wp:post_date_gmt>2008-12-08 06:59:21</wp:post_date_gmt>
        <wp:comment_status>open</wp:comment_status>
        <wp:ping_status>open</wp:ping_status>
        <wp:post_name>url на публикацията</wp:post_name>
        <wp:status>publish</wp:status>
        <wp:post_parent>0</wp:post_parent>
        <wp:menu_order>0</wp:menu_order>
        <wp:post_type>post</wp:post_type>
        <wp:post_password></wp:post_password>
        <wp:is_sticky>0</wp:is_sticky>
        <category domain="category" nicename="internet"><![CDATA[Интернет]]></category>
        <wp:postmeta>
            <wp:meta_key>_edit_last</wp:meta_key>
            <wp:meta_value><![CDATA[1]]></wp:meta_value>
        </wp:postmeta>
        <wp:postmeta>
            <wp:meta_key>_wp_old_slug</wp:meta_key>
            <wp:meta_value><![CDATA[име]></wp:meta_value>
        </wp:postmeta>

<wp:postmeta>
           <wp:meta_key>tve_save_post</wp:meta_key>
            <wp:meta_value><![CDATA[<p>Content/p>]]></wp:meta_value>
        </wp:postmeta>

    </item>

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)

Изтриване на всички постове от WordPress през MySQL

#Листва постовете от категория 2

SELECT * FROM TABLE_PREFIX_posts p
JOIN TABLE_PREFIX_term_relationships r ON p.ID = r.object_id
JOIN TABLE_PREFIX_term_taxonomy tt ON r.term_taxonomy_id = tt.term_taxonomy_id
JOIN TABLE_PREFIX_term_taxonomy t ON tt.term_id = t.term_id
WHERE t.term_id = 2;

#Листва всички постове

SELECT * FROM TABLE_PREFIX_posts p
JOIN TABLE_PREFIX_term_relationships r ON p.ID = r.object_id
JOIN TABLE_PREFIX_term_taxonomy tt ON r.term_taxonomy_id = tt.term_taxonomy_id
JOIN TABLE_PREFIX_term_taxonomy t ON tt.term_id = t.term_id;

#Изтрива постовете от категория 36
delete a,b,c,d
FROM TABLE_PREFIX_posts a
LEFT JOIN TABLE_PREFIX_term_relationships b ON ( a.ID = b.object_id )
LEFT JOIN TABLE_PREFIX_postmeta c ON ( a.ID = c.post_id )
LEFT JOIN TABLE_PREFIX_term_taxonomy d ON ( d.term_taxonomy_id = b.term_taxonomy_id )
LEFT JOIN TABLE_PREFIX_terms e ON ( e.term_id = d.term_id )
WHERE e.term_id =36;

 

#Изтрива всички постове
delete a,b,c,d
FROM TABLE_PREFIX_posts a
LEFT JOIN TABLE_PREFIX_term_relationships b ON ( a.ID = b.object_id )
LEFT JOIN TABLE_PREFIX_postmeta c ON ( a.ID = c.post_id )
LEFT JOIN TABLE_PREFIX_term_taxonomy d ON ( d.term_taxonomy_id = b.term_taxonomy_id )
LEFT JOIN TABLE_PREFIX_terms e ON ( e.term_id = d.term_id );

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)