Author Archives: بنیامین خلیفه

برسی جستجوگر های وب ایرانی

خب توی این مطلب یه برسی روی متور های جستجو گر وب ایرانی انجام میدم و معروف ترین این سایت هارو برسی میکنیم . چیزی که جالب و مهمه اینه که اصلا چه نیازی هست تا با وجود سایتی مثل گوگل ما بیایم و سرویس های مشابهی رو ایجاد کنیم.

مورد اول این که ما هر لحظه ممکنه صبح از خواب بیدار بشیم و متوجه بشویم که ارتباطی با شبکه جهانی اینترنت نداریم . من با درست یا اشتباه بودنش کاری ندارم این کار ممکنه بنا به دلایل مختلفی اتفاق بیوفته و چند باری هم این اتفاق افتاد و طولانی ترینش هم به مدت یک هفته بود که ارتباط با اینترنت جهانی قطع شده بود

بعد از این اتفاق اولین روزی که رفتم شرکت کلی به مشکل بر خوردم اول این که به چنتا از سرورهای خودمونم دیگه دسترسی نداشتیم ( که خارج از ایران بودن ) سایت های داخلی هم به مشکل خورده بودن یکی از دلایلش استفاده از cdn ها برای دریافت سورس ها و فونت ها و … داخل صفحات سایت ها بود . این مورد باعث می شد تا صفحات سایت ها به کندی لود شوند .

مشکل بعدی این بود که من برای ادامه کار نیاز به سرچ و جستجو بودم تا بتونم کارمو ادامه بدم . اما کجا ؟ چجوری ؟

سایت یوز ( yooz.ir )

فکر می کنم این معروف ترین جستجوگر ایرانی باشه چون یادمه توی اخبار هم این سایت رو معرفی کردن خب من آدرسش یادم مونده بود چند باری هم قبلا از سر کنجکاوی سایتشو برسی کرده بودم . اولین چیزی که توی ذوقم زد اخباری بود که زیر سایت نشون داده می شد . یه تب جدید توی مرورگرم باز کردم و آدرس سایتو نوشتم و با غرور روی دکمه اینتر کوبید

شوخی با جستجوگر یوز

جستجوگر یوز

هیچ سایتی وجود نداشت !!

نمی دونم دلیلش چی بود شاید سرور های سایت خارج از ایران بود .  این سایت کارش همین بود که در همچین شرایطی به ایرانی ها خدمات بده حالا کار نمی کرد 😐

یکمی عصبی تر شدم اخه چراا ؟

خب یه نفس عمیق کشیدم و دوباره فکر کردم . من قبلا با سایت بیان آشنا شده بودم از سرویس blog این شرکت استفاده کرده بودم باید اعتراف کنم سرویس blog.ir یک سیستم وبلاگ دهی قوی و مدرن بود و هست و چیزی که توش حس کردم این بود که به کاربران ایرانی احترام گذاشته شده بود و یک سرویس مناسب برای ایرانیان ایجاد شده می دونستم که این شرکت روی جستجوگر هم کار کرده

سایت salam.ir

جستجوگر سلام توی تعدادی از سایت های خبری به عنوان یک متور جستجوگر هوشمند معرفی شده بود. حالا زمان این بود که این جستجوگر به داد ما برسه. آدرس سایتو داخل مرورگر وارد کردم و یه لحظه شگفت زده شدم (همون برگام ریخت خودمون)

سایت لود شد !!!

چه جمله جالب و دلگرم کننده ای !! خطای ۵۰۲ در ارتباط با سرور  آخرشم نوشته دوباره تلاش کنید 🙂 ما خیلی تلاش کردیم داداش نشد :))

برام خیلی جالب بود چطوری شرکت ها نتونستن از این فرصت استفاده کنن و سرویس خودشون رو معرفی کنن کافی بود فقط یکی از این سایت های جستجوگر کار می کرد تا توی اون روز ها مورد استفاده مردم قرار می گرفت.

اما عاشق این سایت زیر شدم . خیلی منو سرگرم کرد . وقتی داخل یه سایت خبری داشتم میگشتم پستیو دیدم که این سایت توش معرفی شده بود خب نکته مثبتش اینه که سایت لود شد

رسیدیم به سایت اعجاز انگیز و باورنکردنی جسجو . یک لحظه به لگوی خلاقانه این سایت نگاه کنید :))) عالی نیست ؟ یاد چی می افتید ؟ واقعا این چیه آخه . آخه چه جوری . مگه میشه این همه خلاقیت :)) من کلمه “خر” را درونش جستجو نمودم 🙂 باز هم شگفت زده شدم

نوشته متاسفانه نتیجه ای برای جستجو پیدا نشد زیرشم نوشته در نوشتن املای کلمه دقت کنید 😐 هرچیز دیگه ای هم که سرچ کردم همین نتیجه رو داد

و این هم آخرین سایتی که برسی کردم

اصلا معلوم نیست چی کجاشه و قابل استفاده نبود.

الان که این مطلب را می نویسم حدود دو ماه از قطع شدن اینترنت می گذره خب دوست داشتم حالا بعد از دو ماه دوباره به این سایت ها سر بزنم ببینم آیا تغییری ایجاد شده و ایا این سایت ها برای خدمت دهی به ایرانی ها آماده شده اند یا نه

خب دوباره با یوز شروع می کنم . سایت الان در دسترس هست و صفحه اصلی سایت لود میشه

طراحی تمیز و خوبیه البته عکس زیر نشون میده که سایت توی لود کردن یک سری از سورس هاش به مشکل خورده

خب بزارید یه جستجویی توش انجام بدیم ببینم به چه صورت عمل می کنه من عبارت ایران رو داخلش جستجو می کنم  . خب خدارو شکر کار کرد و یک سری نتایج بهم نشون داد

حالا اون ایکون کوچیک بالای صفحه توجهمو جلب کرد

چه جالب یه سری امکانات دیگه هم داره این سایت !! بزارید روشون کلیک کنم ببینم به چه صورت هستن

خب متاسفانه هر چهارتا قابلیتش به صفحه ارور 404 میرسه که اصلا جالب نیست خب بر دارید اینارو اصلا برای چی اونجا گذاشتید ؟

و در آخر هم سری به جستجوگر سلام میزنیم من عبارت نیتروکد داخلش جستجو کردم که به ارور 504 خوردم

در اخر فقط یک آرزو دارم این که سرویس هایی ایجاد بشن که لایق مردوم ایران باشن و مردوم از کار کردن باهاشون لذت ببرن


آموزش ساخت ربات تلگرام

با توجه به این که هنوز هم آموزش مناسبی برای ساخت ربات تلگرام وجود نداره تصمیم گرفتیم ویدیو آموزشی ایجاد کنیم که صفر تا صد طراحی و ساخت ربات تلگرام را آموزش بدیم

ما ربات ها را با زبان php طراحی می کنیم و در این آموزش هم از زبان php  استفاده می کنیم و یاد میگیرید که چگونه رباتی با سرعت بالا طراحی کنید . پس از مشاهده ویدیو ها شما با توجه به خلافیت و نیاز خودتون می تونید هر نوع رباتی که می خواهید طراحی کنید مانند ربات فروشگاهی , ربات پرسش و پاسخ , ربات نوبت دهی , ربات مدیریت گروه و …

آموزش ساخت ربات تلگرام

در این سری از ویدیو های آموزشی ساخت ربات مباحث زیر را یاد خواهید گرفت :

  • آموزش ارسال پیام در ربات
  • آموزش ارسال فیلم در ربات
  • آموزش ارسال ویس و موزیک در ربات
  • ارسال سایر پیام ها …
  • آموزش کار با کیبورد ها در ربات
  • آموزش استفاده از inline keyboard (دکمه های شیشه ای)
  • آموزش نحوه دریافت پیام های کاربر از تلگرام
  • نحوه پردازش پیام های دریافتی و ارسال پاسخ
  • آموزش ذخیره سازی اطلاعات دریافتی از کاربر
  • معرفی کتابخانه Bot ( این کتاب خانه که توسط ما طراحی شده ساخت ربات و استفاده از قابلیت های ربات را بسیار ساده تر می کند )

 

لینک فیلم های آموزشی به زودی قرار می گیرد


بازی جرات یا حقیقت در تلگرام

به تازگی ربات تلگرامی رایگانی طراحی کرده ایم که دوتا قابلیت داره یکی بازی جرات و حقیقت هست و قابلیت دیگر آن پاکسازی گروه است درواقع این ربات تلگرام یک ربات پاکسازی گروه رایگان است که داری بازی هم می باشد برای ورود به ربات روی لینک زیر کلیک کنید

@MessageClearBot

شما باید ربات را در گروه خود ادمین کنید حالا می توانید با دوستان خود در گروه تلگرام بازی جرات و حقیقت را انجام بدید برای شروع بازی یکی از ادمین های گروه باید کلمه “بازی” را ارسال کند .

message-clear-robot

بعد از ارسال کلمه بازی ربات پیامی در گروه ارسال میکند که بازی را توضیح می دهد و اعضای گروه می توانند در بازی شرکت کنند 

نحوه استفاده از ربات پاکسازی :

برای پاکسازی گروه دستور “پاکسازی” را ارسال کنید مانند مثال زیر

پاکسازی

بعد از ارسال این دستور ربات شروع به پاکسازی و حذف پیام های گروه میکند . حالا پس از مدتی شما تعدادی ادمین به گروه خود اضافه کرده اید و می خواهید این ادمین های جدید بتوانند از ربات پاکسازی استفاده کنند برای بروزرسانی لیست ادمین های گروه در ربات پاکسازی باید دستور “!ریست ادمین” را ارسال کنید . توجه کنید که ابتدای این دستور باید از علامت ! استفاده کنید.

!ریست ادمین

حالا اگر میخواهید در گروه بازی کنید کلمه “بازی” را ارسال کنید و از بازی جرات و حقیقت با دوستان خود لذت ببرید

بازی

 

 


آموزش Semantic Dropdown

زمانی که می خواهید بین چند گزینه یکی را انتخاب کنید از dropdown استفاده می کنیم

در فریمورک سمانتیک dropdown های مختلفی وجود دارد که شما می توانید بر حسب نیاز خود یکی از آنها را انتخاب کنید

به نمونه زیر توجه کنید

<div class="ui selection dropdown">
  <input type="hidden" name="gender">
  <i class="dropdown icon"></i>
  <div class="default text">Gender</div>
  <div class="menu">
    <div class="item" data-value="1">Male</div>
    <div class="item" data-value="0">Female</div>
  </div>
</div>

کد بالا یک dropdown ایجاد می کند که شامل دو گزینه ی اقا و خانوم هست که در طراحی سایت برای تعیین جنسیت در فرم های ثبت نام استفاده می شود شما می توانید گزینه های آن را با توجه به نیاز خود تغییر دهید

اما زمانی که این کد را در صفحه خود بنویسید و آن را تست کنید متوجه می شید که با کلیک روی dropdown لیست آن برای شما باز نمی شود دلیل آن این هست که شما باید با کد های جاوا اسکریپت این فریم ورک این مشکل را حل کنید . اسکریپت زیر را به اخر صفحه خود اضافه کنید

<script>
$('.ui.dropdown').dropdown();
</script>

دوباره کد خود را تست کنید مشاهده می کنید که با کلیک روی dropdown لیست آن باز می شود

حالا چگونه بفهمیم که کاربر کدام گزینه را از لیست انتخاب کرده است

<script>
var select= $('.ui.dropdown').dropdown('get value');
</script>

با افزودن get value می توانید مقدار انتخابی کاربر را دریافت کنید . مقداری که برمیگرداند همان مقداری است که در data-value گزینه ها نوشته اید

برای مشاهده لیست کامل قابلیت ها اینجا کلیک کنید

یک مثال دیگر : شما می خواهید زمانی که کاربر یکی از گزینه هارا انتخاب کرد پیامی به او بدهید یا یک عملیاتی را انجام دهید برای این کار از کد زیر استفاده می کنیم

$('.dropdown')
  .dropdown({
    onChange: function(value, text, $selectedItem) {
      // custom action
    }
  })
;

از متد onChange استفاده کردیم زمانی که کاربر یکی از گزینه ها را انتخاب کند کدی که در قسمت custom action نوشتید اجرا می شود نمونه های مختلف را با کلیک روی dropdown می توانید مشاده کنید

 

برای سفارش ساخت سایت می توانید به تلگرام و یا ایمیل ما پیام دهید

telegram : @benyaminir

email : [email protected]


سیستم grid فریمورک semantic

Category : semantic-ui , UI

در این مطلب فریم ورک سمانتیک رو به صورت مختصر معرفی کردیم

Grid

اما حالا می خواهیم نگاهی به سیستم grid این فریمورک بیندازیم . که به شما قابلیت کادربندی مناسب صفحات را می دهد . برخلاف bootstrap که فضا را به 12 قسمت تقسیم می کند semantic ui  فضا را به 16 قسمت تقسیم می کند در ادامه از یک مثال ساده استفاده می کنیم

<div class="ui grid" >

  <div class="four wide column" >

  </div>

  <div class="ten wide column" >

  </div>

  <div class="two wide column" >

  </div>

</div>

در مثال بالا ما سه div تعریف کردیم که div اول ما 4 واحد از 16 واحد و div دوم ده واحد از فضا را به خود اختصاص داده است

یک روش دیگر برای این کار

<div class="ui three column grid" >

  <div class="column" >1<div>
  <div class="column" >2<div>
  <div class="column" >3<div>

</div>

در این روش می توانید صفحه را به سه قسمت مساوی تقسیم کنیم .

توجه کنید که در این مثال ها ما به هر div یک background اختصاص دادیم که بهتر بتوانید عملکرد کد ها را ببینید

در طراحی ساخت سایت شما باید صفحات سایت را ریسپانسیو ( واکنشگرا ) بسازید تا هم در مبایل و یا در مانیتور ها با سایز های مختلف به درستی نمایش داده شوند فریمورک semantic هم کلاس های مختلفی را برای این منظور در نظر گرفته است به نمونه کد زیر توجه کنید

<div class="ui centered grid">
  <div class="computer only row">
    <div class="column"></div>
  </div>
  <div class="six wide tablet eight wide computer column"></div>
  <div class="six wide tablet eight wide computer column"></div>
  <div class="six wide tablet eight wide computer column"></div>
</div>

در نمونه کد بالا کار کلاس computer only آن هست که این div فقط در صفحات کامپیوتر و نمایشگر های بزرگتر نشان داده شود و در نمایش گر های کوچکتر hide می شود 

اما در کلاس های six wide tablet تعیین می کنیم که div ما در صفحه نمایش های دستگاه هایی مثل تبلت و مبایل 6 واحد و در صفحه نمایش های بزرگتر 8 واحد اشغال کنن به این صورت انعطاف بیشتری در ریسپانسیو کردن داریم

کلاس centered هم همان طور که از اسم آن مشخص است div های ما را در مرکز صفحه قرار می دهد 

اما یکی دیگر از کلاس های پرکاربرد کلاس stackable است اگر بخواهیم کاربرد این کلاس را به زبان ساده بیان کنیم در گوشی ها و تبلت ها و یا زمان که صفحه مرورگر خود را کوچک می کنیم این کلاس باعث می شود div های ما از حالت افقی به حالت لیست عمودی تغییر کنند تا سایت برای صفحه نمایش های کوچک مناسب تر شود

<div class="ui stackable four column grid">
  <div class="column"></div>
  <div class="column"></div>
</div>


معرفی فریمورک semantic-ui

امروزه توسعه دهندگان برای ساخت سایت و دیزاین صفحات سایت از فریمورک هایی که برای این منظور ساخته شده اند استفاده می کنند . فریم ورک های مختلفی وجود دارم اما دوتا از معروف ترین این فریم ورک ها bootstrap و semantic-ui هستند ( سمانتیک )

اما چرا باید از semantic-ui استفاده کنیم ؟ این فریمورک نسبت به bootstrap دارای کامپوننت های بیشتر و زیباتری هست و دست شما را برای توسعه سایت های مدرن باز میزارد همین طور کلاس های آن بسیار شبیه به زبان انسان نامگذاری شده

به مثال زیر توجه کنید :

<button class="ui green button" > NitroCode.ir </button>

به همین سادگی یک باتن به رنگ سبز ایجاد میکنید 🙂

در این فریمورک علاوه بر قابلیت های css دارای کتابخانه های جاوا اسکریپت هم هست که کار برا لیست ها و کامپوننت های آن را ساده می کند

این فریم ورک قابلیت های صفحه بندی و ریسپانسیو مناسبی هم دارد که کمی با فریمورک bootstrap فرق دارد . ویژگی دیگر و جالب این فریم ورک دارا بودن ایکون های مناسب در خود فریم ورک هست . همین حالا که در حال نوشتن این پست هستم اخرین ورژن منتشر شده این فریمورک نسخه 2.4.2 است

برای پیاده سازی این فریم ورک به صورت زیر عمل میکنیم

<link rel="stylesheet" type="text/css" href="semantic/dist/semantic.min.css">
<script
  src="https://code.jquery.com/jquery-3.1.1.min.js" ></script>
<script src="semantic/dist/semantic.min.js"></script>

 

همین حالا وارد سایت این فریمورک بشید و تستش کنید در ادامه بیشتر درباره این فریمورک مینویسیم


ایجاد صفحه لاگین در فریمورک yii قسمت سوم

ایجاد یک model جدید به نام user

در فولدر models یک فایل جدید به نام User.php ایجاد کنید و کد زیر را داخل آن بنویسید

این قطعه کد توسط سایت رسمی فریمورک yii معرفی شده است

<?php

use yii\db\ActiveRecord;
use yii\web\IdentityInterface;

class User extends ActiveRecord implements IdentityInterface
{
    public static function tableName()
    {
        return 'user';
    }

    /**
     * Finds an identity by the given ID.
     *
     * @param string|int $id the ID to be looked for
     * @return IdentityInterface|null the identity object that matches the given ID.
     */
    public static function findIdentity($id)
    {
        return static::findOne($id);
    }

    /**
     * Finds an identity by the given token.
     *
     * @param string $token the token to be looked for
     * @return IdentityInterface|null the identity object that matches the given token.
     */
    public static function findIdentityByAccessToken($token, $type = null)
    {
        return static::findOne(['access_token' => $token]);
    }

    /**
     * @return int|string current user ID
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * @return string current user auth key
     */
    public function getAuthKey()
    {
        return $this->auth_key;
    }

    /**
     * @param string $authKey
     * @return bool if auth key is valid for current user
     */
    public function validateAuthKey($authKey)
    {
        return $this->getAuthKey() === $authKey;
    }
}

در کد بالا یک تابع با نام tableName وجود دارد که “user” را return می کند شما به جای user باید نام جدول کاربران خود را جایگزین کنید معمولا اسم user یا users را به عنوان نام جدول اطلاعات کاربران انتخاب می کنند

نحوه لاکین یک کاربر در سایت :

کد هایی که در ادامه توضیح داده می شود را درون کنترلر های خود می نویسیم

$identity = User::findOne(['username' => $username]);

Yii::$app->user->login($identity);

به کد های بالا دقت کنید در خط اول ما اطلاعات کاربری را بر اساس نام کاربریش پیدا می کنیم و درون متغیر identity می ریزیم و در خط دوم کاربر را در سایت لاگین می کنید .

حالا هر جا که نیاز داشتید id کاربر را دریافت کنید کافیه از کدی زیر استفاده کند

$id = Yii::$app->user->id;

کد بالا یا ایدی کاربر را میدهد یا اگر کاربر لاگین نباشد مقدار null می دهد

زمانی هم که بخواهید کاربر را از سیستم خارج کنید از 

Yii::$app->user->logout();

استفاده می کنید

در این آموزش یاد گرفتید که چگونه می توانید یک کاربر را با استفاده از نام کاربری آن در سایت لاگین کنید


استخدام برنامه نویس php

به یک نفر جعت کار در شرکت در زمینه برنامه نویسی و طراحی سایت نیاز داریم این شغل مناسب افرادی است که سابقه کاری ندارند و دوست دارن وارد بازار کار شوند و پیشرفت کنند 

شرایط : 

اشنایی با php

اشنایی با mysql

اشنایی با laravel

علاقه مندان به برنامه نوسیی می توانید مشخصات خود را برای ما ارسال کنید 

@benyaminir

ایمیل : [email protected]


سفارش ساخت سایت

امروزه استفاده از فضای مجازی و سایت های اینترنتی در بین مردم گسترش یافته است . از طریق سایت های اینترنتی می توان خدمات بسیار گسترده ای را برای مشتریان خود فراهم نمود

شما هم فارق از نوع کسب و کار خود می توانید از این فضا استفاده کنید یک سایت اینترنتی می تواند بسیار برای ما مفید باشد فرض کنید شما دارای یک فروشگاه هستید و با سفارش و ساخت یک سایت فروشگاهی مناسب می توانید به صورت انلاین هم اجناس خود را معرفی و به فروش برسانید .

کاربرد های سایت می تواند بسیار گسترده باشد برای مثالی دیگر یک موسسه آموزشی را در نظر بگیرید که می تواند آموزش ها و کلاس های مجازی و آزمون های آنلاین برگذار کند

تصور کنید برای ثبت نام و ارسال مدارک و پرداخت شهریه موسسه شما هیچ نیازی به حضور فیزیکی شخص نیست و افراد می توانند همه این عملیات را در سایت شما انجام بدهند

برای سفارش ساخت سایت و مشاوره رایگان می توانید با ایدی تلگرام زیر در ارتباط باشید

@Benyaminir

در طراحی سایت از فریمورک های مدرن و پرکاربرد مانند laravel و yii استفاده می شود

ما در زمینه های طراحی سایت , ساخت اپلیکیشن های مدرن در پلتفرم های ویندوز و mac و ساخت اپلیکیشن های اندروید و ساخت ربات های تلگرام فعالیت میکنیم پس هیچ گونه محدودیتی برای شما وجود نخواهد داشت 🙂

ایمیل : [email protected]


قسمت دوم ایجاد صفحه لاگین در فریم ورک yii

به نظر من یکی از موارد جذاب فریم ورک Yii روت و مسیریابی خودکار این فریم ورک هست در این آموزش تنظیمات اولیه  و کار با کنترلر ها  و نمایش پیام به کاربر را یاد میگیریم

اگر به فولدر فریم ورک مراجعه کنید می بینید فولدری به اسم config  می بینید وارد فولدر بشید و فایل db.php را باز کنید . در این فایل اطلاعات دیتابیس را وارد میکنیم

حالا لازمه کمی قسمت route را دستکاری کنیم به مثال زیر توجه کنید وقتی شما فریم ورک yii را نصب میکنید url های آن به این فرمت قابل فراخوانی هستند

http://hostname/index.php?r=site/index

اما ما میخواهیم url هایمان به این شکل مسیر دهی شوند

http://hostname/site/index

براین این کار داخل فولدر config فایل web.php را تغییر میدهیم و کد زیر را

'urlManager' => [
    				'class' => 'yii\web\UrlManager',
    				// Disable index.php
    				'showScriptName' => false,
    				// Disable r= routes
    				'enablePrettyUrl' => true,
    				'rules' => array(
    						'<controller:\w+>/<id:\d+>' => '<controller>/view',
    						'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
    						'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
    				),
    		],

داخل ارایه components آن اضافه کنید و فایل را ذخیره کنید

حالا نحوه کار با کنترلر ها را برسی میکنیم وارد فولدر controllers می شویم و فایل SiteController.php را باز می کنیم می خواهیم تابعی بنویسیم که وقتی url زیر در مرورگر فراخوانی شد عبارت hello در صفحه مرورگر نشان داده شود

http://localhost/site/go

تابه زیر را به کنترلر اضافه می کنیم

function actionGo(){
 echo 'hello';
}

حال اگر به جای چاپ عبارت hello بخواهیم بک صفحه html را لود کنیم ازاین کد به جای echo استفاده می کنیم

return $this->render('say', ['message' =>'hello nitrocode.ir']);

در این کد فایل به اسم say در فولدر view لود می شود  . ما برای مثال یک پارامتر هم به صفحه html خود ارسال کردیم درواقع متغیری به اسم message و با محتوای hello nitrocode.ir را به فایل ارسال کردیم که در انجا می توانیم از این متغیر استفاده یا ان را به کاربر نمایش دهیم در آموزش های بعدی در این مورد بیشتر صحبت خواهیم کرد

برای ادامه آموزش روی لینک زیر کلیک کنید

قسمت سوم ساخت صفحه لاکین