Sass compiler format :

sinabash@subash:~/PhpstormProjects/idaad sass scss/base/idaad.base.scss css/base/idaad.base.css

 

sudo composer update

drush entup

sudo composer require drupal/devel_entity_updates

drush wd-show

drush

drush cr

drush pmu context

drush updb

 

-------------------------------------------------------------------------

ابتدا باید ssh کنی روی سروری که قالب و سایت و … روشه

به این شکل :

ssh sinabash@192.*.**.*

حالا enter رو بزن

حالا رمز سرور رو بزن و به صورت ادمین روت لاگین میشی.

تمام.

 

حالا به مسیر زیر توی سایت و قالب برو تا با دستور composer ماژول رو نصب کنیم :

cd /var/www/html/project-name/docroot/

باید دستورات رو وقتی که داخل این فولدر docroot شدی وارد کنی

البته توی همون فولدر قالب هم باشی کافیه و دستور کر میکنه (یعنی همن فولدر project-name)

دستور به این صورته :

1

omposer require drupal/<modulename>

منظور از modulename همون نام ماژول در قسمت url ماژول توی سایت دروپال هستش

مثلا این ماژول context توی سایت دروپال این لینکشه :

https://www.drupal.org/project/context

قسمت آخر url که بعد از / اسلش هستش همون نام ماژول modulename هستش

که دستور در نهایت برای نصب این ماژول میشه ای :

1

omposer require drupal/<context>

 

---------------------------------------------------------------------------------------

 

ابتدا فایل با فرمت .yml و نام themename.info.yml رو پیدا کن در روت اصلی فایل‌های قالب تم

معمولا تو این مسیر هست :

/var/www/html/name-of-project/docroot/themes/contrib/theme-name/ >>>> here is root directory of theme > themename.info.yml

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

regions:

  navigation: 'Navigation'

  navigation_collapsible: 'Navigation (Collapsible)'

  header: 'Top Bar'

  hero_slider: 'Media Hero Slider'

  cover: 'Cover'

  countdown: 'Count Down'

  user1: 'User 1'

  user2: 'User 2'

  user3_first: 'User 3 First'

  user3_second: 'User 3 Second'

  user4: 'User 4'

  user5: 'User 5'

  user6_first: 'User 6 First'

  user6_second: 'User 6 Second'

  highlighted: 'Highlighted'

  help: 'Help'

  feature_first: 'Feature First'

  feature_second: 'Feature Second'

  content: 'Content'

  sidebar_first: 'Primary'

  sidebar_second: 'Secondary'

  footer: 'Copyright'

  footer1: 'Footer1'

  footer2: 'Footer2'

  footer3: 'Footer3'

  page_top: 'Page top'

  page_bottom: 'Page bottom'

نکته : ترتیب وارد کردن سکشن‌ها اینجا مهمه و دقیقا به همین ترتیب تو بخش بلاک‌های وردپرس نشونشون میده. پس دقت کن.

بعدش اپلود کن این فایل رو تا این فایل روی سرور ا‍دیت بشه.

 

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

واسه این کار فایل با فرمت .twig رو با که با نام page.html.twig هستش رو پیدا کن و بازش کن تا دستورات مختص هر سکشن رو بهش اضافه/حذف/ویراش کنیم.

مسیر این فایل تو ساختار فایل های قالب ممکنه متفاوت باشه، اما معمولا تو این مسیره :

/var/www/html/name-of-project/docroot/themes/contrib/theme-name/ >>>> here is root directory of theme > templates > system > page.html.twig

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

مثلا برای سکشن user1 به این شکله :

{{ page.user1 }}

و حاوی فرمت if و or و <div> و bootstrap class و block و endblock و endif هست

مثلا یک نمونه کامل این فایل مرتبط با فایل متناظر yml ابتدای همین مطلب :

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

302

303

304

305

306

307

308

309

{% set container = theme.settings.fluid_container ? 'container-fluid' : 'container' %}

{% set header_container = theme.settings.header_container ? 'container-fluid header-margin' : 'container' %}

{# Navbar #}

{% if page.navigation or page.navigation_collapsible %}

    {% block navbar %}

        {%

            set navbar_classes = [

            'mb-4',

            'border-bottom',

            'shadow-sm',

        ]

        %}

        <header{{ navbar_attributes }} id="navbar" role="banner">

            {% if container_navbar %}

            <div class="container">

                {% endif %}

                <div class="navbar-brand mr-md-auto order-1">

                    {{ page.navigation }}

                </div>

                <button class="navbar-toggler order-1" type="button" data-toggle="collapse" data-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">

                    <span class="navbar-toggler-icon"></span>

                    <span class="navbar-toggler-icon"></span>

                    <span class="navbar-toggler-icon"></span>

                </button>

 

 

                {% if page.navigation_collapsible %}

                    <div id="navbar-collapse" class="navbar-collapse collapse order-0">

                        <div class="navbar-nav mr-auto">

                            {{ page.navigation_collapsible }}

                        </div>

                    </div>

                {% endif %}

                {% if container_navbar %}

            </div>

            {% endif %}

        </header>

    {% endblock %}

{% endif %}

 

{# Header print #}

<div class="d-none d-print-block header-print page-header mt-4 mb-3">

    <div class="{{ container }}">

        <div class="row">

            <div class="col-sm-12">

                {# Logo print #}

                {% if logo_print %}

                    <img class="logo pull-left d-none d-print-inline-block" src="{{ logo_print }}" />

                {% endif %}

            </div>

        </div>

    </div>

</div>

<div id="page">

    {# hero_slider #}

    {% if page.hero_slider %}

        {% block hero_slider %}

            <div class="hero_slider mt-n4">

                {{ page.hero_slider }}

            </div>

        {% endblock %}

    {% endif %}

 

    {% if page.cover %}

        <div class="cover">

            <div class="overlay"></div>

            <div class="container">

                {{ page.cover }}

            </div>

        </div>

    {% endif %}

 

    {% if page.countdown %}

        <div class="countdown">

            <div class="container">

                <div class="row">

                    {{ page.countdown }}

                </div>

            </div>

        </div>

    {% endif %}

 

    {% if page.user1 %}

        <div class="user1">

            <div class="container">

                <div class="p-auto">

                    {{ page.user1 }}

                </div>

            </div>

        </div>

    {% endif %}

 

    {% if page.user2 %}

        <div class="user2">

            <div class="container">

                <div class="p-auto">

                    <div class="col-md-6 col-sm-12">

                        {{ page.user2 }}

                    </div>

                </div>

            </div>

        </div>

    {% endif %}

 

 

    {% if page.user3_first or page.user3_second %}

        <div class="user3">

            <div class="container-fluid">

                <div class="row">

                    <div class="col-md-6 col-sm-12">

 

                        {{ page.user3_first }}

 

 

                    </div>

                    <div class="col-md-6 col-sm-12">

 

                        {{ page.user3_second }}

 

                    </div>

 

                </div>

 

            </div>

        </div>

    {% endif %}

 

    {% if page.user4 %}

        <div class="user4">

            <div class="container-fluid">

                <div class="row">

                    {{ page.user4 }}

                </div>

            </div>

        </div>

    {% endif %}

 

    {% if page.user5 %}

        <div class="user5">

            <div class="container">

                <div class="row">

                    {{ page.user5 }}

                </div>

            </div>

        </div>

    {% endif %}

 

 

    {# Main #}

    {% block main %}

        <div role="main" class="main-container {{ container }} js-quickedit-main-content">

            <div class="row">

 

                {# Header #}

                {% if page.header %}

                    {% block header %}

                        <div class="col-sm-12" role="heading">

                            {{ page.header }}

                        </div>

                    {% endblock %}

                {% endif %}

 

                {# Sidebar First #}

                {% if page.sidebar_first %}

                    {% block sidebar_first %}

                        <aside class="col-sm-3" role="complementary">

                            {{ page.sidebar_first }}

                        </aside>

                    {% endblock %}

                {% endif %}

 

                {# Content #}

                {%

                    set content_classes = [

                    page.sidebar_first and page.sidebar_second ? 'col-sm-6',

                    page.sidebar_first and page.sidebar_second is empty ? 'col-sm-9',

                    page.sidebar_second and page.sidebar_first is empty ? 'col-sm-9',

                    page.sidebar_first is empty and page.sidebar_second is empty ? 'col-sm-12'

                ]

                %}

                <section{{ content_attributes.addClass(content_classes) }}>

 

                    {# Highlighted #}

                    {% if page.highlighted %}

                        {% block highlighted %}

                            <div class="highlighted">{{ page.highlighted }}</div>

                        {% endblock %}

                    {% endif %}

 

                    {# Breadcrumbs #}

                    {% if breadcrumb %}

                        {% block breadcrumb %}

                            {{ breadcrumb }}

                        {% endblock %}

                    {% endif %}

 

                    {# Action Links #}

                    {% if action_links %}

                        {% block action_links %}

                            <ul class="action-links">{{ action_links }}</ul>

                        {% endblock %}

                    {% endif %}

 

                    {# Help #}

                    {% if page.help %}

                        {% block help %}

                            {{ page.help }}

                        {% endblock %}

                    {% endif %}

 

                    {# Content #}

                    {% block content %}

                        <a id="main-content"></a>

                        {{ page.content }}

                    {% endblock %}

                </section>

 

                {# Sidebar Second #}

                {% if page.sidebar_second %}

                    {% block sidebar_second %}

                        <aside class="col-sm-3" role="complementary">

                            {{ page.sidebar_second }}

                        </aside>

                    {% endblock %}

                {% endif %}

            </div>

        </div>

    {% endblock %}

    {% if page.user6_first or page.user6_second %}

        <div class="user6">

            <div class="container-fluid">

                <div class="row">

                    <div class="col-md-6 col-sm-12">

 

                        {{ page.user6_first }}

 

 

                    </div>

                    <div class="col-md-6 col-sm-12">

 

                        {{ page.user6_second }}

 

                    </div>

                </div>

 

            </div>

        </div>

    {% endif %}

 

 

    {% endblock %}

    {% if page.feature_first or page.feature_second %}

        <div class="feature">

            <div class="container-fluid">

                <div class="row">

                    <div class="col-md-6 col-sm-12">

 

                        {{ page.feature_first }}

 

 

                    </div>

                    <div class="col-md-6 col-sm-12">

 

                        {{ page.feature_second }}

 

                    </div>

                </div>

 

            </div>

        </div>

    {% endif %}

 

</div>

 

 

{% if page.footer or page.footer1 or page.footer2 or page.footer3 %}

    {% block footer %}

        <div class="footer-wrapper">

            <footer class="footer" role="contentinfo">

                <div class="footer-top">

                    <div class="container">

                        <div class="row m-auto">

                            <div class="col-lg-4 col-sm-12">

 

                                {{ page.footer1 }}

 

                            </div>

                            <div class="col-lg-4 col-sm-12">

 

                                {{ page.footer2 }}

 

                            </div>

                            <div class="col-lg-4 col-sm-12">

 

                                {{ page.footer3 }}

 

                            </div>

                        </div>

                    </div>

                </div>

                <div class="footer-bottom">

                    <div class="container">

                        {{ page.footer }}

                    </div>

                </div>

            </footer>

        </div>

    {% endblock %}

{% endif %}