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

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

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

@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 را به فایل ارسال کردیم که در انجا می توانیم از این متغیر استفاده یا ان را به کاربر نمایش دهیم در آموزش های بعدی در این مورد بیشتر صحبت خواهیم کرد

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

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


قسمت 1 مقدمه شروع کار با فریم ورک Yii

چند وقتی هست که با فریم ورک Yii برای انجام پروژه ای کار میکنم و تصمیم گرفتم آموزش کار با این فریم ورک رو همراه با انجام پروژ خودم بنویسم ( اگر تازه کار هستید و می خواهید php رو تازه یاد بگیرید می تونید تو قسمت نظرات درخواست بدید تا آموزش مبتدی PHP رو هم بنویسیم ) برای درک این آموزش باید آشنایی اولیه با PHP داشته باشید .

اما چرا باید از فریم ورک Yii استفاده کنیم . فریم ورک های زیاد و خوبی برای زبان PHP ساخته شده و Yii یکی از فریم ورک های کامل و نسبتا سریع هست ( از لاراول سریع تر و منابع کم تری استفاده میکند )

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

ابتدا باید فریم ورک را با استفاده از Composer نصب کنیم

اگر Composer روی سیستم شما نصب نیست روی نصب Composer کلیک کنید و آن را از سایت دانلود و نصب کنید

sudo composer create-project --prefer-dist yiisoft/yii2-app-basic basic

با اجرای دستور بالا در cmd ویندوز یا ترمینال لینوکس فریم ورک شروع به نصب میشه شما می توانید به جای کلمه basic اسم پروژه خودتون رو بنویسید برای مثال من اسم nitrocode.ir رو انتخاب میکنم : 

sudo composer create-project --prefer-dist yiisoft/yii2-app-basic nitrocode.ir

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

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

http://localhost/test/nitrocode.ir/web

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


تجربه کوتاهی به نام زبان go

Tags :

Category : موارد دیگر

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

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

من با node.js کارکردم که این زبان هم بعد زبان Go سرعت خوبی داره اما برنامه نویسی با زبان جاوا اسکریپت زمانی که کد های شما زیاد میشه کمی سخت میشه ( کد ها بسیار تو در تو میشن ) برای همین می خواستم زبان گو را هم مورد برسی قرار بدم

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

public int getCount(){
 return 0;
}

حالا توی زبان گو 

func getCount() int {
 return 0;
}

خب همین طور که مشاهده میکنید جای int با نام تابع جابه جا شده  😕 و از func برای تعریف تابع استفاده شده 

یکی از چیز هایی که در مرحله بعد روی مخ آدم راه میره این ویژگی زبان Go هست که شما از تمام متغییر هایی که تعریف میکنید باید استفاده کنید یعنی یا یک متغییر را نباید تعریف کنید یا اگر تعریف کردید باید ازش استفاده کنید مگرنه با پیغام خطا مواجه می شوید این ویژگی کمی کار تست کد هارا مشکل میکنه 

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

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

var get = JSON.parse( json );

get.result.list[0].id

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